Jump to content

Double Oscillator: Difference between revisions

From mintOC
 
(6 intermediate revisions by the same user not shown)
Line 5: Line 5:
}}
}}


The '''Double Oscillator problem''' is a benchmark in constrained optimal control illustrating the control of coupled mechanical systems with damping and stiffness effects. This description is taken from [[#OCPjl | [1]]]
The '''Double Oscillator problem''' is a benchmark in constrained optimal control illustrating the control of coupled mechanical systems with damping and stiffness effects. This description is taken from [[#OCPjl | [1]]].


It consists of two masses connected by springs and a damper, with one mass directly influenced by an external periodic force and the other influenced indirectly through the coupling and a controlled damping term.
It consists of two masses connected by springs and a damper, with one mass directly influenced by an external periodic force and the other influenced indirectly through the coupling and a controlled damping term.
Line 15: Line 15:
<math>
<math>
  \begin{array}{lll}
  \begin{array}{lll}
  \displaystyle \min_{u} && \frac{1}{2}\int_0^T \left( x_0(t)^2 + x_1(t)^2 + u(t)^2 \right) \\
  \displaystyle \min_{u} && \frac{1}{2}\int_0^T \left( x_0(t)^2 + x_1(t)^2 + u(t)^2 \right) \mathrm{d}t \\
  \text{subject to} \\
  \text{subject to} \\
\quad \dot{x_0}(t) & = & x_2(t),\\
\quad \dot{x_0}(t) & = & x_2(t),\\
Line 21: Line 21:
\quad \dot{x_2}(t) & = & - \frac{k_1 + k_2}{m_1} \cdot x_0 + \frac{k_2}{m_1} \cdot x_1 + \frac{1}{m_1} \sin\left(\frac{2\pi}{T} \cdot t\right), \\
\quad \dot{x_2}(t) & = & - \frac{k_1 + k_2}{m_1} \cdot x_0 + \frac{k_2}{m_1} \cdot x_1 + \frac{1}{m_1} \sin\left(\frac{2\pi}{T} \cdot t\right), \\
\quad \dot{x_3}(t) & = &  \frac{k_2}{m_2} x_0(t) - \frac{k_2}{m_2} x_1(t) - \frac{c(1-u)}{m_2} x_3(t), \\
\quad \dot{x_3}(t) & = &  \frac{k_2}{m_2} x_0(t) - \frac{k_2}{m_2} x_1(t) - \frac{c(1-u)}{m_2} x_3(t), \\
\quad x_0(0) &=& 0, \\
\quad x_1(0) &=& 0, \\
\quad x_1(0) &=& 0, \\
\quad x_2(0) &=& 0, \\
\quad u(t) & \in & [-1, 1] \ \quad \forall t \in [0,T]
\quad u(t) & \in & [-1, 1] \ \quad \forall t \in [0,T]
   \end{array}
   \end{array}
</math>
</math>
</p>
</p>
The control <math>u</math> modulates the damping of the second mass.


== Parameters ==
== Parameters ==
Line 46: Line 48:
|-  
|-  
| align=center | <math>T</math> || align=right | <math>2 \pi</math> || Duration of the motion
| align=center | <math>T</math> || align=right | <math>2 \pi</math> || Duration of the motion
|-
| align=center | <math>u</math> || align=right | - || Modulates the damping of the second mass
|}
|}


Line 54: Line 54:
Here is one local solution to the above control problem.
Here is one local solution to the above control problem.


<gallery caption="Reference solution plots" widths="180px" heights="140px" perrow="1">
<gallery caption="Reference solution plots" widths="500px" heights="300px" perrow="1">
  Image:Double_Oscillator.png| States and discretized control for a local optimum.
  Image:Double_Oscillator.png| States and discretized control for a local optimum.
</gallery>
</gallery>
Line 62: Line 62:


== References ==
== References ==
<span id="OCPjl">[1]</span> Caillau, J.-B., Cots, O., Gergaud, J., & Martinon, P. OptimalControlProblems.jl: a collection of optimal control problems with ODE's in Julia. https://github.com/control-toolbox/OptimalControlProblems.jl/blob/main/ext/Descriptions/dielectrophoretic_particle.md<br>
<span id="OCPjl">[1]</span> Caillau, J.-B., Cots, O., Gergaud, J., & Martinon, P. OptimalControlProblems.jl: a collection of optimal control problems with ODE's in Julia. https://github.com/control-toolbox/OptimalControlProblems.jl/blob/main/ext/Descriptions/double_oscillator.md<br>




[[Category:MIOCP]]
[[Category:MIOCP]]
[[Category:ODE model]]
[[Category:ODE model]]

Latest revision as of 10:43, 28 November 2025

Double Oscillator
State dimension: 1
Differential states: 4
Discrete control functions: 1


The Double Oscillator problem is a benchmark in constrained optimal control illustrating the control of coupled mechanical systems with damping and stiffness effects. This description is taken from [1].

It consists of two masses connected by springs and a damper, with one mass directly influenced by an external periodic force and the other influenced indirectly through the coupling and a controlled damping term. Both the state trajectory x() and the control u() are decision variables. The aim is to minimise a quadratic cost that balances state deviations and control effort, subject to input constraints and the system dynamics.

Mathematical formulation

minu120T(x0(t)2+x1(t)2+u(t)2)dtsubject tox0˙(t)=x2(t),x1˙(t)=x3(t),x2˙(t)=k1+k2m1x0+k2m1x1+1m1sin(2πTt),x3˙(t)=k2m2x0(t)k2m2x1(t)c(1u)m2x3(t),x0(0)=0,x1(0)=0,u(t)[1,1] t[0,T]

The control u modulates the damping of the second mass.

Parameters

These fixed values are used within the model:

Symbol Value Description
m1 100 kg First mass directly affected by F(t)
m2 2 kg Second mass influenced by damping control
k1 100 N/m Spring connecting first mass to reference
k2 3 N/m Coupling spring between the two masses
c 0.5 Ns/m Damping affecting second mass
T 2π Duration of the motion

Reference Solutions

Here is one local solution to the above control problem.

Miscellaneous and Further Reading

This formulation and a detailed description can be found in [1].

References

[1] Caillau, J.-B., Cots, O., Gergaud, J., & Martinon, P. OptimalControlProblems.jl: a collection of optimal control problems with ODE's in Julia. https://github.com/control-toolbox/OptimalControlProblems.jl/blob/main/ext/Descriptions/double_oscillator.md