CogniPilot

MODELICA LIBRARY · ENGINEERING REFERENCE

function

Estimation.StrapdownINS.ESKF.holdCovariance

Grow covariance by one interval of process noise with the state held

Public declarations

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

RoleNameTypeDimensions / attributes / defaultDescription
inputcovarianceCovariance
inputdtReal(unit = "s")
inputprocessNoiseEstimation.StrapdownINS.ProcessNoise
outputgrownCovariance

Modelica declarations and implementation

Show parameters, interfaces and source

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

function holdCovariance
  "Grow covariance by one interval of process noise with the state held"
  input Covariance covariance;
  input Real dt(unit = "s");
  input Estimation.StrapdownINS.ProcessNoise processNoise;
  output Covariance grown;
protected
  Real A[TangentLength, TangentLength];
  Real G[TangentLength, ProcessNoiseLength];
  Real transition[TangentLength, TangentLength];
  Estimation.StrapdownINS.ProcessNoiseCovariance continuousNoise;
  Covariance discreteNoise;
algorithm
  A := continuousTransition(zeros(3), zeros(3));
  G := noiseInputMatrix();
  transition := discreteTransition(A, dt);
  continuousNoise := processNoiseMatrix(processNoise);
  discreteNoise := discreteProcessCovariance(A, G, continuousNoise, dt);
  grown := LinearAlgebra.symmetrize(
    LinearAlgebra.transformCovariance(transition, covariance) + discreteNoise);
end holdCovariance;