care - Solve continuous-time algebraic Riccati equation

Syntax

[X,L,G] = care(A,B,Q)
[X,L,G] = care(A,B,Q,R,S,E)
[X,L,G,report] = care(A,B,Q,...)
[X1,X2,D,L] = care(A,B,Q,...,'factor')

Description

[X,L,G] = care(A,B,Q) computes the unique solution X of the continuous-time algebraic Riccati equation

The care function also returns the gain matrix, .

[X,L,G] = care(A,B,Q,R,S,E) solves the more general Riccati equation

When omitted, R, S, and E are set to the default values R=I, S=0, and E=I. Along with the solution X, care returns the gain matrix and a vector L of closed-loop eigenvalues, where

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

[X,L,G,report] = care(A,B,Q,...) returns a diagnosis report with:

This syntax does not issue any error message when X fails to exist.

[X1,X2,D,L] = care(A,B,Q,...,'factor') returns two matrices X1, X2 and a diagonal scaling matrix D such that X = D*(X2/X1)*D.

The vector L contains the closed-loop eigenvalues. All outputs are empty when the associated Hamiltonian matrix has eigenvalues on the imaginary axis.

Examples

Example 1

Given

you can solve the Riccati equation

by

a = [-3 2;1 1]
b = [0 ; 1]
c = [1 -1]
r = 3
[x,l,g] = care(a,b,c'*c,r)

This yields the solution

x

x =
    0.5895    1.8216
    1.8216    8.8188

You can verify that this solution is indeed stabilizing by comparing the eigenvalues of a and a-b*g.

[eig(a)   eig(a-b*g)]
 
ans =
   -3.4495   -3.5026
    1.4495   -1.4370

Finally, note that the variable l contains the closed-loop eigenvalues eig(a-b*g).

l

l =
   -3.5026
   -1.4370

Example 2

To solve the -like Riccati equation

rewrite it in the care format as

You can now compute the stabilizing solution by

B = [B1 , B2]
m1 = size(B1,2)
m2 = size(B2,2)
R = [-g^2*eye(m1) zeros(m1,m2) ; zeros(m2,m1) eye(m2)]

X = care(A,B,C'*C,R)

Algorithm

care implements the algorithms described in [1]. It works with the Hamiltonian matrix when R is well-conditioned and ; otherwise it uses the extended Hamiltonian pencil and QZ algorithm.

Limitations

The pair must be stabilizable (that is, all unstable modes are controllable). In addition, the associated Hamiltonian matrix or pencil must have no eigenvalue on the imaginary axis. Sufficient conditions for this to hold are detectable when and , or

References

[1] Arnold, W.F., III and A.J. Laub, "Generalized Eigenproblem Algorithms and Software for Algebraic Riccati Equations," Proc. IEEE, 72 (1984), pp. 1746-1754

See Also

dare, lyap

  


 © 1984-2008- The MathWorks, Inc.    -   Site Help   -   Patents   -   Trademarks   -   Privacy Policy   -   Preventing Piracy   -   RSS