Notational Conventions

The following notational conventions are adopted throughout the code:

  • All scalars are represented by lowercase unbolded letters (\(x\))

  • Overdots on scalars represent differentiation with respect to time:

    \[\dot x \equiv \frac{\mathop{}\!\mathrm{d}{}}{\mathop{}\!\mathrm{d}{t}} \qquad \ddot x \equiv { {\vphantom{\frac{\mathop{}\!\mathrm{d}{^{2}}}{\mathop{}\!\mathrm{d}{t^2}}}}^{\mathcal{}}\!{\frac{\mathop{}\!\mathrm{d}{^{2}}}{\mathop{}\!\mathrm{d}{t^2}}} }x\]
  • All matrices are represented by uppercase unbolded letters (\(A\))

  • All vectors are represented by lowercase bolded letters (\(\mathbf v\)). All vectors are assumed to be Euclidean (\(\mathbb{R}^3\))

  • Unit vectors are represented by lowercase bolded letters with hats (\({\hat{\mathbf{v}}}\) is the unit vector of \(\mathbf v\))

  • Vector norms are denoted by \(\Vert \mathbf v \Vert\) such that \(\mathbf v = \Vert \mathbf v \Vert {\hat{\mathbf{v}}}\)

  • Position vectors are denoted as \(\mathbf r_{B/A}\) indicating that this is the vector pointing from point \(A\) to point \(B\)

  • Reference frames are represented by calligraphic capital letters (\(\mathcal I\)) and defined by a coordinate origin and a set of three mutually orthogonal unit vectors such that \(\mathcal I = ({\hat{\mathbf{e}}}_1, {\hat{\mathbf{e}}}_2, {\hat{\mathbf{e}}}_3)\) implies that \({\hat{\mathbf{e}}}_1\times {\hat{\mathbf{e}}}_2 = {\hat{\mathbf{e}}_3}\). All reference frames are dextral

  • The component representation of any vector \(\mathbf v\) in reference frame \(\mathcal I\) is given by \([\mathbf v]_\mathcal I\) and is assumed to be a (3x1) column matrix

  • Direction cosine matrices (DCMs) are defined as \({{\vphantom{C}}^{\mathcal{B}}\!{C}^{\mathcal{I}}}\) such that:

    \[[\mathbf v]_\mathcal B = {{\vphantom{C}}^{\mathcal{B}}\!{C}^{\mathcal{I}}}[\mathbf v]_\mathcal I\]
  • The inverse of a direction cosine matrix is its transpose and is denoted by switching the order of the superscripts:

    \[\left({{\vphantom{C}}^{\mathcal{B}}\!{C}^{\mathcal{I}}}\right)^{-1} \equiv \left({{\vphantom{C}}^{\mathcal{B}}\!{C}^{\mathcal{I}}}\right)^T = {{\vphantom{C}}^{\mathcal{I}}\!{C}^{\mathcal{B}}}\]
  • We define the three DCMs associated with counter-clockwise (CCW) rotations about reference frame axes as:

    \[\begin{split}C_1(\theta) \triangleq \begin{bmatrix} 1& 0 & 0\\ 0& \cos\theta & \sin\theta \\ 0& -\sin\theta & \cos\theta \end{bmatrix} \quad C_2(\theta) \triangleq \begin{bmatrix} \cos\theta & 0 & -\sin\theta \\ 0 & 1 & 0 \\ \sin\theta & 0 & \cos\theta \end{bmatrix}\quad C_3(\theta) \triangleq \begin{bmatrix} \cos\theta & \sin\theta & 0 \\ -\sin\theta & \cos\theta & 0\\0 & 0 & 1 \end{bmatrix}\end{split}\]
  • The projection of a vector \(\mf a\) onto a plane orthogonal to direction \(\bhat b\) is given by:

    \[\mf a_\mathrm{proj} = \mf a - (\mf a \cdot \bhat b)\bhat b\]

where \(\cdot\) represents the scalar dot product.

  • The angle between unit vectors \(\bhat x\) and \(\bhat y\) assuming counter-clockwise rotation about axis \(\bhat z\) is:

    \[\theta = \operatorname{atan2}\left(\Vert \bhat x \times \bhat y \Vert\operatorname{sign}\left(\det\begin{bmatrix} \bhat x & \bhat{y} & \bhat z \end{bmatrix}\right), \bhat{x} \cdot \bhat{y}\right)\]

where atan2 is the two-term arctangent operator, \(\det\) is a matrix determinant, and sign is the mathematical sign operator.