<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://tomwiki.com/index.php?action=history&amp;feed=atom&amp;title=PROPT_Third_order_system</id>
	<title>PROPT Third order system - Revision history</title>
	<link rel="self" type="application/atom+xml" href="http://tomwiki.com/index.php?action=history&amp;feed=atom&amp;title=PROPT_Third_order_system"/>
	<link rel="alternate" type="text/html" href="http://tomwiki.com/index.php?title=PROPT_Third_order_system&amp;action=history"/>
	<updated>2026-11-02T02:01:41Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.39.1</generator>
	<entry>
		<id>http://tomwiki.com/index.php?title=PROPT_Third_order_system&amp;diff=2732&amp;oldid=prev</id>
		<title>Per at 09:27, 14 February 2012</title>
		<link rel="alternate" type="text/html" href="http://tomwiki.com/index.php?title=PROPT_Third_order_system&amp;diff=2732&amp;oldid=prev"/>
		<updated>2012-02-14T09:27:07Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 04:27, 14 February 2012&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l137&quot;&gt;Line 137:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 137:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[File:thirdOrderSystem_01.png]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[File:thirdOrderSystem_01.png]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[Category:PROPT Examples]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Per</name></author>
	</entry>
	<entry>
		<id>http://tomwiki.com/index.php?title=PROPT_Third_order_system&amp;diff=2060&amp;oldid=prev</id>
		<title>Mbot: Created page with &quot;{{Part Of Manual|title=the PROPT Manual|link=PROPT Manual}}  ==Problem description==  Time-optimal control of a third order system with bounded control.  Programmers: G...&quot;</title>
		<link rel="alternate" type="text/html" href="http://tomwiki.com/index.php?title=PROPT_Third_order_system&amp;diff=2060&amp;oldid=prev"/>
		<updated>2011-11-08T13:08:50Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;{{Part Of Manual|title=the PROPT Manual|link=&lt;a href=&quot;/index.php?title=PROPT&quot; title=&quot;PROPT&quot;&gt;PROPT Manual&lt;/a&gt;}}  ==Problem description==  Time-optimal control of a third order system with bounded control.  Programmers: G...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Part Of Manual|title=the PROPT Manual|link=[[PROPT|PROPT Manual]]}}&lt;br /&gt;
&lt;br /&gt;
==Problem description==&lt;br /&gt;
&lt;br /&gt;
Time-optimal control of a third order system with bounded control.&lt;br /&gt;
&lt;br /&gt;
Programmers: Gerard Van Willigenburg (Wageningen University) Willem De Koning (retired from Delft University of Technology)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
% Copyright (c) 2009-2009 by Tomlab Optimization Inc.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Problem setup==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
% Array with consecutive number of collocation points&lt;br /&gt;
narr = [20 40];&lt;br /&gt;
&lt;br /&gt;
toms t t_f % Free final time&lt;br /&gt;
&lt;br /&gt;
for n=narr&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
    p = tomPhase(&amp;#039;p&amp;#039;, t, 0, t_f, n);&lt;br /&gt;
    setPhase(p)&lt;br /&gt;
&lt;br /&gt;
    tomStates x1 x2 x3&lt;br /&gt;
    tomControls u1&lt;br /&gt;
&lt;br /&gt;
    % Initial &amp;amp; terminal states&lt;br /&gt;
    xi = [0; 0.931; 0.9];&lt;br /&gt;
    xf = [2;     0;   0];&lt;br /&gt;
&lt;br /&gt;
    % Initial guess&lt;br /&gt;
    if n==narr(1)&lt;br /&gt;
        x0 = {t_f == 5; icollocate({x1 == xi(1); x2 == xi(2)&lt;br /&gt;
            x3 == xi(3)})&lt;br /&gt;
            collocate({u1 == 0})};&lt;br /&gt;
    else&lt;br /&gt;
        x0 = {t_f == tfopt; icollocate({x1 == xopt1; x2 == xopt2&lt;br /&gt;
            x3 == xopt3})&lt;br /&gt;
            collocate({u1 == uopt1})};&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    % Box constraints&lt;br /&gt;
    cbox = {-1 &amp;lt;= collocate(u1) &amp;lt;= 1};&lt;br /&gt;
&lt;br /&gt;
    % Boundary constraints&lt;br /&gt;
    cbnd = {initial({x1 == xi(1); x2 == xi(2); x3 == xi(3)})&lt;br /&gt;
        final({x1 == xf(1); x2 == xf(2); x3 == xf(3)})};&lt;br /&gt;
&lt;br /&gt;
    % ODEs and path constraints&lt;br /&gt;
    dx1 = x2;&lt;br /&gt;
    dx2 = -x2-0.1*x2.*x2.*x2+x3;&lt;br /&gt;
    dx3 = -2*x3+-0.2*x3./sqrt(x3.*x3+1e-4)+2*u1;&lt;br /&gt;
&lt;br /&gt;
    ceq = collocate({&lt;br /&gt;
        dot(x1) == dx1&lt;br /&gt;
        dot(x2) == dx2&lt;br /&gt;
        dot(x3) == dx3});&lt;br /&gt;
&lt;br /&gt;
    % Objective&lt;br /&gt;
    objective = t_f;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Solve the problem==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
    options = struct;&lt;br /&gt;
    options.name = &amp;#039;Third order system&amp;#039;;&lt;br /&gt;
    solution = ezsolve(objective, {cbox, cbnd, ceq}, x0, options);&lt;br /&gt;
&lt;br /&gt;
    tfopt = subs(t_f,solution);&lt;br /&gt;
    xopt1 = subs(x1,solution);&lt;br /&gt;
    xopt2 = subs(x2,solution);&lt;br /&gt;
    xopt3 = subs(x3,solution);&lt;br /&gt;
    uopt1 = subs(u1,solution);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Problem type appears to be: lpcon&lt;br /&gt;
Time for symbolic processing: 0.18156 seconds&lt;br /&gt;
Starting numeric solver&lt;br /&gt;
===== * * * =================================================================== * * *&lt;br /&gt;
TOMLAB - TOMLAB Development license  999007. Valid to 2011-12-31&lt;br /&gt;
=====================================================================================&lt;br /&gt;
Problem: ---  1: Third order system             f_k       2.956507317430983900&lt;br /&gt;
                                       sum(|constr|)      0.000000000033334328&lt;br /&gt;
                              f(x_k) + sum(|constr|)      2.956507317464318200&lt;br /&gt;
                                              f(x_0)      5.000000000000000000&lt;br /&gt;
&lt;br /&gt;
Solver: snopt.  EXIT=0.  INFORM=1.&lt;br /&gt;
SNOPT 7.2-5 NLP code&lt;br /&gt;
Optimality conditions satisfied&lt;br /&gt;
&lt;br /&gt;
FuncEv    1 ConstrEv   12 ConJacEv   12 Iter    9 MinorIter  101&lt;br /&gt;
CPU time: 0.015600 sec. Elapsed time: 0.019000 sec. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Problem type appears to be: lpcon&lt;br /&gt;
Time for symbolic processing: 0.18001 seconds&lt;br /&gt;
Starting numeric solver&lt;br /&gt;
===== * * * =================================================================== * * *&lt;br /&gt;
TOMLAB - TOMLAB Development license  999007. Valid to 2011-12-31&lt;br /&gt;
=====================================================================================&lt;br /&gt;
Problem: ---  1: Third order system             f_k       2.949634637798719300&lt;br /&gt;
                                       sum(|constr|)      0.000001841572751425&lt;br /&gt;
                              f(x_k) + sum(|constr|)      2.949636479371470900&lt;br /&gt;
                                              f(x_0)      2.956507317430983900&lt;br /&gt;
&lt;br /&gt;
Solver: snopt.  EXIT=0.  INFORM=1.&lt;br /&gt;
SNOPT 7.2-5 NLP code&lt;br /&gt;
Optimality conditions satisfied&lt;br /&gt;
&lt;br /&gt;
FuncEv    1 ConstrEv    5 ConJacEv    5 Iter    4 MinorIter  136&lt;br /&gt;
CPU time: 0.031200 sec. Elapsed time: 0.024000 sec. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;matlab&amp;quot;&amp;gt;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
figure(1)&lt;br /&gt;
subplot(2,1,1);&lt;br /&gt;
ezplot([x1; x2; x3]); legend(&amp;#039;x1&amp;#039;,&amp;#039;x2&amp;#039;,&amp;#039;x3&amp;#039;);&lt;br /&gt;
title(&amp;#039;Third order system states&amp;#039;);&lt;br /&gt;
&lt;br /&gt;
subplot(2,1,2);&lt;br /&gt;
ezplot(u1); legend(&amp;#039;u1&amp;#039;);&lt;br /&gt;
title(&amp;#039;Third order system controls&amp;#039;);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:thirdOrderSystem_01.png]]&lt;/div&gt;</summary>
		<author><name>Mbot</name></author>
	</entry>
</feed>