PROPT

From Wikipedia, the free encyclopedia

PROPT
Developed by Tomlab Optimization Inc.
Latest release 6.1 / June 11, 2008 (2008-06-11); 3 days ago
OS TOMLAB® - OS Support
Genre Technical computing
License Proprietary
Website PROPT product page

The PROPT[1] MATLAB Optimal Control Software is a new generation platform for solving applied optimal control (with ODE or DAE formulation) and parameters estimation problems.

The platfrom was developed by MATLAB Programming Contest Winner, Per Rutquist in 2008.

Contents

[edit] Description

PROPT is a combined modeling, compilation and solver engine for generation of highly complex optimal control problems. PROPT uses a pseudospectral collocation method 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 five main functions:

  • Functionality for plotting and computing a variety of information for the solution to the problem.
  • Partial automatic linearization for the following scenarios:
    • Minimal (or maximal) time problem
    • Problems with a linear objective (pure feasibility problems are also handled)
    • Linear systems with a fixed end time
  • Integrated support for non-smooth[2] (hybrid) optimal control problems.

[edit] Modeling

The PROPT system uses equations and expressions to model optimal control problems. It is possible to define independent variables, dependent functions, scalars and constant parameters:

t = proptIndependent('t', [0 0 0], [10 20 40]);
problem.variables.z1 = proptScalar(0, 500 , 10);
problem.parameters.ki0 = [1e3; 1e7; 10; 1e-3];

[edit] States and Controls

States and controls only differ in the sense that controls need be continuous between phases.

x.x1 = proptState(-inf , inf , [0; 1]);
x.u1 = proptControl(-2 , 1 , 0);

[edit] Boundary, path, event and integral constraints

A variety of boundary, path, event and integral constraints are shown below:

expr.x1_i = '1';                    % Starting point for x1
expr.x1_f = '1';                    % End point for x1
expr.x2_f = '2';                    % End point for x2
eq.x3min    = 'x3 > 0.5 ';          % Path constraint for x3
eq.integral = 'quad_t *x2 - 1 = 0'; % Integral constraint for x2
eq.final3   = 'x3_f > 0.5 ';        % Final event constraint for x3
eq.init1    = 'x1_i < 2.0 ';        % Initial event constraint x1

[edit] Example

Van der Pol Oscillator

Minimize:


\begin{matrix}
  J_{x,t} & = & x_3(t_f) \\
\end{matrix}

Subject to:


\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 \le u \le 1.0 \\
\end{cases}

To solve the problem with PROPT the following code can be used:

tF = 5;
t  = proptIndependent('t', 0, tF);
 
clear x eq expr
x.x1 = proptState(-10, 10, 0);
x.x2 = proptState(-10, 10, 1);
x.x3 = proptState(-10, 10, 0);
x.u  = proptControl(-0.3, 1, -0.01);
 
expr.x1_i = '0';
expr.x2_i = '1';
expr.x3_i = '0';
 
eq.eq1    = 'x1_t = ((1-x2.^2).*x1-x2+u)';
eq.eq2    = 'x2_t = (x1)';
eq.eq3    = 'x3_t = (x1.^2+x2.^2+u.^2)';
 
problem = proptPhase(t, x, [], eq, expr, 60);
problem.cost = 'x3_f';
problem.name = 'Van Der Pol';
problem.language = 'Matlab, vectorized';
 
solution = proptSolve(problem);

[edit] Optimal Control Problems Supported

  • Aerodynamic trajectory control[3]
  • Bang bang control[4]
  • Chemical engineering[5]
  • Dynamic systems[6]
  • General optimal control
  • Large-scale linear control[7]
  • Multi-phase system control[8]
  • Mechanical engineering design[9]
  • Nondifferentiable control[10]
  • Parameters estimation for dynamic systems[11]
  • Singular control

[edit] References

  1. ^ Rutquist, Per; M. M. Edvall (June 2008). PROPT - Matlab Optimal Control Software. 1260 SE Bishop Blvd Ste E, Pullman, WA 99163, USA: Tomlab Optimization Inc.. 
  2. ^ Banga, J. R.; Balsa-Canto, E. and Moles, C. G. and Alonso, A. A. (2003). "Dynamic optimization of bioprocesses: efficient and robust numerical strategies". Journal of Biotechnology. 
  3. ^ Betts, J. (2007). "SOCS Release 6.5.0". THE BOEING COMPANY. 
  4. ^ Liang, J.; Meng, M. and Chen, Y. and 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. 
  5. ^ 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. 
  6. ^ Vassiliadis, V. S.; Banga, J. R. and Balsa-Canto, E. (1999). "Second-order sensitivities of general dynamic systems with application to optimal control problems" 54: 3851-3860. Chemical Engineering Science. 
  7. ^ Luus, R. (2002). Iterative dynamic programming. Chapman and Hall/CRC. 
  8. ^ 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. 
  9. ^ 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. 
  10. ^ Banga, J. R. (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 
  11. ^ Dolan, E. D.; More, J. J. (January 2001). "Benchmarking Optimization Software with COPS". 9700 South Cass Avenue, Argonne, Illinois 60439: ARGONNE NATIONAL LABORATORY. 

[edit] External links

  • TOMLAB - Developers and distributers of the software.
  • MAD - Automatic differentiation package used in software.
  • PROPT - Home page for PROPT.
  • SNOPT - Default solver used in PROPT.