Bonjour à toutes & tous,
je cherche à simuler (via un programme informatique) la dynamique d'un corps rigide mais non ponctuel.
Le corps en question peut être vu comme un engin spatial pourvu de nombreux propulseurs.
Chacun à une position et une orientation fixes par rapport à l'engin.
Ils produisent une poussée variable dans une direction donnée.
Par ailleurs mon engin évolue dans le vide et en apesanteur.
L'engin est modélisé par un repère orthonormé dont l'origine est le centre de gravité.
En l'absence de poussée de la part des propulseurs, je modélise la trajectoire par
- la vitesse du déplacement rectiligne uniforme du centre de gravité
elle-même modélisée par un vecteur unitaire (direction) + un scalaire (intensité)- la rotation uniforme autour d'un axe passant par le centre de gravité
elle-même modélisée par un vecteur unitaire (axe) + un scalaire (vitesse angulaire)
Un propulseur est modélisé dans le repère de l'engin, par un vecteur de coordonnées et par le vecteur unitaire qui donne son orientation.
La poussé est elle-même un simple réel positif ou nul.
Je fais mes calculs sur des durées très courtes dt.
Ce qui me donne la structure de donnée suivante :
Code:Engin { Vecteur origine // coordonnées de l'engin par rapport à un repère absolu quelconque (héliocentrique par ex.) Vecteur i,j,k // repère propre de l'engin par rapport auquel sont définies la vitesse, la rotation et la position du propulseur Vecteur direction Scalaire vitesse Vecteur axe_rotation Scalaire vitesse_angulaire Propulseur prop // dans cet exemple, il n'y a qu'un propulseur } Propulseur { Vecteur position Vecteur orientation Vecteur rotation_induite // pré-calculé : perpendiculaire à position et orientation Scalaire poussée }
--> Question préliminaire : ai-je bon jusque là ?
--> Question "principale" : que se passe-t-il quand le propulseur donne une poussée ?
Intuitivement, j'imagine que le propulseur définit un axe de rotation induite = vecteur perpendiculaire au plan défini par le vecteur engin.prop.position et le vecteur engin.prop.orientation.
(bien sûr, si ces 2 vecteurs sont colinéaires, j'ai une rotation induite nulle, et un propulsion "simple" qui n'affecte que la vitesse de du centre de gravité de l'engin.
Si la poussée devient non nulle, je vais donc devoir "combiner" la rotation engin.axe_rotation de l'engin avec celle induite par le propulseur.
Et là, je sèche complètement...
J'imagine une espèce d'axe de rotation résultante comme une "moyenne" entre engin.axe_rotation et engin.prop.rotation_induite pondérée par engin.prop.poussée et engin.vitesse_angulaire...
Merci de m'avoir et encore plus de vos avis & réponses
Hadrien
-----