PROPT is a combined modeling, compilation and solver engine, built upon the TomSym modeling class, for generation of highly complex optimal control problems. PROPT uses a pseudospectral Collocation method (with Gauss or Chebyshev points) for solving optimal control problems. This means that the solution takes the form of a Polynomial, and this polynomial satisfies the DAE and the path constraints at the collocation points.
In general PROPT has the following main functions:
The PROPT system uses the TomSym symbolic source transformation engine to model optimal control problems. It is possible to define independent variables, dependent functions, scalars and constant parameters:
States and controls only differ in the sense that states need be continuous between phases.
A variety of boundary, path, event and integral constraints are shown below:
Van der Pol Oscillator 3
Minimize:
J x , t = x 3 ( t f ) {\displaystyle {\begin{matrix}J_{x,t}&=&x_{3}(t_{f})\\\end{matrix}}}
Subject to:
{ d x 1 d t = ( 1 − x 2 2 ) ∗ x 1 − x 2 + u d x 2 d t = x 1 d x 3 d t = x 1 2 + x 2 2 + u 2 x ( t 0 ) = [ 0 1 0 ] t f = 5 − 0.3 ≤ u ≤ 1.0 {\displaystyle {\begin{cases}{\frac {dx_{1}}{dt}}=(1-x_{2}^{2})*x_{1}-x_{2}+u\\{\frac {dx_{2}}{dt}}=x_{1}\\{\frac {dx_{3}}{dt}}=x_{1}^{2}+x_{2}^{2}+u^{2}\\x(t_{0})=[0\ 1\ 0]\\t_{f}=5\\-0.3\leq u\leq 1.0\\\end{cases}}}
To solve the problem with PROPT the following code can be used (with 60 collocation points):
One-dimensional rocket 4 with free end time and undetermined phase shift
J x , t = t C u t {\displaystyle {\begin{matrix}J_{x,t}&=&tCut\\\end{matrix}}}
{ d x 1 d t = x 2 d x 2 d t = a − g ( 0 < t <= t C u t ) d x 2 d t = − g ( t C u t < t < t f ) x ( t 0 ) = [ 0 0 ] g = 1 a = 2 x 1 ( t f ) = 100 {\displaystyle {\begin{cases}{\frac {dx_{1}}{dt}}=x_{2}\\{\frac {dx_{2}}{dt}}=a-g\ (0<t<=tCut)\\{\frac {dx_{2}}{dt}}=-g\ (tCut<t<t_{f})\\x(t_{0})=[0\ 0]\\g=1\\a=2\\x_{1}(t_{f})=100\\\end{cases}}}
The problem is solved with PROPT by creating two phases and connecting them:
Parameter estimation problem 5
J p = ∑ i = 1 , 2 , 3 , 5 ( x 1 ( t i ) − x 1 m ( t i ) ) 2 {\displaystyle {\begin{matrix}J_{p}&=&\sum _{i=1,2,3,5}{(x_{1}(t_{i})-x_{1}^{m}(t_{i}))^{2}}\\\end{matrix}}}
{ d x 1 d t = x 2 d x 2 d t = 1 − 2 ∗ x 2 − x 1 x 0 = [ p 1 p 2 ] t i = [ 1 2 3 5 ] x 1 m ( t i ) = [ 0.264 0.594 0.801 0.959 ] | p 1 : 2 | <= 1.5 {\displaystyle {\begin{cases}{\frac {dx_{1}}{dt}}=x_{2}\\{\frac {dx_{2}}{dt}}=1-2*x_{2}-x_{1}\\x_{0}=[p_{1}\ p_{2}]\\t_{i}=[1\ 2\ 3\ 5]\\x_{1}^{m}(t_{i})=[0.264\ 0.594\ 0.801\ 0.959]\\|p_{1:2}|<=1.5\\\end{cases}}}
In the code below the problem is solved with a fine grid (10 collocation points). This solution is subsequently fine-tuned using 40 collocation points:
Rutquist, Per; M. M. Edvall (June 2008). PROPT - Matlab Optimal Control Software (PDF). Pullman, WA: Tomlab Optimization Inc. http://tomopt.com/docs/TOMLAB_PROPT.pdf ↩
Banga, J. R.; Balsa-Canto, E.; Moles, C. G.; Alonso, A. A. (2003). "Dynamic optimization of bioprocesses: efficient and robust numerical strategies". Journal of Biotechnology. {{cite journal}}: Cite journal requires |journal= (help) /wiki/Template:Cite_journal ↩
"Van Der Pol Oscillator - Matlab Solution", PROPT Home Page June, 2008. http://tomdyn.com/examples/vanDerPol.html ↩
"One Dimensional Rocket Launch (2 Free Time)", PROPT Home Page June, 2008. http://tomdyn.com/examples/onedimRocket.html ↩
"Matlab Dynamic Parameter Estimation with PROPT", PROPT Home Page June, 2008. http://tomdyn.com/examples/parameterEstimation.html ↩
Betts, J. (2007). "SOCS Release 6.5.0". THE BOEING COMPANY. {{cite journal}}: Cite journal requires |journal= (help) /wiki/Template:Cite_journal ↩
Liang, J.; Meng, M.; Chen, Y.; Fullmer, R. (2003). "Solving Tough Optimal Control Problems by Network Enabled Optimization Server (NEOS)". School of Engineering, Utah State University USA, Chinene University of Hong Kong China. {{cite journal}}: Cite journal requires |journal= (help) /wiki/Template:Cite_journal ↩
Carrasco, E. F.; Banga, J. R. (September 1998). "A HYBRID METHOD FOR THE OPTIMAL CONTROL OF CHEMICAL PROCESSES". University of Wales, Swansea, UK: UKACC International Conference on CONTROL 98. {{cite journal}}: Cite journal requires |journal= (help) /wiki/Template:Cite_journal ↩
Vassiliadis, V. S.; Banga, J. R.; Balsa-Canto, E. (1999). "Second-order sensitivities of general dynamic systems with application to optimal control problems". Chemical Engineering Science. 54 (17): 3851–3860. Bibcode:1999ChEnS..54.3851V. doi:10.1016/S0009-2509(98)00432-1. /wiki/Bibcode_(identifier) ↩
Luus, R. (2002). Iterative dynamic programming. Chapman and Hall/CRC. ↩
Fabien, B. C. (1998). "A Java Application for the Solution of Optimal Control Problems". Stevens Way, Box 352600 Seattle, WA 98195, USA: Mechanical Engineering, University of Washington. {{cite journal}}: Cite journal requires |journal= (help)CS1 maint: location (link) /wiki/Template:Cite_journal ↩
Jennings, L. S.; Fisher, M. E. (2002). "MISER3: Optimal Control Toolbox User Manual, Matlab Beta Version 2.0". Nedlands, WA 6907, Australia: Department of Mathematics, The University of Western Australia. {{cite journal}}: Cite journal requires |journal= (help)CS1 maint: location (link) /wiki/Template:Cite_journal ↩
Banga, J. R.; Seider, W. D. (1996). Floudas, C. A.; Pardalos, P. M. (eds.). Global Optimization of Chemical Processes using Stochastic Algorithms - State of the Art in Global Optimization: Computational Methods and Applications. Dordrecht, The Netherlands: Kluwer Academic Publishers. pp. 563–583. ISBN 0-7923-3838-3. 0-7923-3838-3 ↩
Dolan, E. D.; More, J. J. (January 2001). "Benchmarking Optimization Software with COPS". 9700 South Cass Avenue, Argonne, Illinois 60439: ARGONNE NATIONAL LABORATORY. {{cite journal}}: Cite journal requires |journal= (help)CS1 maint: location (link) /wiki/Template:Cite_journal ↩