PROPT

Infobox Software
name = PROPT
developer = [http://tomopt.com/ Tomlab Optimization Inc.]
latest_release_version = 6.1
latest_release_date = release date|2008|06|11
operating_system = [http://tomopt.com/tomlab/about/ TOMLAB® - OS Support]
genre = Technical computing
license = Proprietary
website = [http://tomdyn.com/ PROPT product page]

The PROPT [cite book | title = PROPT - Matlab Optimal Control Software | first = Per | last = Rutquist | coauthors = M. M. Edvall | date = June 2008 | url = http://tomopt.com/docs/TOMLAB_PROPT.pdf | location = 1260 SE Bishop Blvd Ste E, Pullman, WA 99163, USA | publisher = Tomlab Optimization Inc.] 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, [http://www.mathworks.com/contest/golf_1.cgi/winners.html Per Rutquist] in 2008.

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 [http://matlabad.com/ 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 [cite journal | title = Dynamic optimization of bioprocesses: efficient and robust numerical strategies | first = J. R. | last = Banga | coauthors = Balsa-Canto, E. and Moles, C. G. and Alonso, A. A. | date = 2003 | publisher = Journal of Biotechnology] (hybrid) optimal control problems.

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] ;

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);

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 x1expr.x1_f = '1'; % End point for x1expr.x2_f = '2'; % End point for x2eq.x3min = proptEquation('x3 > 0.5'); % Path constraint for x3eq.integral = proptEquation('quad_t *x2 - 1 = 0'); % Integral constraint for x2eq.final3 = proptEquation('x3_f > 0.5'); % Final event constraint for x3eq.init1 = proptEquation('x1_i < 2.0'); % Initial event constraint x1

Single Phase Optimal Control Example

Van der Pol Oscillator [ [http://tomdyn.com/examples/vanDerPol.html "Van Der Pol Oscillator - Matlab Solution", "PROPT Home Page"] June, 2008.]

Minimize:

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

Subject to:

egin{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 (with 60 collocation points):

tF = 5;t = proptIndependent('t', 0, tF);

clear x eq exprx.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 = proptEquation('x1_t = (1-x2.^2).*x1-x2+u');eq.eq2 = proptEquation('x2_t = x1');eq.eq3 = proptEquation('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);

Multi Phase Optimal Control Example

One-dimensional rocket [ [http://tomdyn.com/examples/onedimRocket.html "One Dimensional Rocket Launch (2 Free Time)", "PROPT Home Page"] June, 2008.] with free end time and undetermined phase shift

Minimize:

egin{matrix} J_{x,t} & = & tCut \end{matrix}

Subject to:

egin{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:

tF = 100;tCut = 10;t0 = 0;t1 = proptIndependent('t', 0.1, [tCut-9 tCut tCut+9] );t2 = proptIndependent('t', [tCut-9 tCut tCut+9] , [tCut+9 tCut+9 tF] );

clear x1 x2 eq1 eq2 expr1 expr2x1.x1 = proptState(0, inf, [0 50] );x1.x2 = proptState(0, inf, 0);

x2.x1 = proptState(0, inf, [50 100] );x2.x2 = proptState(0, inf, 0);

expr1.x1_i = '0';expr1.x2_i = '0';expr1.a = '2';expr1.g = '1';

expr2.x1_f = '100';expr2.a = '2';expr2.g = '1';

eq1.eq1 = proptEquation('x1_t = x2');eq2 = eq1;eq1.eq2 = proptEquation('x2_t = a-g');eq2.eq2 = proptEquation('x2_t = -g');

problem = proptProblem;problem.name = 'One Dim Rocket';problem.language = 'Matlab, vectorized';

problem.phases.p1 = proptPhase(t1, x1, [] , eq1, expr1, 20);problem.phases.p2 = proptPhase(t2, x2, [] , eq2, expr2, 20);problem.phases.p2.cost = 't_f_p1';problem = proptAutoLink(problem, 'p1', 'p2');

solution = proptSolve(problem);

Parameter Estimation Example

Parameter Estimation Problem [ [http://tomdyn.com/examples/parameterEstimation.html "Matlab Dynamic Parameter Estimation with PROPT", "PROPT Home Page"] June, 2008.]

Minimize:

egin{matrix} J_{p} & = & sum_{i=1,2,3,5}{(x_1(t_i) - x_1^m(t_i))^2} \end{matrix}

Subject to:

egin{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:

tF = 6;t = proptIndependent('t', 0, tF);

clear x eq expr vbl

x.x1 = proptState;x.x2 = proptState;

expr.x1meas = ' [0.264;0.594;0.801;0.959] ';expr.tmeas = ' [1;2;3;5] ';expr.x1err = 'sum((interp1(t,x1,tmeas) - x1meas).^2)';

eq.eq1 = proptEquation('x1_t = x2');eq.eq2 = proptEquation('x2_t = 1-2*x2-x1');

expr.x1_i = 'p1';expr.x2_i = 'p2';

vbl.p1 = proptScalar(-1.5,1.5,0);vbl.p2 = proptScalar(-1.5,1.5,0);

problem = proptPhase(t, x, vbl, eq, expr, 20);problem.cost = 'x1err';problem.name = 'Parameter Estimation';problem.language = 'Matlab, vectorized';

solution = proptSolveIter(problem, [10;40] );

Optimal Control Problems Supported

* Aerodynamic trajectory control [cite journal | title = SOCS Release 6.5.0 | first = J. | last = Betts | date = 2007 | publisher = THE BOEING COMPANY]
* Bang-bang control [cite journal | title = Solving Tough Optimal Control Problems by Network Enabled Optimization Server (NEOS) | first = J. | last = Liang | coauthors = Meng, M. and Chen, Y. and Fullmer, R. | date = 2003 | publisher = School of Engineering, Utah State University USA, Chinene University of Hong Kong China]
* Chemical engineering [cite journal | title = A HYBRID METHOD FOR THE OPTIMAL CONTROL OF CHEMICAL PROCESSES | first = E. F. | last = Carrasco | coauthors = Banga, J. R. | date = September 1998 | location = University of Wales, Swansea, UK | publisher = UKACC International Conference on CONTROL 98]
* Dynamic systems [cite journal | title = Second-order sensitivities of general dynamic systems with application to optimal control problems | first = V. S. | last = Vassiliadis | coauthors = Banga, J. R. and Balsa-Canto, E. | date = 1999 | publisher = Chemical Engineering Science | volume = 54 | pages = 3851-3860]
* General optimal control
* Large-scale linear control [cite book | title = Iterative dynamic programming | first = R. | last = Luus | date = 2002 | publisher = Chapman and Hall/CRC]
* Multi-phase system control [cite journal | title = A Java Application for the Solution of Optimal Control Problems | first = B. C. | last = Fabien | date = 1998 | location = Stevens Way, Box 352600 Seattle, WA 98195, USA | publisher = Mechanical Engineering, University of Washington]
* Mechanical engineering design [cite journal | title = MISER3: Optimal Control Toolbox User Manual, Matlab Beta Version 2.0 | first = L. S. | last = Jennings | coauthors = Fisher, M. E. | date = 2002 | location = Nedlands, WA 6907, Australia | publisher = Department of Mathematics, The University of Western Australia]
* Nondifferentiable control [citation | title = Global Optimization of Chemical Processes using Stochastic Algorithms - State of the Art in Global Optimization: Computational Methods and Applications | first = J. R. | last = Banga | coauthors = Seider, W. D. | editor-last = Floudas | editor-first = C. A. | editor2-last = Pardalos | editor2-first = P. M.
date = 1996 | location = Dordrecht, The Netherlands | publisher = Kluwer Academic Publishers | isbn = 0-7923-3838-3 | pages = 563-583
]
* Parameters estimation for dynamic systems [cite journal | title = Benchmarking Optimization Software with COPS | first = E. D. | last = Dolan | coauthors = More, J. J. | date = January 2001 | location = 9700 South Cass Avenue, Argonne, Illinois 60439 | publisher = ARGONNE NATIONAL LABORATORY]
* Singular control

References

External links

* [http://tomopt.com/ TOMLAB] - Developer and distributor of the software.
* [http://matlabad.com/ MAD] - Automatic differentiation package used in software.
* [http://tomdyn.com/ PROPT] - Home page for PROPT.
* [http://tomopt.com/tomlab/products/snopt/solvers/SNOPT.php SNOPT] - Default solver used in PROPT.


Wikimedia Foundation. 2010.

Look at other dictionaries:

  • propt — …   Useful english dictionary

  • Optimal control — theory, an extension of the calculus of variations, is a mathematical optimization method for deriving control policies. The method is largely due to the work of Lev Pontryagin and his collaborators in the Soviet Union[1] and Richard Bellman in… …   Wikipedia

  • TOMLAB — Infobox Software name = TOMLAB reg; programming language = MATLAB (FORTRAN, C) developer = Tomlab Optimization Inc. latest release version = 6.1 latest release date = 11 June 2008 size = 23 MB (Windows) operating system = Windows 32/64 bit, Linux …   Wikipedia

  • propti — PROPTÍ, proptesc, vb. IV. 1. tranz. A pune o proptea (sau mai multe) unui gard, unui zid etc.; a sprijini ceva cu o proptea. 2. tranz. şi refl. A (se) rezema de ceva. ♦ refl. A se sprijini de ceva în vederea unui efort. – cf. sl. p o d ŭ p r ĕ t… …   Dicționar Român

  • William Benson — For the noted U.S.N. admiral, see William S. Benson William Benson (1682 2 February 1754) was a talented amateur architect and an ambitious and self serving Whig place holder in the government of George I. In 1718, Benson arranged to displace the …   Wikipedia

  • Moly (herb) — Moly (Greek: μῶλυ) is a magic herb mentioned in book 10 of Homer s Odyssey.[1] In the story, Hermes gave this herb to Odysseus to protect him from Circe s magic when he went to her home to rescue his friends.[2] These friends came together with… …   Wikipedia

  • proptea — PROPTÉA, proptele, s.f. Lemn, stâlp, par, bară, scândură etc. cu care se sprijină un gard, un zid, un pom etc.; proptă. ♢ expr. (pop.) Propteaua gardului = persoană leneşă. ♦ fig. Sprijin, protecţie (nemeritată); p. ext. persoană care dă cuiva un …   Dicționar Român

  • proptă — PRÓPTĂ, propte, s.f. (reg.) 1. Proptea. 2. (În expr.) A se pune proptă sau a sta în proptă cuiva = a se opune, a se împotrivi. – Din propti (derivat regresiv). Trimis de ana zecheru, 13.09.2007. Sursa: DEX 98  PRÓPTĂ s. v. pop, proptea,… …   Dicționar Român

  • БРАК — общественный, и в частности правовой, институт, заключающийся в продолжительном союзе лиц муж. и жен. пола, составляющем основу семьи. История человечества знает разные формы Б.: моногамный (Б. одного мужа и одной жены), полигамный (многоженство) …   Православная энциклопедия

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”

We are using cookies for the best presentation of our site. Continuing to use this site, you agree with this.