# solve the riccati equations in matlab

13 views (last 30 days)
azam ghamari on 15 Aug 2019
Answered: Roshni Garnayak on 19 Aug 2019
Hi guys
I know how we can solve a Riccati equation in matlab. But this equation that I see in paper and named Riccati equation, it's not like them as it is:
S=A_k'*S*A_k+W-A_k'*S*B_k*inv(B_k'*S*B_k+U)*B_k'*S*A_k;
wher:
A=[-0.64 1.51 -22.95 9.78 0;-4.19 -20.63 9.93 0 0;0.68 -2.68 -1.04 0 0;0 1 0 0 0;0 0 1 0 0];
B=[-1.25 3.19;-109.84 1.98;-4.33 -20.17;0 0;0 0];
C=[0.04 0 0 0 0;0 1 0 0 0;0 0 1 0 0;0 0 0 1 0;0 0 0 0 1];
D=zeros(5,2);
sys = ss(A,B,C,D);
sysd = c2d(sys,10^-2);
A_k=sysd.A;
B_k=sysd.B;
C_k=sysd.C;
D_k=sysd.D;
U=[0.02 0.01;0.01 0.03];
W=[1 0.9 0.6 0.4 1;2 0.1 0.3 0.4 0.5;0.5 1 0.3 2 0.4;0.2 0.3 0.5 0.6 0.7;0.2 0.4 0.5 0.3 0.4];

Roshni Garnayak on 19 Aug 2019
You can use the following command to solve your equation:
[X,K,L] = idare(A,B,W,U,[],[]);
The equation provided in the documentation is:
The variables can be mapped as follows:
For further details, refer to the following link:

R2014b

### Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!