Dynamic
Constraint
Control State Constraints
Dynamic
Constraint
Control State Constraints
With Final Time Fixed
Indirect Methods
Direct Methods
Use the optimal conditions
Discretization all equations
AMPL IPOPT
Indirect Methods
Direct Methods
Indirect Methods
Indirect Methods
Y = sym('y',[2 1]); U = sym('u',[1 1])
% Vector dynamics
F = @(t,Y,U) [ Y(1)*Y(2) + U(1) ; ...
-Y(2) + U(2) ] ;
% Create a ode object
dynamics = ode(F,Y,U);
dynamics.InitialCondition = [0;-1];
%
Psi = @(T,Y) Y*Y;
L = @(t,Y,U) 0.005*(U*U) ;
%
% We finally define the optimal control problem as a
% Pontryagin class:
iP = Pontryagin(dynamics,Psi,L);
%
Indirect Methods
Indirect Methods
Indirect Methods
>> iP.Dynamics.DerivativeDynState
ans =
SymNumFun with properties:
Numerical: @(t,in2,in3)reshape([in2(2,:),0.0,in2(1,:),-1.0],[2,2])
Symbolical: [2×2 sym]
Si vemos en el interior de la variable IP encontramos la expresión simbólica y la función numérica
Indirect Methods
>> iP.Dynamics.DerivativeDynState.Symbolical
ans =
[ y2, y1]
[ 0, -1]
Vemos en este caso el valor simbólico
Indirect Methods
Indirect Methods
>> [J,Gradient,Hessian] = Control2Functional(iP,U0)
J =
0.1200
Gradient =
-0.0240 0
-0.0270 0
-0.0304 0
-0.0342 0
-0.0384 0
-0.0433 0
-0.0487 0
-0.0547 0
-0.0616 0
-0.0693 0
Hess =
0 -1.0000
0 -0.8889
0 -0.7901
0 -0.7023
0 -0.6243
0 -0.5549
0 -0.4933
0 -0.4385
0 -0.3897
0 -0.3464
Indirect Methods
Se han implementado métodos del gradiente dentro de DyCon Toolbox
GradientMethod(iP,U0,'DescentAlgorithm',@ConjugateDescent)
%
GradientMethod(iP,U0,'DescentAlgorithm',@ClassicalDescent)
%
GradientMethod(iP,U0,'DescentAlgorithm',@AdaptativeDescent)
Indirect Methods
Además se puede acoplar fácilmente con el optimizador fmincon de MATLAB
Umax = 1;
Umin = -1;
fmincon(@(U)Control2Functional(iP,U),U0, ... % U0 initial guess
[],[], ... % A*U = 0
[],[], ... % A*U > 0
Umin,Umax, ... % Umin<U<Umax
[]); ... % G(U) < 0
Indirect Methods
Tanto en el cálculo de la dinámica directa como en la dinámica adjunta se debe resolver una ODE.
Esta pieza del algoritmo es intercambiable. Lo más importante es que tenga una interfaz determinada.
Indirect Methods
% DyCon Toolbox Syntax
Y = sym('y',[2 1]); U = sym('u',[1 1])
% Vector dynamics
F = @(t,Y,U) [ Y(1)*Y(2) + U(1) ; ...
-Y(2) + U(2) ] ;
% Create a ode object
dynamics = ode(F,Y,U);
dynamics.Solver = @ode45
% Interfaz Obligatoria
dynamics.InitialCondition = [0;-1];
[tspan ,Ysolution] = solve(dynamics)
Indirect Methods
% change the solver
dynamics.Solver = @ode45
Indirect Methods
Posibles Extensiones
Desarrollar un método propio para discretizar todo el problema, y calcular sus derivadas discretas (como AMPL)
Dentro del la clase Pontryagin tenemos todo lo necesario para poder calcular las derivadas discretas.
Esto nos ayudaría a extender Dycon Toolbox a métodos indirectos
AMPL IPOPT
Indirect Methods
Direct Methods
Posibles Extensiones
Desarrollar un método propio para discretizar todo el problema, y calcular sus derivadas discretas (como AMPL)
Dentro del la clase Pontryagin tenemos todo lo necesario para poder calcular las derivadas discretas.
Esto nos ayudaría a extender Dycon Toolbox a métodos indirectos
Indirect Methods
Direct Methods
AMPL IPOPT
Posibles Extensiones
El enlace con FMINCON de MATLAB esta hecho pero este tipo de problemas funcionan mejor con los métodos directos (Problemas totalmente discretizado)
Posibles Extensiones
Crear tutoriales sobre problemas clásicos: braquistocrona, Principio de Fermat, ...
Posibles Extensiones
Agregar los métodos del gradiente que permiten un tiempo final variable
Book: Applied Optimal Control: Optimization Estimation and Control
Posibles Extensiones
Utilizar PDE Toolbox en MATLAB. Solo para obtener las matrices de Mass, Stiffnex, ...
K is the stiffness matrix, the integral of the c coefficient against the basis functions.
M is the mass matrix, the integral of the m or d coefficient against the basis functions.
A is the integral of the a coefficient against the basis functions.
F is the integral of the f coefficient against the basis functions.
Q is the integral of the q boundary condition against the basis functions.
G is the integral of the g boundary condition against the basis functions.
The H and R matrices come directly from the Dirichlet conditions and the mesh.
FEM = assembleFEMatrices(model)
Posibles Extensiones
Utilizar PDE Toolbox en MATLAB. Solo para obtener las matrices de la dinámica
Heat Equation with some no lineal term in DyCon Logo
Posibles Extensiones
Umberto esta implementado de forma independiente junto Mondragon, métodos para buscar regiones de estabilidad.
La sintaxis de los scripts son muy compatibles con la sintaxis para definir ODE en DyCon Toolbox
Dado una dinámica y un punto de estabilidad, recuperan una región de estabilidad.
Posibles Extensiones
Persona | Tarea |
---|---|
Dario | Desarrollar un método propio para discretizar todo el problema, y calcular sus derivadas discretas (como AMPL) |
Domenec | Utilizar PDE Toolbox en MATLAB. Solo para obtener la función de la dinamicas |
Umberto | Proyecto Elkartek |
Dongnam | Optimización de la arquitectura de software, y testeo |
? | Problemas Clásicos |