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.
| Role | Name | Type | Dimensions / attributes / default | Description |
|---|---|---|---|---|
| input | A | Real | [TangentLength, TangentLength] | |
| input | G | Real | [TangentLength, ProcessNoiseLength] | |
| input | continuousNoise | Estimation.StrapdownINS.ProcessNoiseCovariance | | |
| input | dt | Real | (unit = "s") | |
| output | covariance | Covariance | |
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;