Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
function c=rotevolve(c0,w,T)
%function for evolving the rotation matrix with a constant
%body-referenced angular velocity
%c0=rotation matrix at t=0
%w=angular velocity vector (3x1) (rad/s)
%T=final time (s)
S=[0 -w(3,1) w(2,1); w(3,1) 0 -w(1,1); -w(2,1) w(1,1) 0];
dt=2*pi/(10^6*norm(w));
cdt=eye(3)-S*dt;
t=dt;
c=cdt*c0;
while t<=T
c=cdt*c;
t=t+dt;
end
function C=rotmrp(p)
% rotation matrix from the modified Rodrigues parameters
S=[0 -p(3,1) p(2,1);p(3,1) 0 -p(1,1);-p(2,1) p(1,1) 0];
C=eye(3)+4*(p'*p-1)*S/(1+p'*p)^2+8*S*S/(1+p'*p)^2;
function C=rotquat(q)
% rotation matrix from the quaternion
S=[0 -q(3,1) q(2,1);q(3,1) 0 -q(1,1);-q(2,1) q(1,1) 0];
C=(q(4,1)^2-q(1:3,1)'*q(1:3,1))*eye(3)+2*q(1:3,1)*q(1:3,1)'-2*q(4,1)
*S;