Analysis of The Van Der Pol's Oscillator: Dhrubajyoti Biswas
Analysis of The Van Der Pol's Oscillator: Dhrubajyoti Biswas
Analysis of The Van Der Pol's Oscillator: Dhrubajyoti Biswas
UNDER
UNIVERSITY OF CALCUTTA
BY
DHRUBAJYOTI BISWAS
DEPARTMENT OF PHYSICS
APRIL 2017
1
Declaration
“I affirm that I have identified all my sources and that no part of my dissertation paper uses
unacknowledged sources”
Signature:___________________________ , Date: _ _ / _ _ / 2 0 1 7
2
Contents
1 Non-Linear Systems and Solutions using Numerical Techniques 4
1.1 Introduction to Non-Linear Systems . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.2 Use of Numerical Techniques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
5 Circuit Implementation of the Van der Pol’s Oscillator And Its Analysis 21
References
3
1 Non-Linear Systems and Solutions using Numerical Techniques
4
To be specific to our problem, if we feed the algorithm with a second order differential equa-
tion2 involving x, its derievatives and t and a set of initial conditions (x, ẋ)t=0 , it will give a list of
(t, x(t), ẋ(t)). On plotting x(t), what we get is the time displacement curve, and plotting ẋ(x) gives us
the phase plot. We could also go for a spectral analysis with the given set of data points using what
is known as the discrete fourier transform, thereby getting to know the contributions from each har-
monic that might exist in the solution. The actual codes used for all the simulations in the following
sections are provided in the Appendix.
ẍ − µ(1 − x2 )ẋ + x = 0
, commonly referred to as the “unforced” Van der Pol’s equation. Later on, he proposed another
variant of this equation, but now with a forcing term, given by
, where x represents the displacement of the system, which may be actual displacements or any phys-
ical quantity for that matter, µ represents the degree of non-linearity and A, ω represents the strength
and rapidity of the external forcing respectively.
Since its introduction, this equation has become the standard equation to model various physical,
biological and economical systems. For example, in seismology, this equation has been used to model
the interaction of two tectonic plates in a geological fault. Van der Pol himself built many electronic
circuits to study the dynamics of a human heart - the periodic forcing simulated the condition where
a heart was driven by an artificial pacemaker.
Van der Pol’s oscillator is a classic example of a non-linear oscillator, it exhibits a rich set of
dynamical behaviour in various ranges of its parameters. In the following sections, we will go through
the various parameter values for different initial conditions and try to establish the non-linearity of
the equation and uncover the physics behind such oscillations.
2 Application of Newton’s Laws generally yield a second order differential equation involving x, i.e. the displacement
and its first and second derievatives.
5
3 Numerical Study of the Van der Pol’s Oscillator
To begin analysing the Van der Pol’s Oscillator numerically, we first need to feed it to the RK4
algorithm. Technically, RK4 isn’t capable of solving second order equations directly, but it solves
coupled first order equations quite well. So, we need to transform our secod order Van der Pol’s
oscillator into a set of two coupled first order equations. A change of variables recasts the equation
into a pair of coupled differential equations, given by:
ẋ = v
and
As it is clearly evident, the Van der Pol’s equation can be studied in multiple domains by setting the
values of the parameters to lie in some logically different ranges. The basic categorization would be
to either set the value of A to zero, which gives back the unforced equation, or keep the value of A set
to some constant, signifying the strength of the external forcing. We could also categorize the study
of the equation depending on the value of µ: we could set µ to zero, signifying zero non-linearity, or
set µ → 0, signifying very weak non-linearity or even set µ > 0, denoting strong non-linearity. Also,
the frequency, i.e. the rapidity of the forcing term could be varied in the case where we set A 6= 0, i.e.
we could set ω → 0, denoting a slowly varying force or set ω > 0, signifying a rapidly varying force.
ẍ − µ(1 − x2 )ẋ + x = 0
The simplest case would be to set the value of the non-linearity parameter µ to zero. This reduces
the equation to the form
ẍ + x = 0
which is the well known equation of the simple harmonic oscillator with ω 2 = 1. Solutions to this
equation are of the form x(t) = A sin(t) + B cos(t) (as because ω = 1). To analyse the phase plot, first
we calculate ẋ(t) = A cos(t) − B sin(t), we see that ẋ2 + x2 = C2 , where C2 = A2 + B2 - clearly, the
phase plot should come out as an ellipse. If we look into the contributions from different harmonics,
we find that there is only a single harmonic present corresponding to ω = 1, which implies the spectral
curve should be showing a sharp peak at that value and zero everywhere else. To confirm our findings,
6
we run it through our program3 :
Thus we see, our numerical findings are in accordance with our analytical predictions.
Now, if we were to introduce a bit of non-linearity into the system, we will set µ 6= 0. The equation
now becomes the standard Van der Pol’s Equation, solutions to which are difficult to find analytically.
Let us assume weak non-linearity at first, implying the value of µ should lie quite close to zero,
but not exactly zero. A good choice would be to put µ in the interval [0.5, 1.5].
For the condition < 0.5, 0 > |0.5 4 , we get the following curves:
3 Graphs and plots used in the following section(s) have been generated using programs written in Python, given in
the Appendix Section.
4 I’ll be using the notation < x(t = 0), v(t = 0) > |
µ,A,ω to denote the initial and the parametric conditions all at once.
Also, if only one value is mentioned in the subscript, it will be assumed to be the value of µ, if two values are mentioned,
it will be the values of both µ and A, the missing values assumed to be zero.
7
Figure 3: Power Spectrum and displacement curve for < 0.5, 0 > |0.5
It is seen that the oscillation quickly goes into a fixed amplitude oscillation of a fixed frequency,
although there is a small region of transient oscillation right at the begining, evidence of which comes
out in the spectral signature as a small peak along with the larger, more prominent peak arising from
the fixed amplitude oscillation.
Running the program for < 0.1, 0.1 > |0.5 , we get:
8
Figure 5: Phase plot for < 0.1, 0.1 > |0.5
On simulating for other initial conditions, we see for µ = 0.5, all the solutions tend to go into a
fixed amplitude oscillation.
Let us now put in a slightly stronger non-linearity of µ = 1.3. For the conditions < 0.5, 0 > |1.3 ,
we get:
Figure 6: Power Spectrum and Displacement Curve for < 0.5, 0 > |1.3
9
Figure 7: Phase plot for < 0.5, 0 > |1.3
Noticeable changes in this case are the increased size in the smaller peak in the power spectrum
and the shape of the phase plot becomes even more skewed than that of the case of µ = 0.5, other
features remain more or less similar, i.e. the oscillations converge to a fixed amplitude oscillation.
To further increase the strength of the non-linear term, let us set µ = 2.5. For the conditions
< 0.5, 0 > |2.5 , we get:
Figure 8: Power spectrum and displacement plots for < 0.5, 0 > |2.5
10
Figure 9: Phase plot for < 0.5, 0 > |2.5
Thus we see, as we further go on increasing the value of µ, the “kink” in the graph grows steeper,
and all the oscillations converge to stable oscillation of constant amplitude, as first observed by Van
der Pol during his experiments using triode circuits. Also, we see the nature of the oscillations aren’t
exactly sinusoidal - there is a certain “snapping” nature in the solutions, i.e. there is a slow buildup
and then a rapid discharging. This nature is evident if we zoom into the solutions of the equations for
various conditions:
11
Figure 11: Zoomed In Part of Solution
Figure 12: Zoomed in portion of the phase plot showing rapid discharge
This region of the phase plot shows a sudden turn signnifying the fast discharge process occuring
in the displacement plot as seen before.
The parameters involved in this equation are more than that of the Unforced equation - in addition
to the the degree of non-linearity, we would vary two more parameters in this case, namely, the
12
strength of external forcing denoted by the value of A and the rapidity of the external forcing denoted
by the value of ω.
For a certain choice of the parameters given by µ = 3, A = 5, ω = 1.788[2], we get the following
curves:
Figure 13: Power Spectrum and Time Displacement Curve for < 0.3, 0 > |3,5,1.788
The response is oscillatory, but doesn’t show any clear periodicity, implying that either the solu-
tions are not periodic at all or has a very large period.
The power spectrum shows a large peak, but also has smaller but significant peaks scattered all
along the frequency range, denoting the presence of multiple frequencies - a characteristic signature
of a non-linear oscillator.
For the given set of conditions, we see for small changes in initial conditions, there is a significant
variation in the solutions: If we compare two solutions for the same set of parameter values, with
x(0) = 0.5, 0.6 respectively, we get:
13
Figure 15: Solutions for x(0) = 0.5, 0.6
This figure truly establishes the non-linear nature of the Van der Pol’s oscillator in its full glory,
depicting that for small changes in x(0), the solutions tend to vary greatly, thus indicating S.D.I.C.
We may now change the parameters to some other values: (µ, A, ω) = (4, 6, 3.788). We have
introduced stronger non-linearity, and a stronger and much more rapid forcing term, and also set
x(0) = 2.3.
Solutions look like:
14
Figure 17: Phase plot for the above conditions
To demonstrate S.D.I.C:
It is seen that the solutions for the last two initial conditions (i.e. the green and blue trajectories)
follow each other, but decouples at around the 60 second mark before going back together again.
On further increasing µ to 8, it is seen that the solutions tend to the case of relaxation oscillations
as seen in the unforced cases.
15
Figure 19: Power Spectrum and Displacement Time plot for < 0.3, 0 > |8,6,3.788
For very low values of µ, say 0.5, the solutions are oscillatory, but non periodic in nature as seen
below:
16
Figure 21: Power Spectrum and Displacement Time plot for < 0.3, 0 > |0.5,6,3.788
Figure 23: Changing x(0) = 0.5, 0.6, 1.0 for the above conditions
17
3.3 Summary
Thus we have seen that the Van der Pol’s oscillator executes relaxation oscillations when left unforced
and displays chaotic and non-periodic oscillations under the forced case, depending on the choice of
parameters (µ, A, ω). The chaotic oscillations give way to relaxation oscillations again, when the
value of µ is taken to be quite large (µ v 8).
The values of the parameters studied are by no means exhaustive - further detailed study can be
undertaken to uncover even more details of the system, by changing the values of the parameters over
a larger and finer range.
18
x . append ( x i )
y . append ( y i )
z . append ( z i )
while ( xi < xf ) :
k0=h ∗ f ( x i , y i , z i )
l 0 =h ∗g ( x i , y i , z i )
k1=h ∗ f ( x i + 0 . 5 ∗ h , y i + 0 . 5 ∗ k0 , z i + 0 . 5 ∗ l 0 )
l 1 =h ∗g ( x i + 0 . 5 ∗ h , y i + 0 . 5 ∗ k0 , z i + 0 . 5 ∗ l 0 )
k2=h ∗ f ( x i + 0 . 5 ∗ h , y i + 0 . 5 ∗ k1 , z i + 0 . 5 ∗ l 1 )
l 2 =h ∗g ( x i + 0 . 5 ∗ h , y i + 0 . 5 ∗ k1 , z i + 0 . 5 ∗ l 1 )
k3=h ∗ f ( x i +h , y i +k2 , z i + l 2 )
l 3 =h ∗g ( x i +h , y i +k2 , z i + l 2 )
y i = y i + ( k0 +2∗ k1 +2∗ k2+k3 ) / 6
z i = z i + ( l 0 +2∗ l 1 +2∗ l 2 + l 3 ) / 6
x i = x i +h
x . append ( x i )
y . append ( y i )
z . append ( z i )
return x , y , z ;
# x=t i m e , y= p o s i t i o n , z= v e l o c i t y
t s =0.001
x , y , z=myRK4 ( 0 , 0 . 3 , 0 , 1 0 0 , t s )
size=len (y)
F=( f f t . f f t ( y ) / s i z e )
19
F= a b s ( F ) ∗ ∗ 2
frequency= f f t . f f t f r e q ( size , ts )
fig=plt . figure ()
ax1 = f i g . a d d _ s u b p l o t ( 1 2 1 )
ax2 = f i g . a d d _ s u b p l o t ( 1 2 2 )
ax1 . p l o t ( f r e q u e n c y [ 0 : s i z e / 2 + 1 ] , F [ 0 : s i z e / 2 + 1 ] ) # f o r power s p e c t r u m
ax1 . s e t _ t i t l e ( ’ Power S p e c t r u m ’ )
ax1 . s e t _ x l a b e l ( ’ F r e q u e n c y −−> ’ )
ax1 . s e t _ y l a b e l ( ’ A m p l i t u d e −−> ’ )
ax2 . p l o t ( x , y ) # f o r x − t c u r v e
ax2 . s e t _ t i t l e ( ’ D i s p l a c e m e n t −Time c u r v e : ’ )
ax2 . s e t _ x l a b e l ( ’ Time −−> ’ )
ax2 . s e t _ y l a b e l ( ’ D i s p l a c e m e n t −−> ’ )
ax1 . s e t _ x l i m ( [ 0 , 2 ] )
p l t . show ( )
t s =0.001
x , y , z=myRK4 ( 0 , 0 . 3 , 0 , 1 0 0 , t s )
plt . plot (y , z)
p l t . x l a b e l ( " P o s i t i o n −−>" )
p l t . y l a b e l ( " V e l o c i t y −−>" )
p l t . t i t l e ( " P h a s e S p a c e Diagram " )
p l t . show ( )
20
4.4 Program for exhibiting Sensitive Dependance on Initial Conditions
This program is even more trivial - we just solve the system for slightly different initial conditions and
then plot the solutions on the same window to exhibit how the system exhibits S.D.I.C. The program
is listed below:
from ODEtools import myRK4
import m a t p l o t l i b . p y p l o t a s p l t
t s =0.001
x , y , z=myRK4 ( 0 , 0 . 5 , 0 , 1 0 0 , t s )
a , b , c=myRK4 ( 0 , 0 . 6 , 0 , 1 0 0 , t s )
m, n , l =myRK4 ( 0 , 1 , 0 , 1 0 0 , t s )
plt . plot (x , y)
plt . plot (a , b)
p l t . p l o t (m, n )
p l t . x l a b e l ( ’ Time−−−> ’ )
p l t . y l a b e l ( ’ D i s p l a c e m e n t −−−> ’ )
p l t . show ( )
21
This circuit consists of a resistance R, an inductance L, a capacitor C, a tunnel diode D and the
grounding U0 as well as an operational voltage Uop . We will consider two nodes, N1 and N2 as shown
in the figure.
The model equations for the various components in the circuit are given by:
UL = LI˙L (1)
IC = CU˙C (2)
UR = RIR (3)
ID = f (UD ) (4)
where, Ux and Ix , for x = {L,C, R, D}, denotes the various components of the circuit and the
function f (U) describes the characteristic curve of the tunnel diode D.
Let us denote the voltage at node Ni by Ui , where i = 1, 2. The current I1→op , i.e. the current
flowing from the node N1 to the operational voltage is given by
The current I2→C→0 , i.e. the current flowing from N2 to the ground via the capacitor C, is given
by
I2→C→0 = C(U˙2 − U˙0 ) (6)
The current I2→D→0 , i.e. the current flowing from N2 to the ground via the tunnel diode D is given
by
I2→D→0 = f (U2 −U0 ) (7)
1
(U1 −Uop ) + I1→2 = 0 (8)
R
where the currents I1→2 and I2→1 are defined as the currents flowing from the nodes N1 to N2 and
vice-versa.
Differentiating Equation (8) with respect to time and substituting from Equation (1), we get:
1 ˙ 1
(U1 − U˙op ) + (U1 −U2 ) = 0 (10)
R L
22
Again, we have I1→2 = −I2→1 , U0 = 0, and using Equation (8), we can write Equation (9) as:
1
(U1 −Uop ) +CU˙2 + f (U2 ) = 0 (11)
R
d dU2 1 ˙
CU¨2 + f (U2 ) + (U1 − U˙op ) = 0 (13)
dU2 dt R
1 ˙ 1
(U1 − U˙op ) = (U2 −Uop + R(CU˙2 + f (U2 ))) (14)
R L
RC d f (U) 1
CÜ + U̇[ + ] + (R f (U) +U −Uop ) = 0 (15)
L dU L
where U ≡ U2 .
Now, the characteristic I-V curve of a tunnel diode is known to be cubic in nature, allowing us to
substitute
f (U) = a1U + a2U 2 + a3U 3 (16)
and
d f (U)
= a1 + 2a2U + 3a3U 2 (17)
dU
Substituting Equation (16) and (17) into the Equation (15), along with a suitable change of vari-
ables, given by y = F(U)[6], transforms Equation (15) into
ÿ − p(1 − y2 )ẏ + y = 0
which is the Unforced Van der Pol’s Equation, with p = p(L,C, R, a1 , a2 , a3 ), thus a constant for a
given circuit. Thus, we have, starting from basic electrical components, modelled a circuit in which
the voltage across one of the components follow the Van der Pol’s Equation.
23
References
[1] Feldman, D.P, “Chaos and Fractals: An Elementary Introduction” , Oxford Univ. Press (2012):
p.4
[2] Dolan, S, “MAS212 Assignment 2: The Van der Pol oscillator” , (December 2015): p.3
[3] Weisstein, Eric W. "Runge-Kutta Method." From MathWorld–A Wolfram Web Resource.
http://mathworld.wolfram.com/Runge-KuttaMethod.html
[4] Web Resource: “Quickstart tutorial - NumPy v1.13dev0 Manual”, accessed 19th March, 2017:
<https://docs.scipy.org/doc/numpy-dev/user/quickstart.html>
[5] Web Resource: “Spectral Density” - From Wikipedia, the Free Encyclopedia: accessed 14th
March, 2017: <https://en.wikipedia.org/wiki/Spectral_density>
[6] Rentrop, P., Augustin, F., “NUMERICS OF THE VAN-DER-POL EQUATION WITH RANDOM
PARAMETER”, Centre for Mathematical Sciences, Technische Universitat Munchen: p.3
24