import numpy as np
import matplotlib.pyplot as plt
x = 0.3
dt = 0.01
k = 0.5
b = 0.1
t = np.arange(0, 3,dt)
F = np.zeros_like(t)
x1 = 0
for i in range(len(t)):
if t[i]>1:
x = 0.3
else:
x = 0
x1dot = -k*x1/b + x
x1 = x1 + dt*x1dot # Euler method
F[i] = k*x1dot
plt.figure()
plt.plot(t, F)
plt.grid()
plt.show()
dt = 0.01
k = 0.5
b = 0.1
t = np.arange(0, 3,dt)
F = np.zeros_like(t)
x1 = 0
for i in range(len(t)):
if t[i] > 1:
x = 0.3 + 0.15*np.cos(2*np.pi*t[i])
else:
x = 0
x1dot = -k*x1/b + x
x1 = x1 + dt*x1dot # Euler method
F[i] = -k**2*x1/b + k*x
plt.figure()
plt.plot(t, F)
plt.show()
dt = 0.01
k = 0.5
b = 0.1
t = np.arange(0, 10, dt)
x = np.zeros_like(t)
x1 = 0
for i in range(len(t)):
if 0<t[i]<=1:
F = 0
elif 1<t[i]<=4:
F = 1
else:
F = 0
x1dot = -k/b*x1 + F/b
x1 = x1 + dt*x1dot # Euler method
x[i] = x1
plt.figure()
plt.plot(t, x)
plt.grid()
plt.show()
dt = 0.01
k = 0.5
b = 0.1
t = np.arange(0, 10,dt)
F = 1 + 0.2*np.cos(2*np.pi*2*t)
x = np.zeros_like(t)
x1 = 1
for i in range(len(t)):
x1dot = -k/b*x1 + F[i]/b
x1 = x1 + dt*x1dot # Euler method
x[i] = x1
plt.figure()
plt.plot(t, x)
plt.grid()
plt.show()
x = 0.3
dt = 0.01
ks = 0.5
kp = 0.1
b = 1
t = np.arange(0, 10, dt)
F = np.zeros_like(t)
x1 = 0
for i in range(len(t)):
if 1< t[i]<1.3:
x = 3.3*(t[i]-1)
elif t[i] >= 1.3:
x = 1
else:
x = 0
x1dot = -ks*x1/b + x
x1 = x1 + dt*x1dot # Euler method
F[i] = ks*x1dot + kp*x
plt.figure()
plt.plot(t, F)
plt.show()
dt = 0.01
ks = 0.5
kp = 0.1
b = 0.1
t = np.arange(0, 10, dt)
x = np.zeros_like(t)
x1 = 0
for i in range(len(t)):
if 0<t[i]<1:
F = 0
elif 1<t[i]<5:
F = 1
else:
F = 0
x1dot = -ks*kp/(ks+kp)/b*x1 + F
x1 = x1 + dt*x1dot
x[i] = ks/(b*(ks+kp))*x1 + x1dot/(ks+kp)
plt.figure()
plt.plot(t, x)
plt.show()
for Biomechanical Analysis in Three Dimensions, 2001