Angular velocity


> restart: libname := `C:/MBSymba`, libname: with(MBSymba_r6):

> #alias(S=sin,C=cos):

Angular velocity

> PDEtools[declare](psi(t),phi(t),mu(t), prime=t, quiet):

> T := Rotate('Z',psi(t)) . Rotate('X',phi(t));

velocity matrix

> W := simplify( inv_frame(T) . map(diff,T,t) );

> omega := angular_velocity(T): show(omega);

> TYRP := T . Rotate('Y',mu(t));

eqns

> Vector([omega[X],omega[Y],omega[Z]]) = omega[comps];

> eqns := [omega[X] = comp_X(omega), omega[Y] = comp_Y(omega), omega[Z]=comp_Z(omega)]:

> op(solve(eqns, diff([psi(t),phi(t),mu(t)],t))): Vector(%);

>

Angular velocity: Bryant's angles

> PDEtools[declare](rx(t),ry(t),rz(t), prime=t, quiet);

> TC := Rotate('X',rx(t)) . Rotate('Y',ry(t)) . Rotate('Z',rz(t));

> Omega := angular_velocity(TC): show(Omega);

> eqns := [omega[X] = comp_X(Omega), omega[Y] = comp_Y(Omega), omega[Z]=comp_Z(Omega)]:
angvel := solve(eqns,diff([rx(t),ry(t),rz(t)],t))[1]: Vector(angvel);

Angular velocity: yaw-roll-picth angles

> PDEtools[declare](psi(t),phi(t),mu(t), prime=t, quiet);
TYRP := rotate('Z',psi(t)) * rotate('X',phi(t)) * rotate('Y',mu(t));

> Omega := angular_velocity(TYRP): show(Omega);

> eqns := [omega[X] = comp_X(Omega), omega[Y] = comp_Y(Omega), omega[Z]=comp_Z(Omega)]:
angvel := solve(eqns,diff([psi(t),phi(t),mu(t)],t))[1]: Vector(angvel);

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>