1
RICC Scilab Group Scilab Function RICC
3
ricc - Riccati equation
9
A,B,C : real matrices of appropriate dimensions
11
F,G,H : real matrices of appropriate dimensions
16
: imposed string (flag for continuous or discrete)
24
gives a solution to the continuous time ARE
27
B and C are assumed to be nonnegative definite. (A,G) is assumed to be
28
stabilizable with G*G' a full rank factorization of B.
30
(A,H) is assumed to be detectable with H*H' a full rank factorization of
36
gives a solution to the discrete time ARE
38
X=F'*X*F-F'*X*G1*((G2+G1'*X*G1)^-1)*G1'*X*F+H
39
F is assumed invertible and G = G1*inv(G2)*G1'.
41
One assumes (F,G1) stabilizable and (C,F) detectable with C'*C full
42
rank factorization of H. Use preferably ric_desc.
45
//Standard formulas to compute Riccati solutions
46
A=rand(3,3);B=rand(3,2);C=rand(3,3);C=C*C';R=rand(2,2);R=R*R'+eye();
49
norm(A'*X+X*A-X*B*X+C,1)
51
[T,d]=gschur(eye(H),H,'cont');T=T(:,1:d);
54
[T,d]=schur(H,'cont');T=T(:,1:d);
58
F=A;B=rand(3,2);G1=B;G2=R;G=G1/G2*G1';H=C;
60
norm(F'*X*F-(F'*X*G1/(G2+G1'*X*G1))*(G1'*X*F)+H-X)
61
H1=[eye(3,3) G;zeros(3,3) F'];
62
H2=[F zeros(3,3);-H eye(3,3)];
63
[T,d]=gschur(H2,H1,'disc');T=T(:,1:d);X1=T(4:6,:)/T(1:3,:);
66
Hami=[Fi Fi*G;H*Fi F'+H*Fi*G];
67
[T,d]=schur(Hami,'d');T=T(:,1:d);
69
Ham=[F+G*Fit*H -G*Fit;-Fit*H Fit];
70
[T,d]=schur(Ham,'d');T=T(:,1:d);X2=T(4:6,:)/T(1:3,:);
73
riccati, ric_desc, schur, gschur