-
Notifications
You must be signed in to change notification settings - Fork 83
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
Help Request: Time Varying LQR Solution #463
Comments
The toolbox only supports the case of infinite horizon and constant system dynamics, which can be solved as an algebraic Riccati equation. Time-varying LQR is more involved. In continuous time it is necessary to solve a differential Riccati equation. One reference for further reading on this would be Liberzon's book on optimal control, chapter 6. I think it would be nice to have this functionality in the toolbox at some point. |
Thanks for your comments, something related and interesting that I just came across is "State-dependent Ricacati Equations" (https://ieeexplore.ieee.org/document/609663). But yeah the big change would be having an implementation that solves the differential Riccati Equation. |
There is a generalization of this implemented in |
It would be great to have a an example which solves systems with time-varying matrices A, B for LQR.
I know I can just call the
lqr
method at every timestep with different A and B matrices, but is that the same?We use the following, but doesn't that assume that A and B are the same during the backward pass when solving the differential equation concerning the cost to go matrix
X
?ControlSystems.jl/src/matrix_comps.jl
Lines 3 to 4 in 311013e
i.e. Solving the cost to go matrix
X
backwards in time with varyingA_t
andB_t
matrices, instead of constantA
andB
matrices.Maybe I am just not understanding properly LQR in the time-varying case. Any help or guidance would be appreciated. Ideally having an example in the docs would close this issue. Thank you!
The text was updated successfully, but these errors were encountered: