El software de control óptimo PROPT [1] MATLAB es una plataforma de nueva generación para resolver problemas de estimación de parámetros y control óptimo aplicado (con formulación ODE o DAE ) .
Desarrollador (es) | Tomlab Optimization Inc. |
---|---|
Lanzamiento estable | 7.8 / 16 de diciembre de 2011 |
Sistema operativo | TOMLAB - Soporte de SO |
Tipo | Computación técnica |
Licencia | Propiedad |
Sitio web | Página de producto PROPT |
La plataforma fue desarrollada por el ganador del concurso de programación MATLAB, Per Rutquist en 2008. La versión más reciente tiene soporte para variables binarias y enteras, así como un módulo de escalado automatizado.
Descripción
PROPT es un motor combinado de modelado , compilación y solucionador, basado en la clase de modelado TomSym , para la generación de problemas de control óptimo altamente complejos. PROPT utiliza un método de colocación pseudoespectral (con puntos de Gauss o Chebyshev) para resolver problemas de control óptimos. Esto significa que la solución toma la forma de un polinomio , y este polinomio satisface el DAE y las restricciones de ruta 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 utilizados para aproximar la solución al problema de optimización de trayectoria .
- Transformación de origen para convertir expresiones proporcionadas por el usuario en código MATLAB para la función de costo y función de restricción que se pasan a un solucionador de programación no lineal en TOMLAB . El paquete de transformación de origen TomSym genera automáticamente derivadas de primer y segundo orden.
- Funcionalidad para graficar y calcular una variedad de 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 suave [2] (híbrido).
- Módulo para escalado automático de problemas relacionados con el espacio difícil.
- Soporte para estados, controles o variables binarias y enteras.
Modelado
El sistema PROPT utiliza el motor de transformación de fuente simbólica de TomSym para modelar problemas de control óptimos. 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 difieren en el sentido de que los estados deben ser continuos entre fases.
tomStates x1 x0 = { icollocate ({ x1 == 0 })}; tomControls u1 cbox = { - 2 <= collocate ( u1 ) <= 1 }; x0 = { x0 ; collocate ( u1 == - 0.01 )};
Límites, rutas, eventos y restricciones integrales
A continuación se muestran una variedad de restricciones de límites, rutas, eventos e integrales:
cbnd = inicial ( x1 == 1 ); % Punto de inicio para x1 cbnd = final ( x1 == 1 ); % Punto final para x1 cbnd = final ( x2 == 2 ); % Punto final para x2 rutac = colocar ( x3 > = 0.5 ); % Restricción de ruta para x3 intc = { integrar ( x2 ) == 1 }; % Restricción integral para x2 cbnd = final ( x3 > = 0,5 ); % Restricción de evento final para x3 cbnd = inicial ( x1 <= 2.0 ); % Restricción de evento inicial x1
Ejemplo 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 % Estimación inicialx0 = { icollocate ({ x1 == 0 ; x2 == 1 ; x3 == 0 }) collocate ( u == - 0.01 )}; % Restricciones de cajacbox = { - 10 <= icollocate ( x1 ) <= 10 - 10 <= icollocate ( x2 ) <= 10 - 10 <= icollocate ( x3 ) <= 10 - 0.3 <= colocar ( u ) <= 1 }; % Restricciones de límitecbnd = inicial ({ x1 == 0 ; x2 == 1 ; x3 == 0 }); % De EDO y restricciones de rutaceq = collocate ({ punto ( x1 ) == ( 1 - x2 . ^ 2 ) . * x1 - x2 + u punto ( x2 ) == x1 ; punto ( x3 ) == x1 . ^ 2 + x2 . ^ 2 + u . ^ 2 }); % Objetivoobjetivo = final ( x3 ); % Resolver el problemaopciones = estructura ; opciones . nombre = 'Van Der Pol' ; solution = ezsolve ( objetivo , { cbox , cbnd , ceq }, x0 , opciones );
Ejemplo de control óptimo multifásico
Cohete unidimensional [4] con tiempo de finalización libre y cambio 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 inicialx0 = { tCut == 10 tf == 15 icollocate ( p1 , { x1p1 == 50 * tCut / 10 ; x2p1 == 0 ;}) icollocate ( p2 , { x1p2 == 50 + 50 * t / 100 ; x2p2 == 0 ;})}; % Restricciones de cajacbox = { 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ímitecbnd = { inicial ( p1 , { x1p1 == 0 ; x2p1 == 0 ;}) final ( p2 , x1p2 == 100 )}; % De EDO y restricciones de rutaa = 2 ; g = 1 ; ceq = { collocate ( p1 , { punto ( p1 , x1p1 ) == x2p1 punto ( p1 , x2p1 ) == a - g }) collocate ( p2 , { punto ( p2 , x1p2 ) == x2p2 punto ( p2 , x2p2 ) == - g })}; % Objetivoobjetivo = tCut ; % Fase de enlaceenlace = { final ( p1 , x1p1 ) == inicial ( p2 , x1p2 ) final ( p1 , x2p1 ) == inicial ( p2 , x2p2 )}; %% Resolver el problemaopciones = estructura ; opciones . name = 'One Dim Rocket' ; constr = { cbox , cbnd , ceq , link }; solution = 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 siguiente código, el problema se resuelve con una cuadrícula fina (10 puntos de colocación). Esta solución se ajusta posteriormente 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 cajacbox = { - 1,5 <= p1 <= 1,5 - 1,5 <= p2 <= 1,5 }; %% Resuelve el problema utilizando un número de puntos de colocación sucesivamente mayorpara 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 }; demás x0 = { p1 == p1opt ; p2 == p2opt icollocate ({ x1 == x1opt ; x2 == x2opt })}; final % Restricciones de límite cbnd = inicial ({ x1 == p1 ; x2 == p2 }); % De 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 ; %% Resolver el problema opciones = estructura ; opciones . name = 'Estimación de parámetros' ; opciones . solver = 'snopt' ; solution = ezsolve ( objetivo , { cbox , cbnd , ceq }, x0 , opciones ); % Óptimo x, p para el punto de partida x1opt = subs ( x1 , solución ); x2opt = subs ( x2 , solución ); p1opt = subs ( p1 , solución ); p2opt = subs ( p2 , solución ); final
Problemas de control óptimos soportados
- Control de trayectoria aerodinámica [6]
- Control de bang-bang [7]
- Ingeniería química [8]
- Sistemas dinámicos [9]
- Control óptimo general
- Control lineal a gran escala [10]
- Control de sistema multifásico [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 de Matlab (PDF) . 1260 SE Bishop Blvd Ste E, Pullman, WA 99163, EE. UU .: Tomlab Optimization Inc.Mantenimiento de CS1: ubicación ( enlace )
- ^ Banga, JR; Balsa-Canto, E .; Moles, CG; Alonso, AA (2003). "Optimización dinámica de bioprocesos: estrategias numéricas eficientes y robustas". Revista de Biotecnología. Cite journal requiere
|journal=
( ayuda ) - ^ "Oscilador de Van Der Pol - Solución Matlab", Página de inicio de PROPT , junio de 2008.
- ^ "Lanzamiento de cohete unidimensional (2 tiempo libre)", página de inicio de PROPT , junio de 2008.
- ^ "Estimación de parámetros dinámicos de Matlab con PROPT", Página de inicio de PROPT , junio de 2008.
- ^ Betts, J. (2007). "Versión 6.5.0 de SOCS". LA EMPRESA BOEING. Cite journal requiere
|journal=
( ayuda ) - ^ Liang, J .; Meng, M .; Chen, Y .; Fullmer, R. (2003). "Resolver problemas difíciles de control óptimo mediante el servidor de optimización habilitado para la red (NEOS)". Escuela de Ingeniería, Universidad Estatal de Utah, EE. UU., Universidad Chinene de Hong Kong, China. Cite journal 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 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". 54 . Ciencias de la ingeniería química: 3851–3860. Cite journal requiere
|journal=
( ayuda ) - ^ Luus, R. (2002). Programación dinámica iterativa . Chapman y Hall / CRC.
- ^ Fabien, BC (1998). "Una aplicación Java para la solución de problemas de control óptimos". Stevens Way, Box 352600 Seattle, WA 98195, EE. UU .: Ingeniería mecánica, Universidad de Washington. Cite journal requiere
|journal=
( ayuda )Mantenimiento de CS1: ubicación ( enlace ) - ^ Jennings, LS; Fisher, ME (2002). "MISER3: Manual de usuario de Optimal Control Toolbox, Matlab Beta versión 2.0". Nedlands, WA 6907, Australia: Departamento de Matemáticas, Universidad de Australia Occidental. Cite journal requiere
|journal=
( ayuda )Mantenimiento de CS1: ubicación ( enlace ) - ^ Banga, JR; Seider, WD (1996). Floudas, CA; Pardalos, PM (eds.). Optimización global de procesos químicos utilizando algoritmos estocásticos - Estado del arte en optimización global: métodos y aplicaciones computacionales . Dordrecht, Países Bajos: Kluwer Academic Publishers. págs. 563–583. ISBN 0-7923-3838-3.
- ^ Dolan, ED; Más, JJ (enero de 2001). "Software de optimización de benchmarking con COPS". 9700 South Cass Avenue, Argonne, Illinois 60439: LABORATORIO NACIONAL DE ARGONNE. Cite journal requiere
|journal=
( ayuda )Mantenimiento de CS1: ubicación ( enlace )
enlaces externos
- TOMLAB - Desarrollador y distribuidor del software.
- TomSym : motor de transformación de origen utilizado en software.
- PROPT : página de inicio de PROPT.
- SNOPT : solucionador predeterminado utilizado en PROPT.