You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Support zero process noise in MovingHorzionEstimator #349
The MovingHorizonEstimator (MHE) can "easily" support states that are purely deterministic, that is, undisturbed by the process noise $\mathbf{w}(k)$. It leads to an estimation problem with the estimated process noise vector with a different number of element that the estimated state vector (length(ŵ) ≠ length(x̂)).
This is advantageous in the MHE since it drastically reduces the number of decision variables. This also something that is typically not well supported by the other state estimators, producing numerical and conditioning issues.
The refactor job should be of intermediate difficulty, since right now I explicitly differentiate the number of elements in the two vectors (I did this exactly to eventually support this feature). The number of elements of the process noise vector is already distinct in the code, which is currently denoted with nŵ.
In term of API, the most intuitive way of supporting this feature would be to detect that one row and one column in the estimated process noise covariance $\mathbf{\hat{Q}}$ is entirely made of zeros.
So the difficulty is higher than I first thought because of the arrival covariance estimation, done by a KalmanFilter or UnscentedKalmanFilter by default. We cannot simply put a 0 on the main diagonal of $\mathbf{\hat{Q}}$ and expect them to work. Singular and positive definite exceptions will be certainly thrown.
It is only "straightforward" in the MHE if we assume a constant arrival covariance $\mathbf{\bar{P}}$.
Activity
franckgaga commentedon Jun 9, 2026
So the difficulty is higher than I first thought because of the arrival covariance estimation, done by a$\mathbf{\hat{Q}}$ and expect them to work. Singular and positive definite exceptions will be certainly thrown.
KalmanFilterorUnscentedKalmanFilterby default. We cannot simply put a0on the main diagonal ofIt is only "straightforward" in the MHE if we assume a constant arrival covariance$\mathbf{\bar{P}}$ .