import numpy as np
import matplotlib.pyplot as plt
import math
from scipy.integrate import odeint
M=10
m=1
g=9.81
def Atwood(y,t,M,m,g):
theta, omega, radius, Rho = y
dydt = [omega, (1/radius)*(-g*(np.sin(theta))-2*(Rho*omega)), Rho, (1/(M+m))*(m*radius*(omega**2)-M*g+m*g*(np.cos(theta)))]
return dydt
y0 = [(1.1*np.pi)/2 ,0 ,1 ,0]
t = np.linspace(0,10,100000)
sul = odeint(Atwood, y0, t, args=(M,m,g))
A=12
a=1
g=9.81
def second(y,t,A,a,g):
theta, omega, radius, Rho = y
dydt = [omega, (1/radius)*(-g*(np.sin(theta))-2*(Rho*omega)), Rho, (1/(A+a))*(a*radius*(omega**2)-A*g+a*g*(np.cos(theta)))]
return dydt
y1 = [(np.pi)/2 ,0 ,1 ,0]
t = np.linspace(0,10,10000000)
sal = odeint(second, y1, t, args=(A,a,g))
plt.plot(sal[:,0], sal[:,1], 'r')
plt.plot(sul[:,0], sul[:,1], 'g')
plt.ylabel('Angular velocity (radians per second)')
plt.xlabel('Angular displacement (radians)')
plt.title('Fig 12 - Phase Plot')
plt.grid()
plt.show()