I have a SSM ( State Space Model ) and I want to calculate its optimum gains unisng LQOutputRegulatorGains[] command. When I run the code, it solves the equations and give an answer, but this error also appears :

    RiccatiSolve::ncsol: Cannot compute a stabilizing solution to the matrix equation.>>

What's wrong with it ?! And is it possible to change the method which RiccatiSolve[] command uses to solve the equation ?

It is good to mention that RiccatiSolve[] uses two methods : 1.Eigensystem 2.Schur. I don't know how to change the RiccatiSolve[] methods in the LQOutputRegulatorGains[] command.

Thank you in advance.


1 Answer 1


The Method option in LQOutputRegulatorGains is not documented yet and seems to be going through several iterations. This is what works for the different versions.

v8: Method -> {"RiccatiSolveOptions" -> {Method -> "Eigensystem"}}

v9: Method -> {"Riccati", {Method-> "Eigensystem"}}

v10:Method ->{"Riccati"->{Method-> "Eigensystem"}}

And, FWIW, all method options documented for RiccatiSolve in v10 seem to work in v9.

The message you got, typically means that the method used detected some problem with the Hamiltonian. If none of the methods work, you will need to look at the Hamiltonian or see if conditions for solvability of the LQOutputRegulatorGains are satisfied.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.