Implement three-degrees-of-freedom equations of motion with respect to wind axes
Aerospace Blockset / Equations of Motion / 3DOF
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.
The block assumes that the applied forces act at the center of gravity of the body, and that the mass and inertia are constant.
Fx
— Applied force along x-axisApplied force along the body x-axis, specified as a scalar, in the units selected in Units.
Data Types: double
Fz
— Applied force along z-axisApplied force along the body z-axis, specified as a scalar.
Data Types: double
M
— Applied pitch momentApplied pitch moment, specified as a scalar.
Data Types: double
g
— GravityGravity, specified as a scalar.
To enable this port, set Gravity source to
External
.
Data Types: double
γ
— Flight path angleFlight path angle, within ±pi, returned as a scalar, in radians.
Data Types: double
ωy (rad/s)
— Pitch angular ratePitch angular rate, specified as a scalar, in radians per second.
Data Types: double
dωy/dt
— Pitch angular accelerationPitch angular acceleration, returned as a scalar, in radians per second squared.
Data Types: double
XeZe
— Location of bodyLocation of the body in the flat Earth reference frame, (Xe, Ze), returned as a two-element vector.
Data Types: double
Vw
— Velocity in wind-fixed frameVelocity of the body resolved into the wind-fixed coordinate frame, (V, 0), returned as a two-element vector.
Data Types: double
AxbAzb
— Acceleration of bodyAcceleration of the body with respect to the body-fixed coordinate frame, (Ax, Az), returned as a two-element vector.
Data Types: double
α
— Angle of attackAngle of attack, returned as a scalar, in radians.
Data Types: double
AxeAze
— Acceleration of bodyAccelerations 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.
To enable this port, select the Include inertial acceleration check box.
Data Types: double
Units
— Input and output unitsMetric (MKS)
(default) | English (Velocity in ft/s)
| English (Velocity in kts)
Input and output units, specified as Metric (MKS)
, English (Velocity in ft/s)
, or English (Velocity in kts)
.
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 |
Block Parameter:
units |
Type: character vector |
Values: Metric (MKS) | English (Velocity in ft/s) | English (Velocity in kts) |
Default: Metric (MKS) |
Mass type
— Mass typeFixed
(default) | Simple Variable
| Custom Variable
Mass type, specified according to the following table.
Mass Type | Description | Default 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.
Block Parameter:
mtype |
Type: character vector |
Values:
Fixed | Simple Variable |
Custom Variable |
Default:
'Fixed' |
Initial airspeed
— Initial speed100
(default) | scalarInitial speed of the body, (V0), specified as a scalar.
Block
Parameter:
V_ini |
Type: character vector |
Values:
'100' | scalar |
Default:
'100' |
Initial incidence
— Initial angle0
(default) | scalarInitial angle between the velocity vector and the body, (α0), specified as a scalar.
Block Parameter: alpha_ini |
Type: character vector |
Values:
'0' | scalar |
Default: '0' |
Initial flight path angle
— Initial flight path angle0
(default) | scalarInitial flight path angle of the body, (γ0), specified as a scalar.
Block Parameter: gamma_ini |
Type: character vector |
Values:
'0' | scalar |
Default: '0' |
Initial body rotation rate
— Initial pitch rotation rate0
(default) | scalarInitial pitch rotation rate, (q0), specified as a scalar.
Block
Parameter:
q_ini |
Type: character vector |
Values:
'0' | scalar |
Default:
'0' |
Initial position (x,z)
— Initial location[0 0]
(default) | two-element vectorInitial location of the body in the flat Earth reference frame, specified as a two-element vector.
Block Parameter:
pos_ini |
Type: character vector |
Values:
'[0 0]' | two-element vector |
Default:
'[0 0]' |
Initial mass
— Initial mass1.0
(default) | scalarInitial mass of the rigid body, specified as a scalar.
Block Parameter: mass |
Type: character vector |
Values:
'1.0' | scalar |
Default:
'1.0' |
Inertia body axes
— Inertia of body1.0
(default) | scalarInertia of the body, specified as a scalar.
To enable this parameter, set Mass type to Fixed
.
Block Parameter: Iyy |
Type: character vector |
Values:
'1.0' | scalar |
Default:
'1.0' |
Gravity Source
— Gravity sourceInternal
(default) | External
Gravity source, specified as:
External | Variable gravity input to block |
Internal | Constant gravity specified in mask |
Block Parameter: g_in |
Type: character vector |
Values: 'Internal' | 'External' |
Default: 'Internal' |
Acceleration due to gravity
— Gravity source9.81
(default) | scalarAcceleration 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
.
To enable this parameter, set Gravity Source to
Internal
.
Block Parameter: g |
Type: character vector |
Values:
'9.81' | scalar |
Default: '9.81' |
Include inertial acceleration
— Include inertial acceleration portoff
(default) | on
Select this check box to add an inertial acceleration in flat Earth frame output port. You typically connect this signal to the accelerometer.
To enable the AxeAze port, select this parameter.
Block Parameter: abi_flag |
Type: character vector |
Values:
'off' |
'on' |
Default:
'off' |
Velocity: e.g., 'V'
— Velocity state name''
(default) | character vectorVelocity state name, specified as a character vector.
Block Parameter: V_statename |
Type: character vector |
Values:
'' | scalar |
Default: '' |
Incidence angle e.g., 'alpha'
— Incidence angle state name''
(default) | scalarIncidence angle state name, specified as a scalar.
Block
Parameter:
alpha_statename |
Type: character vector |
Values:
'' | scalar |
Default:
'' |
Flight path angle: e.g., 'gamma'
— Flight path angle state name''
(default) | character vectorFlight path angle state name, specified as a character vector.
Block Parameter: gamma_statename |
Type: character vector |
Values:
'' | scalar |
Default: '' |
Body rotation rate: e.g., 'q'
— Body rotation state name''
(default) | scalarBody rotation rate state names, specified as a character vector.
Block Parameter: q_statename |
Type: character vector |
Values:
'' | scalar |
Default: '' |
Position: e.g., {'Xe', 'Ze'}
— Position state name''
(default) | comma-separated list surrounded by bracesPosition state names, specified as a comma-separated list surrounded by braces.
Block Parameter: pos_statename |
Type: character vector |
Values:
'' | comma-separated list surrounded by braces |
Default: '' |
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
where the applied forces are assumed to act at the center of gravity of the body.
[1] Stevens, Brian, and Frank Lewis. Aircraft Control and Simulation. New York: John Wiley & Sons, 1992.
3DOF (Body Axes) | 4th Order Point Mass (Longitudinal) | Custom Variable Mass 3DOF (Body Axes) | Custom Variable Mass 3DOF (Wind Axes) | Simple Variable Mass 3DOF (Body Axes) | Simple Variable Mass 3DOF (Wind Axes)