solve the riccati equations in matlab
6 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
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];
0 Kommentare
Antworten (1)
Roshni Garnayak
am 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:
0 Kommentare
Siehe auch
Kategorien
Mehr zu Matrix Computations finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!