{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Axes Transformations\n",
"\n",
"The orientation of the body axis set within the Earth axis set is dictated by the aircraft's attitude, defined by three angles, known as the **Euler Angles**:\n",
"\n",
"## Euler Angles\n",
"\n",
"- Yaw $(\\psi)$ - The angle between the projection of $x_b$ on the plane of the earth, and the $x$ axis, defined as rotation around $z$.\n",
"\n",
"- Pitch $(\\theta)$ - The angle between the aircraft $x_b$ axis, and the earth $x_e/y_e$ plane, defined as rotation around intermediate axis $y_1$.\n",
"\n",
"- Roll $(\\phi)$ - The angle between the aircraft $x_b/y_b$ plane, and the intermediate $x_2/y_2$ plane - defined as rotation around $x_2$.\n",
"\n",
"A transformation matrix is desired to enable the definition of, for two axes systems with co-located origins, what a set of co-ordinates in one axes system is in the other. That is, at this stage we are not concerned with axial translation and we only wish to look at the effect of angular translation (yaw, pitch, and roll).\n",
"\n",
"$$\\begin{bmatrix}X_b\\\\Y_b\\\\Z_b\\end{bmatrix}= \\left[T(\\psi, \\theta, \\phi)\\right]\\begin{bmatrix}X_e\\\\Y_e\\\\Z_e\\end{bmatrix}$$\n",
"\n",
"We define $[T]$ by performing a three individual rotations, involving two intermediate axes systems, and combining the result.\n",
"\n",
"### Earth axes to intermediate axes $[x_1, y_1, z_1]$ through Yaw, $\\psi$\n",
"\n",
"We perform an *Euler transform* to define $x_E,y_E$ in the intermediate axes $x_1,y_1$, noting that $z_e=z_1$. You may have seen Euler transforms before, but they can be confusing, and are not clearly described in many textbooks - and, occasionally, taught incorrectly[^3]. Euler transforms don't just appear in Flight Mechanics - if you do anything with rotation, then they come in handy all the time - so mastering this will put you in excellent stead for rotary aerodynamics.\n",
"\n",
"The key to getting an Euler transform correct is to understand what you're doing - you are trying to describe a point that has *original* co-ordinates $x_e, y_e$ in the earth axis system, and wish wish to determine what co-ordinates it would have in this new axis system $x_1, y_1$. We can use basic trigonometry to work this out. Apply the following rules, and you should be okay:\n",
"\n",
"1. Draw your unrotated axis set in any arbitrary orientation. Figure {numref}`EulerPsi` (a).\n",
"\n",
"2. Use your right hand to orient the axis system (see Figure {numref}`RHRule`), and determine the direction of the positive third axis (in or out of the page). In Figure {numref}`EulerPsi` (a), the $z$-axis is positive *into the page*.\n",
"\n",
"3. The right hand screw rule - See Figure {numref}`RHScrewRule` - defines the direction of positive rotation - for Figure, this is a *clockwise* rotation. Draw your rotated axes set at some arbitrary positive angle of rotation - in this case, through Yaw ($\\psi$) - Figure {numref}`EulerPsi` (b) .\n",
"\n",
"4. Recall that you are defining what the point $x_e,y_e$ would be in this new axis set - we can do this for each of them individually. Pick one, say $x_e$, and draw a right-angle triangle with the unrotated axis ($x_e$) as the hypotenuse. The adjacent side defines the component of $x_e$ along $x_1$, whilst the opposite side defines the component of $x_e$ along $y_1$ which we can see is negative in this case - Figure {numref}`EulerPsi` (c).\n",
"\n",
"5. Do the same for the remaining unrotated axis - Figure {numref}`EulerPsi` (d).\n",
"\n",
"6. Collect the components are along the *rotated* X-axis, $x_1$:$x_1=x_e\\cdot\\cos\\psi+y_e\\cdot\\sin\\psi$\n",
"\n",
"7. Collect the components are along the *rotated* Y-axis, $y_1$:$y_1=y_e\\cdot\\cos\\psi-x_e\\cdot\\sin\\psi$ noting the *minus* sign in this one, as $x_e\\cdot\\sin\\psi$ was pointed in the *negative* $y_e$ direction.\n",
"\n",
"8. We have already stated that $z_1=z_e$, so we can write the above in matrix form: \n",
"\n",
"$$\\begin{aligned}\n",
" \\vec{R_1}&=\\left[T_1\\right]\\vec{ R_e}\\\\\n",
" \\begin{bmatrix}x_1\\\\y_1\\\\z_1\\end{bmatrix}&=\\begin{bmatrix}\\cos\\psi & \\sin\\psi & 0\\\\-\\sin\\psi & \\cos\\psi & 0\\\\ 0 & 0 & 1\\end{bmatrix}\\begin{bmatrix}x_e\\\\y_e\\\\z_e\\end{bmatrix}\n",
" \\end{aligned}$$\n",
"\n",
"9. Check that you have a matrix with; four trig terms, four zeros, and a single unity term (1). The top-left and bottom-right trig term will be a positive cosine. The top-right, and bottom-left trig term will be a sine - one positive, one negative. The (1) will be in a row and column of its own, and everything else will be zero. **If your transformation matrix doesn't follow these rules, you've messed up.**\n",
"\n",
"\n",
"```{figure} ../Images/EulerPsi.png\n",
"---\n",
"height: 600px\n",
"name: EulerPsi\n",
"---\n",
"Step to create the Euler matrix from $O_{e}$ to $O$ (Earth to body)\n",
"```\n",
"\n",
"```{figure} ../Images/RHRule.png\n",
"---\n",
"height: 300px\n",
"name: RHRule\n",
"---\n",
"The rule for assigning a correct right-handed Cartesian axis system\n",
"```\n",
"\n",
"```{figure} ../Images/RHScrewRule.png\n",
"---\n",
"height: 300px\n",
"name: RHScrewRule\n",
"---\n",
"The rule for assigning a correct right-handed rotation direction\n",
"```\n",
"\n",
"#### Intermediate Axes 1 to Intermediate Axes 2 through Pitch, $\\theta$\n",
"\n",
"So far we have only yawed our axis system, we need to pitch it next. We do exactly the same as before. Figure {numref}`EulerTheta` shows the aecond rotation through pitch, $\\theta$.\n",
"\n",
"To determine the second transformation matrix:\n",
"\n",
"$$\\begin{aligned}\n",
" \\begin{bmatrix}x_2\\\\y_2\\\\z_2\\end{bmatrix}&=\\begin{bmatrix}\\cos\\theta & 0 & -\\sin\\theta\\\\ 0 & 1 & 0 \\\\ \\sin\\theta & 0 & \\cos\\theta\\end{bmatrix}\\begin{bmatrix}x_1\\\\y_1\\\\z_1\\end{bmatrix}\\\\\n",
" \\vec{R_2}&=[T_2]\\vec{R_1}\\\\ \n",
" &=[T_2][T_1]\\vec{R_e}\\end{aligned}$$\n",
" \n",
"```{figure} ../Images/EulerTheta.png\n",
"---\n",
"height: 600px\n",
"name: EulerTheta\n",
"---\n",
"Euler Rotation from Intermediate Axes 1 to Intermediate Axes 2 through Pitch, $\\theta$\n",
"```\n",
"\n",
"#### Intermediate Axes 2 to Body Axes through Roll, $\\phi$\n",
"\n",
"Figure {numref}`EulerPhi` shows the final rotation through roll, $\\phi$.\n",
"\n",
"$$\\begin{aligned}\n",
" \\begin{bmatrix}x\\\\y\\\\z\\end{bmatrix}&=\\begin{bmatrix}1 & 0 & 0\\\\0 & \\cos\\phi & \\sin\\phi \\\\ 0 & -\\sin\\phi & \\cos\\phi \\end{bmatrix}\\begin{bmatrix}x_1\\\\y_1\\\\z_1\\end{bmatrix}\\\\\n",
" \\vec{R}&=[T_3]\\vec{R_2}\\\\ \n",
" &=[T_3][T_2][T_1]\\vec{R_e}\\end{aligned}$$\n",
"\n",
"```{figure} ../Images/EulerPhi.png\n",
"---\n",
"height: 600px\n",
"name: EulerPhi\n",
"---\n",
"Euler Rotation from Intermediate Axes 2 to Body Axes through Roll, $\\phi$\n",
"```\n",
"\n",
"#### Total Transformation Matrix\n",
"\n",
"Since we have now defined $[T_1]$, $[T_2]$, and $[T_3]$, we can perform the matrix multiplication and express $[T]$.\n",
"\n",
"$$\\begin{aligned}\n",
"&=[T_3][T_2][T_1]\\\\\n",
" &=\\begin{bmatrix}1 & 0 & 0\\\\0 & \\cos\\phi & \\sin\\phi \\\\ 0 & -\\sin\\phi & \\cos\\phi \\end{bmatrix}\\begin{bmatrix}\\cos\\theta & 0 & -\\sin\\theta\\\\ 0 & 1 & 0 \\\\ \\sin\\theta & 0 & \\cos\\theta\\end{bmatrix}\\begin{bmatrix}\\cos\\psi & \\sin\\psi & 0\\\\-\\sin\\psi & \\cos\\psi & 0\\\\ 0 & 0 & 1\\end{bmatrix}\\\\\n",
" &= \\begin{bmatrix}\\cos\\theta\\cos\\psi & \\cos\\theta\\sin\\psi & -\\sin\\theta \\\\ \n",
" -\\cos\\phi\\sin\\psi + \\sin\\phi\\sin\\theta\\cos\\psi & \\cos\\phi\\cos\\psi + \\sin\\phi\\sin\\theta\\sin\\psi & \\sin\\phi\\cos\\theta \\\\ \\sin\\phi\\sin\\psi + \\cos\\phi\\sin\\theta\\cos\\psi & -\\sin\\phi\\cos\\psi + \\cos\\phi\\sin\\theta\\sin\\psi & \\cos\\phi\\cos\\theta\\end{bmatrix}\\end{aligned}$$\n",
"\n",
"Now we can convert between Earth axes and body axes and vice versa:\n",
"\n",
"$$\\begin{aligned}\n",
" \\vec{R} &= [T]\\vec{R_e}\\\\\n",
" \\vec{R_e} &= [T]^{-1}\\vec{R}\\end{aligned}$$\n",
"\n",
"Handily, $[T]$ is orthogonal, meaning $[T][T]^T=[I]$, thus $[T]^{-1}=[T]^T$. Hence:\n",
"\n",
"$$[T]^{-1}= \\begin{bmatrix}\\cos\\theta\\cos\\psi & \\cos\\theta\\sin\\psi & -\\sin\\theta \\\\ \n",
" -\\cos\\phi\\sin\\psi + \\sin\\phi\\sin\\theta\\cos\\psi & \\cos\\phi\\cos\\psi + \\sin\\phi\\sin\\theta\\sin\\psi & \\sin\\phi\\cos\\theta \\\\ \\sin\\phi\\sin\\psi + \\cos\\phi\\sin\\theta\\cos\\psi & -\\sin\\phi\\cos\\psi + \\cos\\phi\\sin\\theta\\sin\\psi & \\cos\\phi\\cos\\theta\\end{bmatrix}$$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Usage\n",
"\n",
"It is easiest to define the gravitational forces in Earth axes, as has already been shown in Equation {eq}`gforce_earth`:\n",
"\n",
"$$\\vec{F}_{G_E} = \\begin{bmatrix}0\\\\0\\\\W\\end{bmatrix}_{e} =\\begin{bmatrix}0\\\\0\\\\ mg\\end{bmatrix}_{e}$$\n",
"\n",
"For development of the aircraft equations of motion, it is desired to express all forces in *body axes*, so we write:\n",
"\n",
"$$\\begin{aligned}\n",
" \\vec{F}_{G_b} &= \\left[T\\right]\\vec{F}_{G_e}\\\\\n",
" &= \\begin{bmatrix}\\cos\\theta\\cos\\psi & \\cos\\theta\\sin\\psi & -\\sin\\theta \\\\ \n",
" -\\cos\\phi\\sin\\psi + \\sin\\phi\\sin\\theta\\cos\\psi & \\cos\\phi\\cos\\psi + \\sin\\phi\\sin\\theta\\sin\\psi & \\sin\\phi\\cos\\theta \\\\ \\sin\\phi\\sin\\psi + \\cos\\phi\\sin\\theta\\cos\\psi & -\\sin\\phi\\cos\\psi + \\cos\\phi\\sin\\theta\\sin\\psi & \\cos\\phi\\cos\\theta\\end{bmatrix}\\begin{bmatrix}0\\\\0\\\\mg\\end{bmatrix}\n",
"\\end{aligned}$$\n",
"$$= \\begin{bmatrix}-mg\\cdot\\sin\\theta\\\\mg\\cdot \\sin\\phi\\cos\\theta\\\\mg\\cdot \\cos\\phi\\cos\\theta\\end{bmatrix}$$(gforce_body)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## From Stability Axes to Body Axes\n",
"\n",
"The transformation from Stability Axes to Body axes is another Euler transform, which you should be capable of doing now. Note that the definition of $\\alpha$ is such that for a positive angle of attack, $V_f$ approaches the aircraft from underneath, thus providing a $w$ component. It may be shown that:\n",
"\n",
"$$\\begin{aligned}\n",
" \\begin{bmatrix}x_b\\\\y_b\\\\z_b\\end{bmatrix} &= \\begin{bmatrix}\\cos\\alpha & 0 & -\\sin\\alpha\\\\0 & 1 & 0\\\\\\sin\\alpha & 0 & \\cos\\alpha\\end{bmatrix}\\begin{bmatrix}x_w\\\\y_w\\\\z_w\\end{bmatrix}\\label{eq:windtobody}\\end{aligned}$$\n",
"\n",
"### Usage\n",
"\n",
"This transformation is used to convert the aerodynamic force vector into body axes:\n",
"\n",
"$$\\begin{aligned}\n",
" \\begin{bmatrix}F_{A_x}\\\\F_{A_y}\\\\F_{A_z}\\end{bmatrix}_b &= \\begin{bmatrix}\\cos\\alpha & 0 & -\\sin\\alpha\\\\0 & 1 & 0\\\\\\sin\\alpha & 0 & \\cos\\alpha\\end{bmatrix}\\begin{bmatrix}F_{A_x}\\\\F_{A_y}\\\\F_{A_z}\\end{bmatrix}_s\\nonumber\\\\\n",
" &= \\begin{bmatrix}\\cos\\alpha & 0 & -\\sin\\alpha\\\\0 & 1 & 0\\\\\\sin\\alpha & 0 & \\cos\\alpha\\end{bmatrix}\\begin{bmatrix}-D\\\\F_{A_y}\\\\-L\\end{bmatrix}_s\\nonumber\\end{aligned}$$\n",
" \n",
"$$=\\begin{bmatrix}-D\\cos\\alpha + L\\sin\\alpha\\\\ F_{A_y}\\\\ -D\\sin\\alpha - L\\cos\\alpha\\end{bmatrix}$$ (aero_body)\n",
"\n",
"a sense check of the forces in Equation {eq}`aero_body` may be performed - the body axial force has a large component aftward because of drag, and a small component acting forward (in body axes) due to lift. Lift acts 'upward' for positive AoA, as would be expected.\n",
"\n",
"```{figure} ../Images/AerodynamicAngles.png\n",
"---\n",
"height: 600px\n",
"name: AerodynamicAngles\n",
"---\n",
"Aerodynamic Angles\n",
"```"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"(Euler-rates)=\n",
"## Euler Rates\n",
"\n",
"It is important to understand that the Euler angles are not defined in the same axis set (yaw is defined in earth axes, pitch is defined in intermediate axes 1, and roll is defined in intermediate exes 2).\n",
"\n",
"Consequently: \n",
"\n",
"$$\\begin{bmatrix}\n",
" P\\\\Q\\\\ R\n",
"\\end{bmatrix}\\neq\\left[T\\right]\n",
"\\begin{bmatrix} \\dot{\\phi}\\\\\\dot{\\theta}\\\\\\dot{\\psi}\\end{bmatrix}$$\n",
"\n",
"A rate gyro in the aircraft with principal axes aligned with the aircraft axes will measure $\\left[P, Q, R\\right]$ which are, by definition, the body angular rates. Since we define the relationship between body axes and earth axes by the Euler angles, we require the means to translate between body rates and Euler rates. We construct a transformation matrix based on the sequence of rotations, whereby each Euler angle rate has components in body $[x,y,z]$:\n",
"\n",
"First: Angular velocity about Earth axes, yaw ($z_e,\\dot{\\psi}$): \n",
"\n",
"$$\\begin{aligned}\n",
" \\begin{bmatrix}\n",
" \\dot{\\psi}_x\\\\\n",
" \\dot{\\psi}_y\\\\\n",
" \\dot{\\psi}_z\n",
" \\end{bmatrix}_b\n",
" &= [T_3]\\cdot[T_2]\\cdot[T_1]\\cdot\n",
" \\begin{bmatrix}\n",
" 0\\\\\n",
" 0\\\\\n",
" \\dot{\\psi}\n",
" \\end{bmatrix}\\nonumber\\\\\n",
" &= \\begin{bmatrix}\n",
" -\\dot{\\psi}\\sin\\theta\\\\\n",
" \\dot{\\psi}\\sin\\psi\\cos\\theta\\\\\n",
" \\dot{\\psi}\\cos\\psi\\cos\\theta\n",
" \\end{bmatrix}\\end{aligned}$$\n",
"\n",
"Second: Angular velocity about intermediate axes one, pitch ($y_1,\\dot{\\theta}$): \n",
"\n",
"$$\\begin{aligned}\n",
" \\begin{bmatrix}\n",
" \\dot{\\theta}_x\\\\\n",
" \\dot{\\theta}_y\\\\\n",
" \\dot{\\theta}_z\n",
" \\end{bmatrix}_b\n",
" &= [T_3]\\cdot[T_2]\\cdot\n",
" \\begin{bmatrix}\n",
" 0\\\\\n",
" \\dot{\\theta}\\\\\n",
" 0\n",
" \\end{bmatrix}\\nonumber\\\\\n",
" &= \\begin{bmatrix}\n",
" 0\\\\\n",
" \\dot{\\theta}\\cos\\phi\\\\\n",
" -\\dot{\\theta}\\sin\\phi\n",
" \\end{bmatrix}\\end{aligned}$$\n",
"\n",
"Third: Angular velocity about intermediate axes two, roll ($x_2,\\dot{\\phi}$): \n",
"\n",
"$$\\begin{aligned}\n",
" \\begin{bmatrix}\n",
" \\dot{\\phi}_x\\\\\n",
" \\dot{\\phi}_y\\\\\n",
" \\dot{\\phi}_z\n",
" \\end{bmatrix}_b\n",
" &= [T_3]\\cdot\n",
" \\begin{bmatrix}\n",
" \\dot{\\phi}\\\\\n",
" 0\\\\\n",
" 0\n",
" \\end{bmatrix}\\nonumber\\\\\n",
" &= \\begin{bmatrix}\n",
" \\dot{\\phi}\\\\\n",
" 0\\\\\n",
" 0\n",
" \\end{bmatrix}\\end{aligned}$$\n",
"\n",
"So the body angular rate vector is equal to the total rate of change in each axis because of the three Euler rates, or\n",
"\n",
"$$\\begin{aligned}\n",
" \\vec{\\omega } &= \\dot{\\vec{\\phi}} + \\dot{\\vec{\\theta}} + \\dot{\\vec{\\psi}}\\nonumber\\\\\n",
" &= \\begin{bmatrix}\n",
" \\dot{\\phi}\\\\\n",
" 0\\\\\n",
" 0\n",
" \\end{bmatrix} + \\begin{bmatrix}\n",
" 0\\\\\n",
" \\dot{\\theta}\\cos\\phi\\\\\n",
" -\\dot{\\theta}\\sin\\phi\n",
" \\end{bmatrix} + \n",
" \\begin{bmatrix}\n",
" \\dot{\\psi}\\sin\\theta\\\\\n",
" \\dot{\\psi}\\sin\\psi\\cos\\theta\\\\\n",
" \\dot{\\psi}\\cos\\psi\\cos\\theta\n",
" \\end{bmatrix}\\nonumber\\\\\n",
" &= \\begin{bmatrix}\n",
" 1 & 0 & -\\sin\\theta\\\\\n",
" 0 & \\cos\\phi & \\sin\\phi\\cos\\theta\\\\\n",
" 0 & -\\sin\\phi & \\cos\\phi\\cos\\theta\n",
" \\end{bmatrix}\\begin{bmatrix} \\dot{\\phi}\\\\\\dot{\\theta}\\\\\\dot{\\psi}\\end{bmatrix} (eq:eulerratetoomega)\n",
" \\end{aligned}$$\n",
" \n",
"The matrix above is not orthogonal, but if we use the inverse of the three Euler matrices, we can construct the inverse of the matrix above (or invert the 3 x 3 manually)\n",
"\n",
"$$\\begin{aligned}\n",
" \\begin{bmatrix} \\dot{\\phi}\\\\\\dot{\\theta}\\\\\\dot{\\psi}\\end{bmatrix}\n",
"&= \\begin{bmatrix}\n",
" 1 & \\sin\\phi\\tan\\theta & \\cos\\phi\\tan\\theta\\\\\n",
" 0 & \\cos\\phi & -\\sin\\phi \\\\\n",
" 0 & \\frac{\\sin\\phi}{\\cos\\theta} & \\frac{\\cos\\phi}{\\cos\\theta}\n",
" \\end{bmatrix}\\begin{bmatrix} P\\\\Q\\\\R\\end{bmatrix}\\end{aligned}$$ (eq:omegatoeulerrate)\n",
" \n",
"It should be apparent that for the case of $\\theta=90^\\circ$, the matrix above becomes singular, and hence for pitch vertically upwards, a relationship between body and Euler rates cannot be defined. This is known as 'gimbal lock' - but fortunately, for our purposes, we shall not be dealing with aircraft flying straight upward!"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Velocity related to Earth and Body Axes\n",
"\n",
"Whilst aerodynamic forces are generally defined in stability axes, the aircraft velocity vector is defined in wind axes - hence we need to be able to relate the incident flow to Earth and body axes, respectively.\\\n",
"We relate $\\vec{V}_f$ to $[U, V, W]$ via the [aerodynamic angles](aerodynamics-angles)[^4].\n",
"\n",
"[^4]: noting that $\\vec{V}$ without a subscript is the velocity in body axes by definition"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"(trajectory-angles)=\n",
"## Trajectory Angles\n",
"\n",
"The trajectory angles define the orientation of the velocity vector $\\vec{V}_f$ in earth axes. The angles are:\n",
"\n",
"Track angle, $\\tau$\\\n",
"Flight path angle, $\\gamma$\n",
"\n",
"Which we define as the aircraft velocity resolved into earth axis components:\n",
"\n",
"$$\\begin{aligned}\n",
"\\begin{split}\n",
" U_e &= V_f\\cdot\\cos\\gamma\\cdot\\cos\\tau\\\\\n",
" V_e &= V_f\\cdot\\cos\\gamma\\cdot\\sin\\tau\\\\\n",
" W_e &= V_f\\cdot\\sin\\gamma\n",
"\\end{split}\\end{aligned}$$(eq:trajectoryangles)\n",
"\n",
"The flight path angle is the angle between the velocity vector and its projection in the $x_e, y_e$ plane. The track angle is the angle between that projection and due north, $x_e$.\n",
"\n",
"Caution must be taken as these angles are defined in the opposite order to aerodynamic angles. That is, $\\vec{V}_f^\\prime$ is the projection of $\\vec{V}_f$ in the $x_e,y_e$ plane. Hence $\\vec{V}_f^\\prime\\triangleq\\vec{V}_f\\cos\\gamma$. \n",
"\n",
"The remainder of Eq. {eq}`eq:trajectoryangles` should follow from basic trigonometry.\n",
"\n",
"```{figure} ../Images/TrajectoryAngles.png\n",
"---\n",
"height: 600px\n",
"name: TrajectoryAngles\n",
"---\n",
"Trajectory Angles\n",
"```"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Reference Angles on the same planes:\n",
"\n",
"We can overlay the flight path $\\gamma$ and angle of attack $\\alpha$ on the same diagram (for the case of zero sideslip, track) - Figure {numref}`ReferenceAnglesXZ`.\n",
"\n",
"We can do the same for the track angle $\\tau$ and the aircraft sideslip angle $\\beta$ - Figure {numref}`ReferenceAnglesXY`.\n",
"\n",
"```{figure} ../Images/ReferenceAnglesXZ.png\n",
"---\n",
"height: 600px\n",
"name: ReferenceAnglesXZ\n",
"---\n",
"Reference angles on ZX plane\n",
"```\n",
"\n",
"```{figure} ../Images/ReferenceAnglesXY.png\n",
"---\n",
"height: 600px\n",
"name: ReferenceAnglesXY\n",
"---\n",
"Reference angles on XY plane\n",
"```"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Numerial Example\n",
"\n",
"Aircraft accident investigators wish to calculate the descent rate of an aircraft at the moment of impact into the ocean. The flight data recorder outputs are in terms of the following aircraft variables:\n",
"\n",
"Sideslip, yaw, pitch angles = 0\n",
"\n",
"Roll angle = 60$^\\circ$\n",
"\n",
"Angle of Attack = 30$^\\circ$\n",
"\n",
"Airspeed = 120kn EAS\n",
"\n",
"```{admonition} Click to see solution\n",
":class: dropdown\n",
"We can calculate that 120kn = 61.728. From here we must calculate the body axes components: \n",
"\n",
"$$\\begin{aligned}\n",
" U&= V_f\\cdot\\cos\\alpha\\cos\\beta = 61.728\\cdot\\cos 30 = 53.485\\text{m/s EAS}\\\\\n",
" V &=V_f\\cdot\\sin 0 = 0\\\\\n",
" W &=V_f\\cdot\\sin30\\cos0 =30.864\\text{m/s EAS} \\end{aligned}$$\n",
"\n",
"and we can convert to earth axes through the inverse Euler transformation matrix: \n",
"\n",
"$$\\begin{aligned}\n",
" \\vec{V}_e &= \\left[T\\right]^{-1}\\vec{V}\\\\\n",
" &= \\begin{bmatrix}\\cos\\theta\\cos\\psi & -\\cos\\phi\\sin\\psi + \\sin\\phi\\sin\\theta\\cos\\psi & \\sin\\phi\\sin\\psi + \\cos\\phi\\sin\\theta\\cos\\psi \\\\ \\cos\\phi\\sin\\psi & \\cos\\phi\\cos\\psi + \\sin\\phi\\sin\\theta\\sin\\psi & -\\sin\\phi\\cos\\psi + \\cos\\phi\\sin\\theta\\sin\\psi \\\\ -\\sin\\theta & \\sin\\phi\\cos\\theta & \\cos\\phi\\cos\\theta\\end{bmatrix}\\vec{V}\\end{aligned}$$\n",
"\n",
"Descent rate is simply $W_e$, hence: \n",
"\n",
"$$\\begin{aligned}\n",
" W_e &= 53.458\\cdot\\sin0 + 0\\sin60\\cdot\\cos0 + 30.864\\cos60\\cos0\\\\\n",
" &= 15.432\\text{m/s EAS}\\end{aligned}$$\n",
"```"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.8.3"
}
},
"nbformat": 4,
"nbformat_minor": 4
}