function y=quatbmgn(u); % u est un vecteur à 7 composantes % De 1 à3 le champ magnétique enrepère orbital % De 4 à 7 le quaternion Q d'attitude faisant passer du repère orbital XYZ au repère satellite xyz % Le champ magnétique est extrait B=u(1:3); % Le quaternion permet le calcul de la matrice de passage XYZ à xyz % Pmat la matrice de passage associée au changement de base q0=u(4); q1=u(5); q2=u(6); q3=u(7); % Calcul de la matrice de passage P11=2*(q0^2+q1^2)-1;P22=2*(q0^2+q2^2)-1;P33=2*(q0^2+q3^2)-1; P21=2*(q1*q2+q0*q3);P12=2*(q1*q2-q0*q3); P31=2*(q1*q3-q0*q2);P13=2*(q1*q3+q0*q2); P32=2*(q2*q3+q0*q1);P23=2*(q2*q3-q0*q1); Pmat=[P11 P12 P13;P21 P22 P23;P31 P32 P33]; % Le changement de coordonnées demande la matrice inverse de celle de passage y=inv(Pmat)*B; % En sortie le champ magnétique en axes satellite end;