import numpy as np
import matplotlib.pyplot as plt
import math
from scipy.integrate import odeint
M=9
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
A=12
a=1
g=9.81
def Chaotic(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
B=14
b=1
g=9.81
def Chaotic2(y,t,B,b,g):
theta, omega, radius, Rho = y
dydt = [omega, (1/radius)*(-g*(np.sin(theta))-2*(Rho*omega)), Rho, (1/(B+b))*(a*radius*(omega**2)-B*g+b*g*(np.cos(theta)))]
return dydt
y0 = [np.pi/2 ,0 ,1 ,0]
t = np.linspace(0,10,1000000)
sul = odeint(Atwood, y0, t, args=(M,m,g))
chaos=odeint(Chaotic, y0, t, args=(A,a,g))
chaos2=odeint(Chaotic2, y0, t, args=(B,b,g))
plt.plot(sul[:,0], sul[:,1],'g', label="μ=9")
plt.plot(chaos[:,0],chaos[:,1],'b', label="μ=12")
plt.plot(chaos2[:,0],chaos2[:,1],'y', label="μ=14")
plt.legend(loc="upper left")
plt.ylabel('Angular velocity (radians per second)')
plt.xlabel('Angular displacement (radians)')
plt.title('Fig 10 - Phase Plot of different systems showing Chaotic Motion')
plt.grid()
plt.show()