Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
Download
1931 views
ubuntu2004
1
import numpy as np
2
import matplotlib.pyplot as plt
3
import math
4
from scipy.integrate import odeint
5
6
M=10
7
m=1
8
g=9.81
9
10
def Atwood(y,t,M,m,g):
11
theta, omega, radius, Rho = y
12
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)))]
13
return dydt
14
15
y0 = [(1.1*np.pi)/2 ,0 ,1 ,0]
16
t = np.linspace(0,10,100000)
17
sul = odeint(Atwood, y0, t, args=(M,m,g))
18
19
A=12
20
a=1
21
g=9.81
22
23
def second(y,t,A,a,g):
24
theta, omega, radius, Rho = y
25
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)))]
26
return dydt
27
28
y1 = [(np.pi)/2 ,0 ,1 ,0]
29
t = np.linspace(0,10,10000000)
30
sal = odeint(second, y1, t, args=(A,a,g))
31
32
33
plt.plot(sal[:,0], sal[:,1], 'r')
34
plt.plot(sul[:,0], sul[:,1], 'g')
35
plt.ylabel('Angular velocity (radians per second)')
36
plt.xlabel('Angular displacement (radians)')
37
plt.title('Fig 12 - Phase Plot')
38
plt.grid()
39
plt.show()
40