> restart: libname := libname, "C:/MBSymba": with(MBSymba_r6):
Rotation matrix
Euler's angles are defined as sequential rotations alpha, beta and delta as follows
> TE := rotate('Z',alpha), rotate('X',beta), rotate('Z',delta);
> euler_angles := alpha(t),beta(t),delta(t);
> PDEtools[declare](euler_angles, prime=t, quiet):
> TE := rotate('Z',alpha(t)) * rotate('X',beta(t)) * rotate('Z',delta(t));
> set_frame_name(TE,'TE'):
Angular velocity and
> Omega := angular_velocity(TE): show(Omega);
> project(Omega,ground): show(%);
Singular configuration
It is easy to verify that when beta = 0, it is not possible to express the body angular velocity in terms of Euler's angles time derivatives
> om := make_VECTOR(TE, omega[X],omega[Y],omega[Z]): show(om);
> solve([comp_XYZ(Omega-om)] , diff([euler_angles],t)): Vector(%[1]);
>