Mathematica > Mathematics and Algorithms > Control Systems > RiccatiSolve >

RiccatiSolve

RiccatiSolve
gives the matrix that is the stabilizing solution of the continuous algebraic Riccati equation .
RiccatiSolve
solves the equation .
  • In , denotes the conjugate transpose.
  • The equation 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 must not contain any symbolic expressions.
"Eigensystem"use eigenvalue decomposition
"Schur"use Schur decomposition
  • By default, eigenvalue decomposition is used to obtain the solution.
  • The setting Method works only with approximate numerical matrices.
Solve a continuous algebraic Riccati equation:
Verify the solution:
Solve a continuous algebraic Riccati equation:
In[1]:=
Click for copyable input
In[2]:=
Click for copyable input
Out[2]=
Verify the solution:
In[3]:=
Click for copyable input
Out[3]=
Solve a continuous Riccati equation:
Solve a Riccati equation with state-control coupling:
Solve the Riccati equation by extracting appropriate matrices from a state-space model object:
The eigenvalue decomposition method can be used for both exact and inexact systems :
For inexact systems, Schur decomposition may also be used:
Compute the cost associated with an optimal trajectory for a linearized inverted pendulum:
Obtain the cost by numerical integration:
Track the "cost to go" at each instant along the optimal trajectory:
Compute an optimal state-feedback gain that guarantees that all closed-loop poles are to the left of :
The closed-loop poles without any prescribed degree of stability:
Compute the minimum error covariance for a Kalman estimator:
RiccatiSolve is equivalent to RiccatiSolve {a-b.Inverse[r].ConjugateTranspose[p], b}, {q-p.Inverse[r].ConjugateTranspose[p], r}]:
If is stabilizable and is detectable, and q=Transpose[g].g, then the solution to the Riccati equation is positive semidefinite:
If is controllable and is observable, and q=Transpose[g].g, then the solution to the Riccati equation is positive definite:
The eigenvalues of the Hamiltonian matrix are pairs of the form :
and are similar matrices:
The Hamiltonian matrix must satisfy the stability and complementarity property to obtain a stabilizing solution to the Riccati equation:
Stability property:
Complementarity property:
The stabilizing solution:
The eigenvalues of the feedback system with are the stable eigenvalues of the Hamiltonian matrix:
Compute optimal state feedback gains using RiccatiSolve:
Use LQRegulatorGains to compute the same result directly:
Compute optimal output feedback gains using RiccatiSolve:
LQOutputRegulatorGains gives the same result:
Compute optimal estimator gains using RiccatiSolve:
Use LQEstimatorGains to compute this result directly:
If is not stabilizable and is not detectable, then the Riccati equation with has no stabilizing solution:
The Schur decomposition method works only with approximate numerical matrices:
New in 8
Ask a question about this page  |  Suggest an improvement  |  Leave a message for the team
Format:   HTML  |  CDF