Escolar Documentos
Profissional Documentos
Cultura Documentos
Optimal Control
Conclusion
Installation
For CasADi:
Download the files from GitHub and add them to your MATLAB /
Python path - done.
Installation
For CasADi:
Download the files from GitHub and add them to your MATLAB /
Python path - done.
For ACADO:
You need: MATLAB, a C/C++ compiler and the ACADO files
Download from https://github.com/acado/acado
Go to https://sourceforge.net/p/acado/wiki/MATLAB
Interface - Getting Started/ and follow the instructions.
Link the C/C++ compiler to MATLAB and then build the
ACADO interface in MATLAB
Outline
1 Optimization
General principle - Mathematical Optimization
CasADi Software
Linear Programming
Quadratic Programming
Nonlinear Programming
Integration
2 Optimal Control
General principle
ACADO Software
Examples
3 Conclusion
Installation
Verheyleweghen & Backi Optimization & Optimal Control
General principle - Mathematical Optimization
CasADi Software
Optimization
Linear Programming
Optimal Control
Quadratic Programming
Conclusion
Nonlinear Programming
Integration
Outline
1 Optimization
General principle - Mathematical Optimization
CasADi Software
Linear Programming
Quadratic Programming
Nonlinear Programming
Integration
2 Optimal Control
General principle
ACADO Software
Examples
3 Conclusion
Installation
Verheyleweghen & Backi Optimization & Optimal Control
General principle - Mathematical Optimization
CasADi Software
Optimization
Linear Programming
Optimal Control
Quadratic Programming
Conclusion
Nonlinear Programming
Integration
Introduction
Introduction
Introduction
Introduction
Notation
Notation
Notation
Terminology
Terminology
Terminology
Terminology
Terminology
Convexity:
Convex problems are generally easier to solve. Convexity often
holds for the objective function, however, in order to obtain a
convex programming problem, the equality constraints must be
linear and the inequality constraints convex.
Terminology
Convexity:
Convex problems are generally easier to solve. Convexity often
holds for the objective function, however, in order to obtain a
convex programming problem, the equality constraints must be
linear and the inequality constraints convex.
Outline
1 Optimization
General principle - Mathematical Optimization
CasADi Software
Linear Programming
Quadratic Programming
Nonlinear Programming
Integration
2 Optimal Control
General principle
ACADO Software
Examples
3 Conclusion
Installation
Verheyleweghen & Backi Optimization & Optimal Control
General principle - Mathematical Optimization
CasADi Software
Optimization
Linear Programming
Optimal Control
Quadratic Programming
Conclusion
Nonlinear Programming
Integration
CasADi
CasADi
What is it?
Tool for Algorithmic Differentiation (ADi) with syntax
borrowed from Computer algebra systems (Cas)
Interfaces with optimization software such as IPOPT,
qpOASES, SNOPT, fmincon etc.
CasADi
CasADi
What is it?
Tool for Algorithmic Differentiation (ADi) with syntax
borrowed from Computer algebra systems (Cas)
Interfaces with optimization software such as IPOPT,
qpOASES, SNOPT, fmincon etc.
What is it not?
Not an optimization software
Not a conventional AD tool, that can be used on existing user
code with little to no modification
Verheyleweghen & Backi Optimization & Optimal Control
General principle - Mathematical Optimization
CasADi Software
Optimization
Linear Programming
Optimal Control
Quadratic Programming
Conclusion
Nonlinear Programming
Integration
CasADi
Algorithmic differentiation?
CasADi
Algorithmic differentiation?
z = f (x1 , x2 )
= x1 x2 + sin(x1 )
CasADi
Algorithmic differentiation?
z = f (x1 , x2 )
w5 +
= x1 x2 + sin(x1 )
= w1 w2 + sin(w1 ) w4 sin ∗ w3
= w3 + w4
= w5
w1 x1 x2 w2
CasADi
Algorithmic differentiation?
= w3 + w4 ẇ 1
ẇ1 ẇ2
= w5
w1 x1 x2 w2
CasADi
Why bother?
sympy
100
Time to generate graph [s]
10−1
10−2
10−3
10−4 0
10 101 102 103 104
Number of variables
CasADi
Why bother?
sympy
100 yalmip
Time to generate graph [s]
mupad
10−1
10−2
10−3
10−4 0
10 101 102 103 104
Number of variables
CasADi
Why bother?
sympy
100 yalmip
Time to generate graph [s]
mupad
casadi
10−1
10−2
10−3
10−4 0
10 101 102 103 104
Number of variables
CasADi
Why bother?
sympy
100 yalmip
Time to generate graph [s]
mupad
casadi
10−1
10−2 Flexibility of
programming
10−3 language
Performance of
10−4 0
10 101 102 103 104 modeling language
Number of variables
CasADi - Syntax
1
Python/C++ also available
Verheyleweghen & Backi Optimization & Optimal Control
General principle - Mathematical Optimization
CasADi Software
Optimization
Linear Programming
Optimal Control
Quadratic Programming
Conclusion
Nonlinear Programming
Integration
CasADi - Syntax
1
Python/C++ also available
Verheyleweghen & Backi Optimization & Optimal Control
General principle - Mathematical Optimization
CasADi Software
Optimization
Linear Programming
Optimal Control
Quadratic Programming
Conclusion
Nonlinear Programming
Integration
Outline
1 Optimization
General principle - Mathematical Optimization
CasADi Software
Linear Programming
Quadratic Programming
Nonlinear Programming
Integration
2 Optimal Control
General principle
ACADO Software
Examples
3 Conclusion
Installation
Verheyleweghen & Backi Optimization & Optimal Control
General principle - Mathematical Optimization
CasADi Software
Optimization
Linear Programming
Optimal Control
Quadratic Programming
Conclusion
Nonlinear Programming
Integration
CasADi - LP example
Example 1 - Linear programming
Farmer wants to grow apples and bananas
Farmer has a field of 100 000 m2 and can legally use no more than
2000 kg fertilizer.
What to plant?
Verheyleweghen & Backi Optimization & Optimal Control
General principle - Mathematical Optimization
CasADi Software
Optimization
Linear Programming
Optimal Control
Quadratic Programming
Conclusion
Nonlinear Programming
Integration
CasADi - LP example
min c | x
x
subject to
Ax ≤b
xl ≤x
where
−7000 4000 3000 100000 0
c= A= b= xl =
−6000 60 80 2000 0
Verheyleweghen & Backi Optimization & Optimal Control
General principle - Mathematical Optimization
CasADi Software
Optimization
Linear Programming
Optimal Control
Quadratic Programming
Conclusion
Nonlinear Programming
Integration
CasADi - LP example
B
30
min c | x
x
subject to 20
Ax ≤b
10
xl ≤x
where
A
10 20 30
−7000 4000 3000 100000 0
c= A= b= xl =
−6000 60 80 2000 0
Verheyleweghen & Backi Optimization & Optimal Control
General principle - Mathematical Optimization
CasADi Software
Optimization
Linear Programming
Optimal Control
Quadratic Programming
Conclusion
Nonlinear Programming
Integration
CasADi - LP example
B
30
min c | x
x
subject to 20
Ax ≤b
10
xl ≤x Feasible region
where
A
10 20 30
−7000 4000 3000 100000 0
c= A= b= xl =
−6000 60 80 2000 0
Verheyleweghen & Backi Optimization & Optimal Control
General principle - Mathematical Optimization
CasADi Software
Optimization
Linear Programming
Optimal Control
Quadratic Programming
Conclusion
Nonlinear Programming
Integration
CasADi - LP example
B
30
min c | x
x
subject to 20
Ax ≤b Optimal solution
10
xl ≤x
where
A
10 20 30
−7000 4000 3000 100000 0
c= A= b= xl =
−6000 60 80 2000 0
Verheyleweghen & Backi Optimization & Optimal Control
General principle - Mathematical Optimization
CasADi Software
Optimization
Linear Programming
Optimal Control
Quadratic Programming
Conclusion
Nonlinear Programming
Integration
CasADi - LP example
c = [ −7000; −6000]; % Objective function coeffs
A = [4000 ,3000;60 ,80]; % Constraints lhs
b = [100000;2000]; % Constraint rhs
lb = [ 0 ; 0 ] ; % Lower bounds on x
ub = [ i n f ; i n f ] ; % Upper bounds on x
x = SX . sym ( ' x ' , 2 ) ; % Create symbolic v a r i a b l e s
CasADi - LP example
c = [ −7000; −6000]; % Objective function coeffs
A = [4000 ,3000;60 ,80]; % Constraints lhs
b = [100000;2000]; % Constraint rhs
lb = [ 0 ; 0 ] ; % Lower bounds on x
ub = [ i n f ; i n f ] ; % Upper bounds on x
x = SX . sym ( ' x ' , 2 ) ; % Create symbolic v a r i a b l e s
Outline
1 Optimization
General principle - Mathematical Optimization
CasADi Software
Linear Programming
Quadratic Programming
Nonlinear Programming
Integration
2 Optimal Control
General principle
ACADO Software
Examples
3 Conclusion
Installation
Verheyleweghen & Backi Optimization & Optimal Control
General principle - Mathematical Optimization
CasADi Software
Optimization
Linear Programming
Optimal Control
Quadratic Programming
Conclusion
Nonlinear Programming
Integration
CasADi - QP example
What if profit depends on production? (market saturation etc.)
Profit for A (x1 ) is 7000 − 200x1
Profit for B (x2 ) is 6000 − 140x2
CasADi - QP example
What if profit depends on production? (market saturation etc.)
Profit for A (x1 ) is 7000 − 200x1 B
Profit for B (x2 ) is 6000 − 140x2 30
min c | x + x | Qx
x 20
subject to
Ax ≤b 10
xl ≤x
A
where 10 20 30
2 0 −70 40 30 1000 0
Q= c= A= b= xl =
0 1.4 −60 0.6 0.8 20 0
Verheyleweghen & Backi Optimization & Optimal Control
General principle - Mathematical Optimization
CasADi Software
Optimization
Linear Programming
Optimal Control
Quadratic Programming
Conclusion
Nonlinear Programming
Integration
CasADi - QP example
What if profit depends on production? (market saturation etc.)
Profit for A (x1 ) is 7000 − 200x1 B
Profit for B (x2 ) is 6000 − 140x2 30
min c | x + x | Qx
x 20
subject to
Ax ≤b 10
Feasible region
xl ≤x
A
where 10 20 30
2 0 −70 40 30 1000 0
Q= c= A= b= xl =
0 1.4 −60 0.6 0.8 20 0
Verheyleweghen & Backi Optimization & Optimal Control
General principle - Mathematical Optimization
CasADi Software
Optimization
Linear Programming
Optimal Control
Quadratic Programming
Conclusion
Nonlinear Programming
Integration
CasADi - QP example
What if profit depends on production? (market saturation etc.)
Profit for A (x1 ) is 7000 − 200x1 B
Profit for B (x2 ) is 6000 − 140x2 30
min c | x + x | Qx
x 20
subject to
Ax ≤b 10
Optimal solution
xl ≤x
A
where 10 20 30
2 0 −70 40 30 1000 0
Q= c= A= b= xl =
0 1.4 −60 0.6 0.8 20 0
Verheyleweghen & Backi Optimization & Optimal Control
General principle - Mathematical Optimization
CasADi Software
Optimization
Linear Programming
Optimal Control
Quadratic Programming
Conclusion
Nonlinear Programming
Integration
CasADi - QP example
p r o b s t r u c t = s t r u c t ( ' x ' , x , ' f ' , c ' ∗ x+x ' ∗Q∗x , ' g ' ,A∗x−b ) ;
solver = qpsol ( ' s o l v e r ' , ' qpoases ' , p r o b s t r u c t ) ;
Outline
1 Optimization
General principle - Mathematical Optimization
CasADi Software
Linear Programming
Quadratic Programming
Nonlinear Programming
Integration
2 Optimal Control
General principle
ACADO Software
Examples
3 Conclusion
Installation
Verheyleweghen & Backi Optimization & Optimal Control
General principle - Mathematical Optimization
CasADi Software
Optimization
Linear Programming
Optimal Control
Quadratic Programming
Conclusion
Nonlinear Programming
Integration
Change from:
s o l v e r = qpsol ( ' s o l v e r ' , ' qpoases ' , p r o b s t r u c t ) ;
to:
solver = nlpsol ( ' solver ' , ' ipopt ' , prob struct ) ;
Outline
1 Optimization
General principle - Mathematical Optimization
CasADi Software
Linear Programming
Quadratic Programming
Nonlinear Programming
Integration
2 Optimal Control
General principle
ACADO Software
Examples
3 Conclusion
Installation
Verheyleweghen & Backi Optimization & Optimal Control
General principle - Mathematical Optimization
CasADi Software
Optimization
Linear Programming
Optimal Control
Quadratic Programming
Conclusion
Nonlinear Programming
Integration
dpx dvx
= vx = ax = 0 θ
dt dt
dpy dvy
= vy = ay = −g
dt dt py0
px
dpx dvx
= vx = ax = 0 θ
dt dt
dpy dvy
= vy = ay = −g
dt dt py0
px
Initial conditions:
px,0 = 0 m, py ,0 = 1 m, vx,0 = v0 cos(θ), vy ,0 = v0 sin(θ)
import casadi .∗
x = [v;p]; % State v a r i a b l e s
p = [ theta ; tf ] ; % Parameters
dv = [ 0 ; − 9 . 8 1 ] ; % D i f f e r e n t i a l equations
dp = v ;
dx = [ dv ; dp ] . ∗ t f ;
x = [v;p]; % State v a r i a b l e s
p = [ theta ; tf ] ; % Parameters
dv = [ 0 ; − 9 . 8 1 ] ; % D i f f e r e n t i a l equations
dp = v ;
dx = [ dv ; dp ] . ∗ t f ;
v0 = 2 0 ; % Initial velocity
a =45;
Fk = F ( ' x0 ' , [ v0 ∗ c o s ( a ) ; v0 ∗ s i n ( a ) ; 0 ; 1 ] , ' p ' , [ a , 3 . 5 ] ) ;
X = f u l l ( Fk . x f ) ' ;
p l o t (X ( : , 3 ) ,X ( : , 4 ) )
subject to
t=t
Z f
dp
ptf = dt + pt0
dt
t=0
py ≥ 0
Outline
1 Optimization
General principle - Mathematical Optimization
CasADi Software
Linear Programming
Quadratic Programming
Nonlinear Programming
Integration
2 Optimal Control
General principle
ACADO Software
Examples
3 Conclusion
Installation
Verheyleweghen & Backi Optimization & Optimal Control
Optimization General principle
Optimal Control ACADO Software
Conclusion Examples
Control explained
Control explained
Outline
1 Optimization
General principle - Mathematical Optimization
CasADi Software
Linear Programming
Quadratic Programming
Nonlinear Programming
Integration
2 Optimal Control
General principle
ACADO Software
Examples
3 Conclusion
Installation
Verheyleweghen & Backi Optimization & Optimal Control
Optimization General principle
Optimal Control ACADO Software
Conclusion Examples
Dynamic Optimization
Dynamic Optimization
Dynamic Optimization
Dynamic Optimization
Notation
min V (x, u)
u∈U
subject to ẋ − f (x, u) = 0
gi (x, u) ≤ 0, i = 1, . . . , m
hj (x, u) = 0, j = 1, . . . , p,
with V (x, u) objective function
ẋ − f (x, u) = 0 dynamic constraints
gi (x, u) inequality constraints
hj (x, u) equality constraints
U the feasible set of inputs
Single shooting
Outline
1 Optimization
General principle - Mathematical Optimization
CasADi Software
Linear Programming
Quadratic Programming
Nonlinear Programming
Integration
2 Optimal Control
General principle
ACADO Software
Examples
3 Conclusion
Installation
Verheyleweghen & Backi Optimization & Optimal Control
Optimization General principle
Optimal Control ACADO Software
Conclusion Examples
Outline
1 Optimization
General principle - Mathematical Optimization
CasADi Software
Linear Programming
Quadratic Programming
Nonlinear Programming
Integration
2 Optimal Control
General principle
ACADO Software
Examples
3 Conclusion
Installation
Verheyleweghen & Backi Optimization & Optimal Control
Optimization General principle
Optimal Control ACADO Software
Conclusion Examples
1
← Throttle charact. Φ
← Compr. charact. Ψ
← setpoint
0.5
ψ
0
CCV Throttle
−0.5
−0.4 −0.2 0 0.2 0.4 0.6 0.8
Compressor Plenum φ
1 p √
ψ̇ = x˙1 = x2 − γ x1 + x10 − x10
B
φ̇ = x˙2 = B −k3 x23 − k2 x22 − k1 x2 − x1 − u
Z 20
min V = P(x1 − x1ref )2 + Q(x2 − x2ref )2 + R(u − u ref )2 dt
u 0
1 p √
subject to x˙1 = x2 − γ x1 + x10 − x10
B
x˙2 = B −k3 x23 − k2 x22 − k1 x2 − x1 − u
0 ≤ u(t) ≤ 0.2
x1 (0) = 0.1
x2 (0) = 0
ACADO - Syntax
BEGIN ACADO ;
a c a d o S e t ( ' problemname ' , ' c o m p r e s s o r c o n t r o l s i m p l e ' ) ;
D i f f e r e n t i a l S t a t e x1 x2 ; C o n t r o l u ;
f = acado . D i f f e r e n t i a l E q u a t i o n ( ) ;
f . add ( d o t ( x1 ) == 1/B∗( x2−gamma ∗ ( ( x1+x10 ) ˆ ( 1 / 2 )−(x10 ) ˆ ( 1 / 2 ) ) ) ) ;
f . add ( d o t ( x2 ) == B∗(−k3 ∗ x2ˆ3−k2 ∗ x2ˆ2−k1∗x2−x1−u ) ) ;
S = 1 e2 ∗ e y e ( 3 ) ; S ( 1 , 1 ) = 1 e2 ; h = {u x1 x2 } ; r = [ 0 0 0 ] ;
ocp = a c a d o . OCP ( 0 . 0 , 2 0 , 5 0 ) ;
ocp . minimizeLSQ ( S , h , r ) ;
ocp . s u b j e c t T o ( f ) ;
ocp . s u b j e c t T o ( 'AT START ' , x1 == 0 . 1 ) ; ocp . s u b j e c t T o ( 'AT START ' , x2 == 0 ) ;
ocp . s u b j e c t T o ( 0 <= u <= 0 . 2 ) ;
a l g o=a c a d o . O p t i m i z a t i o n A l g o r i t h m ( ocp ) ;
a l g o . s e t ( 'KKT TOLERANCE ' , 1 e−6 ) ;
a l g o . s e t ( 'INTEGRATOR TYPE ' , ' INT RK45 ' ) ;
a l g o . s e t ( ' HESSIAN APPROXIMATION ' , 'GAUSS NEWTON ' ) ;
a l g o . s e t ( ' DISCRETIZATION TYPE ' , 'COLLOCATION ' ) ;
END ACADO ;
out = co m p re s so r c on t r ol s i mp l e R U N ( ) ;
Z τ
min V = P(x1 − x1ref )2 + Q(x2 − x2ref )2 + R(u − u ref )2
w 0
+ O(w − w ref )2 + W (τ − τ ref ) dt
1 p √
subject to x˙1 = x2 − γ x1 + x10 − x10
B
x˙2 = B −k3 x23 − k2 x22 − k1 x2 − x1 − u
u̇ = w
0 ≤ u(t) ≤ 0.2, −0.1 ≤ w ≤ 0.1
15 ≤ τ ≤ 25
x1 (0) = 0.1, x2 (0) = 0
Verheyleweghen & Backi Optimization & Optimal Control
Optimization General principle
Optimal Control ACADO Software
Conclusion Examples
ACADO - Syntax
BEGIN ACADO ;
a c a d o S e t ( ' problemname ' , ' c o m p r e s s o r c o n t r o l ' ) ;
D i f f e r e n t i a l S t a t e x1 x2 u ; C o n t r o l w ; P a r a m e t e r t a u ;
f = acado . D i f f e r e n t i a l E q u a t i o n ( 0 , tau ) ;
f . add ( d o t ( x1 ) == 1/B∗( x2−gamma ∗ ( ( x1+x10 ) ˆ ( 1 / 2 )−(x10 ) ˆ ( 1 / 2 ) ) ) ) ;
f . add ( d o t ( x2 ) == B∗(−k3 ∗ x2ˆ3−k2 ∗ x2ˆ2−k1∗x2−x1−u ) ) ;
f . add ( d o t ( u ) == w) ;
S = 1 e2 ∗ e y e ( 5 ) ; h = { t a u w u x1 x2 } ; r = [ 2 0 0 0 0 0 ] ;
ocp = a c a d o . OCP ( 0 . 0 , tau , 5 0 ) ;
ocp . minimizeLSQ ( S , h , r ) ;
ocp . s u b j e c t T o ( f ) ;
ocp . s u b j e c t T o ( 'AT START ' , x1 == 0 . 1 ) ; ocp . s u b j e c t T o ( 'AT START ' , x2 == 0 ) ;
ocp . s u b j e c t T o ( 0 <= u <= 0 . 2 ) ;
ocp . s u b j e c t T o ( −0.1 <= w <= 0 . 1 ) ;
ocp . s u b j e c t T o ( 15 <= t a u <= 25 ) ;
a l g o=a c a d o . O p t i m i z a t i o n A l g o r i t h m ( ocp ) ;
a l g o . s e t ( 'KKT TOLERANCE ' , 1 e−6 ) ;
a l g o . s e t ( 'INTEGRATOR TYPE ' , ' INT RK45 ' ) ;
a l g o . s e t ( ' HESSIAN APPROXIMATION ' , 'GAUSS NEWTON ' ) ;
a l g o . s e t ( ' DISCRETIZATION TYPE ' , 'COLLOCATION ' ) ;
END ACADO ;
out = compressor control RUN ( ) ;
Temperature
Time
Temperature
Time
Problem description
Z τ
min V = (T − T ref )T P(T − T ref ) + Q(u − u ref )2
v 0
+ R(v − v ref )2 + W (τ − τ ref )2 dt
ACADO - Syntax
BEGIN ACADO ;
a c a d o S e t ( ' problemname ' , ' f r e e z i n g ' ) ;
D i f f e r e n t i a l S t a t e T1 T2 T3 T4 T5 T6 T7 T8 T9 u ; P a r a m e t e r t a u ; C o n t r o l v ;
f = acado . D i f f e r e n t i a l E q u a t i o n ( 0 , tau ) ;
f . add ( d o t ( T1 ) == kappa ( T1 ) / ( 0 . 1 / 9 ) ˆ2∗( T1−u ) ˆ2 + k ( T1 ) / ( 0 . 1 / 9 ) ˆ2∗( T2−2∗T1+u ) ) ; ...
f . add ( d o t ( u ) == v ) ;
S = 1 e3 ∗ e y e ( 1 2 ) ; S ( 1 , 1 ) = 1 e1 ; S ( 2 , 2 ) = 1 e1 ; S ( 3 , 3 ) = 1 e −1;
h = {u v t a u T1 T2 T3 T4 T5 T6 T7 T8 T9 } ;
r = [ 2 5 5 0 8000 251 2 5 1 . 5 252 2 5 2 . 5 253 2 5 2 . 5 252 2 5 1 . 5 2 5 1 ] ;
ocp = a c a d o . OCP ( 0 . 0 , tau , 1 0 0 ) ;
ocp . minimizeLSQ ( S , h , r ) ;
ocp . s u b j e c t T o ( f ) ;
ocp . s u b j e c t T o ( 'AT START ' , T1 == x0 ( 1 ) ) ; ...
ocp . s u b j e c t T o ( 'AT END ' , 250 <= T1 <= 2 5 2 ) ; ...
ocp . s u b j e c t T o ( T1 >= 2 4 5 ) ; ...
ocp . s u b j e c t T o ( 6000 <= t a u <= 10000 ) ;
ocp . s u b j e c t T o ( 235 <= u <= 255 ) ;
ocp . s u b j e c t T o ( −0.01 <= v <= 0 . 0 1 ) ;
a l g o=a c a d o . O p t i m i z a t i o n A l g o r i t h m ( ocp ) ;
a l g o . s e t ( 'KKT TOLERANCE ' , 1 e−6 ) ;
a l g o . s e t ( 'INTEGRATOR TYPE ' , ' INT RK78 ' ) ;
a l g o . s e t ( ' HESSIAN APPROXIMATION ' , 'GAUSS NEWTON ' ) ;
a l g o . s e t ( ' DISCRETIZATION TYPE ' , ' SINGLE SHOOTING ' ) ;
END ACADO ;
out = freezing RUN ( ) ;
Outline
1 Optimization
General principle - Mathematical Optimization
CasADi Software
Linear Programming
Quadratic Programming
Nonlinear Programming
Integration
2 Optimal Control
General principle
ACADO Software
Examples
3 Conclusion
Installation
Verheyleweghen & Backi Optimization & Optimal Control
Optimization
Optimal Control Installation
Conclusion
Outline
1 Optimization
General principle - Mathematical Optimization
CasADi Software
Linear Programming
Quadratic Programming
Nonlinear Programming
Integration
2 Optimal Control
General principle
ACADO Software
Examples
3 Conclusion
Installation
Verheyleweghen & Backi Optimization & Optimal Control
Optimization
Optimal Control Installation
Conclusion
For CasADi:
Download the files from GitHub and add them to your MATLAB /
Python path - done.
For CasADi:
Download the files from GitHub and add them to your MATLAB /
Python path - done.
For ACADO:
You need: MATLAB, a C/C++ compiler and the ACADO files
Download from https://github.com/acado/acado
Go to https://sourceforge.net/p/acado/wiki/MATLAB
Interface - Getting Started/ and follow the instructions.
Link the C/C++ compiler to MATLAB and then build the
ACADO interface in MATLAB
Further Reading