PROPT
From Wikipedia, the free encyclopedia
PROPT | |
---|---|
Developed by | Tomlab Optimization Inc. |
Latest release | 6.1 / June 11, 2008 |
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:
- Computation of the constant matrices used for the differentiation and integration of the polynomials used to approximate the solution to the trajectory optimization problem.
- Text manipulation to turn user-supplied expressions into MATLAB code for the cost function f and constraint function c that are passed to a nonlinear programming solver in TOMLAB, ensuring that the code is compatible with MAD (TOMLAB package for automatic differentiation to achieve floating point precision for derivatives).
- 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:
Subject to:
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
- ^ 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..
- ^ 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.
- ^ Betts, J. (2007). "SOCS Release 6.5.0". THE BOEING COMPANY.
- ^ 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.
- ^ 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.
- ^ 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.
- ^ 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.
- ^ 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.
- ^ 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
- ^ Dolan, E. D.; More, J. J. (January 2001). "Benchmarking Optimization Software with COPS". 9700 South Cass Avenue, Argonne, Illinois 60439: ARGONNE NATIONAL LABORATORY.