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.
| Role | Name | Type | Dimensions / attributes / default | Description |
|---|---|---|---|---|
| input | previous | State | | |
| input | limits | VarianceLimits | | |
| input | dt | Real | | |
| input | timeConstant_s | Real | | |
| output | inflated | State | |
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;