LMI Minicx Problem (Robust Control)
17 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
This Theorem is from one paper published in IEEE Trans Automatic Control, the details of theorem are as follows:



---------------------------------------------------------------------------------------------------------------------------
Then, I using the following configurations to test this theorem

alpha = -0.07, and beta is -0.28, delta is equal to 0.5.
--------------------------------------------------------------------------------------------------------------------------
If I want to find the miniman vlaue of gamma, i have the following LMI equation
Minimise gamma subject to (10)
-------------------------------------------------------------------------------------------------------------------------
Finally, I develop my own code, please see the following. However, it cannot work well, is there anyone can provide me some advice? Thanks a lot.
%% system definitation
delta = 0.5;
A = [delta 0.8 -0.4; -0.5 0.4 0.5; 1.2 1.1 0.8];
B = [0 1; 2 -1; 0 1.3];
E = [0.1; 0.4; 0.1];
C1 = [-1 0 2];
D = [0 0];
F = 0.3;
C2 = [-1 1.2 1; 0 -3 1];
H = [0.1; 0.4];
alpha = -0.07;
beta = -0.28;
A_bar = [A E; C1 F];
B_bar = [B; D];
% K_bar = K;
C_bar = [C2 H];
%% define the LMI system
setlmis([]);
%% Defining Variables:
gamma = lmivar(1, [1 0]); % gamma(1,1)
[P, n, sP] = lmivar(2, [2 2]); % P(2,2)
[G, n, sG] = lmivar(2, [4 4]); % G(4,4)
[V, n, sV] = lmivar(2, [2 2]); % V(2,2)
[U, n, sU] = lmivar(2, [2 2]); % U(2,2)
[J, n, sJ] = lmivar(2, [4 4]); % J(4,4)
[Xi_11, n, sXi_11] = lmivar(3, [sP, zeros(2, 2); zeros(2, 2), -gamma*gamma*eye(2, 2)]);
[Xi_22_bar, n, sXi_22_bar] = lmivar(3, [sP, zeros(2, 2); zeros(2, 2), eye(2, 2)]);
[Xi_22, n, sXi_22] = lmivar(3, [-alpha*(sG)-alpha*((sG)')+alpha*alpha*(sXi_22_bar)]);
%% Defining LMIs term contents:
% DEFINITION 1-st row
lmiterm([1 1 1 Xi_11], 1, 1); % #1 LMI, the (1, 1) block
% DEFINITION 2-nd row
lmiterm([1 2 1 G], 1, A_bar); % #1 LMI, the (2, 1) block
lmiterm([1 2 1 V], B_bar, C_bar); % #1 LMI, the (2, 1) block
lmiterm([1 2 2 Xi_22], 1, 1); % #1 LMI, the (2, 2) block
lmiterm([1 2 2 J], 1, 1); % #1 LMI, the (2, 2) block
% DEFINITION 3-rd row
lmiterm([1 3 1 V], ((B_bar')*B_bar), C_bar); % #1 LMI, the (3, 1) block
lmiterm([1 3 2 0], 0); % #1 LMI, the (3, 2) block
lmiterm([1 3 3 U], beta*((B_bar')*B_bar), -1, 's'); % #1 LMI, the (3, 3) block
% DEFINITION 4-th row
lmiterm([1 4 1 0], 0); % #1 LMI, the (4, 1) block
lmiterm([1 4 2 0], 0); % #1 LMI, the (4, 2) block
lmiterm([1 4 3 G], 1, B_bar); % #1 LMI, the (4, 3) block
lmiterm([1 4 3 U], B_bar, -1); % #1 LMI, the (4, 3) block
lmiterm([1 4 4 J], (1/(beta*beta)), -1); % #1 LMI, the (4, 4) block
lmisys = getlmis;
%% check the feasibility
% [tmin, xfeas] = feasp(lmisys);
% V = dec2mat(lmisys, xfeas, V);
% U = dec2mat(lmisys, xfeas, U);
%% Defining vector "c" for C'x in mincx
Num = decnbr(lmisys);
c = zeros(Num,1);
c(Num)=1;
%% Solving LMIs:
[copt,xopt] = mincx(lmisys,c);
%% Finding Feedback gain and u:
% display(gopt)
% K = inv(U)*V
Risposta accettata
Più risposte (0)
Vedere anche
Categorie
Scopri di più su Linear Matrix Inequalities in Help Center e File Exchange
Prodotti
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!