-
Notifications
You must be signed in to change notification settings - Fork 85
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
dare validation unsuitable for H-inf synthesis #440
Comments
I'm working on a PR fixing this and some other issues, I hope to have the time to finish it any day now. |
Great - could you provide a link to the PR? |
For an idea of the integration with ControlSystems.jl see #443 |
Thank you @olof3, I will try it. |
The command dare(A, B, Q, R) has validation on R > 0, this is unsuitable for H-infinity synthesis.
finding the stationary H-inf controller amounts to finding a fixpoint to the dare:
P = Q + A'(P^(-1) + BR^(-1)B -I/gamma^2)A.
This is equivalent to solving the lqr problem with augmented B* = [B I] and R* = [R 0;0 -gamma^2]. The algorithm which is already implemented works well, however R* is indefinite so calling dare(A, B, Q, R) throws an error.
Minimal test case:
gamma = 2
A = ones((1,1))
B = ones((1,2))
Q = ones((1,1))
R = [1. 0;0 -gamma^2]
P = dare(A,B,Q,R)
@test P[1,1] \approx 1/2 + sqrt(4/3 + 1/4)
The text was updated successfully, but these errors were encountered: