Skip to content

Environment model

In addition to their primary inputs, all sensors support a common set of environmental inputs.

Each sensor's simulate method(s) accepts an optional environment variable of type Environment. The environment input describes the temperature, acceleration, and vibration environment experienced by the sensor. See the IMU.simulate API documentation for an example.

These environmental inputs affect the simulated sensor measurements subject to the model and specification settings. For example, many sensors specify temperature, vibration, or acceleration dependent shifts in bias (zero-offset). When enabled in the model, specified, and accompanied by an environment input, these bias effects will be present in the simulated measurement output.

Input compatibility

The primary and environment inputs must be compatible in shape. For example, a gyro sensor may take an attitude (orientation) input with 10,000 values sampled at 100Hz. Any accompanying environmental inputs should be sampled at the same times and rates as the attitude (or be a single constant value).

Temperature effects

The environment.temperature input specifies a temperature setpoint or a time-series of temperature values. In both cases it is specified relative to the nominal operating temperature of the sensor (as specified by the manufacturer).

Acceleration effects

The environment.acceleration input specifies the true 3-dimensional acceleration experienced by the sensor in input reference axes.

Acceleration definition

When referring to environment inputs and effects, acceleration is synonymous with specific force. A sensor at rest on Earth's surface is experiencing a 1g acceleration. A sensor in free-fall is experiencing 0g.

Acceleration sensors

For accelerometers and IMUs, the environment.acceleration input is ignored. In an accelerometer, acceleration dependent errors may be modeled directly as scale factor terms. In an IMU, any acceleration dependent effects on the gyros will be calculated directly from the primary inputs.

Vibration effects

The environment.vibration input specifies the 3-dimensional vibration environment experienced by the sensor. It is specified in input reference axes and can be fixed or variable over time.

Vibration dependent effects are typically specified relative to acceleration signal power (g2). If the exact vibration profile or spectrum is known, this can be applied directly. Alternatively, it can be approximated from standard profiles appropriate to the application. See Standard [09] and Standard [10] (Method 514.8, Annex C) for examples.

In the case of random vibration, the mean square value may be used and can be calculated by integrating the power spectral density (PSD, in g2/Hz) over the relevant frequency band, taking care that PSD profiles are typically presented in log-log diagrams.

Off-axis acceleration and vibration sensitivity

Some sensors experience acceleration or vibration dependent effects in one axis when the excitation is applied along another axis (or along a linear combination of axes). For example, MEMS gyros may experience acceleration dependent effects when that acceleration is applied perpendicular to the sensing axis.

Acceleration and vibration effects can be specified as single value (applied to each axis), on a per-axis basis, or they can be specifically mapped from input reference axes to sensing axes.

Example: specifying orthogonal sensitivities

The Safran STIM300 gyro specification includes acceleration dependent bias terms of 1.0 deg/h/g. This can nominally be modeled as follows:

safran_stim300.gyro.bias.acceleration = Parameter(1.0, "deg/h/g")
However, it further specifies that xy-axis outputs are sensitive to z-axis accelerations and that z-axis outputs are sensitive to y-axis accelerations. This can be specified as follows:
safran_stim300.gyro.bias.acceleration = Parameter(
[[0, 0, 1.0],
 [0, 0, 1.0],
 [0, 1.0, 0]],
 "deg/h/g"
)