El software de control óptimo PROPT [ 1 ] MATLAB es una plataforma de nueva generación para resolver problemas de control óptimo aplicado (con formulación ODE o DAE ) y estimación de parámetros .
La plataforma fue desarrollada por Per Rutquist , ganador del concurso de programación de MATLAB, en 2008. La versión más reciente admite variables binarias y enteras, además de contar con un módulo de escalado automático.
Descripción
PROPT es un motor combinado de modelado , compilación y resolución, basado en la clase de modelado TomSym , para la generación de problemas de control óptimo de alta complejidad. PROPT utiliza un método de colocación pseudoespectral (con puntos de Gauss o Chebyshev) para resolver problemas de control óptimo. Esto significa que la solución adopta la forma de un polinomio , el cual satisface la ecuación diferencial algebraica (EDA) y las restricciones de trayectoria en los puntos de colocación.
En general, PROPT tiene las siguientes funciones principales:
- Cálculo de las matrices constantes utilizadas para la diferenciación e integración de los polinomios empleados para aproximar la solución al problema de optimización de trayectorias .
- Transformación de la fuente para convertir expresiones proporcionadas por el usuario en código MATLAB para la función de costo.y función de restricciónque se pasan a un solucionador de programación no lineal en TOMLAB . El paquete de transformación de fuentes TomSym genera automáticamente derivadas de primer y segundo orden.
- Funcionalidad para graficar y calcular diversa información para la solución del problema.
- Detección automática de lo siguiente:
- Objetivo lineal y cuadrático.
- Límites simples, restricciones lineales y no lineales.
- Expresiones no optimizadas.
- Soporte integrado para problemas de control óptimo no suaves [ 2 ] (híbridos).
- Módulo para el escalado automático de problemas complejos relacionados con el espacio.
- Compatibilidad con variables, controles o estados binarios y enteros.
Modelado
El sistema PROPT utiliza el motor de transformación de código fuente simbólico TomSym para modelar problemas de control óptimo. Es posible definir variables independientes , funciones dependientes, escalares y parámetros constantes:
toms tf toms t p = tomPhase ( 'p' , t , 0 , tf , 30 ); x0 = { tf == 20 }; cbox = { 10 <= tf <= 40 };toms z1 cbox = { cbox ; 0 <= z1 <= 500 }; x0 = { x0 ; z1 == 0 };ki0 = [ 1e3 ; 1e7 ; 10 ; 1e-3 ];Estados y controles
Los estados y los controles solo se diferencian en que los estados deben ser continuos entre fases.
tomStates x1 x0 = { icollocate ({ x1 == 0 })};tomControls u1 cbox = { - 2 <= colocar ( u1 ) <= 1 }; x0 = { x0 ; colocar ( u1 == - 0.01 )};Restricciones de límites, trayectorias, eventos e integrales
A continuación se muestran diversas restricciones de límites, trayectorias, eventos e integrales:
cbnd = initial ( x1 == 1 ); % Punto de inicio para x1 cbnd = final ( x1 == 1 ); % Punto final para x1 cbnd = final ( x2 == 2 ); % Punto final para x2 pathc = collocate ( x3 >= 0.5 ); % Restricción de ruta para x3 intc = { integrate ( x2 ) == 1 }; % Restricción integral para x2 cbnd = final ( x3 >= 0.5 ); % Restricción de evento final para x3 cbnd = initial ( x1 <= 2.0 ); % Restricción de evento inicial x1Ejemplo de control óptimo monofásico
Oscilador de Van der Pol [ 3 ]
Minimizar:
Sujeto a:
Para resolver el problema con PROPT se puede utilizar el siguiente código (con 60 puntos de colocación):
toms t p = tomPhase ( 'p' , t , 0 , 5 , 60 ); setPhase ( p );tomStates x1 x2 x3 tomControls u% Suposición inicial x0 = { icollocate ({ x1 == 0 ; x2 == 1 ; x3 == 0 }) colocar ( u == - 0.01 )};% Restricciones de caja cbox = { - 10 <= icollocate ( x1 ) <= 10 - 10 <= icollocate ( x2 ) <= 10 - 10 <= icollocate ( x3 ) <= 10 - 0.3 <= collocate ( u ) <= 1 };% Restricciones de contorno cbnd = inicial ({ x1 == 0 ; x2 == 1 ; x3 == 0 });% EDO y restricciones de ruta ceq = collocate ({ dot ( x1 ) == ( 1 - x2 .^ 2 ) .* x1 - x2 + u dot ( x2 ) == x1 ; dot ( x3 ) == x1 .^ 2 + x2 .^ 2 + u .^ 2 });% Objetivo objetivo = final ( x3 );% Resuelve el problema opciones = struct ; opciones . nombre = 'Van Der Pol' ; solución = ezsolve ( objetivo , { cbox , cbnd , ceq }, x0 , opciones );Ejemplo de control óptimo multifase
Cohete unidimensional [ 4 ] con tiempo final libre y desplazamiento de fase indeterminado.
Minimizar:
Sujeto a:
El problema se resuelve con PROPT creando dos fases y conectándolas:
toms t toms tCut tp2 p1 = tomPhase ( 'p1' , t , 0 , tCut , 20 ); p2 = tomPhase ( 'p2' , t , tCut , tp2 , 20 );tf = tCut + tp2 ;x1p1 = tomState ( p1 , 'x1p1' ); x2p1 = tomState ( p1 , 'x2p1' ); x1p2 = tomState ( p2 , 'x1p2' ); x2p2 = tomState ( p2 , 'x2p2' );% Estimación inicial x0 = { tCut == 10 tf == 15 icollocate ( p1 ,{ x1p1 == 50 * tCut / 10 ; x2p1 == 0 ;}) icollocate ( p2 ,{ x1p2 == 50 + 50 * t / 100 ; x2p2 == 0 ;})};% Restricciones de caja cbox = { 1 <= tCut <= tf - 0.00001 tf <= 100 0 <= icollocate ( p1 , x1p1 ) 0 <= icollocate ( p1 , x2p1 ) 0 <= icollocate ( p2 , x1p2 ) 0 <= icollocate ( p2 , x2p2 )};% Restricciones de límite cbnd = { inicial ( p1 ,{ x1p1 == 0 ; x2p1 == 0 ;}) final ( p2 , x1p2 == 100 )};% EDO y restricciones de ruta a = 2 ; g = 1 ; ceq = { collocate ( p1 ,{ dot ( p1 , x1p1 ) == x2p1 dot ( p1 , x2p1 ) == a - g }) collocate ( p2 ,{ dot ( p2 , x1p2 ) == x2p2 dot ( p2 , x2p2 ) == - g })};% Objetivo objetivo = tCut ;% Fase de enlace enlace = { final ( p1 , x1p1 ) == initial ( p2 , x1p2 ) final ( p1 , x2p1 ) == initial ( p2 , x2p2 )};%% Resuelve el problema opciones = struct ; opciones . nombre = 'One Dim Rocket' ; constr = { cbox , cbnd , ceq , link }; solución = ezsolve ( objetivo , constr , x0 , opciones );Ejemplo de estimación de parámetros
Problema de estimación de parámetros [ 5 ]
Minimizar:
Sujeto a:
En el código que se muestra a continuación, el problema se resuelve con una cuadrícula fina (10 puntos de colocación). Posteriormente, esta solución se ajusta con 40 puntos de colocación:
toms t p1 p2 x1meas = [ 0.264 ; 0.594 ; 0.801 ; 0.959 ]; tmeas = [ 1 ; 2 ; 3 ; 5 ];% Restricciones de la caja cbox = { - 1.5 <= p1 <= 1.5 - 1.5 <= p2 <= 1.5 };%% Resuelve el problema, usando un número sucesivamente mayor de puntos de colocación para n =[ 10 40 ] p = tomPhase ( 'p' , t , 0 , 6 , n ); setPhase ( p ); tomStates x1 x2% Estimación inicial si n == 10 x0 = { p1 == 0 ; p2 == 0 }; de lo contrario x0 = { p1 == p1opt ; p2 == p2opt icollocate ({ x1 == x1opt ; x2 == x2opt })}; fin% Restricciones de contorno cbnd = inicial ({ x1 == p1 ; x2 == p2 });% EDO y restricciones de ruta x1err = suma (( atPoints ( tmeas , x1 ) - x1meas ) .^ 2 ); ceq = colocar ({ punto ( x1 ) == x2 ; punto ( x2 ) == 1 - 2 * x2 - x1 });% Objetivo objetivo = x1err ;%% Resuelve el problema opciones = struct ; opciones . nombre = 'Estimación de parámetros' ; opciones . solucionador = 'snopt' ; solución = ezsolve ( objetivo , { cbox , cbnd , ceq }, x0 , opciones );% Óptimo x, p para el punto de partida x1opt = subs ( x1 , solution ); x2opt = subs ( x2 , solution ); p1opt = subs ( p1 , solution ); p2opt = subs ( p2 , solution ); finProblemas de control óptimo admitidos
- Control de trayectoria aerodinámica [ 6 ]
- Control de acción rápida [ 7 ]
- Ingeniería química [ 8 ]
- Sistemas dinámicos [ 9 ]
- control óptimo general
- Control lineal a gran escala [ 10 ]
- Control de sistemas multifásicos [ 11 ]
- Diseño de ingeniería mecánica [ 12 ]
- Control no diferenciable [ 13 ]
- Estimación de parámetros para sistemas dinámicos [ 14 ]
- Control singular
Referencias
- ↑ Rutquist, Per; MM Edvall (junio de 2008). PROPT - Software de control óptimo para Matlab (PDF) . Pullman, WA: Tomlab Optimization Inc.
- ↑ Banga, JR; Balsa-Canto, E.; Moles, CG; Alonso, AA (2003). "Optimización dinámica de bioprocesos: estrategias numéricas eficientes y robustas". Journal of Biotechnology.
{{cite journal}}: Para citar una revista se requiere|journal=( ayuda ) - ↑ "Oscilador de Van Der Pol - Solución en Matlab", Página principal de PROPT , junio de 2008.
- ↑ "Lanzamiento de cohete unidimensional (2 tiempos libres)", página principal de PROPT , junio de 2008.
- ↑ "Estimación dinámica de parámetros en Matlab con PROPT", Página principal de PROPT , junio de 2008.
- ↑ Betts, J. (2007). "SOCS Release 6.5.0". THE BOEING COMPANY.
{{cite journal}}: Para citar una revista se requiere|journal=( ayuda ) - ↑ Liang, J.; Meng, M.; Chen, Y.; Fullmer, R. (2003). "Resolución de problemas complejos de control óptimo mediante un servidor de optimización habilitado para red (NEOS)". Escuela de Ingeniería, Universidad Estatal de Utah, EE. UU., Universidad de Hong Kong, China.
{{cite journal}}: Para citar una revista se requiere|journal=( ayuda ) - ↑ Carrasco, EF; Banga, JR (septiembre de 1998). "UN MÉTODO HÍBRIDO PARA EL CONTROL ÓPTIMO DE PROCESOS QUÍMICOS". Universidad de Gales, Swansea, Reino Unido: Conferencia Internacional UKACC sobre CONTROL 98.
{{cite journal}}: Para citar una revista se requiere|journal=( ayuda ) - ↑ Vassiliadis, VS; Banga, JR; Balsa-Canto, E. (1999). "Sensibilidades de segundo orden de sistemas dinámicos generales con aplicación a problemas de control óptimo". Chemical Engineering Science . 54 (17): 3851– 3860. Bibcode : 1999ChEnS..54.3851V . doi : 10.1016/S0009-2509(98)00432-1 .
- ↑ Luus, R. (2002). Programación dinámica iterativa . Chapman and Hall/CRC.
- ↑ Fabien, BC (1998). "Una aplicación Java para la solución de problemas de control óptimo". Stevens Way, Box 352600 Seattle, WA 98195, EE. UU.: Ingeniería Mecánica, Universidad de Washington.
{{cite journal}}: La cita de la revista requiere|journal=( ayuda ) CS1 mantenimiento: ubicación ( enlace ) - ↑ Jennings, LS; Fisher, ME (2002). "MISER3: Manual de usuario de la caja de herramientas de control óptimo, Matlab Beta Versión 2.0". Nedlands, WA 6907, Australia: Departamento de Matemáticas, Universidad de Australia Occidental.
{{cite journal}}: La cita de la revista requiere|journal=( ayuda ) CS1 mantenimiento: ubicación ( enlace ) - ↑ Banga, JR; Seider, WD (1996). Floudas, CA; Pardalos, PM (eds.). Optimización global de procesos químicos mediante algoritmos estocásticos: estado del arte en optimización global: métodos computacionales y aplicaciones . Dordrecht, Países Bajos: Kluwer Academic Publishers. pp. 563–583 . ISBN 0-7923-3838-3.
- ↑ Dolan, ED; More, JJ (enero de 2001). "Evaluación comparativa de software de optimización con COPS". 9700 South Cass Avenue, Argonne, Illinois 60439: LABORATORIO NACIONAL DE ARGONNE.
{{cite journal}}: La cita de la revista requiere|journal=( ayuda ) CS1 mantenimiento: ubicación ( enlace )
Enlaces externos
- TOMLAB - Desarrollador y distribuidor del software.
- TomSym - Motor de transformación de código fuente utilizado en software.
- PROPT - Página principal de PROPT.
- SNOPT : solucionador predeterminado utilizado en PROPT.
- Software numérico
- Software de optimización matemática
- Control óptimo