function y=Bconsign(u); % Cette fonction calcule le champ magnétique de consigne de M LAURENS connaissant: % En entrée: % u(1:3) le champ mesuré pulsé, le seul accessible à bord % u(4:10) le vecteur d'état consitué de : % u(4:6) la rotation inutile % u(7:10) le quaternion d'attitude de xyz par rapport à XYZ B(1:3)=u(1:3); % Champ magnétique pulsé Q=u(7:10); % Quaternion d'attitude de xyz / XYZ q0=Q(1);q1=Q(2);q2=Q(3);q3=Q(4); % Séparation des coordonnées % ************* Calcul de la matrice de passage de XYZ à xyz ********************* % Elle sert à calculer le champ magnétique de consigne Bc 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]; y=Pmat; % ************ CALCUL DU CHAMP DE CONSIGNE Bc=inv(Pmat)*B ****************** Bc=inv(Pmat)*B; % Sortie y=Bc; end % Fin programme