idare
Implicit solver for discrete-time algebraic Riccati equations
Syntax
Description
[
computes the unique stabilizing solution X
,K
,L
] = idare(A,B,Q,R,S,E
)X
, state-feedback gain
K
, and the closed-loop eigenvalues L
of the
following discrete-time algebraic Riccati equation.
The stabilizing solution X
puts all the eigenvalues
L
inside the unit disk.
Algebraic Riccati equations play a key role in LQR/LQG control, H2- and H-infinity control, Kalman filtering, and spectral or co-prime factorizations.
[___] = idare(___,
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
are
poorly scaled.
Examples
Input Arguments
Output Arguments
Limitations
(A-zE,B)
must be stabilizable,E
andR
must be invertible, and[B;S;R]
have full column rank 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
idare
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 unit circle 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,