Difference between revisions of "Particle steering problem (TACO)"
(Particle steering problem (TACO)) |
JonasSchulze (Talk | contribs) m (Text replacement - "\<bibref\>(.*)\<\/bibref\>" to "<bib id="$1" />") |
||
(2 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
− | This page contains a model of the [[Particle steering problem]] in [http://www.ampl.org AMPL] format, making use of the TACO toolkit for AMPL control optimization extensions. The original model using a collocation formulation can be found in the [http://www.mcs.anl.gov/~more/cops/ COPS library]. | + | This page contains a model of the [[Particle steering problem]] in [http://www.ampl.org AMPL] format, making use of the TACO toolkit for AMPL control optimization extensions. This classical problem can e.g. be found in <bib id="Bryson1975" />. The original model using a collocation formulation can be found in the [http://www.mcs.anl.gov/~more/cops/ COPS library]. |
Note that you will need to include a generic [[support AMPL files|AMPL/TACO support file]], OptimalControl.mod. | Note that you will need to include a generic [[support AMPL files|AMPL/TACO support file]], OptimalControl.mod. | ||
To solve this model, you require an optimal control or NLP code that uses the TACO toolkit to support the AMPL optimal control extensions. | To solve this model, you require an optimal control or NLP code that uses the TACO toolkit to support the AMPL optimal control extensions. | ||
Line 24: | Line 24: | ||
let u.type := "u1"; | let u.type := "u1"; | ||
− | minimize time: | + | minimize time: eval(t,tf); |
− | + | ||
subject to | subject to | ||
− | dy1: diff (y[1],t) = y[2]; | + | dy1: diff (y[1],t) = y[2]; |
− | dy2: diff (y[2],t) = a*cos(u); | + | dy2: diff (y[2],t) = a*cos(u); |
− | dy3: diff (y[3],t) = y[4]; | + | dy3: diff (y[3],t) = y[4]; |
− | dy4: diff (y[4],t) = a*sin(u); | + | dy4: diff (y[4],t) = a*sin(u); |
ivc{i in 1..4}: eval(y[i],0) = 0; | ivc{i in 1..4}: eval(y[i],0) = 0; | ||
− | by1d: eval(y[2],tf) = 45; | + | by1d: eval(y[2],tf) = 45; |
− | by2: eval(y[3],tf) = 5; | + | by2: eval(y[3],tf) = 5; |
− | by2d: eval(y[4],tf) = 0; | + | by2d: eval(y[4],tf) = 0; |
option solver ...; | option solver ...; | ||
Line 52: | Line 51: | ||
* Mathematical notation at [[Particle steering problem]] | * Mathematical notation at [[Particle steering problem]] | ||
* [[:Category:AMPL | AMPL]] (using a fixed discretization) at the [http://www.mcs.anl.gov/~more/cops/ COPS library] | * [[:Category:AMPL | AMPL]] (using a fixed discretization) at the [http://www.mcs.anl.gov/~more/cops/ COPS library] | ||
+ | |||
+ | == References == | ||
+ | <biblist /> | ||
[[Category:AMPL/TACO]] | [[Category:AMPL/TACO]] |
Latest revision as of 21:32, 30 December 2015
This page contains a model of the Particle steering problem in AMPL format, making use of the TACO toolkit for AMPL control optimization extensions. This classical problem can e.g. be found in [Bryson1975]Address: New York
Author: Bryson, A.E.; Ho, Y.-C.
Publisher: Wiley
Title: Applied Optimal Control
Year: 1975
. The original model using a collocation formulation can be found in the COPS library.
Note that you will need to include a generic AMPL/TACO support file, OptimalControl.mod.
To solve this model, you require an optimal control or NLP code that uses the TACO toolkit to support the AMPL optimal control extensions.
AMPL
This is the source file particle_taco.mod
# ---------------------------------------------------------------- # Particle steering problem using AMPL and TACO # (c) Christian Kirches, Sven Leyffer # # Source: COPS 3.1 collocation formulation - March 2004 # ---------------------------------------------------------------- include OptimalControl.mod; param Pi := 3.14159265358979; param a := 100.0; var t; var tf := 1, >= 0, <=10; var y{1..4}; var u >= -Pi/2, <= +Pi/2; let u.type := "u1"; minimize time: eval(t,tf); subject to dy1: diff (y[1],t) = y[2]; dy2: diff (y[2],t) = a*cos(u); dy3: diff (y[3],t) = y[4]; dy4: diff (y[4],t) = a*sin(u); ivc{i in 1..4}: eval(y[i],0) = 0; by1d: eval(y[2],tf) = 45; by2: eval(y[3],tf) = 5; by2d: eval(y[4],tf) = 0; option solver ...; solve;
Other Descriptions
Other descriptions of this problem are available in
- Mathematical notation at Particle steering problem
- AMPL (using a fixed discretization) at the COPS library
References
There were no citations found in the article.