CogniPilot

MODELICA LIBRARY · ENGINEERING REFERENCE

Estimation/StrapdownINS/ESKF/heldInputJacobian.mo

Download original .moGitHub source

Documentation: Estimation.StrapdownINS.ESKF.heldInputJacobian

within Estimation.StrapdownINS.ESKF;

function heldInputJacobian
  "Transport one held gyroscope/accelerometer sample into the local error"
  input Real A[TangentLength, TangentLength];
  input Real interval_s;
  output Real transport[TangentLength, 6];
protected
  Real fullNoiseInput[TangentLength, ProcessNoiseLength];
  Real G[TangentLength, 6];
  Real first[TangentLength, 6];
  Real second[TangentLength, 6];
  Real third[TangentLength, 6];
algorithm
  fullNoiseInput := noiseInputMatrix();
  G := fullNoiseInput[:, 1:6];
  first := interval_s * A * G;
  second := interval_s * A * first;
  third := interval_s * A * second;
  // Integrate the same third-order transition used by discreteTransition.
  // A negative interval transports the uncertainty of a held input backward.
  transport := interval_s * (G + 0.5 * first
    + (1.0 / 6.0) * second + (1.0 / 24.0) * third);
end heldInputJacobian;