Bonjour je souhaite créer un programme créant une matrice de rotation suivant un triplet d'angles d'euler.
J'aimerais respecté la mise en forme, mais il existe des problemes lorsque je veux calculer la matrice avec un angle (0,0,0)
Le programme est joint , je le poste quand meme ,mais c'a rend pas tres bien.
Nous allons decomposer les trois rotations élémentaires:
Tout d'abord l'angle de precession notée \[Psi]
precession[\[Psi]] := Matrix[precession[\[Psi]_]]
Matrix[precession[\[Psi]_]] := {{Cos[\[Psi]], Sin[\[Psi]], 0}, {-Sin[\[Psi]],
Cos[\[Psi]], 0}, {0, 0, 1}}
MatrixForm[Matrix[precession[0]]]
{"1", "0", "0"},
{"0", "1", "0"},
{"0", "0", "1"}
Ensuite la nutation notée \[Theta]
nutation[\[Theta]] := Matrix[nutation[\[Theta]_]]
Matrix[nutation[\[Theta]_]] := {{1, 0, 0}, {0, Cos[\[Theta]],
Sin[\[Theta]]}, {0, -Sin[\[Theta]], Cos[\[Theta]]}}
Enfin l'angle de rotation propre notée \[CurlyPhi]
rotationpropre[\[CurlyPhi]] := Matrix[rotationpropre[\[CurlyPhi]_]]
Matrix[rotationpropre[\[CurlyPhi]_]] := {{Cos[\[CurlyPhi]], Sin[\[CurlyPhi]],
0}, {-Sin[\[CurlyPhi]], Cos[\[CurlyPhi]], 0}, {0, 0, 1}}
Nous allons maintenant définir, les angles nautiques. Tout d'abord la matrice de l'angle de tangage notée \[Beta]
Matrix[tangage[\[Beta]_]] := {{Cos[\[Beta]], 0, -Sin[\[Beta]]}, {0, 1,
0}, {Sin[\[Beta]], 0, Cos[\[Beta]]}}
Ensuite la matrice de l'angle de roulis notée \[Gamma]
Matrix[roulis[\[Gamma]_]] := {{1, 0, 0}, {0, Cos[\[Gamma]],
Sin[\[Gamma]]}, {0, -Sin[\[Gamma]], Cos[\[Gamma]]}}
Enfin la matrice de l'angle de lacet notée \[Alpha]
Matrix[lacet[\[Alpha]_]] := {{Cos[\[Alpha]], Sin[\[Alpha]],
0}, {-Sin[\[Alpha]], Cos[\[Alpha]], 0}, {0, 0, 1}}
Nous allons créer la matrice de rotation des angles d'Euler en multiplaint les trois matrices définissant les angles d'Euler
euler[{\[Psi], \[Theta], \[CurlyPhi]}] :=
Matrix[euler {\[Psi]_, \[Theta]_, \[CurlyPhi]_}]
Matrix[euler {\[Psi]_, \[Theta]_, \[CurlyPhi]_}] :=
Matrix[precession[\[Psi]]].Matrix[nutation[\[Theta]]].Matrix[
rotationpropre[\[CurlyPhi]]]
MatrixForm[Matrix[euler {\[Psi]_, \[Theta]_, \[CurlyPhi]_}]]
MatrixForm[precession[\[Psi]].nutation[\[Theta]].rotationpropre[\[CurlyPhi]]]
MatrixForm[Matrix[euler {0, 0, 0}]]
-----