# Simple Variable Mass 6DOF Wind (Wind Angles)

Implement wind angle representation of six-degrees-of-freedom equations of motion of simple variable mass

• Library:
• Aerospace Blockset / Equations of Motion / 6DOF

## Description

The Simple Variable Mass 6DOF Wind (Wind Angles) block implements a wind angle representation of six-degrees-of-freedom equations of motion of simple variable mass. For more information of the relationship between the wind angles, see Algorithms. For a description of the coordinate system employed and the translational dynamics, see the block description for the Simple Variable Mass 6DOF (Quaternion) block.

## Limitations

The block assumes that the applied forces are acting at the center of gravity of the body.

## Ports

### Input

expand all

Applied forces, specified as a three-element vector.

Data Types: `double`

Applied moments, specified as a three-element vector.

Data Types: `double`

One or more rates of change of mass (positive if accreted, negative if ablated), specified as a scalar.

Data Types: `double`

One or more relative velocities, specified as a three-element vector, at which the mass is accreted to or ablated from the body in body-fixed axes.

#### Dependencies

To enable this port, select Include mass flow relative velocity.

Data Types: `double`

### Output

expand all

Velocity in the flat Earth reference frame, returned as a three-element vector.

Data Types: `double`

Position in the flat Earth reference frame, returned as a three-element vector.

Data Types: `double`

Wind rotation angles [bank, flight path, heading], returned as three-element vector, in radians.

Data Types: `double`

Coordinate transformation from flat Earth axes to wind-fixed axes, returned as a 3-by-3 matrix.

Data Types: `double`

Velocity in wind-fixed frame, returned as a three-element vector.

Data Types: `double`

Angle of attack and sideslip angle, returned as a two-element vector, in radians.

Data Types: `double`

Rate of change of angle of attack and rate of change of sideslip angle, returned as a two-element vector, in radians per second.

Data Types: `double`

Angular rates in body-fixed axes, returned as a three-element vector.

Data Types: `double`

Angular accelerations in body-fixed axes, returned as a three-element vector, in radians per second squared.

Data Types: `double`

Accelerations in body-fixed axes with respect to body frame, returned as a three-element vector.

Data Types: `double`

Fuel tank status, returned as:

• `1` — Tank is full.

• `0` — Tank is neither full nor empty.

• `-1` — Tank is empty.

Data Types: `double`

Accelerations in body-fixed axes with respect to inertial frame (flat Earth), returned as a three-element vector. You typically connect this signal to the accelerometer.

#### Dependencies

This port appears only when the Include inertial acceleration check box is selected.

Data Types: `double`

## Parameters

expand all

### Main

Input and output units, specified as `Metric (MKS)`, `English (Velocity in ft/s)`, or `English (Velocity in kts)`.

UnitsForcesMomentAccelerationVelocityPositionMassInertia
`Metric (MKS)` NewtonNewton-meterMeters per second squaredMeters per secondMetersKilogramKilogram meter squared
`English (Velocity in ft/s)` PoundFoot-poundFeet per second squaredFeet per secondFeetSlugSlug foot squared
`English (Velocity in kts)` PoundFoot-poundFeet per second squaredKnotsFeetSlugSlug foot squared

#### Programmatic Use

 Block Parameter: `units` Type: character vector Values: `Metric (MKS)` | `English (Velocity in ft/s)` | `English (Velocity in kts)` Default: `Metric (MKS)`

Mass type, specified according to the following table.

Mass TypeDescriptionDefault For
`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 equations of motion in Algorithms.

#### Programmatic Use

 Block Parameter: `mtype` Type: character vector Values: `Fixed` | `Simple Variable` | `Custom Variable` Default: `Simple Variable`

Equations of motion representation, specified according to the following table.

RepresentationDescription

`Wind Angles`

Use Wind angles within equations of motion.

`Quaternion`

Use quaternions within equations of motion.

The `Wind Angles` selection conforms to the equations of motion in Algorithms.

#### Programmatic Use

 Block Parameter: `rep` Type: character vector Values: `Wind Angles` | `Quaternion` Default: `'Wind Angles'`

Initial location of the body in the flat Earth reference frame, specified as a three-element vector.

#### Programmatic Use

 Block Parameter: `xme_0` Type: character vector Values: `'[0 0 0]'` | three-element vector Default: `'[0 0 0]'`

Initial airspeed, angle of attack, and sideslip angle, specified as a three-element vector.

#### Programmatic Use

 Block Parameter: `Vm_0` Type: character vector Values: `'[0 0 0]'` | three-element vector Default: `'[0 0 0]'`

Initial wind angles [bank, flight path, and heading], specified as a three-element vector in radians.

#### Programmatic Use

 Block Parameter: `wind_0` Type: character vector Values: `'[0 0 0]'` | three-element vector Default: `'[0 0 0]'`

Initial body-fixed angular rates with respect to the NED frame, specified as a three-element vector, in radians per second.

#### Programmatic Use

 Block Parameter: `pm_0` Type: character vector Values: `'[0 0 0]'` | three-element vector Default: `'[0 0 0]'`

Initial mass of the rigid body, specified as a double scalar.

#### Programmatic Use

 Block Parameter: `mass_0` Type: character vector Values: `'1.0'` | double scalar Default: `'1.0'`

Empty mass of the body, specified as a double scalar.

#### Programmatic Use

 Block Parameter: `mass_e` Type: character vector Values: double scalar Default: `'0.5'`

Full mass of the body, specified as a double scalar.

#### Programmatic Use

 Block Parameter: `mass_f` Type: character vector Values: double scalar Default: `'2.0'`

Inertia tensor matrix for the empty inertia of the body, specified as 3-by-3 matrix, in body-fixed axes.

#### Programmatic Use

 Block Parameter: `inertia_e` Type: character vector Values: `'eye(3)'` | 3-by-3 matrix Default: `'eye(3)'`

Inertia tensor matrix for the full inertia of the body, specified as a 3-by-3 matrix, in body-fixed axes.

#### Programmatic Use

 Block Parameter: `inertia_f` Type: character vector Values: `'2*eye(3)'` | 3-by-3 matrix Default: `'2*eye(3)'`

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.

#### Programmatic Use

 Block Parameter: `vre_flag` Type: character vector Values: `off` | `on` Default: `off`

Select this check box to add an inertial acceleration port.

#### Dependencies

To enable the Abe port, select this parameter.

#### Programmatic Use

 Block Parameter: `abi_flag` Type: character vector Values: `'off'` | `'on'` Default: `off`

### State Attributes

Assign a 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 comma-separated list surrounded by braces, for example, `{'a', 'b', 'c'}`. Each name must be unique.

• If a parameter is empty (`' '`), no name is assigned.

• 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.

Position state names, specified as a comma-separated list surrounded by braces.

#### Programmatic Use

 Block Parameter: `xme_statename` Type: character vector Values: `''` | comma-separated list surrounded by braces Default: `''`

Velocity state names, specified as a character vector.

#### Programmatic Use

 Block Parameter: `Vm_statename` Type: character vector Values: `''` | character vector Default: `''`

Incidence angle state name, specified as a character vector.

#### Programmatic Use

 Block Parameter: `alpha_statename` Type: character vector Values: `''` Default: `''`

Sideslip angle state name, specified as a character vector.

#### Programmatic Use

 Block Parameter: `beta_statename` Type: character vector Values: `''` Default: `''`

Wind orientation state names, specified as a comma-separated list surrounded by braces.

#### Programmatic Use

 Block Parameter: `wind_statename` Type: character vector Values: `''` Default: `''`

Body rotation rate state names, specified comma-separated list surrounded by braces.

#### Programmatic Use

 Block Parameter: `pm_statename` Type: character vector Values: `''` | comma-separated list surrounded by braces Default: `''`

Mass state name, specified as a character vector.

#### Programmatic Use

 Block Parameter: `mass_statename` Type: character vector Values: `''` | character vector Default: `''`

## Algorithms

The relationship between the wind angles, [$\mu \gamma \chi$]T, can be determined by resolving the wind rates into the wind-fixed coordinate frame.

`$\left[\begin{array}{l}{p}_{w}\\ {q}_{w}\\ {r}_{w}\end{array}\right]=\left[\begin{array}{l}\stackrel{˙}{\mu }\\ 0\\ 0\end{array}\right]+\left[\begin{array}{lll}1\hfill & 0\hfill & 0\hfill \\ 0\hfill & \mathrm{cos}\mu \hfill & \mathrm{sin}\mu \hfill \\ 0\hfill & -\mathrm{sin}\mu \hfill & \mathrm{cos}\mu \hfill \end{array}\right]\left[\begin{array}{l}0\\ \stackrel{˙}{\gamma }\\ 0\end{array}\right]+\left[\begin{array}{lll}1\hfill & 0\hfill & 0\hfill \\ 0\hfill & \mathrm{cos}\mu \hfill & \mathrm{sin}\mu \hfill \\ 0\hfill & -\mathrm{sin}\mu \hfill & \mathrm{cos}\mu \hfill \end{array}\right]\left[\begin{array}{lll}\mathrm{cos}\gamma \hfill & 0\hfill & -\mathrm{sin}\gamma \hfill \\ 0\hfill & 1\hfill & 0\hfill \\ \mathrm{sin}\gamma \hfill & 0\hfill & \mathrm{cos}\gamma \hfill \end{array}\right]\left[\begin{array}{l}0\\ 0\\ \stackrel{˙}{\chi }\end{array}\right]\equiv {J}^{-1}\left[\begin{array}{l}\stackrel{˙}{\mu }\\ \stackrel{˙}{\gamma }\\ \stackrel{˙}{\chi }\end{array}\right]$`

Inverting J then gives the required relationship to determine the wind rate vector.

`$\left[\begin{array}{l}\stackrel{˙}{\mu }\\ \stackrel{˙}{\gamma }\\ \stackrel{˙}{\chi }\end{array}\right]=J\left[\begin{array}{l}{p}_{w}\\ {q}_{w}\\ {r}_{w}\end{array}\right]=\left[\begin{array}{lll}1\hfill & \left(\mathrm{sin}\mu \mathrm{tan}\gamma \right)\hfill & \left(\mathrm{cos}\mu \mathrm{tan}\gamma \right)\hfill \\ 0\hfill & \mathrm{cos}\mu \hfill & -\mathrm{sin}\mu \hfill \\ 0\hfill & \frac{\mathrm{sin}\mu }{\mathrm{cos}\gamma }\hfill & \frac{\mathrm{cos}\mu }{\mathrm{cos}\gamma }\hfill \end{array}\right]\left[\begin{array}{l}{p}_{w}\\ {q}_{w}\\ {r}_{w}\end{array}\right]$`

The body-fixed angular rates are related to the wind-fixed angular rate by the following equation.

`$\left[\begin{array}{l}{p}_{w}\\ {q}_{w}\\ {r}_{w}\end{array}\right]=DM{C}_{wb}\left[\begin{array}{c}{p}_{b}-\stackrel{˙}{\beta }\mathrm{sin}\alpha \\ {q}_{b}-\stackrel{˙}{\alpha }\\ {r}_{b}+\stackrel{˙}{\beta }\mathrm{cos}\alpha \end{array}\right]$`

Using this relationship in the wind rate vector equations, gives the relationship between the wind rate vector and the body-fixed angular rates.

`$\left[\begin{array}{l}\stackrel{˙}{\mu }\\ \stackrel{˙}{\gamma }\\ \stackrel{˙}{\chi }\end{array}\right]=J\left[\begin{array}{l}{p}_{w}\\ {q}_{w}\\ {r}_{w}\end{array}\right]=\left[\begin{array}{lll}1\hfill & \left(\mathrm{sin}\mu \mathrm{tan}\gamma \right)\hfill & \left(\mathrm{cos}\mu \mathrm{tan}\gamma \right)\hfill \\ 0\hfill & \mathrm{cos}\mu \hfill & -\mathrm{sin}\mu \hfill \\ 0\hfill & \frac{\mathrm{sin}\mu }{\mathrm{cos}\gamma }\hfill & \frac{\mathrm{cos}\mu }{\mathrm{cos}\gamma }\hfill \end{array}\right]DM{C}_{wb}\left[\begin{array}{c}{p}_{b}-\stackrel{˙}{\beta }\mathrm{sin}\alpha \\ {q}_{b}-\stackrel{˙}{\alpha }\\ {r}_{b}+\stackrel{˙}{\beta }\mathrm{cos}\alpha \end{array}\right]$`

## References

[1] Stevens, Brian, and Frank Lewis. Aircraft Control and Simulation, 2nd ed. Hoboken, NJ: John Wiley & Sons, 2003.

[2] Zipfel, Peter H. Modeling and Simulation of Aerospace Vehicle Dynamics. 2nd ed. Reston, VA: AIAA Education Series, 2007.

## Extended Capabilities

### C/C++ Code GenerationGenerate C and C++ code using Simulink® Coder™.

Introduced in R2006a