<jupyter_start><jupyter_text>¿Cómo funciona la suspensión de un auto?> Una primer aproximación al modelo de la suspensión de un automovil es considerar el oscilador armónico amortiguado. El cual se representa a través de la siguiente ecuación diferencial. \begin{equation}m\ddot{x} + k x + B \dot{x} = 0\end{equation}donde $k$ es la constante del muelle, y $B$ la constante de amortiguación.  Referencia:    - https://docs.scipy.org/doc/scipy/reference/generated/scipy.integrate.odeint.html   - https://docs.scipy.org/doc/scipy/reference/index.html ___  Esta es una ecuación diferencial ordinaria (EDO). En python existe una función llamada _odeint_ del paquete _integrate_ de la libreria _scipy_, que permite integrar sistemas del tipo \begin{equation}\frac{dy}{dt} = f(x,y)\end{equation}con condiciones iniciales $y(0) = y_{0}$. Ahora bien, si nos fijamos bien, la ecuación diferencial que tenemos es de segundo orden. No hay problema. La podemos simplificar como un sistema de ecuaciones de primer orden como sigue:\begin{align}\dot{x} & = y \\\dot{y} & = -\frac{k}{m} x - \frac{B}{m} y  \end{align}<jupyter_code>import matplotlib.pyplot as plt
import numpy as np
from scipy.integrate import odeint

%matplotlib inline
from ipywidgets import *
import matplotlib as mpl
label_size = 14
mpl.rcParams['xtick.labelsize'] = label_size 
mpl.rcParams['ytick.labelsize'] = label_size 



plt.legend(loc = 'best', prop={'size': 14})    
plt.xlabel('tiempo', fontsize = 14) 
plt.show()
plt.figure(figsize = (6,6))

plt.show()
def amortiguado(t = 0):
    fig = plt.figure()
    ax = fig.add_subplot(1, 1, 1)

    ax.text(4, .6, 'tiempo =    %s'%tiempo[t])
    ax.text(4, .5, 'posición =  %s'%xx[t])
    fig.canvas.draw()

t_f = len(tiempo)<jupyter_output><empty_output><jupyter_text>Casos Teníamos\begin{equation}m\ddot{x} + k x + B \dot{x} = 0\end{equation} si recordamos que $\omega_0 ^2 = k/m$ y definimos $B/m\equiv 2\Gamma$, tendremos\begin{equation}\ddot{x} + 2\Gamma \dot{x}+ \omega_0^2 x = 0\end{equation}  Amortiguado Si $\omega_0^2 > \Gamma^2$ se tiene movimiento oscilatorio amortiguado.<jupyter_code>omega0 = k/m
Gamma = B/(2*m)
omega0**2, Gamma**2
omega0**2 > Gamma**2<jupyter_output><empty_output><jupyter_text>Entonces, el primer caso que ya habíamos presentado corresponde a movimiento amortiguado.<jupyter_code>plt.legend(loc = 'best', prop={'size': 14})    
plt.xlabel('tiempo', fontsize = 14) 
plt.show()<jupyter_output><empty_output><jupyter_text>Sobreamortiguado Si $\omega_0^2 < \Gamma^2$ se tiene movimiento oscilatorio amortiguado.<jupyter_code>k = .1 # Constante del muelle
m = 1.0   # Masa
B = .5 # Constante de amortiguación
omega0 = k/m
Gamma = B/(2*m)
omega0**2, Gamma**2
omega0**2 < Gamma**2

plt.legend(loc = 'best', prop={'size': 14})    
plt.xlabel('tiempo', fontsize = 14) 
plt.show()
plt.plot(xxA,yyA, c = 'r', label="Posicion") 

plt.legend(loc = 'best', prop={'size': 14})    
plt.xlabel('tiempo', fontsize = 14) 
plt.show()<jupyter_output><empty_output><jupyter_text>Amortiguamiento crítico Si $\omega_0^2 = \Gamma^2$ se tiene movimiento aperiódico crítico (amortiguamiento crítico).<jupyter_code>k = np.sqrt(.0625) # Constante del muelle
m = 1.0   # Masa
B = .5 # Constante de amortiguación
omega0 = k/m
Gamma = B/(2*m)
omega0**2, Gamma**2
omega0**2 == Gamma**2

plt.legend(loc = 'best',prop={'size': 14})  
plt.xlabel('tiempo', fontsize = 14) 
plt.show()<jupyter_output><empty_output>
{'fraction_non_alphanumeric': 0.14783372365339578, 'fraction_numerical': 0.025468384074941453, 'mean_word_length': 4.881239242685026, 'pattern_counts': {'":': 0, '<': 23, '<?xml version=': 0, '>': 24, 'https://': 2, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '5', 'dir': 'jupyter-structured-clean-dedup', 'id': '437206', 'license': 'MIT', 'n_tokens_mistral': 1400, 'n_tokens_neox': 1343, 'n_words': 326, 'path': 'Intro/Clase7/Clase7_OsciladorAmortiguado.ipynb', 'repo_name': 'RoboticaIndustrial/Calando', 'size': '3416'}