Bonjour, je dois élaborer un programme python qui étudie la chute d'un bloc mais je suis bloqué… Je ne vois absolument pas comment démarrer… Y aurait-il quelqu'un qui pourrait m'aider???
Voici l'énoncé :
2. Simulation de la chute d’un bloc rocheux La chute d'un bloc est simulée par une série de rebonds. Lorsque le bloc est en l'air, il est en condition de chute libre (on néglige ici les frottements de l'air sur le bloc). Sa trajectoire est simplement calculée à partir du principe fondamental de la dynamique. La vitesse initiale du bloc est (𝑉𝑥0, 𝑉𝑧0) et le point de départ est aux coordonnées (𝑋0,𝑍0). Pour simplifier le problème, le profil de la pente est défini par les points suivants : (0, 120), (0, 80), (10, 80), (10, 50), (30, 50), (30, 0), (500, 0).
L’objectif de ce TP est de réaliser un grand nombre de lancés de blocs en modifiant leur vitesse de départ aléatoirement et déterminer une zone où peuvent arriver le bloc. Il s’agit de 2 parties à réaliser pour arriver à l’objectif final : a. Réaliser un programme en Python qui peut calculer la trajectoire et le point d’arrivée d’un bloc avec les vitesses initiales données. b. Effectuer un calcul probabiliste pour déterminer la zone d’arrivée d’un bloc en modifiant aléatoirement les vitesses initiales. Pour ces deux parties, il est d’abord demandé de réaliser un programme en python, pour lequel les paramètres seront entrés directement dans le script, puis d’intégrer le programme dans une interface graphique.
2.1 Détermination du point d’arrivée Pour les sous-parties 2.1 et 2.2, l’objectif est de coder en python un programme qui demande les vitesses initiales du bloc rocheux, puis affiche le point d’arrivée. On considère dans cette partie que (𝑉𝑥0, 𝑉𝑧0) = (6 m.s1, -10 m.s-1) et que (𝑋0, 𝑍0) = (0, 100m).
2.1.1 Détermination du premier point d’intersection Rechercher le premier point d’intersection entre la trajectoire du bloc et le profil du terrain. On appelle ce point le premier point d’impact ou le premier point de rebond, et on le définit ici par les coordonnées (𝑋𝑖𝑚𝑝𝑎𝑐𝑡, 𝑍𝑖𝑚𝑝𝑎𝑐𝑡
Pour rappel, la trajectoire balistique sans frottement d’un projectile partant du point (𝑋0,𝑍0) avec une vitesse (𝑉x0,𝑉z0) est :
𝑧 = −
1 2
𝑔( 𝑥−𝑋0 𝑉𝑥0
)
2
+ 𝑉𝑧0 ( 𝑥−𝑋0 𝑉𝑥0
) + 𝑍0 (1)
où 𝑔 = 9.81 m.s−2. Une stratégie possible consiste à identifier sur quel tronçon l’impact va avoir lieu, ce qui donne le 𝑍𝑖𝑚𝑝𝑎𝑐𝑡 . Une fois ce 𝑍𝑖𝑚𝑝𝑎𝑐t fixé, il faut inverser l’équation (1) avec z = 𝑍𝑖𝑚𝑝𝑎𝑐𝑡 afin de trouver x = X 𝑖𝑚𝑝𝑎𝑐𝑡. Pour cette seconde étape, on note ( 𝑥−𝑋0 𝑉𝑥0 ) = 𝑋, l’équation (1) devient : − 1 2 𝑔𝑋2 + 𝑉𝑧0𝑋 + 𝑍0 − 𝑍𝑖𝑚𝑝𝑎𝑐𝑡 qui a pour racine 𝑋1 = −𝑉𝑧0−√Δ −𝑔 et 𝑋2 = −𝑉𝑧0+√Δ −𝑔 , où Δ = 𝑉𝑧0 2 + 2𝑔(𝑍0 − 𝑍𝑖𝑚𝑝𝑎𝑐𝑡. On peut voir que 𝑋2 ≤ 0 alors que 𝑋1 ≥ 0. Donc seule 𝑋1 est une solution cohérente. On a donc 𝑋1 = 𝑋𝑖𝑚𝑝𝑎𝑐𝑡−𝑋0 𝑉𝑥0 = −𝑉𝑧0−√Δ −𝑔 , donc : 𝑋𝑖𝑚𝑝𝑎𝑐𝑡 = −𝑉𝑧0−√Δ −𝑔 × 𝑉𝑥0 + 𝑋0
Une fois la position du premier rebond trouvée, calculer les vitesses après l’action du rebond. Pour cela, on calcule dans un premier temps la vitesse au point d’impact, avant l’action du rebond : 𝑉𝑥,𝑖− = 𝑉𝑥0 (2) 𝑉𝑧,𝑖− = −𝑔 𝑋𝑖𝑚𝑝𝑎𝑐𝑡−𝑋0 𝑉𝑥0 + 𝑉𝑧0 (3) Ensuite, on calcule les vitesses après le rebond en utilisant les coefficients d’amortissement. 𝑉𝑥,𝑖+ = 𝐶1𝑉𝑥,𝑖− (4)
TP d’informatique appliquée – GGC3 – Polytech Grenoble
𝑉𝑧,𝑖+ = −𝐶2𝑉𝑧,𝑖− (6) Avec 𝐶1 = 0.9 et 𝐶2 = 0.4
2.1.2 Détermination du point d’arrivée et trajectoire Réaliser l’ensemble de l’algorithme de calcul d’une chute de blocs pour (𝑉𝑥0, 𝑉𝑧0) = (6 m.s-1, -10 m.s-1) et (𝑋0, 𝑍0) = (0, 100m). Il s’agit de trouver les points impacts successifs, et calculer les vitesses après l’action de chaque rebond. Vous pouvez utiliser un tableau pour sauvegarder les valeurs 𝑋𝑖𝑚𝑝𝑎𝑐𝑡, 𝑍𝑖𝑚𝑝𝑎𝑐𝑡 , 𝑉𝑥,𝑖−, 𝑉𝑧,𝑖−, 𝑉𝑥,𝑖+, 𝑉𝑧,𝑖+. On considère que le bloc s’arrête (et donc cesse de rebondir) quand la norme de sa vitesse au moment du rebond est inférieure à 0.1 m.s-1 . Le critère d’arrêt est donc
√𝑉𝑥,𝑖+ 2 + 𝑉𝑧,𝑖+ 2 < 0.01 m.s−1 (7)
Une fois déterminé le point d’arrêt, l’ensemble des points d’impact et les vitesses de rebond, tracer un graphique montrant la pente en noir, et la trajectoire suivi par le bloc jusqu’à son arrêt.
Merci par avance pour votre aide.
-----