\begin{align*} u = \frac{1}{m \omega_{d}} \int_{0}^{t} F(\tau) \, e^{-\beta \omega \bigl( t - \tau \bigr)} \sin \big[ \omega_{d} \bigl( t - \tau \bigr) \bigr] \, d \tau &= e^{-\beta \omega t} \Biggl[ \int_{0}^{t} \frac{F(\tau)}{m \omega_{d}} \, e^{\beta \omega \tau} \cos \big( \omega_{d} \tau \bigr) \, d \tau \, \sin \big( \omega_{d} t \bigr) - \int_{0}^{t} \frac{F(\tau)}{m \omega_{d}} \, e^{\beta \omega \tau} \sin \big( \omega_{d} \tau \bigr) \, d \tau \, \cos \big( \omega_{d} t \bigr) \Biggr] \\ &= e^{-\beta \omega t} \Bigl[ A \sin \big( \omega_{d} t \bigr) + B \cos \big( \omega_{d} t \bigr) \Bigr] \end{align*}
Usando los datos de un ejemplo anterior
import numpy as np
beta = 0.05
omega = 15.6604597634
omega_damping = omega*np.power(1-beta**2,1.0/2.0)
m = 42.0/981
F0 = 2.0
t1 = 1.0
Definiendo el impulso y las constantes
import matplotlib.pyplot as plt
from scipy import integrate
def rectangular(tau,F0,t1):
if tau <= t1:
return F0
else:
return 0
def dA(tau,omega,omega_damping,F0,t1):
return rectangular(tau,F0,t1)*np.exp(beta*omega*tau)*np.cos(omega_damping*tau)
def dB(tau,omega,omega_damping,F0,t1):
return rectangular(tau,F0,t1)*np.exp(beta*omega*tau)*np.sin(omega_damping*tau)
def A(tau,m,omega,omega_damping,F0,t1):
return integrate.quad(dA, 0, tau, args=(omega,omega_damping,F0,t1))[0]/(m*omega_damping)
def B(tau,m,omega,omega_damping,F0,t1):
return -integrate.quad(dB, 0, tau, args=(omega,omega_damping,F0,t1))[0]/(m*omega_damping)
t = np.linspace(0,3,3000)
posicion = np.zeros(3000)
for i in range(3000):
posicion[i] = np.exp(-beta*omega*t[i])*(A(t[i],m,omega,omega_damping,F0,t1)*np.sin(omega_damping*t[i]) \
+ B(t[i],m,omega,omega_damping,F0,t1)*np.cos(omega_damping*t[i]))
plt.figure(figsize=(19,8.5))
plt.plot(t, posicion)
plt.xlabel(r'$t$ seg.')
plt.ylabel(r'$u$ cm.')
plt.grid(True)
plt.show()
Usando los datos de un ejemplo anterior
beta = 0.05
omega = 16.5734727803
omega_damping = omega*np.power(1-beta**2,1.0/2.0)
m = 25.0/981
F0 = 2.0
t1 = 0.5
Definiendo el impulso y las constantes
import numpy as np
import matplotlib.pyplot as plt
from scipy import integrate
def sinoide(tau,F0,t1):
if tau <= t1:
return F0*np.sin(np.pi*tau/t1)
else:
return 0
def dA(tau,omega,omega_damping,F0,t1):
return sinoide(tau,F0,t1)*np.exp(beta*omega*tau)*np.cos(omega_damping*tau)
def dB(tau,omega,omega_damping,F0,t1):
return sinoide(tau,F0,t1)*np.exp(beta*omega*tau)*np.sin(omega_damping*tau)
def A(tau,m,omega,omega_damping,F0,t1):
return integrate.quad(dA, 0, tau, args=(omega,omega_damping,F0, t1))[0]/(m*omega_damping)
def B(tau,m,omega,omega_damping,F0,t1):
return -integrate.quad(dB, 0, tau, args=(omega,omega_damping,F0, t1))[0]/(m*omega_damping)
t = np.linspace(0,3,3000)
posicion = np.zeros(3000)
for i in range(3000):
posicion[i] = np.exp(-beta*omega*t[i])*(A(t[i],m,omega,omega_damping,F0,t1)*np.sin(omega_damping*t[i]) \
+ B(t[i],m,omega,omega_damping,F0,t1)*np.cos(omega_damping*t[i]))
plt.figure(figsize=(19,8.5))
plt.plot(t, posicion)
plt.xlabel(r'$t$ seg.')
plt.ylabel(r'$u$ cm.')
plt.grid(True)
plt.show()
Usando los datos de un ejemplo anterior
beta = 0.05
omega = 9.90454441153
omega_damping = omega*np.power(1-beta**2,1.0/2.0)
m = 30.0/981
F0 = 4.5
t1 = 0.3
t2 = 0.6
Definiendo el impulso y las constantes
import numpy as np
import matplotlib.pyplot as plt
from scipy import integrate
def triangular(tau,F0,t1,t2):
if tau <= t1:
return (F0*tau)/t1
elif t1 < tau <= t2:
return -(F0*(tau - t1))/(t2 - t1) + F0
else:
return 0
def dA(tau,omega,omega_damping,F0,t1,t2):
return triangular(tau,F0,t1,t2)*np.exp(beta*omega*tau)*np.cos(omega_damping*tau)
def dB(tau,omega,omega_damping,F0,t1,t2):
return triangular(tau,F0,t1,t2)*np.exp(beta*omega*tau)*np.sin(omega_damping*tau)
def A(tau,m,omega,omega_damping,F0,t1,t2):
return integrate.quad(dA, 0, tau, args=(omega,omega_damping,F0,t1,t2))[0]/(m*omega_damping)
def B(tau,m,omega,omega_damping,F0,t1,t2):
return -integrate.quad(dB, 0, tau, args=(omega,omega_damping,F0,t1,t2))[0]/(m*omega_damping)
t = np.linspace(0,3,3000)
posicion = np.zeros(3000)
for i in range(3000):
posicion[i] = np.exp(-beta*omega*t[i])*(A(t[i],m,omega,omega_damping,F0,t1,t2)*np.sin(omega_damping*t[i]) \
+ B(t[i],m,omega,omega_damping,F0,t1,t2)*np.cos(omega_damping*t[i]))
plt.figure(figsize=(19,8.5))
plt.plot(t, posicion)
plt.xlabel(r'$t$ seg.')
plt.ylabel(r'$u$ cm.')
plt.grid(True)
plt.show()