Jump to content

Cushioned Oscillation: Difference between revisions

From mintOC
mNo edit summary
 
(12 intermediate revisions by 3 users not shown)
Line 3: Line 3:
|nx        = 2
|nx        = 2
|nu        = 1
|nu        = 1
|nc        = 2
|nre      = 4
|nre      = 4
}}The Cushioned Oscillation is a simplified model of time optimal "stopping" of an oscillating object attached to a spring by applying a control and moving it back into the relaxed position and zero velocity.
}}The Cushioned Oscillation is a simplified model of time optimal "stopping" of an oscillating object attached to a spring by applying a control and moving it back into the relaxed position and zero velocity.
Line 24: Line 25:
The goal is to reset position and velocity of the object as fast as possible, meaning:
The goal is to reset position and velocity of the object as fast as possible, meaning:


<math>(x(t_f),v(t_f)) = (0,0)</math>,
<math>(x(t\mathrm{f}),v(t_\mathrm{f})) = (0,0)</math>,


with the objective function:
with the objective function:


<math>\min\limits_{t_f} t_f</math>
<math>\min\limits_{t_\mathrm{f}} t_\mathrm{f}</math>


== Optimal Control Problem (OCP) Formulation ==
== Optimal Control Problem Formulation ==


The above results in the following OCP  
The above results in the following OCP  


<math> \begin{array}{llr}
<math> \begin{array}{llll}
\min\limits_{x,v,u,t_f}  & t_f\\


s.t. & \dot x (t) = v(t), & \forall t \in [0,t_f]\\
\min\limits_{x,v,u,t_\mathrm{f}}  & t_\mathrm{f} & & \\  


& \dot v (t)= \frac{1}{m}(u(t) - cx(t)),  & \forall t \in [0,t_f]\\
s.t. & \dot x & =  v,\\
\\                                                 
 
& x(0)=x_0,\\
& \dot v & =   \frac{1}{m}(u - c \cdot x),\\
& v(0)=v_0,\\
& x(t_f)=0,\\
& v(t_f)=0,\\
\\
\\
& -u_{mm} \le u(t) \le u_{mm},  & \forall t \in [0,t_f]\\
& x(0) & =  x_0,\\
& v(0) & =  v_0,\\
& x(t_\mathrm{f}) & =  0,\\
& v(t_\mathrm{f}) & =  0,\\
& |u| & \le u_\mathrm{mm}.\\
  \end{array}</math>
  \end{array}</math>


== Parameters and Reference Solution ==
== Parameters and Reference Solution ==


The following parameters were used, to create the reference solution below, with an almost optimal final time <math> t_f = 8.98 s</math>:
The following parameters were used, to create the reference solution below, with an almost optimal final time <math> t_\mathrm{f} = 8.98 s</math>:


<math> m=5, </math>
<math> m=5, </math>
Line 57: Line 59:
<math> x_0=2, </math>
<math> x_0=2, </math>
<math> v_0=5, </math>
<math> v_0=5, </math>
<math> u_{mm}=5.</math>
<math> u_\mathrm{mm}=5.</math>


== Reference Solution ==
== Reference Solution ==
Line 69: Line 71:
== Source Code ==
== Source Code ==


* A MATLAB script using [[Category:TomDyn/PROPT]] can be found in: [[Cushioned Oscillation (PROPT)]]
* A MATLAB script using [[:Category:TomDyn/PROPT | PROPT]] can be found in: [[Cushioned Oscillation (PROPT)]]


== References ==
== References ==


[[Category:MIOCP]]  
[[Category:MIOCP]]  
[[Category:Bang bang]]
[[Category:ODE model]]
[[Category: Minimum time]]
[[Category: Minimum time]]

Latest revision as of 13:26, 19 February 2026

Cushioned Oscillation
State dimension: 1
Differential states: 2
Continuous control functions: 1
Path constraints: 2
Interior point equalities: 4

The Cushioned Oscillation is a simplified model of time optimal "stopping" of an oscillating object attached to a spring by applying a control and moving it back into the relaxed position and zero velocity.

Model formulation

An object with mass m is attached to a spring with stiffness constant c.

If the resetting spring force is proportional to the deviation x=x(t), an oscillation, induced by an external force u(t), satisfies:


mv˙(t)+cx(t)=u(t) (which is equivalent to v˙(t)=1m(u(t)cx(t)))


where x(t) denotes the deviation to the relaxed position and v(t)=x˙(t) the velocity of the oscillating object.

Through external force, the object has been put into an initial state :

(x(0),v(0))=(x0,v0)

The goal is to reset position and velocity of the object as fast as possible, meaning:

(x(tf),v(tf))=(0,0),

with the objective function:

mintftf

Optimal Control Problem Formulation

The above results in the following OCP

minx,v,u,tftfs.t.x˙=v,v˙=1m(ucx),x(0)=x0,v(0)=v0,x(tf)=0,v(tf)=0,|u|umm.

Parameters and Reference Solution

The following parameters were used, to create the reference solution below, with an almost optimal final time tf=8.98s:

m=5, c=10, x0=2, v0=5, umm=5.

Reference Solution

The OCP was solved within MATLAB R2015b, using the TOMLAB Optimization Package. PROPT reformulates such problems with the direct collocation approach (n=80 collocation points) and automatically finds a suiting solver included in the TOMLAB Optimization Package (in this case, SNOPT was used).

Source Code

References