23 lines
931 B
Mathematica
Raw Permalink Normal View History

2025-04-16 20:15:33 +08:00
function [Cb2n_312, Cb2n_321] = eul2m(att)
% 姿
% a2mat
%
% Input: att rad
% 312((Z->X->Y))att = [pitch(X) roll(Y) yaw(Z)]
% 3211(Z->Y->X)att = [roll(X) pitch(Y) yaw(Z)]
% Outputs:
% Cb2n_312: 312Cb2n
% Cb2n_321: 321Cb2n
s = sin(att); c = cos(att);
si = s(1); sj = s(2); sk = s(3);
ci = c(1); cj = c(2); ck = c(3);
Cb2n_312 = [ cj*ck-si*sj*sk, -ci*sk, sj*ck+si*cj*sk;
cj*sk+si*sj*ck, ci*ck, sj*sk-si*cj*ck;
-ci*sj, si, ci*cj ];
if nargout==2 % dual Euler angle DCM
Cb2n_321 = [ cj*ck, si*sj*ck-ci*sk, ci*sj*ck+si*sk;
cj*sk, si*sj*sk+ci*ck, ci*sj*sk-si*ck;
-sj, si*cj, ci*cj ];
end