CogniPilot

MODELICA LIBRARY · ENGINEERING REFERENCE

function

Estimation.StrapdownINS.ESKF.discreteProcessCovariance

Simpson approximation of the exact held-input covariance integral

Public declarations

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

RoleNameTypeDimensions / attributes / defaultDescription
inputAReal[TangentLength, TangentLength]
inputGReal[TangentLength, ProcessNoiseLength]
inputcontinuousNoiseEstimation.StrapdownINS.ProcessNoiseCovariance
inputdtReal(unit = "s")
outputcovarianceCovariance

Modelica declarations and implementation

Show parameters, interfaces and source

Parameters, inputs, outputs, defaults and equations from the source file.

function discreteProcessCovariance
  "Simpson approximation of the exact held-input covariance integral"
  input Real A[TangentLength, TangentLength];
  input Real G[TangentLength, ProcessNoiseLength];
  input Estimation.StrapdownINS.ProcessNoiseCovariance continuousNoise;
  input Real dt(unit = "s");
  output Covariance covariance;
protected
  Real drivenNoise[TangentLength, TangentLength];
  Real halfTransition[TangentLength, TangentLength];
  Real fullTransition[TangentLength, TangentLength];
algorithm
  drivenNoise := LinearAlgebra.transformCovariance(G, continuousNoise);
  halfTransition := discreteTransition(A, 0.5 * dt);
  fullTransition := discreteTransition(A, dt);
  covariance := LinearAlgebra.symmetrize((dt / 6.0) * (
    drivenNoise
      + 4.0 * LinearAlgebra.transformCovariance(halfTransition, drivenNoise)
      + LinearAlgebra.transformCovariance(fullTransition, drivenNoise)));
end discreteProcessCovariance;