Calculate quaternion from rotation angles

**Library:**Aerospace Blockset / Utilities / Axes Transformations

The Rotation Angles to Quaternions block converts the rotation described by
the three rotation angles (R1, R2, R3) into the four-element quaternion vector
(*q*_{0},
*q*_{1},
*q*_{2},
*q*_{3}), where quaternion is defined using the
scalar-first convention. Aerospace
Blockset™ uses quaternions that are defined using the scalar-first convention. For
more information on quaternions, see Algorithms.

The limitations for the

`ZYX`

,`ZXY`

,`YXZ`

,`YZX`

,`XYZ`

, and`XZY`

implementations generate an R2 angle that is between ±90 degrees, and R1 and R3 angles that are between ±180 degrees.The limitations for the

`ZYZ`

,`ZXZ`

,`YXY`

,`YZY`

,`XYX`

, and`XZX`

implementations generate an R2 angle that is between 0 and 180 degrees, and R1 and R3 angles that are between ±180 degrees.

A quaternion vector represents a rotation about a unit vector $$\left({\mu}_{x},{\mu}_{y},{\mu}_{z}\right)$$ through the angle θ. A unit quaternion itself has unit magnitude, and can be written in the following vector format:

$$q=\left[\begin{array}{l}{q}_{0}\\ {q}_{1}\\ {q}_{2}\\ {q}_{3}\end{array}\right]=\left[\begin{array}{c}\mathrm{cos}(\theta /2)\\ \mathrm{sin}(\theta /2){\mu}_{x}\\ \mathrm{sin}(\theta /2){\mu}_{y}\\ \mathrm{sin}(\theta /2){\mu}_{z}\end{array}\right]$$

An alternative representation of a quaternion is as a complex number,

$$q={q}_{0}+i{q}_{1}+j{q}_{2}+k{q}_{3}$$

where, for the purposes of multiplication:

$$\begin{array}{l}{i}^{2}={j}^{2}={k}^{2}=-1\\ ij=-ji=k\\ jk=-kj=i\\ ki=-ik=j\end{array}$$

The benefit of representing the quaternion in this way is the ease with which the quaternion product can represent the resulting transformation after two or more rotations.

Direction Cosine Matrix to Quaternions | Quaternions to Direction Cosine Matrix | Quaternions to Rotation Angles | Rotation Angles to Direction Cosine Matrix