Add dlqe filter-form gain option - #1220
Conversation
| produces a state estimate x_e[n] that minimizes the expected squared | ||
| error using the sensor measurements y. The noise cross-correlation `NN` | ||
| is set to zero when omitted. | ||
| produces a state estimate x_e[n] whose steady-state estimation error |
There was a problem hiding this comment.
It looks like this change is something that was proposed in a different PR: #1219
so it should not be included here, or perhaps the PRs can be consolidated into one PR.
There was a problem hiding this comment.
|
Updated the branch to remove the overlapping docstring edit on |
|
Updated:
|
|
Removed the ilter_type change as requested, keeping only the ilter_form gain option. Tested locally and all tests pass. |
|
@slivingston - updated: the |
|
CI failures have been address in #1243. Once that has been merged into main, you should be able to rebase and clear the errors. |
|
Rebased onto |
…ical zero tolerance
…n-control#1219) Remove the intro-paragraph change that duplicated work from PR python-control#1219 (docs-lqe-dlqe-error-covariance, now merged). Keep only the return_filter_form parameter docs and Notes section additions.
Addresses #1173.
This keeps the existing
dlqedefault behavior unchanged: by default it still returns the one-step predictor gainA P C^T (C P C^T + R_N)^-1.The change adds
return_filter_form=Truefor callers that need the filter-form correction gainP C^T (C P C^T + R_N)^-1, which cannot be recovered from the default predictor gain whenAis singular. The returned covariance is documented as the steady-state prediction/prior covariance used by both gain formulas.I also corrected the
dlqeRiccati equation documentation and the stochastic docs wording that referred todlqr/lqrin the estimator section.Tests run locally:
python -m pytest control/tests/stochsys_test.py::test_DLQE_return_filter_form control/tests/stochsys_test.py::test_lqe_discrete -qpython -m pytest control/tests/stochsys_test.py -qpython -m pytest control/tests/docstrings_test.py -qpython -m pytest control/tests/mateqn_test.py::TestMatrixEquations::test_dare -qpython -m pytest control/tests/kwargs_test.py::test_unrecognized_kwargs -q -k "dlqe or lqe"python -m ruff check control/stochsys.py control/tests/stochsys_test.pypython -m compileall -q control\stochsys.py control\tests\stochsys_test.pypython -m numpydoc render control.stochsys.dlqeAI Disclosure: Codex (ChatGPT 5.5) was used during code navigation, initial drafting, and PR text preparation. All logic, code changes, and test cases have been manually reviewed, verified, and tested locally by the author in accordance with the NumPy AI Policy.