-
Notifications
You must be signed in to change notification settings - Fork 438
Optimization-based and moving horizon estimation #877
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
:math:`Y[k] \in \mathbb{R}^p`, and :math:`V[k] \in \mathbb{R}^q` and | ||
:math:`W[k] \in \mathbb{R}^p` represent random processes that are not | ||
necessarily Gaussian white noise processes. The estimation problem that we | ||
wish to solve is to find the estimate :math:`\hat x[\cdot]` that matches |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should these be capital X-hat and Y-hat in keeping with the notation above?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Never mind, I realize now they're random processes.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This looks like a great feature, LGTM
Co-authored-by: Sawyer Fuller <58706249+sawyerbfuller@users.noreply.github.com>
This PR adds new functionality for computing the optimal estimate for a (nonlinear) I/O system using an explicit cost function of a fixed window of applied inputs and measured outputs. This optimal estimation problem is then used to create a system for solving moving horizon estimation (MHE) problems. Documentation and unit tests are included.
Summary of changes:
obc.OptimalEstimationProblem
class andobc.create_mhe_iosystem()
function, which implement that main new functionality.gaussian_likelyhood_cost()
to create cost function corresponding to Gaussian likelihoods for use in optimal estimation.disturbance_range_constraint()
to create a range constraint on disturbances.iosys.py
and use that functionality consistently forobc.create_estimator_iosystem
andobc.OptimalEstimationProblem
.config.py
and updated legacy keyword processing class to use that functionality.@pytest.mark.slow
), which can be used during development to skip slow tests by runningpytest -m "not slow"
.