LMI Minicx Problem (Robust Control)
17 views (last 30 days)
Show older comments
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
Accepted Answer
More Answers (0)
See Also
Categories
Find more on Linear Matrix Inequalities in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!