Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Por su parte, el desfase del movimiento respecto a la fuerza que conduce el sistema viene
dado por
Objetivo
- Hacer uso del lenguaje de programación Python para resolver numéricamente la ecuación
diferencial que rige el sistema masa resorte sujeto a una forzante periódica.
El código.
A continuación defino la ecuación diferencial que quiero resolver, para ello creo una
función que se llama "masa_resorte_Forz"
Una vez definidas las ecuaciones a resolver, puedo empezar a definir los parámetros del
sistema que deseo simular, y los almaceno en un vector de números llamado param:
gamma = 2.
K = 30. #N/m
F_0 = 10. # Newtons
m = 1. # Kg
omega_0_sq = K/m
omega_simul = 2.
#omega_simul = np.sqrt(omega_0_sq)
Dibujemos cómo deben ser la Amplitud y el desfase del movimiento de acuerdo a las
ecuaciones teóricas, para ello construyo con muchos valores omega y evalúo todos esos
valores en la ecuación teórica de A y delta. Finalmente, los dibujo:
omega_plot = np.linspace(0,20,500)
A = F_0/m/(np.sqrt(np.square(omega_0_sq - np.square(omega_plot)) +
gamma*gamma*np.square(omega_plot)))
delta = np.arctan((omega_plot*gamma)/(omega_0_sq -
np.square(omega_plot)))
plt.figure(1)
plt.title('Amplitud vs frecuencia')
plt.plot(omega_plot,A)
plt.savefig('Amplitud_vs_Omega.png')
plt.xlabel('omega')
plt.ylabel('Amplitud')
plt.figure(5)
plt.title('delta vs frecuencia')
plt.plot(omega_plot,delta)
plt.savefig('delta_vs_omega.png')
plt.xlabel('omega')
plt.ylabel('delta')
Procedo a definir las condiciones iniciales del sistema, el tiempo que quiero simular y hago
uso de la función odeint la cual resuelve numéricamente la ecuación diferencial. El
resultado de la solución será almacenado en un vector de datos llamado solucion
y0 = [0.2, 0.0]
t = np.linspace(0, 20, 1000)
solucion = odeint(masa_resorte_Forz, y0, t, args=(param,))
Fuerza = F_0/10.*np.cos(omega_simul*t)
plt.figure(2)
plt.title('Fuerza y Movimiento')
plt.plot(t, Fuerza, 'b', label='Fuerza')
plt.plot(t, solucion[:, 0], 'r', label='Solucion movimiento')
plt.legend(loc='best')
plt.xlabel('t')
plt.grid()
plt.savefig('desfase.png')
Qué tan desfasados son los picos de la forzante externa respecto a los de la solución del
movimiento? Qué pasa cerca de la resonancia? En qué se diferencia el desfase \phi que
se calculaba con las condiciones iniciales y este desfase \delta?