function
Estimation.StrapdownINS.ESKF.TickUpdates.MagnetometerTick
Public declarations
Explicit source declarations; dimensions, modifications and defaults are shown as written, without evaluation.
| Role | Name | Type | Dimensions / attributes / default | Description |
|---|---|---|---|---|
| input | previous | State | | |
| input | tuning | Tuning | | |
| input | gravityWorldEnu_m_s2 | Real | [3] | |
| input | imuTime | Real | | |
| input | angularVelocity | Real | [3] | |
| input | specificForce | Real | [3] | |
| input | requested | Boolean | | |
| input | magnetometer | Avionics.MagnetometerSample | | |
| output | next | State | | |
| output | accepted | Boolean | | |
| output | outcome | Integer | | |
| output | nis | Real | |
Modelica declarations and implementation
Show parameters, interfaces and source
Parameters, inputs, outputs, defaults and equations from the source file.
function MagnetometerTick
input State previous;
input Tuning tuning;
input Real gravityWorldEnu_m_s2[3];
input Real imuTime;
input Real angularVelocity[3];
input Real specificForce[3];
input Boolean requested;
input Avionics.MagnetometerSample magnetometer;
output State next;
output Boolean accepted;
output Integer outcome;
output Real nis;
algorithm
accepted := false; outcome := CorrectionNotAttempted; nis := 0.0;
if requested then
(next, accepted, outcome, nis) := correctMagnetometer(previous, magnetometer,
tuning.localMagneticFieldWorldEnu_T, tuning.innovationGate,
imuTime-magnetometer.timestamp_s, angularVelocity, specificForce,
gravityWorldEnu_m_s2, tuning.maximumAidingDelay_s,
tuning.useEquivariantMagnetometer, tuning.useSemiDirectBias);
else
next := copyState(previous);
end if;
end MagnetometerTick;