Add a provider generating process noise increasing in time, for better Kalman filtering
The Kalman filter implementation in Orekit let the user provide the
matrix at each prediction step. As of 2018-03-22, the only implementation of
the ProcessNoiseMatricProvider is ConstantProcessNoise. Users could implement their
own process noise provider, as complex and as realistic as they want.
It would be interesting to have another implementation in Orekit that is
than a constant matrix, and that simulates at least the expansion of the uncertainty
ellipsoid along track as time without measurements increase.
A first idea would be to have user provide six polynomials representing
elements of the covariance in some Local Orbital Frame (say LVLH for example). The
polynomial for the along velocity covariance would increase faster than the polynomial
for the across directions. Then, by pre and post-multiplying by the rotation matrix
we get from LOFType.rotationFromInertial, we get the dense matri in inertial frame
we need to return.
This implementation is simple but much more realistic than a constant
matrix, and it
should properly take into account the fact the uncertainty from the prediction step
is larger when the time between measurements is long than when measurements occur
Finding the polynomials would remain here the responsibility of the
caller. Later on,
we can think about using FieldPropagator on a reference orbit to estimate these
polynomials during the mission analysis phase prior to operations.
(from redmine: issue id 403, created on 2018-03-22)