Implement quaternion representation of six-degrees-of-freedom equations of motion of custom variable mass in Earth-centered Earth-fixed (ECEF) coordinates

Equations of Motion/6DOF

The Custom Variable Mass 6DOF ECEF (Quaternion)
block considers the rotation of a Earth-centered Earth-fixed (ECEF)
coordinate frame (*X _{ECEF}, Y_{ECEF},
Z_{ECEF}*)
about an Earth-centered inertial (ECI) reference frame (

The translational motion of the ECEF coordinate frame is given
below, where the applied forces [*F _{x} F_{y} F_{z}*]

$$\begin{array}{c}{\overline{F}}_{b}=\left[\begin{array}{c}{F}_{x}\\ {F}_{y}\\ {F}_{z}\end{array}\right]=m\left({\dot{\overline{V}}}_{b}+{\overline{\omega}}_{b}\times {\overline{V}}_{b}+DC{M}_{bf}{\overline{\omega}}_{e}\times {\overline{V}}_{b}+DC{M}_{bf}\left({\overline{\omega}}_{e}\times \left({\overline{\omega}}_{e}\times {\overline{X}}_{f}\right)\right)\right)\\ +\dot{m}\left(\overline{V}r{e}_{b}+DC{M}_{bf}\left({\overline{\omega}}_{e}\times {\overline{X}}_{f}\right)\right)\\ \\ {A}_{bb}=\left[\begin{array}{c}{\dot{u}}_{b}\\ {\dot{v}}_{b}\\ {\dot{w}}_{b}\end{array}\right]=\frac{{\overline{F}}_{b}-\dot{m}\left({\overline{V}}_{r{e}_{b}}+DC{M}_{bf}\left({w}_{e}\times {X}_{f}\right)\right)}{m}\\ -\left[{\overline{\omega}}_{{}_{b}}\times {\overline{V}}_{b}+DCM{\overline{\omega}}_{e}\times {\overline{V}}_{b}+DC{M}_{bf}\left({\overline{\omega}}_{e}\left({\overline{\omega}}_{e}\times {X}_{f}\right)\right)\right]\\ \\ {A}_{b}{\text{}}_{ecef}=\frac{{\overline{F}}_{b}-\dot{m}\left({\overline{V}}_{r{e}_{b}}+DC{M}_{bf}\left({\omega}_{e}\times {X}_{f}\right)\right)}{m}\end{array}$$

where the change of position in ECEF $${\dot{\overline{x}}}_{f}$$ is calculated by

$${\dot{\overline{x}}}_{f}=DC{M}_{fb}{\overline{V}}_{b}$$

and the velocity of the body with respect to ECEF frame, expressed in body frame $$({\overline{V}}_{b})$$, angular rates of the body with respect to ECI frame, expressed in body frame $$({\overline{\omega}}_{b})$$. Earth rotation rate $$({\overline{\omega}}_{e})$$, and relative angular rates of the body with respect to north-east-down (NED) frame, expressed in body frame $$({\overline{\omega}}_{rel})$$ are defined as

$$\begin{array}{l}{\overline{V}}_{b}=\left[\begin{array}{c}u\\ v\\ w\end{array}\right],{\overline{\omega}}_{rel}=\left[\begin{array}{c}p\\ q\\ r\end{array}\right],{\overline{\omega}}_{e}=\left[\begin{array}{c}0\\ 0\\ {\omega}_{e}\end{array}\right],{\overline{\omega}}_{b}={\overline{\omega}}_{rel}+DC{M}_{bf}{\overline{\omega}}_{e}+DC{M}_{be}{\overline{\omega}}_{ned}\\ {\overline{\omega}}_{ned}=\left[\begin{array}{c}\dot{l}\mathrm{cos}\mu \\ -\dot{\mu}\\ -\dot{l}\mathrm{sin}\mu \end{array}\right]=\left[\begin{array}{c}{V}_{E}/\left(N+h\right)\\ -{V}_{N}/\left(M+h\right)\\ -{V}_{E}\u2022\mathrm{tan}\mu /\left(N+h\right)\end{array}\right]\end{array}$$

The rotational dynamics of the body defined in body-fixed 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}{c}L\\ M\\ N\end{array}\right]=\overline{I}{\dot{\overline{\omega}}}_{b}+{\overline{\omega}}_{b}\times (\overline{I}{\overline{\omega}}_{b})+\dot{I}{\overline{\omega}}_{b}\\ \\ I=\left[\begin{array}{ccc}{I}_{xx}& -{I}_{xy}& -{I}_{xz}\\ -{I}_{yx}& {I}_{yy}& -{I}_{yz}\\ -{I}_{zx}& -{I}_{zy}& {I}_{zz}\end{array}\right]\end{array}$$

The rate of change of the inertia tensor is defined by the following equation.

$$\dot{I}=\left[\begin{array}{ccc}{\dot{I}}_{xx}& -{\dot{I}}_{xy}& -{\dot{I}}_{xz}\\ -{\dot{I}}_{yx}& {\dot{I}}_{yy}& -{\dot{I}}_{yz}\\ -{\dot{I}}_{zx}& -{\dot{I}}_{zy}& {\dot{I}}_{zz}\end{array}\right]$$

The integration of the rate of change of the quaternion vector is given below.

$$\left[\begin{array}{c}{\dot{q}}_{0}\\ {\dot{q}}_{1}\\ {\dot{q}}_{2}\\ {\dot{q}}_{3}\end{array}\right]=-\raisebox{1ex}{$1$}\!\left/ \!\raisebox{-1ex}{$2$}\right.\left[\begin{array}{cccc}0& {\omega}_{b}\left(1\right)& {\omega}_{b}\left(2\right)& {\omega}_{b}\left(3\right)\\ -{\omega}_{b}\left(1\right)& 0& -{\omega}_{b}\left(3\right)& {\omega}_{b}\left(2\right)\\ -{\omega}_{b}\left(2\right)& {\omega}_{b}\left(3\right)& 0& -{\omega}_{b}\left(1\right)\\ -{\omega}_{b}\left(3\right)& -{\omega}_{b}\left(2\right)& {\omega}_{b}\left(1\right)& 0\end{array}\right]\left[\begin{array}{c}{q}_{0}\\ {q}_{1}\\ {q}_{2}\\ {q}_{3}\end{array}\right]$$

Aerospace Blockset™ uses quaternions that are defined using the scalar-first convention.

**Units**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

**Mass type**Select the type of mass to use:

`Fixed`

Mass is constant throughout the simulation (see 6DOF ECEF (Quaternion)).

`Simple Variable`

Mass and inertia vary linearly as a function of mass rate (see Simple Variable Mass 6DOF ECEF (Quaternion)).

`Custom Variable`

Mass and inertia variations are customizable.

The

`Simple Variable`

selection conforms to the previously described equations of motion.**Initial position in geodetic latitude, longitude and altitude**The three-element vector for the initial location of the body in the geodetic reference frame. Latitude and longitude values can be any value. However, latitude values of +90 and -90 may return unexpected values because of singularity at the poles.

**Initial velocity in body-axis**The three-element vector containing the initial velocity of the body with respect to ECEF frame, expressed in body frame.

**Initial Euler orientation**The three-element vector containing the initial Euler rotation angles [roll, pitch, yaw], in radians. Euler rotation angles are those between the body and north-east-down (NED) coordinate systems.

**Initial body rotation rates**The three-element vector for the initial angular rates of the body with respect to NED frame, expressed in body frame, in radians per second.

**Include mass flow relative velocity**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.

**Planet model**Specifies the planet model to use,

`Custom`

or`Earth (WGS84)`

.**Equatorial radius of planet**Specifies the radius of the planet at its equator. The units of the equatorial radius parameter should be the same as the units for ECEF position. This option is only available when

**Planet model**is set to`Custom`

.**Flattening**Specifies the flattening of the planet. This option is only available when

**Planet model**is set to`Custom`

.**Rotational rate**Specifies the scalar rotational rate of the planet in rad/s. This option is only available when

**Planet model**is set to`Custom`

.**Celestial longitude of Greenwich source**Specifies the source of Greenwich meridian's initial celestial longitude:

`Internal`

Use celestial longitude value from mask dialog.

`External`

Use external input for celestial longitude value.

**Celestial longitude of Greenwich**The initial angle between Greenwich meridian and the

*x*-axis of the ECI frame.**Include inertial acceleration**Select this check box to enable an additional output port for the accelerations in body-fixed axes with respect to the inertial frame. You typically connect this signal to the accelerometer.

Assign unique name to each state. Use state names instead of block paths throughout the linearization process.

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 comma-delimited 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.

**Quaternion vector: e.g., {'qr', 'qi', 'qj', 'qk'}**Specify quaternion vector name for the state.

Default value is

`' '`

.**Body rotation rates: e.g., {'p', 'q', 'r'}**Specify body rotation rate name for the state.

Default value is

`' '`

.**Velocity: e.g., {'U', 'v', 'w'}**Specify velocity name for the state.

Default value is

`' '`

.**ECEF position: e.g., {'Xecef', 'Yecef', 'Zecef'}**Specify the ECEF position name for the state.

Default value is

`' '`

.**Inertial position: e.g., {'Xeci', 'Yeci', 'Zeci'}**Specify the inertial position name for the state.

Default value is

`' '`

.**Celestial longitude of Greenwich: e.g., 'LG'**Specify the Celestial longitude of Greenwich name for the state.

Default value is

`' '`

.

Input | Dimension Type | Description |
---|---|---|

First | Vector | Contains the three applied forces in body-fixed axes. |

Second | Vector | Contains the three applied moments in body-fixed axes. |

Third (Optional) | Vector | Contains one or more rates of change of mass (positive if accreted, negative if ablated). |

Fourth | Scalar | Contains the mass. |

Sixth | 3-by-3 matrix | Applies to the inertia tensor matrix. |

Seventh (Optional) | 1-by-1-by-m array | Contains one or more relative velocities at which the mass
is accreted to or ablated from the body in body-fixed axes. m is
three times the size of the third input vector. |

Output | Dimension Type | Description |
---|---|---|

First | Three-element vector | Contains the velocity of the body with respect to ECEF frame, expressed in ECEF frame. |

Second | Three-element vector | Contains the position in the ECEF reference frame. |

Third | Three-element vector | Contains the position in geodetic latitude, longitude and altitude, in degrees, degrees and selected units of length respectively. |

Fourth | Three-element vector | Contains the body rotation angles [roll, pitch, yaw], in radians. Euler rotation angles are those between the body and NED coordinate systems. |

Fifth | 3-by-3 matrix | Applies to the coordinate transformation from ECI axes to body-fixed axes. |

Sixth | 3-by-3 matrix | Applies to the coordinate transformation from NED axes to body-fixed axes. |

Seventh | 3-by-3 matrix | Applies to the coordinate transformation from ECEF axes to NED axes. |

Eighth | Three-element vector | Contains the velocity of the body with respect to ECEF frame, expressed in body frame. |

Ninth | Three-element vector | Contains the relative angular rates of the body with respect to NED frame, expressed in body frame, in radians per second. |

Tenth | Three-element vector | Contains the angular rates of the body with respect to ECI frame, expressed in body frame, in radians per second. |

Eleventh | Three-element vector | Contains the angular accelerations of the body with respect to ECI frame, expressed in body frame, in radians per second squared. |

Twelfth | Three-element vector | Contains the accelerations in body-fixed axes with respect to body frame. |

Thirteenth (Optional) | Three-element vector | Contains the accelerations in body-fixed axes with respect to ECEF frame. |

This implementation assumes that the applied forces are acting at the center of gravity of the body.

This implementation generates a geodetic latitude that lies between ±90 degrees, and longitude that lies between ±180 degrees. Additionally, the MSL altitude is approximate.

The Earth is assumed to be ellipsoidal. By setting flattening to 0.0, a spherical planet can be achieved. The Earth's precession, nutation, and polar motion are neglected. The celestial longitude of Greenwich is Greenwich Mean Sidereal Time (GMST) and provides a rough approximation to the sidereal time.

The implementation of the ECEF coordinate system assumes that
the origin is at the center of the planet, the *x*-axis
intersects the Greenwich meridian and the equator, the *z*-axis
is the mean spin axis of the planet, positive to the north, and the *y*-axis
completes the right-handed system.

The implementation of the ECI coordinate system assumes that the origin is at the center of
the planet, the *x*-axis is the continuation of the line from the
center of the Earth toward the vernal equinox, the *z*-axis points in
the direction of the mean equatorial plane's north pole, positive to the north, and the
*y*-axis completes the right-handed system.

Stevens, B. L., and F. L. Lewis, *Aircraft Control
and Simulation, Second Edition*, John Wiley & Sons,
New York, 2003.

McFarland, Richard E., *A Standard Kinematic Model
for Flight simulation at NASA-Ames*, NASA CR-2497.

“Supplement to Department of Defense World Geodetic System 1984 Technical Report: Part I - Methods, Techniques and Data Used in WGS84 Development,” DMA TR8350.2-A.

6th Order Point Mass (Coordinated Flight)

Custom Variable Mass 6DOF (Euler Angles)

Custom Variable Mass 6DOF (Quaternion)

Custom Variable Mass 6DOF Wind (Quaternion)

Custom Variable Mass 6DOF Wind (Wind Angles)

Simple Variable Mass 6DOF (Euler Angles)

Simple Variable Mass 6DOF (Quaternion)

Simple Variable Mass 6DOF ECEF (Quaternion)

Simple Variable Mass 6DOF Wind (Quaternion)