The PROPT
MATLAB
MATLAB (an abbreviation of "MATrix LABoratory") is a proprietary multi-paradigm programming language and numeric computing environment developed by MathWorks. MATLAB allows matrix manipulations, plotting of functions and data, implementa ...
Optimal Control Software is a new generation platform for solving applied optimal control (with
ODE
An ode (from grc, ᾠδή, ōdḗ) is a type of lyric poetry. Odes are elaborately structured poems praising or glorifying an event or individual, describing nature intellectually as well as emotionally. A classic ode is structured in three majo ...
or
DAE formulation) and
parameters estimation problems.
The platform was developed by MATLAB Programming Contest Winner
Per Rutquistin 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
A model is an informative representation of an object, person or system. The term originally denoted the plans of a building in late 16th-century English, and derived via French and Italian ultimately from Latin ''modulus'', a measure.
Models c ...
,
compilation
Compilation may refer to:
*In computer programming, the translation of source code into object code by a compiler
**Compilation error
**Compilation unit
*Product bundling, a marketing strategy used to sell multiple products
*Compilation thesis
M ...
and solver engine, built upon the
TomSym modeling class, for generation of highly complex optimal control problems. PROPT uses a
pseudospectral Collocation method In mathematics, a collocation method is a method for the numerical solution of ordinary differential equations, partial differential equations and integral equations. The idea is to choose a finite-dimensional space of candidate solutions (usually ...
(with Gauss or Chebyshev points) for solving optimal control problems. This means that the solution takes the form of a
Polynomial
In mathematics, a polynomial is an expression consisting of indeterminates (also called variables) and coefficients, that involves only the operations of addition, subtraction, multiplication, and positive-integer powers of variables. An example ...
, 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
Matrix most commonly refers to:
* ''The Matrix'' (franchise), an American media franchise
** ''The Matrix'', a 1999 science-fiction action film
** "The Matrix", a fictional setting, a virtual reality environment, within ''The Matrix'' (franchis ...
used for the
differentiation and
integration of the polynomials used to approximate the solution to the
Trajectory optimization Trajectory optimization is the process of designing a trajectory that minimizes (or maximizes) some measure of performance while satisfying a set of constraints. Generally speaking, trajectory optimization is a technique for computing an open-loop ...
problem.
* Source transformation to turn user-supplied
expressions into MATLAB code for the cost function
and constraint function
that are passed to a
Nonlinear programming
In mathematics, nonlinear programming (NLP) is the process of solving an optimization problem where some of the constraints or the objective function are nonlinear. An optimization problem is one of calculation of the extrema (maxima, minima or s ...
solver in
TOMLAB
Tomlab is a German record label based in Köln. It has released works by bands such as The Books, Casiotone for the Painfully Alone, Deerhoof, Thee Oh Sees, Les Georges Leningrad, and acts associated with Blocks Recording Club, such as Fi ...
. 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
Independent or Independents may refer to:
Arts, entertainment, and media Artist groups
* Independents (artist group), a group of modernist painters based in the New Hope, Pennsylvania, area of the United States during the early 1930s
* Independ ...
variables, dependent functions, scalars and constant parameters:
toms tf
toms t
p = tomPhase('p', t, 0, tf, 30);
x0 = ;
cbox = ;
toms z1
cbox = ;
x0 = ;
ki0 = e3; 1e7; 10; 1e-3
States and controls
States and controls only differ in the sense that states need be continuous between phases.
tomStates x1
x0 = ;
tomControls u1
cbox = ;
x0 = ;
Boundary, path, event and integral constraints
A variety of boundary, path, event and integral constraints are shown below:
cbnd = initial(x1 1); % Starting point for x1
cbnd = final(x1 1); % End point for x1
cbnd = final(x2 2); % End point for x2
pathc = collocate(x3 >= 0.5); % Path constraint for x3
intc = ; % Integral constraint for x2
cbnd = final(x3 >= 0.5); % Final event constraint for x3
cbnd = initial(x1 <= 2.0); % Initial event constraint x1
Single-phase optimal control example
Van der Pol Oscillator
Minimize:
Subject to:
To solve the problem with PROPT the following code can be used (with 60 collocation points):
toms t
p = tomPhase('p', t, 0, 5, 60);
setPhase(p);
tomStates x1 x2 x3
tomControls u
% Initial guess
x0 = ;
% Box constraints
cbox = ;
% Boundary constraints
cbnd = initial();
% ODEs and path constraints
ceq = collocate();
% Objective
objective = final(x3);
% Solve the problem
options = struct;
options.name = 'Van Der Pol';
solution = ezsolve(objective, , x0, options);
Multi-phase optimal control example
One-dimensional rocket with free end time and undetermined phase shift
Minimize:
Subject to:
The problem is solved with PROPT by creating two phases and connecting them:
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');
% Initial guess
x0 = ;
% Box constraints
cbox = ;
% Boundary constraints
cbnd = ;
% ODEs and path constraints
a = 2; g = 1;
ceq = ;
% Objective
objective = tCut;
% Link phase
link = ;
%% Solve the problem
options = struct;
options.name = 'One Dim Rocket';
constr = ;
solution = ezsolve(objective, constr, x0, options);
Parameter estimation example
Parameter estimation problem
Minimize:
Subject to:
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:
toms t p1 p2
x1meas = .264;0.594;0.801;0.959
tmeas = ;2;3;5
% Box constraints
cbox = ;
%% Solve the problem, using a successively larger number collocation points
for n= 0 40 p = tomPhase('p', t, 0, 6, n);
setPhase(p);
tomStates x1 x2
% Initial guess
if n 10
x0 = ;
else
x0 = ;
end
% Boundary constraints
cbnd = initial();
% ODEs and path constraints
x1err = sum((atPoints(tmeas,x1) - x1meas).^2);
ceq = collocate();
% Objective
objective = x1err;
%% Solve the problem
options = struct;
options.name = 'Parameter Estimation';
options.solver = 'snopt';
solution = ezsolve(objective, , x0, options);
% Optimal x, p for starting point
x1opt = subs(x1, solution);
x2opt = subs(x2, solution);
p1opt = subs(p1, solution);
p2opt = subs(p2, solution);
end
Optimal control problems supported
* Aerodynamic trajectory control
*
Bang-bang control
*
Chemical engineering
Chemical engineering is an engineering field which deals with the study of operation and design of chemical plants as well as methods of improving production. Chemical engineers develop economical commercial processes to convert raw materials int ...
*
Dynamic systems
* General optimal control
* Large-scale linear control
* Multi-phase system control
*
Mechanical engineering
Mechanical engineering is the study of physical machines that may involve force and movement. It is an engineering branch that combines engineering physics and mathematics principles with materials science, to design, analyze, manufacture, an ...
design
* Nondifferentiable control
* Parameters estimation for dynamic systems
*
Singular control
References
{{reflist
External links
TOMLAB- Developer and distributor of the software.
TomSym- Source transformation engine used in software.
PROPT- Home page for PROPT.
SNOPT- Default solver used in PROPT.
Numerical software
Mathematical optimization software
Optimal control