Chaîne de ressorts¶
Examen 2022
On considère pour commencer une masse \(m\) suspendue à un ressort de raideur \(k\) et de longueur au repos \(L\). A l’équilibre la masse est à la position \(z_{eq} = -L - a_{eq}\) où \(a_{eq}\) est l’allongement du ressort. On fera attention aux signes !
On prendra \(k = 10\) N/m, \(m=0.03\) kg, \(g = 9.81\) m/s\(^2\) et \(L=30\) cm.
Ecrire une fonction Python qui renvoie l’accélération de la masse en fonction de sa position \(z\) et du champ de gravité \(g\).
Résoudre numériquement l’équation différentielle avec pour condition initiale \(z=-L\) et \(v_0=0.1\) m/s et donner la position et la vitesse après \(0.1\) s.
Tracer la position sur environ 10 périodes.
Vérifier que l’énergie totale du système est conservée.
Ajuster votre graphique par une sinusoïde et vérifier que l’on a bien la relation \(\omega = \sqrt{k/m}\).
Retrouver la fréquence d’oscillation cette fois en calculant la transformée de Fourier numérique de la position. Comment améliorer la résolution de la valeur déduite ?
On considère maintenant une chaîne de masses reliées par des ressorts. On prendre \(N=10\) masses numérotées de \(0\) à \(N-1\).
On note \(z_i(t)\) la position de la masse numéro \(i\) et \(l_i(t)\) la longueur de chaque ressort (\(l_i(t)>0\)). On a \(z_i(t) = -\sum_{j=0}^{j=i} l_j(t)\)
Ecrire une fonction qui à partir d’un tableau des positions \(z_i\) renvoit un tableau des alongements \(a_i =l_i - L\).
L’accélération d’une masse \(i\) est donnée par :
étant entendu que pour la dernière masse, il n’y a pas de terme en \(a_{i+1}\).
Ecrire une fonction qui renvoie sous forme d’un tableau l’accélération en fonction des positions \(z_i\).
À l’équilibre, en présence du champ de gravité, l’alongement \(a_i\) est donné par la masse totale située en dessous (\(j\ge i\)) : \(a_i^\mathrm{eq} = (N-i)\frac{mg}{k}\).
Vérifier que pour cette position, l’accélération est bien nulle. (Il s’agit ici de tester la fonction écrite à la question précédente.)
Résoudre l’équation différentielle en prenant comme conditions initiales, pour chacune des masses, une vitesse nulle et une position déplacée de 20 cm vers le haut par rapport à sa position d’équilibre en présence du champ de gravité.
Qu’observez-vous dans le spectre du mouvement ?
On considère maintenant qu’à l’instant \(t=0\), le système est à l’équilibre. Cependant, on coupe le ressort numéro “0”. Ecrire une nouvelle fonction qui renvoit l’accélération en fonction des positions.
Résoudre l’équation différentielle. Tracer la position de la masse numéro \(N-1\) en fonction de \(t\) jusqu’à environ 0.4 s. Qu’observe-t-on ?
Tracez la position des masses numéro 0, 4 et 9 dans le référentiel en chute libre. Tracer aussi dans ce référentiel la position du centre de masse (position moyenne des masses).
Fonctions utilisées
from scipy.optimize import curve_fit
from numpy.fft import rfft, rfftfreq
from scipy.integrate import solve_ivp