Difference between revisions of "Van der Pol Oscillator"

From mintOC
Jump to: navigation, search
Line 56: Line 56:
 
== Source Code ==
 
== Source Code ==
 
Model descriptions are available in:
 
Model descriptions are available in:
\begin{itemize}
+
 
\item [[JModelica]] at [[Van der Pol oscillator (JModelica)]]
+
[[JModelica]] at [[Van der Pol oscillator (JModelica)]]
\end{itemize}
+

Revision as of 13:16, 12 January 2016

The Van der Pol Oscillator is an oscillating system with non-linear damping and self regulation. The System was first introduced by the Dutch physician Balthasar Van der Pol in 1927. The aim is to control the oscillation such that the system stays in a mean position.


Model formulation

The Van der Pol Oscillator evolves over time according to the second order differential equation:

{d^2x \over dt^2}-u(1-x^2){dx \over dt}+x= 0

where x is the position coordinate, which is a function of the time t, and u is a scalar parameter indicating the non-linearity and the strength of the damping.

For u>>1 the oscillator is being damped, whereas for u<<1 energy is added to the system.

Based on the transformation y = \dot x the problem can be reformulated:

		 \dot x = y

\dot y = u(1-x^2) y-x


The optimal control problem arises by adding the objective function:

\min\limits_{u}\int\limits_{t_0}^{t_f}(x(t)^2+y(t)^2+u(t)^2) dt


Optimal Control Problem

The Optimal Control Problem with the aim to minimize the deflection can be formulated as follows:

 		\begin{array}{ll}
 		\min\limits_{u}  & \int\limits_{t_0}^{t_f}(x(t)^2+y(t)^2+u(t)^2) dt\\
			 		s.t. & 	 \dot x = y\\
					 	 &	\dot y = u(1-x^2) y-x\\
& x(0)=1\\
& y(0)=0\\
& u\le 0.75\\


					 	
 		\end{array}


Parameters

These fixed values are used within the model:

[t_0,t_f]=[0,20]


Reference Solution

The following reference solution was generated using JModelica with the automatic differentiation tool CasADI and the solver IPOPT. The Optimica code used to solve the problem can be found under.... The optimal value of the objective function is 3.1762.

control u
states x and y
derivatives \dot x and \dot y


Source Code

Model descriptions are available in:

JModelica at Van der Pol oscillator (JModelica)