Main Content

dare

(Not recommended) Solve discrete-time algebraic Riccati equations

dare is not recommended. Use idare instead. For more information, see Version History.

Description

[X,L,G] = dare(A,B,Q,R) computes the unique stabilizing solution X of the discrete-time algebraic Riccati equation:

ATXAXATXB(BTXB+R)1BTXA+Q=0

The dare function also returns a gain matrix G and a vector L of closed-loop eigenvalues.

example

[X,L,G] = dare(A,B,Q,R,S,E) solves the more general discrete-time algebraic Riccati equation:

ATXAETXE(ATXB+S)(BTXB+R)1(BTXA+ST)+Q=0

or, equivalently, if R is nonsingular:

ETXE=FTXFFTXB(BTXB+R)1BTXF+QSR1ST

Here, F=ABR1ST.

[X,L,G,report] = dare(___) also returns a diagnosis report.

[X1,X2,D,L] = dare(___,'factor') returns a factorized solution of the Riccati equation.

Examples

collapse all

Solve the discrete-time algebraic Riccati equation considering the following set of matrices:

A = [-0.9,-0.3;0.7,0.1];
B = [1;1];
Q = [1,0;0,3];
R = 0.1;

Find the stabilizing solution using dare to solve for the above matrices with default values for S and E.

[X,L,G,report] = dare(A,B,Q,R)
X =

    4.7687    0.9438
    0.9438    3.2369


L =

   -0.4460
   -0.0027


G =

   -0.2216   -0.1297


report =

   9.4192e-16

Input Arguments

collapse all

Input matrices, specified as matrices. When you omit R, S, and E, the function uses the default values R = I, S = 0, and E = I.

Output Arguments

collapse all

Solution to the discrete-time algebraic Riccati equation, returned as a matrix.

dare returns [] for X when the associated Symplectic matrix has eigenvalues on the unit circle.

Closed-loop eigenvalues, returned as a matrix.

The closed-loop eigenvalues L is computed as:

L=eig(A-B*G,E)

State-feedback gain, returned as a matrix.

The state-feedback gain G is computed as:

G=(BTXB+R)1(BTXA+ST)

dare returns [] for G when the associated Symplectic matrix has eigenvalues on the unit circle.

Diagnosis report, returned as a scalar with one of these values:

  • -1 when the associated symplectic pencil has eigenvalues on or very near the unit circle.

  • -2 when there is no finite stabilizing solution X.

  • The Frobenius norm if X exists and is finite.

Factorized solution matrices, returned as matrices. The function returns X1, X2, and a diagonal scaling matrix D such that X = D(X1/X2)D.

dare returns X1, X2, and D as empty when the associated Symplectic matrix has eigenvalues on the unit circle.

Limitations

The (A, B) pair must be stabilizable (that is, all eigenvalues of A outside the unit disk must be controllable). In addition, the associated symplectic pencil must have no eigenvalue on the unit circle. Sufficient conditions for this to hold are (Q, A) detectable when S = 0 and R > 0, or

[QSSTR]>0

Algorithms

dare implements the algorithms described in [1]. It uses the QZ algorithm to deflate the extended symplectic pencil and compute its stable invariant subspace.

References

[1] Arnold, W.F., and A.J. Laub. “Generalized Eigenproblem Algorithms and Software for Algebraic Riccati Equations.” Proceedings of the IEEE 72, no. 12 (1984): 1746–54. https://doi.org/10.1109/PROC.1984.13083.

Version History

Introduced before R2006a

collapse all

See Also