CogniPilot

MODELICA LIBRARY · ENGINEERING REFERENCE

function

Estimation.StrapdownINS.ESKF.TickUpdates.MagnetometerTick

Public declarations

Explicit source declarations; dimensions, modifications and defaults are shown as written, without evaluation.

RoleNameTypeDimensions / attributes / defaultDescription
inputpreviousState
inputtuningTuning
inputgravityWorldEnu_m_s2Real[3]
inputimuTimeReal
inputangularVelocityReal[3]
inputspecificForceReal[3]
inputrequestedBoolean
inputmagnetometerAvionics.MagnetometerSample
outputnextState
outputacceptedBoolean
outputoutcomeInteger
outputnisReal

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;