Matrice de passage: décomposition en rotations

Réponses à toutes vos questions après le Bac (Fac, Prépa, etc.)
firefighter90
Membre Naturel
Messages: 42
Enregistré le: 07 Nov 2014, 22:00

matrice de passage: décomposition en rotations

par firefighter90 » 27 Nov 2015, 11:10

Bonjour,

Je possède deux bases Rg et Rt. Pour calculer la matrice de passage de Rg à Rt, je calcule les vecteurs de la base de Rt dans Rg puis forme M une matrice 3*3, tel que Rg=M*Rt.

De façon à calculer l'orientation de Rt par rapport à Rg, je décompose M en produit de 3 matrices de rotation selon les axes Z puis Y puis X tel que M=Rot_Z(lacet)*Rot_Y(tangage)*Rot_X(roulis).

En développant le produit et par identification avec M, j'arrive à calculer l'expression de mes trois angles: roulis,tangage,lacet.

La question pour moi est de savoir si se sont des angles autour des axes fixes de Rg ou bien des axes de bases intermédiaires entre Rg et Rt?

merci,



Robot

par Robot » 27 Nov 2015, 11:55

firefighter90 a écrit: M une matrice 3*3, tel que Rg=M*Rt.

Mathématiquement, ça n'a pas de sens : une base n'est pas une matrice ! Tu veux dire que la base Rg est donnée par une matrice qui est la matrice de passage d'une base "universelle" donnée à la base Rg, et qu'on identifie la base à cette matrice (idem pour Rt) ? Dans ce cas, la matrice de passage de Rg à Rt est M=Rt*(Rg)^{-1} [PS : je me suis trompé dans l'ordre c'est M= (Rg)^{-1}*Rt ] et pas Rg*(Rt)^{-1} comme tu l'écris. Peux tu clarifier ?

firefighter90 a écrit:M=Rot_Z(lacet)*Rot_Y(tangage)*Rot_X(lacet)

Tu voulais écrire Rot_X(roulis) ?


firefighter90 a écrit:La question pour moi est de savoir si se sont des angles autour des axes fixes de Rg ou bien des axes de bases intermédiaires entre Rg et Rt?


Rot_Z(lacet) est la matrice de de passage de la base B=Rg à une base B'. C'est la matrice d'une rotation par rapport à l'axe Z de la base B.
Rot_Y(tangage) est la matrice de de passage de la base B' à une base B". C'est la matrice d'une rotation par rapport à l'axe Y' de la base B'. Mieux vaut l'appeler Rot_Y'(tangage)
Rot_X(roulis) est la matrice de de passage de la base B'' à la base Rt=B'''. C'est la matrice d'une rotation par rapport à l'axe X'' de la base B''. Mieux vaut l'appeler Rot_X''(roulis)

Si je note P,P',P'',P''' les vecteurs colonnes de coordonnées dans les bases Rg,B',B'',Rt, j'ai bien
P=M*P''' et
P=Rot_Z(lacet)*P'=Rot_Z(lacet)*Rot_Y'(tangage)*P''=Rot_Z(lacet)*Rot_Y'(tangage)*Rot_X''(roulis)*P'''

Robot

par Robot » 27 Nov 2015, 12:12

Pour compléter, on peut voir les choses d'une autre façon :
On fait d'abord tourner le mobile de l'angle "roulis" autour de l'axe X de Rg, puis de l'angle "tangage" autour de l'axe Y de la même base, puis de l'angle "lacet" autour de l'axe Z toujours de la même base. Au total c'est comme si on avait fait tourner le mobile par la rotation de matrice M dans la base Rg.

firefighter90
Membre Naturel
Messages: 42
Enregistré le: 07 Nov 2014, 22:00

par firefighter90 » 27 Nov 2015, 13:58

Merci pour votre réponse.

Vous avez bien compris mon but. Cependant, j'ai fait quelques vérifications et j'ai bien la chose suivante:

si M est la matrice de passage de Rg à Rt alors on peut écrire: Rg=M*Rt, y'a-t-il une incompréhension ou une convention de calcul qui change?

Autrement pour vos explication, si j'ai bien compris, si je garde l'ordre des rotations que j'ai appelé ZYX, alors les angles tels que je les ai calculé par identification avec la matrice de passage M de Rg à Rt sont en réalité autour des axes des bases intermédiaires d'où la notation ZY'X". Et que avec les mêmes valeurs des angles mais avec l'ordre XYZ des rotations alors mes angles sont définis autour des axes fixes X puis Y puis Z de Rg.

Je suis sensé dans les deux cas arriver à la même orientation d'un objet (repéré par sa base Rt) dans Rg en effectuant les rotations ZY'X" ou bien XYZ depuis Rg, c'est à dire que:


M1=Rot_Z(lacet)*Rot_Y'(tangage)*Rot_X"(roulis)
Rg= M1* Rt


M2=Rot_X(roulis)*Rot_Y(tangage)*Rot_z(lacet)
Rg= M2* Rt


J'ai fait un test et je trouve M1 différent de M2! :cry:

Robot

par Robot » 27 Nov 2015, 14:32

firefighter90 a écrit:si M est la matrice de passage de Rg à Rt alors on peut écrire: Rg=M*Rt, y'a-t-il une incompréhension ou une convention de calcul qui change?


Tu peux l'écrire, mais quel sens est-ce que ça a ? Mathématiquement, je le répète, aucune sens : une base est une famille de vecteurs, que veut dire multiplier une matrice par une famille de vecteurs.
Je t'ai déjà donné une description précise de mes objections, à laquelle tu ne réponds absolument pas. Je t'ai demandé d'éclaircir, et tu n'as rien éclairci du tout !

Peux tu répondre à ces questions :
1°) Qu'est-ce que Rg et Rt pour toi ? Des matrices ?
Je t'ai suggéré une réponse : Rg est la matrice dont les colonnes sont les coordonnées des vecteurs de la base Rg, exprimées dans une base "absolue". OUI OU NON ?
2°) Qu'est-ce que la "matrice de passage de Rg à Rt" pour toi ? La définition officielle de matrice de passage dit que c'est la matrice dont les colonnes sont les coordonnées des vecteurs de la base Rt exprimées dans la base Rg. Es-tu d'accord, OUI OU NON ?

Si tu réponds oui aux deux questions, alors on a Rt= Rg*M et pas Rg=M*Rt.
Je t'ai posé des questions précises, j'attends des réponses précises.

firefighter90 a écrit:Je suis censé dans les deux cas arriver à la même orientation d'un objet (repéré par sa base Rt) dans Rg
en effectuant les rotations ZY'X" ou bien XYZ depuis Rg, c'est à dire que:
M1=Rot_Z(lacet)*Rot_Y'(tangage)*Rot_X"(roulis)
Rg= M1* Rt
M2=Rot_X(roulis)*Rot_Y(tangage)*Rot_z(lacet)
Rg= M2* Rt
J'ai fait un test et je trouve M1 différent de M2!

1°) Je ne suis pas d'accord avec ton Rg=M*Rt, j'ai expliqué pourquoi, j'attends toujours des éclaircissements de ta part.
2°) Tu interprètes de travers ce que j'ai écrit. Pas étonnant alors que tu trouves quelque chose qui cloche ! J'essaie de mieux expliquer, essaie de ton côté d'y mettre du tien !
- Si on fait une rotation d'angle "roulis" d'axe l'axe des X de la base Rg, suivie d'une rotation d'angle "tangage" d'axe l'axe des Y de la base Rg, suivie une rotation d'angle "lacet" d'axe l'axe des Z de la base Rg, la matrice de la rotation composée est
Rot_Z(lacet)*Rot_Y(tangage)*Rot_X(roulis)
- Si on envoie par rotation d'axe l'axe des Z de la base Rg et d'angle "lacet" la base Rg sur la base B', puis qu'on envoie par rotation d'axe l'axe des Y' de la base B' et d'angle "tangage" la base B' sur la base B'', puis qu'on envoie par rotation d'axe l'axe des X'' de la base B'' et d'angle "roulis" la base B'' sur la base Rt, alors la matrice de passage de Rg à Rt est
Rot_Z(lacet)*Rot_Y(tangage)*Rot_X(roulis)
Il n'y pas de changement dans l'ordre de multiplication des matrices !

firefighter90
Membre Naturel
Messages: 42
Enregistré le: 07 Nov 2014, 22:00

par firefighter90 » 27 Nov 2015, 15:22

1) Rg et Rt ne sont pas des matrices, juste une notation de mes bases. J'aurais dû écrire que j'ai formé une matrice tel que pour un vecteur X dans Rg et X'dans Rt , on a X=M*X'.


2) d'accord pour la définition, c'est ce que j'ai utilisé pour calculer ma matrice M: ses colonnes sont les coordonnées des vecteurs de la base Rt exprimées dans la base Rg.


En conclusion, j'ai bien: X_Rg=Rot_Z(lacet)*Rot_Y(tangage)*Rot_X(roulis)*X'_Rt.


L'incompréhension que j'avais était uniquement sur le sens de ses angles et là j'ai bien compris :we: ! (une bonne fois pour toutes :we: )

Merci,

Robot

par Robot » 27 Nov 2015, 15:28

firefighter90 a écrit:1) Rg et Rt ne sont pas des matrices, juste une notation de mes bases. J'aurais dû écrire que j'ai formé une matrice tel que pour un vecteur X dans Rg et X'dans Rt , on a X=M*X'.,


Je comprends ce que tu veux, dire, mais c'est mal exprimé et ça prête à confusion.
Tu veux sans doute dire que X et X' sont les coordonnées d'un même vecteur, X étant ses coordonnées dans la base Rg et X' ses coordonnées dans la base Rt ?

firefighter90
Membre Naturel
Messages: 42
Enregistré le: 07 Nov 2014, 22:00

par firefighter90 » 27 Nov 2015, 15:30

Robot a écrit:Je comprends ce que tu veux, dire, mais c'est mal exprimé et ça prête à confusion.
Tu veux sans doute dire que X et X' sont les coordonnées d'un même vecteur, X étant ses coordonnées dans la base Rg et X' ses coordonnées dans la base Rt ?


Tout à fait

 

Retourner vers ✯✎ Supérieur

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 32 invités

Tu pars déja ?



Fais toi aider gratuitement sur Maths-forum !

Créé un compte en 1 minute et pose ta question dans le forum ;-)
Inscription gratuite

Identification

Pas encore inscrit ?

Ou identifiez-vous :

Inscription gratuite