RiccatiSolve

RiccatiSolve[{a, b}, {q, r}]
gives the matrix that is the stabilizing solution of the continuous algebraic Riccati equation TemplateBox[{a}, ConjugateTranspose].x+x.a-x.b.TemplateBox[{r}, Inverse].TemplateBox[{b}, ConjugateTranspose].x+q=0.

RiccatiSolve[{a, b}, {q, r, p}]
solves the equation TemplateBox[{a}, ConjugateTranspose].x+x.a-(x.b+p).TemplateBox[{r}, Inverse].(TemplateBox[{b}, ConjugateTranspose].x+TemplateBox[{p}, ConjugateTranspose])+q=0.

Details and OptionsDetails and Options

  • In TemplateBox[{a}, ConjugateTranspose].x+x.a-x.b.TemplateBox[{r}, Inverse].TemplateBox[{b}, ConjugateTranspose].x+q=0, denotes the conjugate transpose.
  • The equation TemplateBox[{a}, ConjugateTranspose].x+x.a-x.b.TemplateBox[{r}, Inverse].TemplateBox[{b}, ConjugateTranspose].x+q=0 has a unique, symmetric, positive semidefinite solution if is stabilizable, is detectable, , and . Consequently, all eigenvalues of the matrix are negative and the solution is stabilizing.
  • The solution is positive definite when is controllable and is observable.
  • The eigenvalues of the Hamiltonian matrix (a -b.TemplateBox[{r}, Inverse].b; -q -a) must not contain any symbolic expressions.
  • RiccatiSolve supports a Method option. The following explicit settings can be specified:
  • "Eigensystem"use eigenvalue decomposition
    "Schur"use Schur decomposition
  • By default, eigenvalue decomposition is used to obtain the solution.
  • The setting Method->"Schur" works only with approximate numerical matrices.
New in 8
New to Mathematica? Find your learning path »
Have a question? Ask support »