LMI Minicx Problem (Robust Control)

17 visualizzazioni (ultimi 30 giorni)
yan zong
yan zong il 22 Ott 2019
Commentato: REVATHI il 22 Ott 2024
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

yan zong
yan zong il 30 Ott 2019
Hi all
If you have the similar problem to this matlab code, please contact me, I already solved this problem.
Yan
  6 Commenti
超
il 20 Lug 2023
Hi zong, please send a copy to me, thank you very much, gechao365@126.com.
REVATHI
REVATHI il 22 Ott 2024
Hi Yan ,I have a simillar problem ,Can you send the code ,its help to solve my problem please

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su Linear Matrix Inequalities in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by