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.
| Role | Name | Type | Dimensions / attributes / default | Description |
|---|---|---|---|---|
| input | covariance | Covariance | | |
| input | dt | Real | (unit = "s") | |
| input | processNoise | Estimation.StrapdownINS.ProcessNoise | | |
| output | grown | Covariance | |
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;