function y=angles(u); % La variable d'entrée est le vecteur d'état réduit à Q = u=[q0 q1 q2 q3] % Cette fonction récupère le quaternion qui donne l'attitude u % par rapport au repère orbital XYZ, dans le paramètrage: % roulis phi / X % tangage teta /y % lacet psi /Z % Sorties en radians % Quaternion d'attitude Q(1:4)=u(1:4); q0=Q(1);q1=Q(2);q2=Q(3);q3=Q(4); % Extraction des angles en radian phi=atan2(2*(q0*q1+q2*q3),q0^2-q1^2-q2^2+q3^2); teta=asin(2*(q0*q2-q1*q3)); psi=atan2(2*(q0*q3+q2*q1),q0^2+q1^2-q2^2-q3^2); y1=phi;y2=teta;y3=psi; % Sortie vecteur colonne roulis tangage lacet y=[y1 y2 y3]'; end