Partage
  • Partager sur Facebook
  • Partager sur Twitter

Calcul de vecteur vitesse initial d'un projectile

Trajectoire parabolique d'un projectile dans l'espace

    21 février 2011 à 19:16:46

    Bonsoir les zéros physiciens !

    Je ne connais pas le niveau de difficulté du problème, étant donné que je n'ai moi-même pas encore commencé le chapitre de mécanique de Tle S. Jusqu'à maintenant, j'ai tâtonné en fouillant dans mes livres, et j'ai réussi à créer un semblant de moteur physique vérifiant les 3 lois de Newton. Cependant, dans le cadre de la programmation d'une application en C++ en 3D, j'ai besoin de savoir avec quelle "force" (vitesse dans le problème) un personnage doit lancer un projectile pour qu'il atterrisse à un endroit que l'utilisateur a choisi.

    Enoncé :
    Nous avons 2 points quelconques A et B dans l'espace. Un objet "P" est en A, à vitesse nulle initialement, et soumis uniquement à son poids.
    Question :
    Comment trouver le vecteur vitesse "Vinit" à appliquer à P pour qu'il aille en B en décrivant une trajectoire parabolique ?

    Je vous remercie pour votre aide :)
    • Partager sur Facebook
    • Partager sur Twitter
    Anonyme
      21 février 2011 à 20:30:46

      As-tu trouvé l'équation de la trajectoire ?

      Pour rappel :

      <math>\(y = \frac{-g}{2.Vo^2.cos^2(\alpha)}x^2 + [tan(\alpha)]x + h\)</math>

      avec :
      Vo la valeur du vecteur vitesse initial
      <math>\(\alpha\)</math> l'angle du vecteur vitesse initial avec l'horizontal
      h la hauteur initial

      Je ne sais pas si cela peut t'aider.
      • Partager sur Facebook
      • Partager sur Twitter
      Anonyme
        21 février 2011 à 21:47:55

        Bonsoir,
        petites précisions
        on vous a donné l'équation de la trajectoire dans un repère plan Oxy
        Dans l'espace, la trajectoire d'un objet pesant lancé abandonné à lui-même est toujours plane, dans le plan vertical passant par A et B
        Mais dans l'espace 3D Oxyz , vous allez devoir exprimer l'équation dans un plan qui n'est plus un plan de coordonnées...ça complique sensiblement les calculs . En particulier si on veut un calcul général dans un paln qui ne passe pas par Oz

        Dans le plan une parabole générale y= ax^2 + bx +c dépend de trois paramètres, pour trouver a,b,c vous obtenez trois équations en écrivant que la trajectoire passe par A et B et que la tangente en A point de départ est dirigé par V0

        Pour trouver l'équation 3D ,vous pouvez tenter un changement de repère ad hoc. Je ne suis pas sur que ce sera plus simple que la méthode physique directe que je vous suggére.

        Vous avez, je pense intérêt à exprimer l'équation de la parabole sous forme paramètrique r(t)=(x(t), y(t), z(t)) et de résoudre l'équation de Newton mr"=-mgk ( r vecteur position, k vecteur unitaire vertical), en la projetant sur chaque axe.

        On en tire x(t),y(t),s(t) avec des intégrations faciles et des constantes à déterminer par les conditions initiales et limites ( dont le fait que x(t),y(t),z(t) vérifient l'équation donnée du plan de la trajectoire et que x'(0),y'(0),z'(0) c'est V0.
        Comme c'est V0 que vous cherchez, cette condition introduit dans le système d'équations les composantes à déterminer de V0.

        • Partager sur Facebook
        • Partager sur Twitter
          22 février 2011 à 10:47:41

          Il n'y a pas besoin de prendre une équation "3D" dans ce cas : la mouvement se fait dans un plan (à 2 dimensions donc). L'équation donnée plus haut est suffisante.

          Sinon, en général, ce ne sont pas de vraies équations "physiques" qui sont résolues car elles peuvent devenir lourdes en calcul : pour un lancer, ça va... Quand il faut en faire 5000, ça devient un peu plus lourds, et pour peu qu'il y ait d'autres équations à gérer, le tout devient lent.

          Dans ton cas cependant, tu sais d'où tu pars et tu sais où tu arrives... S'il n'y a pas de vent ou de truc du genre, la résolution de la trajectoire devient connissime... Le sommet de la parabole se trouve exactement à mi-distance (x=L/2) et y=0 à x=0 et x=L. Ensuite, tu fixes l'angle d'envoi (mettons, 45) et tu remontes à la vitesse. L'histoire de la symétrie, c'est pour alléger les calculs... En fait, il y a encore d'autres moyens de les alléger, mais on y est pas encore.


          Bon, après tout cet optimisme, je trahirais ma réputation si je ne brisais pas un rêve : il existe déjà des moteurs prêts à l'emploi. Si tu n'es pas une bête en physique et en math (et je ne parle pas de physique et math au lycée), ton moteur ne vaudra rien parce que personne ne veut un moteur assez limité et très lent (même si créer un petit moteur physique, c'est très bien niveau pédagogique !).

          Autre chose : programmer en 3D nécessite encore une fois de bonnes compétences en math en plus de très bonnes compétences de programmation. Alors, je sais que créer son propre jeu, "c'est kuuul !" toussa... Mais il y a des chances non négligeables que tu perdes de la motivation dans 2 semaines pour finalement abandonner dans 1 mois... (dans ma langue "non négligeable" signifie que je n'ai JAMAIS vu aucune des personnes s'y mettre réaliser quoi que ce soit : tous abandonnent dans un intervalle de 2 semaines à 2 mois)

          Alors, économise ton temps ou fixe-toi des objectifs plus modestes et réalistes (c'est un conseil, tu en fais ce que tu veux, mais être bloqué pour calculer une trajectoire idéale de forme parabolique, ça laisse présager de la suite).
          • Partager sur Facebook
          • Partager sur Twitter
            22 février 2011 à 12:13:40

            Citation : Abaxos

            Autre chose : programmer en 3D nécessite encore une fois de bonnes compétences en math en plus de très bonnes compétences de programmation. Alors, je sais que créer son propre jeu, "c'est kuuul !" toussa... Mais il y a des chances non négligeables que tu perdes de la motivation dans 2 semaines pour finalement abandonner dans 1 mois... (dans ma langue "non négligeable" signifie que je n'ai JAMAIS vu aucune des personnes s'y mettre réaliser quoi que ce soit : tous abandonnent dans un intervalle de 2 semaines à 2 mois)

            Alors, économise ton temps ou fixe-toi des objectifs plus modestes et réalistes (c'est un conseil, tu en fais ce que tu veux, mais être bloqué pour calculer une trajectoire idéale de forme parabolique, ça laisse présager de la suite).



            Pour commencer, j'aimerais te dire que je ne programme pas un véritable moteur physique 3D. Je ne fais qu'appliquer les 2 premières lois de Newton sur les objets de mon programme en 2D en demi-vue du dessus, ce qui est facilement réalisable, puisque je l'ai fait. Ensuite, quand tu me dis qu'être bloqué dans un truc aussi simple, ça te semble idiot, je te réponds qu'à partir du moment où je n'ai encore jamais étudié en mécanique la trajectoire d'un quelconque projectile, la situation devient difficile.

            Je poursuis en expliquant que je suis sur ce projet depuis le 10 mai 2010, soit bien plus que 2 semaines/mois. Alors s'il te plaît, avant de parler de moteur physique 3D, constate que ce sujet est dans le forum "Physique-Chimie", et pas dans la partie C++.
            Je pense m'être mal exprimé en écrivant "application C++ en 3D", puisque la seule chose en 3D de mon programme sont les calculs de collision AABB en 3D (dont je ne parle même pas dans ce topic), et je suis désolé que ça ait pu t'induire en erreur sur le réel but de mon application. Je suis d'ailleurs avec toi sur le fait que je suis totalement incapable de réaliser un moteur physique en 3D. C'est d'ailleurs pour ça que mon appli est en 2D :)

            Après cette mise au point, j'aimerais poursuivre la discussion du topic.
            Tu me conseilles d'utiliser plutôt la représentation mathématique de la parabole plutôt que de chercher la solution physique au problème. J'avais déjà envisagé cette solution mathématique, mais je souhaitais plutôt une solution physique au problème, maintenant que j'avais codé un petit moteur physique. Mais bon, si tu me dis que c'est trop complexe, je veux bien te croire.

            Je pars donc sur la parabole mathématiquement. Merci pour ton aide :)
            • Partager sur Facebook
            • Partager sur Twitter
            Anonyme
              22 février 2011 à 12:57:25

              Je persiste à penser que le traitement physique en 3D est plus formateur et reste accessible si on connait la résolution compléte du problème 2D .
              Obtenir x(t),y(t) ,z(t) , cela se fait donc en résolvant l'équation de Newton projetée sur chaque axes.
              La plus difficile des trois équations en z(t) est similaire à celle dans le plan,et sur x et y on obtient une fonction linéaire du temps, puisque la projection de la force sur ces axes est nuilles .
              Les conditions initiales pour déterminer les constantes sont à peine plus compliquées .

              Pour la question de la programmation de ce problème physique, je ne prendrais pas partie .
              Il est vrai que si on part de la page blanche, écrire le programme complet en C+ avec résolution d'une équation différentielle même trés simple et d'un système d'équations pour trouver le vecteur V0 est sans doute ambitieux pour débuter.
              Il y a une autre alternative ( mais tout dépend de l'objectif...si c'est pour faire de la physique OK, si c'est apprendre à programmer en C, mon commentaire qui suit est inutile .

              C'est utiliser un logiciel scientifique . Il permettent de faire du plus simple au plus compliqué ( personellemnt j'utilise Scilab, je pense que Matlab est plus la régle générale en milieu étudiant)
              Les partie difficiles de la programmetion peuvent être faites via des solveur qui interviennent en boites noires ( équation différentielles, systèmes linéaires, tracé paramètrique de courbes)
              C'est utilisable pour des problèmes simples dés les classes terminales à condition de s'y former un minimum, en particulier à l'utilisation de base de ce que j'ai appelé "boites noires".
              • Partager sur Facebook
              • Partager sur Twitter
              Anonyme
                26 février 2011 à 1:03:04

                bonjour

                j'ai récemment écrit un petit programme en C qui calcule la trajectoire d'une balle(ou autre projectile sphérique, pour son Cx constant) en fonction de : la vitesse du vent et de son angle, l'angle de tir, Vinit masse de la balle et son rayon.
                le programme calcule la force de frottement de la balle sur X, Y et Z et donc sa vitesse puis sa position au temps T
                en inversant les frottements on fait le calcul de la trajectoire inverse jusqu'à ce que la balle atteigne le point A
                Vx1=(-(Wx+Vx)*(Wx+Vx)*0.2827433388*pow(C,2))/(20*M);
                Vx=Vx+Vx1;
                Vy1=(-Vy*Vy*0.2827433388*pow(C,2)-M*9.81)/(20*M);
                Vy=Vy+Vy1;
                Vz1=(-(Wz+Vz)*(Wz+Vz)*0.2827433388*pow(C,2))/(20*M);
                Vz=Vz+Vz1;
                V=sqrt(pow(Vx,2)+pow(Vy,2)+pow(Vz,2));/*la vitesse du projectile*/
                X=X+Vx/20;
                Y=Y+Vy/20;
                Z=Z+Vz/20;
                

                Vx(x,z)1 est l'accélération de la balle sur l'axe X, Y ou Z
                Vx(y,z) est la vitesse sur ces axes
                X, Y, Z la position de la balle
                le (-(Wx+Vx)*(Wx+Vx))est la vitesse relative du vent par rapport à la balle au carré le - est la pare que c'est une force et que le frottement s'exerce contre la balle
                le 0.2827... c'est la multiplication de 1/2 1.2 masse de l'air Cx d'une sphère et Pi, pow(C,2) est le rayon du projectile au carré multiplié a Pi il donnera la surface frontale du projectile(sphère).
                le /(20*M) est la masse en Kg multiplié par le temps de du frottement en S
                la masse parce que l'on veut la vitesse et non la force
                le temps parce que ce système fonctionne par itérations et non avec la dérivé
                le calcul du frottement est détaillé sur wikipedia


                en changeant le sens du frottement on peut calculer la trajectoire dans le sens inverse on peut boucler cette fonction jusqu'à ce que les coordonnés du projectile deviennent celles(ou très proche) de A

                bien que tu aies besoin de ces calculs dans le vide, lorsque l'on ajoute l'air c'est plus intéressant et surtout plus concret
                j'espère que ceci t'aura été utile.

                • Partager sur Facebook
                • Partager sur Twitter
                  26 février 2011 à 8:41:51

                  Bonjour,

                  l'introduction des forces de frottements sont effectivement intéressantes mais je pense qu'il devrait déjà chercher à résoudre le problème de base qu'il pourra complexifier ensuite.

                  Cependant tu introduit une idée intéressante c'est la convergence, en effet SpyM, ton problème a deux degrés de libertés (si l'on considère aucune force perturbatrice et que tu tirs dans l'axe de ta cible). Tu as donc une infinité de solutions. Prendre les conditions initiales que tu intègres linéairement comme le fait socrate_le_chat est une solution que tu peux appliquer même à des problèmes que tu ne peux pas résoudre à la main (contrairement à ton problème actuel). Si tu veux plus de précisions, tu peux chercher des méthodes d'intégration un petit peu plus compliqué mais plus fins (par exemple Runge Kutta), et je te conseil également un pas plus fin que 5ms, 1ms est le minimum je pense surtout pour une intégration linéaire.

                  Pour la recherche de solution par convergence tu as deux paramètres sur lesquels jouer, l'angle avec lequel ton projectile part et la magnitude de ton vecteur vitesse. A toi de choisir comment tu veux orienter ton problème : atteindre la cible avec la vitesse initiale minimale (ce qui aurait un sens dans un problème réel), je tire à 72° de l'horizontale quelle doit être ma vitesse?, etc.

                  Si tu souhaite prendre en compte des forces de frottement, je te conseil d'introduire l'effet Magnus, qui applique une force à un objet tournant. C'est ce qui te permet de faire des effet au tennis par exemple.

                  Bon courage pour la suite
                  • Partager sur Facebook
                  • Partager sur Twitter
                    1 mars 2011 à 13:30:45

                    @SpyM : je ne te répondais pas quand je parlais de 2D. Je voulais juste dire à nabucos que le mouvement se fait toujours dans un plan et que bien que résoudre dans un espace 3D semble être la solution logique/triviale, c'est physiquement et mathématiquement inutile... (c'était ce que j'avais compris de ce qu'il avait dit).

                    C'est comme trouver x : 2 = 3x + 6 par force brute ou par un algorithme d'optimisation : c'est très possible, sauf que c'est ajouter de la complexité pour rien.

                    Ce que je disais moi à ton sujet, c'est que demander à conduire un camping-car alors que tu n'as pas le permis, n'est pas une idée des plus excellentes : tu mets la charrue avant les boeufs, ce qui se traduit toujours (d'après mon expérience personnelle, hein ?!) à un abandon plus ou moins rapide du projet en question.

                    Autre chose : quand je dis qu'une équation est conne, je ne dis pas que TU es con, je dis simplement que c'est un système extrêmement simple à résoudre. Avec un peu de "traitement" mathématique, on peut même réduire ce problème à un problème 1D sur un demi-espace ou, à la rigueur, à deux problèmes 1D sur le demi-espace très simples, encore une fois, à résoudre...

                    L'étape d'intégration (simple aussi) n'est même pas nécessaire : d'autres s'en sont déjà occupés...

                    En gros, ce que je disais, c'est que si tu bloques déjà là, c'est que tu n'as pas (encore) les baguages nécessaires pour résoudre ce genre de problèmes. C'est trop tôt, c'est tout : si tu as la réponse là, c'est bien, mais tu reviendras encore et encore poser des questions alors qu'il te suffit d'attendre quelques années pour pouvoir tout faire par toi-même... (ce que je trouve beaucoup plus formateur)

                    Mais bon : si je parles de parabole, ce n'est pas de n'importe laquelle : un projectile dans le vide soumis à un champ homogène de gravitation suit une trajectoire parabolique. Les paramètres de la parabole sont constants et/ou liés à tes conditions aux limites (positions du lanceur et du point de chute ou position du lanceur et vitesse initiale par exemple).

                    Je pense, tout comme d'autres que tu devrais déjà résoudre ce genre de systèmes simples avant de faire quoique ce soit en 3D (si ça te tente) ou en tenant compte des frottements (la force d'Archimède sur un solide dans l'air, OSEF).
                    • Partager sur Facebook
                    • Partager sur Twitter

                    Calcul de vecteur vitesse initial d'un projectile

                    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                    • Editeur
                    • Markdown