Main Content

Three-axis Inertial Measurement Unit

Implement three-axis inertial measurement unit (IMU)

Since R2020a

  • Three-axis Inertial Measurement Unit block

Libraries:
Vehicle Dynamics Blockset / Sensors

Description

The Three-Axis Inertial Measurement Unit block implements an inertial measurement unit (IMU) containing a three-axis accelerometer and a three-axis gyroscope.

For a description of the equations and application of errors, see Three-axis Accelerometer (Aerospace Blockset) and Three-axis Gyroscope (Aerospace Blockset).

Limitations

  • Vibropendulous error, hysteresis affects, anisoelastic bias and anisoinertial bias are not accounted for in this block.

  • This block is not intended to model the internal dynamics of different forms of the instrument.

Ports

Input

expand all

Actual accelerations in body-fixed axes, specified as a three-element vector, in selected units.

Data Types: double

Angular rates in body-fixed axes, specified as a three-element vector, in radians per second.

Data Types: double

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

Data Types: double

Location of the center of gravity, specified as a three-element vector, in selected units.

Data Types: double

Gravity in body axis, specified as a three-element vector, in selected units.

Data Types: double

Output

expand all

Measured accelerations from the accelerometer, specified as a three-element vector, in selected units.

Data Types: double

Measured angular rates from the gyroscope, specified as a three-element vector, in radians per second.

Data Types: double

Parameters

expand all

Main

Input and output units, specified as:

UnitsAccelerationLength
Metric (MKS) Meters per second squaredMeters
English (British Imperial) Feet per second squaredFeet

Programmatic Use

Block Parameter: units
Type: character vector
Values: 'Metric (MKS)' | 'English'
Default: 'Metric (MKS)'

The location of the IMU, which is also the accelerometer group location, from the vehicle center of gravity, along the vehicle-fixed axis. This measurement reference is the same for the center of gravity input. The units are in selected length units.

Programmatic Use

Block Parameter: imu
Type: character vector
Values: three-element vector
Default: '[0 0 0]'

Update rate of the accelerometer and gyroscope, specified as a real, double scalar, in seconds. An update rate of 0 creates a continuous accelerometer and continuous gyroscope. If you select the Noise on parameter and the update rate is 0, the block updates the noise at a rate of 0.1.

Tip

If you:

  • Update this parameter value to 0 (continuous)

  • Configure a fixed-step solver for the model

you must also select the Automatically handle rate transition for data transfer check box in the Solver pane. This check box enables the software to handle rate transitions correctly.

Programmatic Use

Block Parameter: a_Ts
Type: character vector
Values: real, double scalar
Default: '0'
Accelerometer

To apply second-order dynamics to acceleration readings, select this check box.

Programmatic Use

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

Natural frequency of the accelerometer, specified as a real, double scalar, in radians per second.

Programmatic Use

Block Parameter: w_a
Type: character vector
Values: real, double scalar
Default: '190'

Dependencies

To enable this parameter, select Second order dynamics for accelerometer.

Damping ratio of the accelerometer, specified as a real, double scalar, with no dimensions.

Programmatic Use

Block Parameter: z_a
Type: character vector
Values: real, double scalar
Default: '0.707'

Dependencies

To enable this parameter, select Second order dynamics for accelerometer.

Scale factor and cross-coupling, specified as a 3-by-3 matrix, to skew the accelerometer from body axes and to scale accelerations along body axes.

Programmatic Use

Block Parameter: a_sf_cc
Type: character vector
Values: 3-by-3 matrix
Default: '[1 0 0; 0 1 0; 0 0 1]'

Long-term biases along the accelerometer axes, specified as a three-element vector, in selected acceleration units.

Programmatic Use

Block Parameter: a_bias
Type: character vector
Values: three-element vector
Default: '[0 0 0]'

Three minimum values and three maximum values of acceleration in each of accelerometer axes, specified as a six-element vector, in selected acceleration units.

Programmatic Use

Block Parameter: a_sat
Type: character vector
Values: six-element vector
Default: '[-inf -inf -inf inf inf inf]'
Gyroscope

To apply second-order dynamics to gyroscope readings, select this check box.

Programmatic Use

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

Natural frequency of the gyroscope, specified as a real, double scalar, in radians per second.

Programmatic Use

Block Parameter: w_g
Type: character vector
Values: real, double scalar
Default: '190'

Dependencies

To enable this parameter, select Second-order dynamics for gyro.

Damping ratio of the gyroscope, specified as a real, double scalar, with no dimensions.

Programmatic Use

Block Parameter: z_g
Type: character vector
Values: real, double scalar
Default: '0.707'

Dependencies

To enable this parameter, select Second-order dynamics for gyro.

Gyroscope scale factors and cross-coupling, specified as a 3-by-3 matrix, to skew the gyroscope from body axes and to scale angular rates along body axes.

Programmatic Use

Block Parameter: g_sf_cc
Type: character vector
Values: 3-by-3 matrix
Default: '[1 0 0; 0 1 0; 0 0 1]'

Long-term biases along the gyroscope axes, specified as three-element vector, in radians per second.

Programmatic Use

Block Parameter: g_bias
Type: character vector
Values: three-element vector
Default: '[0 0 0]'

Maximum change in rates due to linear acceleration, specified as a three-element vector, in radians per second per g-unit.

Programmatic Use

Block Parameter: g_sens
Type: character vector
Values: three-element vector
Default: '[0 0 0]'

Three minimum values and three maximum values of angular rates in each of the gyroscope axes, specified as a six-element vector, in radians per second.

Programmatic Use

Block Parameter: g_sat
Type: character vector
Values: six-element vector
Default: '[-inf -inf -inf inf inf inf]'
Noise

To apply white noise to acceleration and gyroscope readings, select this check box.

Programmatic Use

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

Scalar seeds for the Gaussian noise generator for each axis of the accelerometer and gyroscope, specified as a six-element vector.

Programmatic Use

Block Parameter: a_seeds
Type: character vector
Values: six-element vector
Default: '[23093 23094 23095 23096 23097 23098]'

Dependencies

To enable this parameter, select Noise on.

Height of the power spectral density (PSD) of the white noise for each axis of the accelerometer and gyroscope, specified as a six-element vector, in:

  • (m/s2)/Hz for Metric (MKS)

  • (ft/s2)/Hz for English

Programmatic Use

Block Parameter: a_pow
Type: character vector
Values: six-element vector
Default: '[0.001 0.001 0.001 0.0001 0.0001 0.0001]'

Dependencies

To enable this parameter, select Noise on.

References

[1] Rogers, R. M., Applied Mathematics in Integrated Navigation Systems, AIAA Education Series, 2000.

Extended Capabilities

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

Version History

Introduced in R2020a

See Also

(Aerospace Blockset) | (Aerospace Blockset)