3x3 v-nl_rotation
Non-linear 3x3 Direction Cosine Matrix associated to a rotation around any axis.
This block implements the non linear (3x3) direction cosine matrix (DCM) -or its transposed- associated to the rotation of a given angle $\theta$ around a given axis $\mathbf{v}$ to transform the frame $\mathcal{R}_1$ into the frame $\mathcal{R}_2$.
It is the non linear version of the linear block 3x3v-u_rotation and a generalization of the non linear block 3x3z-nl_rotation.
See also: 3x3z-nl_rotation, 3x3v-u_rotation
Contents
Description
The block named 3x3z-nl_rotation gives the non linear direction cosine matrix ($\mathbf{DCM}_\mathbf{z}$) associated to the rotation of a given angle $\theta$ around the $3^{rd}$ axis. To exploit this result, an intermediate frame $\mathcal{R}_i=(\mathbf{x}_i,\mathbf{y}_i,\mathbf{z}_i)$ is used such that $\mathbf{z}_i$ is along $\mathbf{v}$. Then: $$\mathbf{DCM}=\mathbf{P}_{2/1}=\mathbf{P}_{i/1}\underbrace{\left[\begin{array}{ccc}\cos(\theta) & -\sin(\theta) & 0 \\ \sin(\theta) & \cos(\theta) & 0 \\ 0 & 0 & 1\end{array}\right]}_{\mathbf{DCM}_\mathbf{z}} \mathbf{P}_{i/1}^T\,.$$
with:
- $\mathbf{P}_{i/1}=\mathbf{P_v}\left[\begin{array}{ccc} \mbox{det}(\mathbf{P_v}) & 0 & 0\\ 0 & 1 & 0 \\ 0 & 0 & 1\end{array}\right]$,
- $\mathbf{P_v}=[\mbox{null}([\mathbf{\tilde{v}}]^T_{\mathcal{R}_1})\quad [\mathbf{\tilde{v}}]_{\mathcal{R}_1}]$,
- $\mathbf{\tilde{v}}=\mathbf{v}/\|\mathbf{v}\|$.
Ports
Inputs:
- a (3x1) vector $\mathbf{x}$ in the frame $\mathcal{R}_{2}$ (resp. $\mathcal{R}_{1}$)
- the angle $\theta$ (unit: $rd$).
Output: the expression of the (3x1) vector $\mathbf{x}$ in the frame $\mathcal{R}_{1}$ (resp. $\mathcal{R}_{2}$).
$\left[\mathbf{x}\right]_{\mathcal{R}_{1}} = \mathbf{DCM} \, \left[\mathbf{x}\right]_{\mathcal{R}_{2}}$ (resp. $\left[\mathbf{x}\right]_{\mathcal{R}_{2}} = \mathbf{DCM}^T \, \left[\mathbf{x}\right]_{\mathcal{R}_{1}}$)
Parameters
The only parameters are the coordinates of the (3x1) rotation axis vector $\mathbf{v}$ in $\mathcal{R}_{1}$ (or $\mathcal{R}_{2}$) and a checkbox to implement the transposed: $\mathbf{DCM}^T$.
Simulink diagram under the mask
with: $\mathrm{signe}=1$ for direct $\mathbf{DCM}$, $\mathrm{signe}=-1$ for $\mathbf{DCM}^T$ and $\mbox{pass}=\mathbf{P}_{i/1}$.