Programme Python chute d'un bloc
Répondre à la discussion
Affichage des résultats 1 à 9 sur 9

Programme Python chute d'un bloc



  1. #1
    invited0c1336b

    Programme Python chute d'un bloc


    ------

    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 (𝑋𝑖𝑚𝑝𝑎𝑐𝑡, 𝑍𝑖𝑚𝑝𝑎𝑐&#119905

    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 − 𝑍𝑖𝑚𝑝𝑎𝑐&#119905. 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.

    -----

  2. #2
    JPL
    Responsable des forums

    Re : Programme python chut d'un bloc

    Lis d’abord EXERCICES et FORUM et fais ce qui est demandé.
    Rien ne sert de penser, il faut réfléchir avant - Pierre Dac

  3. #3
    umfred

    Re : Programme python chut d'un bloc

    Dans un 1er temps, fait le "à la main" pour voir ce que ça doit donner au début.

  4. #4
    invited0c1336b

    Re : Programme python chut d'un bloc

    Je l'ai fait mais je n'arrive pas à passer de l'un à l'autre

  5. A voir en vidéo sur Futura
  6. #5
    JPL
    Responsable des forums

    Re : Programme python chute d'un bloc

    Je ne comprends pas ta réponse. De toutes façons explique ici de façon détaillée ce que tu as fait sinon tu n’auras pas d’aide.
    Dernière modification par JPL ; 27/02/2020 à 17h51.
    Rien ne sert de penser, il faut réfléchir avant - Pierre Dac

  7. #6
    invited0c1336b

    Re : Programme python chute d'un bloc

    Je suis bloque après la définition des variables vitesse initiale et position initiale

  8. #7
    umfred

    Re : Programme python chute d'un bloc

    euh c'est très léger ..... l'étape d'après c'est de les passer à ta fonction de calcul (donnée dans l'énoncé) comme tu as du le faire à la main

  9. #8
    invite48b9ce0f

    Re : Programme python chute d'un bloc

    FAIMDESAVOIR as-tu la solution à ton problème car j'ai le même exercice et je ne sais vraiment pas comment m'y prendre ?
    S'il te plaît

  10. #9
    umfred

    Re : Programme python chute d'un bloc

    dessine le profil sur papier, écris les équations et résout le problème manuellement (comme un exercice de physique) après écrit le code qui correspond à tes équations

Discussions similaires

  1. [Python] Problème de lag de programme et essai de Timer python
    Par Loupsio dans le forum Programmation et langages, Algorithmique
    Réponses: 20
    Dernier message: 26/01/2018, 16h14
  2. [Python] subprocess, lancer un autre programme avec python
    Par Loupsio dans le forum Programmation et langages, Algorithmique
    Réponses: 10
    Dernier message: 30/11/2016, 19h56
  3. Programme python
    Par invite70312004 dans le forum Programmation et langages, Algorithmique
    Réponses: 5
    Dernier message: 20/09/2013, 22h52
  4. Problème avec bloc de puissance - tension chute
    Par invite767cea93 dans le forum Électronique
    Réponses: 15
    Dernier message: 27/04/2012, 16h07
  5. Programme en Python
    Par invitec13ffb79 dans le forum Logiciel - Software - Open Source
    Réponses: 7
    Dernier message: 19/09/2011, 20h14