IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Physique Discussion :

Calcul de position à partir de l'accélération


Sujet :

Physique

  1. #1
    Nouveau membre du Club
    Inscrit en
    Mai 2009
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 44
    Points : 34
    Points
    34
    Par défaut Calcul de position à partir de l'accélération
    Bonjour,
    J'ai une centrale inertielle (MTi) qui me fournit l'accélération à chaque instant et la vitesse angulaire. De cela, j'aimerai calculer ma position à chaque instant. Il est à noter que la centrale inertielle donne l'accélération totale (accélération gravitationnel (ou g)+ accélération du au double intégration de la position). Donc il faut enlever g.
    Est-ce que quelqu'un peut me donner quelques indications pour avoir les positions à chaque instant?

    Merci par avance

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    318
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 318
    Points : 291
    Points
    291
    Par défaut
    Citation Envoyé par PrettyMan Voir le message
    Bonjour,
    J'ai une centrale inertielle (MTi) qui me fournit l'accélération à chaque instant et la vitesse angulaire. De cela, j'aimerai calculer ma position à chaque instant. Il est à noter que la centrale inertielle donne l'accélération totale (accélération gravitationnel (ou g)+ accélération du au double intégration de la position). Donc il faut enlever g.
    Est-ce que quelqu'un peut me donner quelques indications pour avoir les positions à chaque instant?

    Merci par avance
    En posant le problème, ça devrait déjà t'aider:
    Tu as:
    ax = Ax(t)
    ay = Ay(t)
    az = Az(t) - g

    que tu intègres une première fois pour avoir les vitesses:
    vx(t2-t1) = (Axt1 + (Axt2-Axt1)/2)*(t2 - t1) + Cvx
    vy(t2-t1) = (Ayt1 + (Ayt2-Ayt1)/2)*(t2 - t1) + Cvy
    vz(t2-t1) = (Azt1 + (Azt2-Azt1)/2)*(t2 - t1) - g(t2-t1) + Cvz

    puis une deuxieme fois pour les positions,je ne détaille pas, la flèmme)

  3. #3
    Nouveau membre du Club
    Inscrit en
    Mai 2009
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 44
    Points : 34
    Points
    34
    Par défaut
    merci pour ta réponse. Je comprend le démarche mais ce qui me préoccupe c'est l'expression exacte de l'accélération. Voici ce que j'ai trouvé dans le document de la centrale :
    NOTE: The linear 3D accelerometers measure all accelerations, including the acceleration due to gravity. This is inherent to all accelerometers. Therefore, if you wish to use the 3D linear accelerations output by the MTi / MTx to estimate the “free” acceleration (i.e. 2nd derivative of position) gravity must first be subtracted.
    A mon avis l'accélération est composé par plusieurs accélération puisque le mouvement est variable donc il y a l'accélération angulaire, accélération relative ....
    En résumé ce qu'il me faut c'est l'expression de l'accélération du mouvement (quelconque) dont g fait partie.
    Je mets en pièce joint une formule que j'ai trouvé dans un livre mais je ne sais pas comment faire apparaitre le g la dedans.
    Merci
    Fichiers attachés Fichiers attachés

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    399
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 399
    Points : 413
    Points
    413
    Par défaut
    Comme indiqué il te suffit de soustraire la gravitation de l'accélération récupérée.

    Sur terre l'accélération gravitationnelle peut etre approximé a 9.81 m.s-2
    SPARK
    Moteur de particule C++ opensource avec modules de rendu OpenGL, Irrlicht et SFML

  5. #5
    Membre actif
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    318
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 318
    Points : 291
    Points
    291
    Par défaut
    Pour te débarasser de G (G = 9.81 ms-2 à Paris):
    -utilise la vitesse angulaire pour calculer par intégration les anges suivant les axes XYZ. Tu pourras comme ça avoir les composantes de G suivant les axe de ta centrale.

    Et aussi n'oublie pas que la Terre est un repère sphérique et non orthonormé

    Bon courage

  6. #6
    Membre expert
    Avatar de ericd69
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2011
    Messages
    1 919
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2011
    Messages : 1 919
    Points : 3 295
    Points
    3 295
    Billets dans le blog
    1
    Par défaut
    puisque tu obtiens directement l'accélération total subie, pas besoin de soustraire la gravité

    je rappelle que somme des forces (dont gravité)=masse * accélération

    donc ici tu as juste à appliquer simplement:
    d[1]=.5*a*t*t+v[0]*t+d[0] à chaque itération de calcul

    avec
    • t le temps écoulé entre 2 mesures
    • a vecteur accélération mesuré
    • d[1] ton vecteur position, d0 le vecteur position précédent
    • v0 ton vecteur vitesse précédent


    Code pseudo : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    initialisation:
    d[0]={0,0,0};
    v[0]={0,0,0};
    afficher _objet(d[0]);
    tant que mesure faire:
    a=mesure;
    d[1]=.5*a*t*t+v[0]*t+d[0];
    d[0]=d[1];
    afficher _objet(d[0]);
    fin tant que;
    soyons pensez à mettre quand votre problème est résolu ou à utiliser pour les réponses pertinentes...
    ne posez pas de problématique soi-disant simplifiée sur des problèmes que vous n'êtes pas capable de résoudre par respect pour ceux qui planchent dessus... sinon: et à utiliser pour insérer votre code...

  7. #7
    Expert confirmé

    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 382
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 382
    Points : 4 936
    Points
    4 936
    Par défaut
    comme ça je dirai problème insoluble, une accélération nulle correspondant à une vitesse nulle ou constante, on ne peut pas déterminer si on se déplace ou pas, donc si la position change ou pas.

Discussions similaires

  1. Calcul d'une position à partir d'une accéleration
    Par YohDono dans le forum Physique
    Réponses: 0
    Dernier message: 01/01/2013, 17h07
  2. [Math] Calcul de position de vecteur.
    Par Lucyberad dans le forum DirectX
    Réponses: 4
    Dernier message: 19/05/2007, 16h15
  3. Calcul du SNR à partir d'une trame 802.11
    Par Kingdomofh dans le forum Développement
    Réponses: 2
    Dernier message: 12/03/2007, 08h45
  4. calcul de date à partir du numero de semaine
    Par @rkane dans le forum Access
    Réponses: 2
    Dernier message: 03/01/2007, 17h28
  5. [JTextArea]Recuperer une position à partir d'un Point
    Par rushtakn dans le forum AWT/Swing
    Réponses: 3
    Dernier message: 19/05/2006, 09h36

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo