function y=omegaabs(u); global vitesse_rotation Asat % Le vecteur d'entrée est en colonne à 8 composantes: % Les 4 premières du quaternion d'attitude Q % Les 4 dernières de la dérivée temporelle du quaternion Q % Le programme reconstitue le vecteur rotation du repère satellite % par rapport au repère iorbital, ceci dans le but de vérifier que % l'intégration est correcte. Expression en repère satellite % Les 2 vecteurs rotation diffèrent de w0 Y du au mouvement orbital % omega_quat+w0Y=omega_inertiel donc donne (p q r) quat=u(1:4); deriv_quat=u(5:8); % Calcul du transposé de Q Qbarre(1)=quat(1); Qbarre(2:4)=-quat(2:4); % On calcule le produit quaternionique 2*Qbarre*Dérivée Q omega_quat=2*prodquat(Qbarre',deriv_quat); % Vecteur colonne de la rotation satellite par rapport au repère orbital omeg(1:3)=omega_quat(2:4); omega_orbital=omeg'; % Il reste à ajouter la rotation w0Y % or voir le cours sur les quaternions Y1=2*(quat(2)*quat(3)+quat(1)*quat(4)); Y2=2*(quat(1)^2+quat(3)^2-1); Y3=2*(quat(3)*quat(4)-quat(1)*quat(2)); Y=[Y1 Y2 Y3]'; omega0=vitesse_rotation*Y; y=omega_orbital+omega0; end