PROPT
In-game article clicks load inline without leaving the challenge.
The PROPT MATLAB Optimal Control Software is a new generation platform for solving applied optimal control (with ODE or DAE formulation) and parameters estimation problems.
The platform was developed by MATLAB Programming Contest Winner, in 2008. The most recent version has support for binary and integer variables as well as an automated scaling module.
Description
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:
- Computation of the constant matrices used for the differentiation and integration of the polynomials used to approximate the solution to the Trajectory optimization problem.
- Source transformation to turn user-supplied expressions into MATLAB code for the cost function f {\displaystyle f} and constraint function c {\displaystyle c} that are passed to a Nonlinear programming solver in TOMLAB. The source transformation package TomSym automatically generates first and second order derivatives.
- Functionality for plotting and computing a variety of information for the solution to the problem.
- Automatic detection of the following: Linear and quadratic objective. Simple bounds, linear and nonlinear constraints. Non-optimized expressions.
- Integrated support for non-smooth (hybrid) optimal control problems.
- Module for automatic scaling of difficult space related problem.
- Support for binary and integer variables, controls or states.
Modeling
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
States and controls only differ in the sense that states need be continuous between phases.
Boundary, path, event and integral constraints
A variety of boundary, path, event and integral constraints are shown below:
Single-phase optimal control example
Van der Pol Oscillator
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):
Multi-phase optimal control example
One-dimensional rocket with free end time and undetermined phase shift
Minimize:
J x , t = t C u t {\displaystyle {\begin{matrix}J_{x,t}&=&tCut\\\end{matrix}}}
Subject to:
{ 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 example
Parameter estimation problem
Minimize:
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}}}
Subject to:
{ 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:
Optimal control problems supported
- Aerodynamic trajectory control
- Bang-bang control
- Chemical engineering
- Dynamic systems
- General optimal control
- Large-scale linear control
- Multi-phase system control
- Mechanical engineering design
- Nondifferentiable control
- Parameters estimation for dynamic systems
- Singular control
External links
- - Developer and distributor of the software.
- - Source transformation engine used in software.
- - Home page for PROPT.
- - Default solver used in PROPT.