2

I'm trying to create a bifurcation plot for a driven damped pendulum. In particular, I'm trying to recreate the plot found in Taylor's 'Classical Mechanics' (page 484) for a driving strength $\gamma$ in the range $1.060 \leq \gamma \leq 1.087$:

enter image description here

I believe I have the code down and I can reproduce the main properties of the plot, however for $\gamma \geq 1.081$ the points shift down a couple of units which causes a large discontinuity. I'd appreciate any help on the matter. I've attached an image of my result below.

Bifurcation plot with discontinuity.

stafusa
  • 13,064

3 Answers3

1

Without more details it's hard to answer precisely, but two possibilities are:

  • As the maximum amplitude increases, some numerical angle normalization makes a jump with no meaning (e.g., from $2\pi$ to $4\pi$) - that might very well be the case here, if "End Position" in your plot is normalized by $2\pi$.
  • This system exhibits multistability (i.e., it can have more than one stable final state, for a given set of parameter values) and which state is reached depends on which basin of attraction the initial condition belongs to. As $\gamma$ is varied, the boundary between different basins moves in phase space, and the fixed initial condition being used to construct the bifurcation diagram might suddenly find itself on a different basin at a certain $\gamma^*$: in this way, the diagram shows the bifurcations of attractor $A$ for $\gamma<\gamma^*$, and of attractor $B$ afterwards.

Perhaps supporting this second possibility are the following diagrams found in the web:

enter image description here

enter image description here

enter image description here

stafusa
  • 13,064
1

I was also having a problem generating a bifurcation diagram for this system, with small pieces and even an entire branch missing. Mysteriously, my Poincare sections were just not catching everything. While it looks like you were having a mod pi issue, it turns out there are also 3 distinct attractors, so 3 different basins of attraction: stafusa was correct on both counts, this system exhibits multi-stability. In fact, the basins of attraction turn out to have the Wada property: https://www.nature.com/articles/s41598-018-28119-0

After testing out enough initial conditions, I managed to generate a fairly complete diagram. (I think the basins are changing shape, though, so it's still missing a few tiny bits.) Gasenzer's plot appears to be the most accurate. Here's a larger version of Gasenzer's, as well as the plot of theta v.s. A:

enter image description here

enter image description here

If you are or anyone else is interested in the Matlab code, feel free to contact me. It also works for things like Duffing, Rossler, etc.

1

Following J.R.Taylor's Classical Mechanics

Damped Driven Pendulum's Oscillation Equation

The equation of motion is just $I\ddot{\theta} = \Gamma$,
where $I$ is the moment of inertia and $\Gamma$ is the net torque about the pivot.
In this case $I = m L^2 ,$ and the torque arises from the three forces shown in Figure .

Driven-damped-pendulum

The resistive force has magnitude $bv$ and hence exerts a torque $-Lbv = -bL^2\dot{\theta}$.

The torque of the weight is $-mgL\sin\theta,$ and that of the driving force is $LF(t)$.

Thus, the equation of motion $I\ddot{\theta}=\Gamma$ is :

$\qquad mL^2\ddot{\theta} = -bL^2\dot{\theta} - mgL\sin\theta + LF(t) \tag{1}$

Assume that the driving force $F(t)$ is sinusoidal:

$\qquad F(t) = F_o\cos(\omega t) \tag{2}$

where $F_o$ is the drive amplitude (the amplitude of the driving force) and $\omega$ is the drive frequency.

Substituting $(2)$ into $(1),$ we find:

$\therefore \quad mL^2\ddot{\theta} = -bL^2\dot{\theta} - mgL\sin\theta + LF_o\cos(\omega t) \tag{3}$

or, $\qquad\ddot{\theta} + \frac{b}{m}\dot{\theta} + \frac{g}{L}\sin\theta = \frac{F_o}{mL}\cos\omega t \quad \left[ \because \ \frac{b}{m}=2\beta,\frac{g}{L}=\omega_o^2, \gamma=\frac{F_o}{mL\omega_o^2}=\frac{F_o}{mg} \right]$

Finally,

$\qquad\ddot{\theta} + 2\beta\dot{\theta} + \omega^2_o\sin{\theta} = \gamma\omega^2_o\cos\omega t \tag{4}$

where:

  • Damping constant $= \beta ,$
  • Natural frequency $= \omega_o ,$
  • Driving strength $= \gamma$ (dimensionless).

Bifurcation Diagram Plot

An algorithm based on your code for generating the bifurcation diagram of a DDP:

Algorithm: Bifurcation Diagram of a Driven Damped Pendulum

  1. Initialize Parameters:

    • Set the frequency of the driving force $\omega = 2\pi$.
    • Set the natural frequency $\omega_o = 1.5 \times \omega$.
    • Set the damping coefficient $\beta = \omega_o / 4$.
    • Define the time step $\text{dt} = 0.01$.
    • Define the time span $t_{\text{span}} = [0, 600]$.
    • Set the initial conditions $x_0 = [-\pi/2, 0]$ for angle $\theta_0$ and angular velocity $\dot{\theta}_0$.
  2. Define Sampling Points:

    • Create a list of sampling points (indices) corresponding to times
      from $t = 500$ to $t = 600 $ with a step size of $\text{dt}$.
  3. Initialize Storage Arrays:

    • Create empty lists th and dth to store bifurcation data for $\theta$ and $\dot{\theta}$ respectively.
  4. Loop Over Driving Force Amplitude for $\theta$ Bifurcation Diagram:

    • For each value of $\gamma$ in a specified range $(e.g., \gamma \in [1.06, 1.087]):$
      • Set the parameters $(\beta, \omega_o, \gamma, \omega)$.
      • Solve the equation of motion using the RK4 method over the time span.
      • Extract the $\theta$ values at the specified sampling points.
      • For each sampled $\theta$, append the pair $(\gamma, \theta)$ to the list th.
  5. Loop Over Driving Force Amplitude for $\dot{\theta}$ Bifurcation Diagram:

    • For each value of $\gamma$ in a specified range (e.g., $\gamma \in [1.03, 1.53]$):
      • Set the parameters $(\beta, \omega_o, \gamma, \omega)$.
      • Solve the equation of motion using the RK4 method over the time span.
      • Extract the $\dot{\theta}$ values at the specified sampling points.
      • For each sampled $\dot{\theta}$, append the pair $(\gamma, \dot{\theta})$ to the list dth.
    • Convert the lists th and dth to arrays theta_bif and theta_dot_bif.
  6. Plot Bifurcation Diagrams:

    • Create a subplot with two plots:
      1. Plot $\gamma$ vs. $\theta$ using the data in theta_bif.
      2. Plot $\gamma$ vs. $\dot{\theta}$ using the data in theta_dot_bif.
    • Label the axes and set appropriate limits for better visualization.

damped driven pendulum bifurcation