Implement Euler angle representation of sixdegreesoffreedom equations of motion of simple variable mass
Equations of Motion/6DOF
The Simple Variable Mass 6DOF (Euler Angles) block considers the rotation of a bodyfixed coordinate frame (X_{b}, Y_{b}, Z_{b}) about a flat Earth reference frame (X_{e}, Y_{e}, Z_{e}). The origin of the bodyfixed coordinate frame is the center of gravity of the body, and the body is assumed to be rigid, an assumption that eliminates the need to consider the forces acting between individual elements of mass. The flat Earth reference frame is considered inertial, an excellent approximation that allows the forces due to the Earth's motion relative to the “fixed stars” to be neglected.
The translational motion of the bodyfixed coordinate frame is given below, where the applied forces [F_{x} F_{y}_{ }F_{z}]^{T }are in the bodyfixed frame. Vre_{b} is the relative velocity in the body axes at which the mass flow ($$\dot{m}$$) is ejected or added to the body in body axes.
$$\begin{array}{l}{\overline{F}}_{b}=\left[\begin{array}{l}{F}_{x}\\ {F}_{y}\\ {F}_{z}\end{array}\right]=m({\dot{\overline{V}}}_{b}+\overline{\omega}\times {\overline{V}}_{b})+\dot{m}\overline{V}r{e}_{b}\\ {A}_{be}=\frac{{\overline{F}}_{b}\dot{m}{\overline{V}}_{re}}{m}\\ {A}_{bb}=\left[\begin{array}{c}{\dot{u}}_{b}\\ {\dot{v}}_{b}\\ {\dot{\omega}}_{b}\end{array}\right]=\frac{{\overline{F}}_{b}\dot{m}{\overline{V}}_{re}}{m}\overline{\omega}\times {\overline{V}}_{b}\\ {\overline{V}}_{b}=\left[\begin{array}{l}{u}_{b}\\ {v}_{b}\\ {w}_{b}\end{array}\right],\overline{\omega}=\left[\begin{array}{l}p\\ q\\ r\end{array}\right]\end{array}$$
The rotational dynamics of the bodyfixed frame are given below, where the applied moments are [L M_{ }N]^{T}, and the inertia tensor I is with respect to the origin O.
$$\begin{array}{l}{\overline{M}}_{B}=\left[\begin{array}{l}L\\ M\\ N\end{array}\right]=I\dot{\overline{\omega}}+\overline{\omega}\times (I\overline{\omega})+\dot{I}\overline{\omega}\\ I=\left[\begin{array}{lll}{I}_{xx}\hfill & {I}_{xy}\hfill & {I}_{xz}\hfill \\ {I}_{yx}\hfill & {I}_{yy}\hfill & {I}_{yz}\hfill \\ {I}_{zx}\hfill & {I}_{zy}\hfill & {I}_{zz}\hfill \end{array}\right]\end{array}$$
The inertia tensor is determined using a table lookup which linearly interpolates between I_{full} and I_{empty} based on mass (m). While the rate of change of the inertia tensor is estimated by the following equation.
$$\dot{I}=\frac{{I}_{full}{I}_{empty}}{{m}_{full}{m}_{empty}}\dot{m}$$
The relationship between the bodyfixed angular velocity vector, [p q r]^{T}, and the rate of change of the Euler angles, [$$\dot{\varphi}\dot{\theta}\dot{\psi}$$]^{T}, can be determined by resolving the Euler rates into the bodyfixed coordinate frame.
$$\left[\begin{array}{l}p\\ q\\ r\end{array}\right]=\left[\begin{array}{l}\dot{\varphi}\\ 0\\ 0\end{array}\right]+\left[\begin{array}{lll}1\hfill & 0\hfill & 0\hfill \\ 0\hfill & \mathrm{cos}\varphi \hfill & \mathrm{sin}\varphi \hfill \\ 0\hfill & \mathrm{sin}\varphi \hfill & \mathrm{cos}\varphi \hfill \end{array}\right]\left[\begin{array}{l}0\\ \dot{\theta}\\ 0\end{array}\right]+\left[\begin{array}{lll}1\hfill & 0\hfill & 0\hfill \\ 0\hfill & \mathrm{cos}\varphi \hfill & \mathrm{sin}\varphi \hfill \\ 0\hfill & \mathrm{sin}\varphi \hfill & \mathrm{cos}\varphi \hfill \end{array}\right]\left[\begin{array}{lll}\mathrm{cos}\theta \hfill & 0\hfill & \mathrm{sin}\theta \hfill \\ 0\hfill & 1\hfill & 0\hfill \\ \mathrm{sin}\theta \hfill & 0\hfill & \mathrm{cos}\theta \hfill \end{array}\right]\left[\begin{array}{l}0\\ 0\\ \dot{\psi}\end{array}\right]\equiv {J}^{1}\left[\begin{array}{l}\dot{\varphi}\\ \dot{\theta}\\ \dot{\psi}\end{array}\right]$$
Inverting J then gives the required relationship to determine the Euler rate vector.
$$\left[\begin{array}{l}\dot{\varphi}\\ \dot{\theta}\\ \dot{\psi}\end{array}\right]=J\left[\begin{array}{l}p\\ q\\ r\end{array}\right]=\left[\begin{array}{lll}1\hfill & (\mathrm{sin}\varphi \mathrm{tan}\theta )\hfill & (\mathrm{cos}\varphi \mathrm{tan}\theta )\hfill \\ 0\hfill & \mathrm{cos}\varphi \hfill & \mathrm{sin}\varphi \hfill \\ 0\hfill & \frac{\mathrm{sin}\varphi}{\mathrm{cos}\theta}\hfill & \frac{\mathrm{cos}\varphi}{\mathrm{cos}\theta}\hfill \end{array}\right]\left[\begin{array}{l}p\\ q\\ r\end{array}\right]$$
Specifies the input and output units:
Units  Forces  Moment  Acceleration  Velocity  Position  Mass  Inertia 

Metric (MKS)  Newton  Newton meter  Meters per second squared  Meters per second  Meters  Kilogram  Kilogram meter squared 
English (Velocity in ft/s)  Pound  Foot pound  Feet per second squared  Feet per second  Feet  Slug  Slug foot squared 
English (Velocity in kts)  Pound  Foot pound  Feet per second squared  Knots  Feet  Slug  Slug foot squared 
Select the type of mass to use:
Fixed  Mass is constant throughout the simulation. 
Simple Variable  Mass and inertia vary linearly as a function of mass rate. 
Custom Variable  Mass and inertia variations are customizable. 
The Simple Variable
selection conforms to the
previously described equations of motion.
Select the representation to use:
Euler Angles  Use Euler angles within equations of motion. 
Quaternion  Use quaternions within equations of motion. 
The Euler Angles
selection conforms to the
previously described equations of motion.
The threeelement vector for the initial location of the body in the flat Earth reference frame.
The threeelement vector for the initial velocity in the bodyfixed coordinate frame.
The threeelement vector for the initial Euler rotation angles [roll, pitch, yaw], in radians.
The threeelement vector for the initial bodyfixed angular rates, in radians per second.
The initial mass of the rigid body.
A scalar value for the empty mass of the body.
A scalar value for the full mass of the body.
A 3by3 inertia tensor matrix for the empty inertia of the body.
A 3by3 inertia tensor matrix for the full inertia of the body.
Select this check box to add a mass flow relative velocity port. This is the relative velocity at which the mass is accreted or ablated.
Select this check box to enable an additional output port for the accelerations in bodyfixed axes with respect to the inertial frame. You typically connect this signal to the accelerometer.
Assign unique name to each state. You can use state names instead of block paths during linearization.
To assign a name to a single state, enter a unique name between quotes,
for example, 'velocity'
.
To assign names to multiple states, enter a commadelimited list
surrounded by braces, for example, {'a', 'b', 'c'}
. Each
name must be unique.
If a parameter is empty (' '
), no name assignment
occurs.
The state names apply only to the selected block with the name parameter.
The number of states must divide evenly among the number of state names.
You can specify fewer names than states, but you cannot specify more names than states.
For example, you can specify two names in a system with four states. The first name applies to the first two states and the second name to the last two states.
To assign state names with a variable in the MATLAB^{®} workspace, enter the variable without quotes. A variable can be a character vector, cell array, or structure.
Specify position state names.
Default value is ''
.
Specify velocity state names.
Default value is ''
.
Specify Euler rotation angle state names. This parameter appears if
the Representation parameter is set to
Euler Angles
.
Default value is ''
.
Specify body rotation rate state names.
Default value is ''
.
Specify mass state name.
Default value is ''
.
Input  Dimension Type  Description 

First  Vector  Contains the three applied forces. 
Second  Vector  Contains the three applied moments. 
Third  Scalar  Contains one or more rates of change of mass. 
Fourth (Optional)  Threeelement vector  Contains one or more relative velocities at which the mass is accreted to or ablated from the body in bodyfixed axes. 
Output  Dimension Type  Description 

First  Threeelement vector  Contains the velocity in the flat Earth reference frame. 
Second  Threeelement vector  Contains the position in the flat Earth reference frame. 
Third  Threeelement vector  Contains the Euler rotation angles [roll, pitch, yaw], within ±pi, in radians. 
Fourth  3by3 matrix  Applies to the coordinate transformation from flat Earth axes to bodyfixed axes. 
Fifth  Threeelement vector  Contains the velocity in the bodyfixed frame. 
Sixth  Threeelement vector  Contains the angular rates in bodyfixed axes, in radians per second. 
Seventh  Threeelement vector  Contains the angular accelerations in bodyfixed axes, in radians per second squared. 
Eight  Threeelement vector  Contains the accelerations in bodyfixed axes with respect to body frame. 
Ninth  Scalar element  Contains a flag for fuel tank status:

Tenth (Optional)  Threeelement vector  Contains the accelerations in bodyfixed axes with respect to inertial frame (flat Earth). You typically connect this signal to the accelerometer. 
The block assumes that the applied forces are acting at the center of gravity of the body.
Stevens, Brian, and Frank Lewis, Aircraft Control and Simulation, Second Edition, John Wiley & Sons, 2003.
Zipfel, Peter H., Modeling and Simulation of Aerospace Vehicle Dynamics. Second Edition, AIAA Education Series, 2007.
6th Order Point Mass (Coordinated Flight)
Custom Variable Mass 6DOF (Euler Angles)
Custom Variable Mass 6DOF (Quaternion)
Custom Variable Mass 6DOF ECEF (Quaternion)
Custom Variable Mass 6DOF Wind (Quaternion)
Custom Variable Mass 6DOF Wind (Wind Angles)
Simple Variable Mass 6DOF (Quaternion)
Simple Variable Mass 6DOF ECEF (Quaternion)
Simple Variable Mass 6DOF Wind (Quaternion)