5.3. TP Modélisation d’un looping#

Montagne russe

%matplotlib inline
# bibliotheques de base
import matplotlib
import numpy as np
import matplotlib.pyplot as plt
from   time import time
from IPython.display import Markdown, display
def printmd(string):
    display(Markdown(string))
# test si numero étudiant spécifier
from validation.validation import info_etudiant
try: NUMERO_ETUDIANT
except NameError: NUMERO_ETUDIANT = None 
if type(NUMERO_ETUDIANT) is not int :
    printmd("**ERREUR:** numéro d'étudiant non spécifié!!!")
    NOM,PRENOM,NUMERO_ETUDIANT=info_etudiant()
# parametres spécifiques
_uid_    = NUMERO_ETUDIANT 
_precis_ = 1.0e-5
printmd("**Login étudiant {} {} uid={}**".format(NOM,PRENOM,_uid_))
np.random.seed(_uid_)
# parametres
_NC_ = 1 + np.random.randint(9)
_H_  = 8 + np.random.randint(12)
printmd("**parametre:** courbe numéro={}  h={}".format(_NC_,_H_))

5.3.1. liste des courbes#

la courbe étudiée correspond au numéro précédent

  1. \[ x^{2} - y^{2} + y \left(x^{2} + y^{2}\right) = 0 \]
  2. \[27 x^{2} - y^{2} \left(- y + 9\right) = 0\]
  3. \[x^{2} - 3 y^{2} + y \left(x^{2} + y^{2}\right) = 0\]
  4. \[2 x^{2} - 6 y^{2} + y \left(x^{2} + y^{2}\right) = 0\]
  5. \[x^{2} - \frac{y^{2} \left(- y + 3\right)}{y + 1} = 0\]
  6. \[54 x^{2} - y^{2} \left(- y + 18\right) = 0\]
  7. \[x^{2} - \frac{y^{2} \left(- y + 6\right)}{y + 2} = 0\]
  8. \[2 x^{2} - 2 y^{2} + y \left(x^{2} + y^{2}\right) = 0\]
  9. \[x^{2} - \frac{y^{2} \left(- y + 12\right)}{y + 4} = 0\]
  10. \[3 x^{2} - 9 y^{2} + y \left(x^{2} + y^{2}\right) = 0\]

5.3.2. Travail demandé#

  1. dans le cas d’un looping elliptique de demi grand axe h/2 et de demi petit axe h/3

\[ \frac{x^2}{(\frac{h}{3})^2} + \frac{y(y-h)}{(\frac{h}{2})^2}=0\]
faire l'étude précédente (vu avec un looping circulaire) 
  1. Appliquer l’étude au cas du looping sélectionné (numéro dans la cellule précédente)

  2. Comparer les résultats et répondre aux questions du notebook.

  3. Ecrire un compte rendu au format LaTex dans le fichier monCR.tex

  • formalisme Lagrangien

  • simulation numérique

  1. Convertir le compte rendu en pdf en utilisant la commande

     pdflatex monCR.tex
    

5.3.3. Mise en équation avec sympy#

# sympy avec Lagrange
import sympy as sp
from sympy.physics.mechanics import *
sp.init_printing()

5.3.3.1. Modèlisation avec sympy#

modèle simple d’un masse m se déplacant sur une courbe sous l’effet de la gravité

  1. définir les degrés de liberté du système et les symbols

  2. calculer le lagrangien du sytème non contraint


5.3.4. Etude du looping elliptique#

  • définition de la contrainte (cas d’une ellipse passant par (0,0)) de demi grand axe h/2 et de demi petit axe h/3.

    • définir la contrainte en la normalisant, i.e. avec une hauteur maximale de h

\[ \frac{x^2}{(\frac{h}{3})^2} + \frac{y(y-h)}{(\frac{h}{2})^2}=0\]
  • définir sous sympy l’équation de la contrainte

  • construire la méthode de Lagrange sous contrainte (holonomique)

  • en déduire les équations de Lagrange sous contrainte du problème

  • mettre le système sous forme matricielle

  • faire le changement de variable en introduisant \(Y\) t.q

\[ A \dot{Y} = B(Y) \]
  • génération automatique des fonctions pour le calcul de A et de B

# Lagrange

5.3.5. Simulation numérique#

  • en utilisant la bibliothéque scikits.odes, écrire la fonction résidu qui calcule $\( res = A\dot{Y} - B(Y)\)$

  • choisir la valeur des paramêtres

  • vérifier en utilisant les points d’équilibre

  • résoudre le système en fixant les conditions initiales

  • tracer la trajectoire

# bibliotheque scikit
from scikits.odes.dae import dae
from scikits.odes.ode import ode
from scipy.optimize import fsolve
# simulation numérique

5.3.6. Analyse de la solution#

  • calculer le module de l’accélération le long de la trajectoire, pour différente vitesse initiale

  • comparer par rapport au cas d’un cercle de même hauteur h

5.3.7. Etude avec la courbe demandée#

  • faire la même étude avec la courbe sélectionnée

  • attention à la vitesse initiale

  • refaire le calcul en prenant en compte une force de frottement \(-C_f \vec{U}\)

  • Ecrire un rapport de quelques pages avec votre analyse et conclusion dans le fichier monCR.tex

# simulation

5.3.8. FIN du TP#