-
Notifications
You must be signed in to change notification settings - Fork 2
added: covestim
in MovingHorizonEstimator
now supports SteadyKalmanFilter
#248
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
SteadyKalmanFilter
support for covestim
in SteadyKalmanFilter
support for covestim
in MovingHorizonEstimator
SteadyKalmanFilter
support for covestim
in MovingHorizonEstimator
covestim
in MovingHorizonEstimator
now supports SteadyKalmanFilter
Benchmark Results (Julia v1)Time benchmarks
Memory benchmarks
|
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #248 +/- ##
==========================================
+ Coverage 98.60% 98.63% +0.02%
==========================================
Files 26 26
Lines 4443 4458 +15
==========================================
+ Hits 4381 4397 +16
+ Misses 62 61 -1 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
I now use `pkgversion`
I wouldn't bother with the additional complexity, for the simple reason that people updating packages in order to get access to a new feature, such as that added in this PR, tend to be on the latest version of most packages and therefore won't need the fix. Explicit version management like this only tends to be warranted when there is a significant user base that lags in their adoption of new package versions for some reason, and these users critically need bugfixes.
Yes, I noticed that the are solver in MatrixEquations returns the covariance matrix for the direct form but the gain matrix for the indirect form. The function You can read the changes to the docstring here |
To avoid the intricate `pkgversion` branching.
Alright, I will revert the |
This new feature allows two things:
covestim
is aSteadyKalmanFilter
. Note that the defaultcovestim
for the MHE with aLinModel
is still a time-varyingKalmanFilter
.NonLinModel
. The user just needs to construct aSteadyKalmanFilter
with a dummyLinModel
with the same number of estimated statenx̂
than the MHE, and fix the arrival covariance usingsetstate!
as above.The
covestim
argument is also now displayed when pretty-printing aMovingHorizonEstimator
, in the "arrival covariance" field:Note that it relies on the newextra=Val(true)
arguments inControlSystemsBase.jl
, introduced in v1.18.2. This PR hence bumps the compat entry toControlSystemsBase = "1.18.2"
edit: Come to think of it, I don't this that's a good idea to bump the compat of
ControlSystemsBase.jl
just for this niche feature. I now rely onpkgversion(ControlSystemsBase)
to pass or not theextra
keyword argument tokalman
. Do you see any drawback to this workaround @baggepinnen ?edit 2: Also I notice that the computed steady-state Kalman gain with
direct=true
is not the same before and after v1.18.2, you corrected a mistake in the formula @baggepinnen ?