- home
- PDF (letter size)
- PDF (legal size)
- Matlab source code nma_project_511.m.txt

sometime in 2009 Compiled on December 15, 2018 at 12:56 Noon

1 Introduction

2 Matlab implementation

3 Results and output

3.1 Test case 1

3.2 Test case 2

3.3 Test case 3

4 Conclusion

2 Matlab implementation

3 Results and output

3.1 Test case 1

3.2 Test case 2

3.3 Test case 3

4 Conclusion

Report for course EGME 511 (Advanced Mechanical Vibration). California state university, Fullerton, CA. Van der Pol diﬀerential equation is given by \[ x^{\prime \prime }\left ( t\right ) -c\left ( 1-x^{2}\left ( t\right ) \right ) x^{\prime }\left ( t\right ) +kx\left ( t\right ) =0 \] In this analysis, we will consider the case only for positive \(c,k\). The above equation will be solved numerically using Matlab’s ODE45 for diﬀerent initial conditions, and the phase portrait (velocity vs. displacement) is plotted to show the limit cycle for diﬀerent initial conditions.

To use ODE45, one must ﬁrst convert the above second order ODE to two ODE’s, each of which is ﬁrst order. Letting \(x_{1}=x, x_{2}=x'(t)\) results in

\[ \left . \begin{array} [c]{c}x_{1}=x\\ x_{2}=x^{\prime }\left ( t\right ) \end{array} \right \} \left . \begin{array} [c]{c}x_{1}^{\prime }=x^{\prime }\left ( t\right ) =x_{2}\\ x_{2}^{\prime }=x^{\prime \prime }\left ( t\right ) =c\left ( 1-x^{2}\right ) x^{\prime }\left ( t\right ) -kx\left ( t\right ) \end{array} \right \} \left . \begin{array} [c]{c}x_{1}^{\prime }=x_{2}\\ x_{2}^{\prime }=c\left ( 1-x_{1}^{2}\right ) x_{2}-kx_{1}\end{array} \right \} \]

The system of equations to be solved by ODE45 is the following

\[\begin{pmatrix} x_{1}^{^{\prime }}\\ x_{2}^{^{\prime }}\end{pmatrix} =\begin{pmatrix} x_{2}\\ c\left ( 1-x_{1}^{2}\right ) x_{2}-kx_{1}\end{pmatrix} \]

Subject to initial conditions \(x_{1}(0) =x(0) \) and \(x_2(0) = x'(0)\). In the Matlab implementation below, the values of \(c,k\) and the initial conditions are deﬁned at the top of the code. This needs to be modiﬁed to change the initial conditions before running the program again.

The program was run for a number of diﬀerent initial conditions (diﬀerent \(x\left ( 0\right ) \) and diﬀerent \(v\left ( 0\right ) \)). In all cases, \(c=1,k=1\) was used. It is noticed that one limit cycle is reached in all cases. Both the \(x\left ( t\right ) \) and the phase plot where shown. The following are output from 3 diﬀerent runs made. The title on the plots show the initial conditions used.

A non-linear second order ODE was solved numerically using Matlab’s ode45. The solution to the Van Der Pol was found to contain a limit cycle in the phase portrait when starting from any initial conditions.