icare
Implicit solver for continuous-time algebraic Riccati equations
Syntax
Description
[
computes the unique stabilizing solution X
,K
,L
] = icare(A,B,Q,R,S,E,G
)X
, state-feedback gain
K
, and the closed-loop eigenvalues L
of the
following continuous-time algebraic Riccati equation.
The stabilizing solution X
puts all the eigenvalues
L
in the left half-plane.
Algebraic Riccati equations play a key role in LQR/LQG control, H2- and H-infinity control, Kalman filtering, and spectral or co-prime factorizations.
[___] = icare(___,
turns off the built-in scaling and sets all entries of the scaling vectors
'noscaling'
)info.Sx
and info.Sr
to 1. Turning off scaling speeds
up computation but can be detrimental to accuracy when A,B,Q,R,S,E,G
are poorly scaled.
Examples
Input Arguments
Output Arguments
Limitations
(A-sE,B)
must be stabilizable, andE
andR
must be invertible for a finite stabilizing solutionX
to exist and be finite. While these conditions are not sufficient in general, they become sufficient when the following conditions are met:is detectible
Algorithms
Basis of the invariant subspace
icare
works with the following pencil, and computes a basis
[U;V;W]
of the invariant subspace associated with the stable or
anti-stable finite eigenvalues of this pencil.
The data is automatically scaled to reduce the sensitivity of eigenvalues near the imaginary axis and increase separation between the stable and anti-stable invariant subspaces.
Relationship between the solution, the state-feedback gain, and the scaling vectors
The solution X
and state-feedback gain K
are
related to the scaling vectors, and U,V,W
by the following set of equations:
where,