PROPT


The PROPT MATLAB Optimal Control Software is a new generation platform for solving applied optimal control 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 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:

toms tf
toms t
p = tomPhase;
x0 = ;
cbox = ;
toms z1
cbox = ;
x0 = ;
ki0 = ;

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; % Starting point for x1
cbnd = final; % End point for x1
cbnd = final; % End point for x2
pathc = collocate; % Path constraint for x3
intc = ; % Integral constraint for x2
cbnd = final; % Final event constraint for x3
cbnd = initial; % 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 :

toms t
p = tomPhase;
setPhase;
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;
% Solve the problem
options = struct;
options.name = 'Van Der Pol';
solution = ezsolve;

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;
p2 = tomPhase;
tf = tCut+tp2;
x1p1 = tomState;
x2p1 = tomState;
x1p2 = tomState;
x2p2 = tomState;
% 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;

Parameter estimation example

Parameter estimation problem
Minimize:
Subject to:
In the code below the problem is solved with a fine grid. This solution is subsequently fine-tuned using 40 collocation points:

toms t p1 p2
x1meas = ;
tmeas = ;
% Box constraints
cbox = ;
%% Solve the problem, using a successively larger number collocation points
for n=
p = tomPhase;
setPhase;
tomStates x1 x2
% Initial guess
if n 10
x0 = ;
else
x0 = ;
end
% Boundary constraints
cbnd = initial;
% ODEs and path constraints
x1err = sum;
ceq = collocate;
% Objective
objective = x1err;
%% Solve the problem
options = struct;
options.name = 'Parameter Estimation';
options.solver = 'snopt';
solution = ezsolve;
% Optimal x, p for starting point
x1opt = subs;
x2opt = subs;
p1opt = subs;
p2opt = subs;
end

Optimal control problems supported