Example 7: Parametrically excited Rayleigh oscillator ----------------------------------------------------- MMS example on a Rayleigh oscillator subject to parametric forcing. This configuration was studied by Nayfeh and Mook in *Nonlinear Oscillations* (1995), section 5.7.2. Note that the Rayleigh oscillator is quite similar to the Van der Pol oscillator as they are both associated to damping nonlinearities. System description ^^^^^^^^^^^^^^^^^^ .. figure:: /_static/Rayleigh_oscillator.svg :alt: Nonlinear system. :width: 70% :align: center Illustration of a parametrically forced Rayleigh oscillator through the time-varying stiffness :math:`\omega_0^2 + 2 F \cos(\omega t)`. The system's equation is .. math:: \ddot{x} + c \dot{x} + \gamma \dot{x}^{3} + \omega_{0}^{2} x = -2x F \cos(\omega t), where - :math:`x` is the oscillator's coordinate, - :math:`t` is the time, - :math:`\dot{(\bullet)} = \mathrm{d}(\bullet)/\mathrm{d}t` is a time derivative, - :math:`c` is the linear viscous damping coefficient, - :math:`\omega_0` is the oscillator's natural frequency, - :math:`\gamma` is the nonlinear damping coefficient, - :math:`F` is the forcing amplitude, - :math:`\omega` is the forcing frequency. A parametric response around twice the oscillator's frequency is sought so the frequency is set to .. math:: \omega = 2\omega_0 + \epsilon \sigma where - :math:`\epsilon` is a small parameter involved in the MMS, - :math:`\sigma` is the detuning. The parameters are then scaled to indicate how weak they are: - :math:`c = \epsilon \tilde{c}` indicates that damping is weak, - :math:`F = \epsilon \tilde{F}` indicates that forcing is weak, - :math:`\gamma = \epsilon \tilde{\gamma}` indicates that nonlinear damping is weak. Code description ^^^^^^^^^^^^^^^^ The script below allows to - Construct the dynamical system. - Apply the MMS to the system, - Evaluate the MMS results at steady state, - Compute the forced response and the backbone curve, - Evaluate the stability of the computed forced solution. .. literalinclude:: ../../../examples/Rayleigh_parametric.py :language: python :linenos: