5.3. TP Modélisation d’un looping#
%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
- \[ x^{2} - y^{2} + y \left(x^{2} + y^{2}\right) = 0 \]
- \[27 x^{2} - y^{2} \left(- y + 9\right) = 0\]
- \[x^{2} - 3 y^{2} + y \left(x^{2} + y^{2}\right) = 0\]
- \[2 x^{2} - 6 y^{2} + y \left(x^{2} + y^{2}\right) = 0\]
- \[x^{2} - \frac{y^{2} \left(- y + 3\right)}{y + 1} = 0\]
- \[54 x^{2} - y^{2} \left(- y + 18\right) = 0\]
- \[x^{2} - \frac{y^{2} \left(- y + 6\right)}{y + 2} = 0\]
- \[2 x^{2} - 2 y^{2} + y \left(x^{2} + y^{2}\right) = 0\]
- \[x^{2} - \frac{y^{2} \left(- y + 12\right)}{y + 4} = 0\]
- \[3 x^{2} - 9 y^{2} + y \left(x^{2} + y^{2}\right) = 0\]
5.3.2. Travail demandé#
dans le cas d’un looping elliptique de demi grand axe h/2 et de demi petit axe h/3
faire l'étude précédente (vu avec un looping circulaire)
Appliquer l’étude au cas du looping sélectionné (numéro dans la cellule précédente)
Comparer les résultats et répondre aux questions du notebook.
Ecrire un compte rendu au format LaTex dans le fichier
monCR.tex
formalisme Lagrangien
simulation numérique
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é
définir les degrés de liberté du système et les symbols
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
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
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