function y=deriv_qt(u); % ************************************************** % SIMULATION DE LA STABILISATION D'UN SATELLITE PAR % GRADIENT DE GRAVITE ET AMORTISSEMENT PAR DES % MAGNETOCOUPLEURS FONCTIONNANT AVEC DES COMMANDES % BASEES SUR LA DERIVEE DU CHAMP MAGNETIQUE TERRESTRE % ************************************************** % ------------------ DEBUT PROGRAMME --------------- global vitesse_rotation Asat % ************************************************ % Le vecteur d'entrée pour le traitement du système % différentiel est à 12 composantes. % % u(1)=p rotation absolue satellite sur x % u(2)=q ...........................sur y % u(3)=r ...........................sur z % % u(4)=q0 Première composante du quaternion % u(5)=q1 Deuxième ........................ % u(6)=q2 Troisième ....................... % u(7)=q3 Quatrième ....................... % ************************************************* % Les données inertielles seront fournies en global % % ainsi que la vitesse angulaire orbitale w0, notée rotation_orbitale w0=vitesse_rotation; % Dans le bloc diagramme nous multiplexerons ces entrées % 7+3+1=11 % % ****************************************************** % Composantes de la rotation p=u(1);q=u(2);r=u(3); % normalisation du quaternion d'entrée v=u(4:7)/norm(u(4:7)); % Composantes du quaternion q0=v(1);q1=v(2);q2=v(3);q3=v(4); % Matrice de passage à l'aide du quaternion v Pmat=passage(v); % Rotation relative du satellite par rapport au repère orbital local (colonne) % exprimée en axes satellite % rot=[p-w0*Pmat(2,1);q-w0*Pmat(2,2);r-w0*Pmat(2,3)]; % ********************* POUR LE QUATERNION Q ********************* % Calcul des dérivées du quaternion, avec les calculs intermédiaires p21=2*(q1*q2+q0*q3); p22=2*(q0^2+q2^2)-1; p23=2*(q2*q3-q0*q1); % Matrice W* de rotation relative en tant que quaternion Matrice_rotation=[0 -p+w0*p21 -q+w0*p22 -r+w0*p23 p-w0*p21 0 r-w0*p23 -q+w0*p22 q-w0*p22 -r+w0*p23 0 p-w0*p21 r-w0*p23 q-w0*p22 -p+w0*p21 0]; y=0.5*Matrice_rotation*[q0 q1 q2 q3]'; end