Jump to content

Double Oscillator: Difference between revisions

From mintOC
Line 27: Line 27:
</math>
</math>
</p>
</p>
The control <math>u</math> modulates the damping of the second mass.


== Parameters ==
== Parameters ==

Revision as of 15:15, 26 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)subject 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