Add Process Noise to Generic Covariance Propagation

Hey all. I am currently dealing with a problem where I have to regularly add a certain degree of process noise to the propagation of a covariance matrix over time. W.R.T. a Kalman Filter obviously Orekit already accounts for this, but I am simply propagating an initial state into the future with no measurements to feed into a Kalman filter for comparison. I know how to implement this manually mathematically, but I was thinking it might be a nice feature to be able to implement it automatically in future versions of Orekit.

I did think about running the Kalman filter with some sort of dummy measurement and adding process noise to the covariance that way, but I couldn’t think of any dummy measurement that wouldn’t affect the under-the-hood propagated covariance, and I was afraid that if I didn’t affect the numbers being propagated by Orekit directly I’d get increasingly wrong results as the propagator got farther from origin.

2 Likes

This seems interesting, contribution welcome!

An update on this - I initially built a python algorithm that would add the process noise to the propagated covariance manually, but TBH didn’t really like the results. Adding the process noise using a polynomial function is fine for EKF where you estimate is regularly updated by measurements anyway, but I found the results for long-term propagation didn’t do a good job of taking drag factors into account (altitude, density variance). So instead I set up a solution based on the unscented filter, and I like those results a lot better.