CogniPilot

MODELICA LIBRARY · ENGINEERING REFERENCE

function

Estimation.StrapdownINS.ESKF.inflateStateCovariance

Inflate covariance in its selected representation

Public declarations

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

RoleNameTypeDimensions / attributes / defaultDescription
inputpreviousState
inputlimitsVarianceLimits
inputdtReal
inputtimeConstant_sReal
outputinflatedState

Modelica declarations and implementation

Show parameters, interfaces and source

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

function inflateStateCovariance "Inflate covariance in its selected representation"
  input State previous;
  input VarianceLimits limits;
  input Real dt;
  input Real timeConstant_s;
  output State inflated;
protected
  Covariance addendRoot;
  Covariance inflatedCovariance;
algorithm
  inflatedCovariance := inflateCovariance(previous.covariance, limits,
    dt, timeConstant_s);
  if previous.useSquareRootCovariance then
    addendRoot := zeros(TangentLength, TangentLength);
    for row in 1:TangentLength loop
      addendRoot[row, row] := sqrt(max(inflatedCovariance[row, row]
        - previous.covariance[row, row], 0.0));
    end for;
    inflated := withCovarianceRoot(previous, LinearAlgebra.covarianceRoot(
      cat(2, previous.covarianceRoot, addendRoot)),
      previous.barometerBiasCrossCovariance);
  else
    inflated := withDenseCovariance(previous, inflatedCovariance,
      previous.barometerBiasCrossCovariance);
  end if;
end inflateStateCovariance;