PROPT

Uses your system voice; voice and rate in settings.

Snapshot

≈ 3 min read

Names in other languages

No names in other languages are held for this entry yet.

Article bodies are English and are not machine-translated. A name in another language is not a translation of the article.

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, Per Rutquist in 2008. The most recent version has support for binary and integer variables as well as an automated scaling module.

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, Per Rutquist in 2008. The most recent version has support for binary and integer variables as well as an automated scaling module. toms tf toms t p = tomPhase('p', t, 0, tf, 30); x0 = {tf == 20}; cbox = {10 tomStates x1 x0 = {icollocate({x1 == 0})}; tomControls u1 cbox = {-2 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 = {integrate(x2) == 1}; % Integral constraint for x2 cbnd = final(x3 >= 0.5); % Final event constraint for x3 cbnd = initial(x1 J_{x,t} & = & x_3(t_f) \\ \end{matrix} Subject to: \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 \le u \le 1.0 \\ \end{cases} 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 = {icollocate({x1 == 0; x2 == 1; x3 == 0}) collocate(u == -0.01)}; % Box constraints cbox = {-10 J_{x,t} & = & tCut \\ \end{matrix} Subject to: \begin{cases} \frac{dx_1}{dt} = x_2 \\ \frac{dx_2}{dt} = a-g \ (0 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 = {tCut==10 tf==15 icollocate(p1,{x1p1 == 50*tCut/10;x2p1 == 0;}) icollocate(p2,{x1p2 == 50+50*t/100;x2p2 == 0;})}; % Box constraints cbox = { 1 J_{p} & = & \sum_{i=1,2,3,5}{(x_1(t_i) - x_1^m(t_i))^2} \\ \end{matrix} Subject to: \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}| 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 = [0.264;0.594;0.801;0.959]; tmeas = [1;2;3;5]; % Box constraints cbox = {-1.5

Text derived from https://en.wikipedia.org/w/index.php?oldid=1357077816 under CC BY-SA 4.0; modifications have been made.