Article 4X2VK Driven Van der Pol oscillators

Driven Van der Pol oscillators

by
John
from John D. Cook on (#4X2VK)

I've playing around with driven Van der Pol oscillators.

vanderpol_eqn_driven2.svg

The cosine term is the driving function. You can see a variety of behavior depending on the interaction between the driving frequency and the natural frequency, along with the other parameters. Sometimes you get periodic solutions and sometimes you get chaotic behavior.

Here's the Python code I started with

 a, b = 0, 300 t = linspace(a, b, 1000) mu = 9 T = 10 def vdp_driven(t, z): x, y = z return [y, mu*(1 - x**2)*y - x + cos(2*pi*t/T)] sol = solve_ivp(vdp_driven, [a, b], [1, 0], t_eval=t) plt.plot(sol.y[0], sol.y[1])

The first phase plot looked like this:

vanderpol_driven_phase_1k.png

That's weird. So I increased the number of solution points by changing the last argument to linspace from 1,000 to 10,000. Here's the revised plot.

vanderpol_driven_phase_10k.png

That's a lot different. What's going on? The solutions to the driven Van der Pol equation, and especially their derivative, change abruptly, so abruptly that if there's not an integration point in the transition zone you get the long straight lines you see above. With more resolution these lines go away. This is understandable when you look at the plot of the solution:

vanderpol_driven.png

and of its derivative:

vanderpol_driven_derivative.png

The solution looks fairly regular but the varying amplitudes of the derivative highlight the irregular behavior. The correct phase plot is not as crazy as the low-resolution version suggests, but we can see that the solution does not quickly settle into a limit cycle as it does in the undriven case.

More Van der Pol posts
External Content
Source RSS or Atom Feed
Feed Location http://feeds.feedburner.com/TheEndeavour?format=xml
Feed Title John D. Cook
Feed Link https://www.johndcook.com/blog
Reply 0 comments