The Duffing Oscillator is known as one of the simplest models for studying the response of a non-linear damped oscillator to an external driving force. Besides its relevance to structural mechanics, it has enjoyed much popularity among physicists due to its dynamic behaviour including dynamic symmetry breaking and chaotic solutions.
For an introduction, see C.L. Olson, M.G. Olsson, Dynamical Symmetry Breaking and Chaos in Duffing’s Equation, Am. J. Phys. 59, 907-911 (1991). Following the assumptions and conventions of this paper, the Duffing equation – after appropriate rescaling – can be written in its normal form
\(\ddot{x} + 2\gamma\dot{x} + x + x^3 = f \cos(\Omega t)\)
This equation models a damped driven oscillator equipped with a hard spring (recoil force is more than proportional to the displacement for large displacements). Starting at arbitrary initial values \(x_0,\dot{x}_0\), the damping \(\gamma\) ensures that any transient behaviour will die down and the solution will converge to a stationary or chaotic attractor. Different initial values may lead to different attractors; the set of initial conditions leading to the same attractor is called its basin.
A common method to study the behaviour of the attractor as a function of the driving frequency \(\Omega\) is to look at the projection of its Poincaré section onto the \(x\) axis at a given phase \(\varphi\) of the driving force, i.e. \(x(t_i)\) for \(t_i = \frac{2\pi i}{\Omega}+\varphi, i \in \mathbb{N}\), essentially graphically representing histograms of how frequently a certain sub-interval of the \(x\)-axis is hit by the solution. In the resulting graph, each pixel represents a neighborhood of a given \(x\)-value and a given frequency \(\Omega\), coded by color (black = frequent hits, white = no hits).
Commonly the phase is taken to be \(\varphi=0\). As a typical case, for \(\gamma=0.1, f=25\) and \(\Omega \in [1.25,1.46]\), the Poincaré section for a set of runs with different initial conditions (\(x_0\in[-5.1,5.1], \dot{x}_0=0\) will look as follows (\(x\)-axis horizontal, \(\Omega\)-axis vertical).:

Here one can see cascades of bifurcations leading to regions of chaotic behaviour, partially overlayed with periodic solutions in the same frequency range.
But what happens when we consider \(\varphi\neq 0\)? Qualitatively, there are no substantial changes, but look how nicely the attractors respond to a full sweep of the driving force \(\varphi=0\ldots 2\pi\)!
Implementation notes:
The Duffing equation is solved numerically using a classical fixed step 4th order Runge-Kutta solver written in Fortran. The output is processed and graphics created using Python‘s Pandas and Matplotlib packages. After downsizing the images using Imagemagick, the animation was created with Ffmpeg.
The parameter space was investigated using a wide range of model (\(\gamma, f, \Omega\), initilal conditions) and numerical (step width, decay of transients, …) parameters. It was no surprise that the interesting behaviour occurs at the set of parameters used in most of the literature.
Leave a Reply