3DOF (Wind Axes)

Implement three-degrees-of-freedom equations of motion with respect to wind axes

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

Description

The 3DOF (Wind Axes) block implements three-degrees-of-freedom equations of motion with respect to wind axes. It considers the rotation in the vertical plane of a wind-fixed coordinate frame about a flat Earth reference frame. For more information about the rotation and equations of motion, see Algorithms.

Limitations

The block assumes that the applied forces act at the center of gravity of the body, and that the mass and inertia are constant.

Ports

Input

expand all

Applied force along the body x-axis, specified as a scalar, in the units selected in Units.

Data Types: `double`

Applied force along the body z-axis, specified as a scalar.

Data Types: `double`

Applied pitch moment, specified as a scalar.

Data Types: `double`

Gravity, specified as a scalar.

Dependencies

To enable this port, set Gravity source to `External`.

Data Types: `double`

Output

expand all

Flight path angle, within ±pi, returned as a scalar, in radians.

Data Types: `double`

Pitch angular rate, specified as a scalar, in radians per second.

Data Types: `double`

Pitch angular acceleration, returned as a scalar, in radians per second squared.

Data Types: `double`

Location of the body in the flat Earth reference frame, (Xe, Ze), returned as a two-element vector.

Data Types: `double`

Velocity of the body resolved into the wind-fixed coordinate frame, (V, 0), returned as a two-element vector.

Data Types: `double`

Acceleration of the body with respect to the body-fixed coordinate frame, (Ax, Az), returned as a two-element vector.

Data Types: `double`

Angle of attack, returned as a scalar, in radians.

Data Types: `double`

Accelerations of the body with respect to the inertial (flat Earth) coordinate frame, returned as a two-element vector. You typically connect this signal to the accelerometer.

Dependencies

To enable this port, select the Include inertial acceleration check box.

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 `Fixed` selection conforms to the previously described equations of motion.

Programmatic Use

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

Initial speed of the body, (V0), specified as a scalar.

Programmatic Use

 Block Parameter: `V_ini` Type: character vector Values: `'100'` | scalar Default: `'100'`

Initial angle between the velocity vector and the body, (α0), specified as a scalar.

Programmatic Use

 Block Parameter: `alpha_ini` Type: character vector Values: `'0'` | scalar Default: `'0'`

Initial flight path angle of the body, (γ0), specified as a scalar.

Programmatic Use

 Block Parameter: `gamma_ini` Type: character vector Values: `'0'` | scalar Default: `'0'`

Initial pitch rotation rate, (q0), specified as a scalar.

Programmatic Use

 Block Parameter: `q_ini` Type: character vector Values: `'0'` | scalar Default: `'0'`

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

Programmatic Use

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

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

Programmatic Use

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

Inertia of the body, specified as a scalar.

Dependencies

To enable this parameter, set Mass type to `Fixed`.

Programmatic Use

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

Gravity source, specified as:

 `External` Variable gravity input to block `Internal` Constant gravity specified in mask

Programmatic Use

 Block Parameter: `g_in` Type: character vector Values: `'Internal'` | `'External'` Default: `'Internal'`

Acceleration due to gravity, specified as a double scalar and used if internal gravity source is selected. If gravity is to be neglected in the simulation, this value can be set to `0`.

Dependencies

• To enable this parameter, set Gravity Source to `Internal`.

Programmatic Use

 Block Parameter: `g` Type: character vector Values: `'9.81'` | scalar Default: `'9.81'`

Select this check box to add an inertial acceleration in flat Earth frame output port. You typically connect this signal to the accelerometer.

Dependencies

To enable the AxeAze port, select this parameter.

Programmatic Use

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

State Attributes

Velocity state name, specified as a character vector.

Programmatic Use

 Block Parameter: `V_statename` Type: character vector Values: `''` | scalar Default: `''`

Incidence angle state name, specified as a scalar.

Programmatic Use

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

Flight path angle state name, specified as a character vector.

Programmatic Use

 Block Parameter: `gamma_statename` Type: character vector Values: `''` | scalar Default: `''`

Body rotation rate state names, specified as a character vector.

Programmatic Use

 Block Parameter: `q_statename` Type: character vector Values: `''` | scalar Default: `''`

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

Programmatic Use

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

Algorithms

The block considers the rotation in the vertical plane of a wind-fixed coordinate frame about a flat Earth reference frame.

The equations of motion are

`$\begin{array}{l}\stackrel{˙}{V}=\frac{{F}_{{x}_{wind}}}{m}-g\mathrm{sin}\gamma \\ \stackrel{˙}{\alpha }=\frac{{F}_{{z}_{wind}}}{mV\mathrm{cos}\beta }+q+\frac{g}{V\mathrm{cos}\beta }\mathrm{cos}\gamma \\ \stackrel{˙}{q}=\stackrel{˙}{\theta }=\frac{{M}_{{y}_{body}}}{{I}_{yy}}\\ \stackrel{˙}{\gamma }=q-\stackrel{˙}{\alpha }\\ {A}_{be}=\left[\begin{array}{c}{A}_{xe}\\ {A}_{ze}\end{array}\right]=DC{M}_{wb}\left[\frac{{F}_{w}}{m}-g\mathrm{sin}\gamma \right]\\ {A}_{bb}=\left[\begin{array}{c}{\stackrel{˙}{u}}_{b}\\ {\stackrel{˙}{w}}_{b}\end{array}\right]=DC{M}_{wb}\left[\frac{{F}_{w}}{m}-g\mathrm{sin}\gamma -{\overline{\omega }}_{w}×{\overline{V}}_{w}\right]\\ {\overline{F}}_{w}=\left[\begin{array}{c}{F}_{{x}_{wind}}\\ {F}_{{z}_{wind}}\end{array}\right],{\overline{V}}_{w}=\left[\begin{array}{c}{V}_{{x}_{wind}}\\ {V}_{z}{}_{{}_{wind}}\end{array}\right],{\overline{\omega }}_{w}=q\end{array}$`

where the applied forces are assumed to act at the center of gravity of the body.

References

[1] Stevens, Brian, and Frank Lewis. Aircraft Control and Simulation. New York: John Wiley & Sons, 1992.

Extended Capabilities

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

Introduced in R2006a

Get trial now