LMI、线性矩阵不等式求解问题

如上图所示,这是我看的论文《Secure Leader–Follower Formation Control of Networked Mobile Robots Under Replay Attacks》里的线性矩阵不等式公式(18),我采用MATLAB自带的求解器,并设计了代码求解,但是得到结果往往是

 Result:  best value of t: 9.282613e-12
          f-radius saturation:  0.000% of R =  1.00e+09

Marginal infeasibility: these LMI constraints may be  feasible but are not strictly feasible(边际不可行性:这些LMI约束可能可行,但并非严格可行)

我尝试过很多办法,都不能解决这个问题,希望大神可以来救救我!!!

如下,是我的代码:

%% 参数初始化
beta= 2; %自己设置
% 1        7.841004e-13  5.882038e-12
% 10      1.981678e-11  8.150654e-12
% 100      1.507456e-11  3.267017e-11
% 1000         2.543475e-12
% 1e+4        1.167782e-11
% 1e+5      1.688853e-13   1.432912e-12

delta_ba = 0; % 0——20

fai = 0.01;
gamma_ba = 0.38;

tau1_der = 0.02;
tau2_der= delta_ba  +fai  +tau1_der;  

I = [1 0 ;
     0 1];

%  K1 = diag([0.8,0.8]);
% mu1 = 10;
% mu2 = 10;


     
%% 描述矩阵不等式
%初始化
setlmis([]);

%矩阵变量定义
n=2;  % 矩阵维度
m = 1;
W1=lmivar(1,[n,m]);  Q1=lmivar(1,[n,m]);  Q2=lmivar(1,[n,m]);  U1=lmivar(1,[n,m]); U2=lmivar(1,[n,m]);  
K1 = lmivar(1,[n,0]); 

%不等式
%11
lmiterm([1,1,1,Q1],1,1); lmiterm([1,1,1,Q2],1,1); lmiterm([1,1,1,U1],-4,1); lmiterm([1,1,1,U2],-4,1); % 8.397113e-13
% 14
lmiterm([1,1,4,U1],-2,1); %6.705406e-12
% 15
lmiterm([1,1,5,U2],-2,1); %9.450340e-12
%  16
lmiterm([1,1,6,U1],6,1); % 4.170123e-12
% 17
lmiterm([1,1,7,U2],6,1);%4.209931e-12
% 18
lmiterm([1,1,8,W1],1,1);% 3.868988e-14  作用是坏的
% 22
lmiterm([1,2,2,K1],-2*(1-gamma_ba)^2,1);  %注释之后,0.032605 数值变大了,说明好的作用消失了,这一项是好的
% 23
lmiterm([1,2,3,K1],-2*(gamma_ba-gamma_ba^2),1);  %注释之后,0.032658  好的作用比较大
% % 26  
% lmiterm([1,2,6,U1],6,1);
% % 27  
% lmiterm([1,2,7,U2],6,1);
% 28
lmiterm([1,2,8,0],-(1-gamma_ba));   lmiterm([1,2,8,K1],-(1-gamma_ba)*beta,1); %注释之后 0.010485
% 33
lmiterm([1,3,3,K1],-2*gamma_ba^2,1);%注释之后 0.02275
% 38
lmiterm([1,3,8,0],-gamma_ba);   lmiterm([1,3,8,K1],-gamma_ba*beta,1);%注释之后 0.02584
% 44
lmiterm([1,4,4,Q1],-1,1); lmiterm([1,4,4,U1],-4,1); % 原本 3.406239e-12。,注释后1.319336e-11 
% 46  新增
lmiterm([1,4,6,U1],6,1);%5.645714e-12
% 57  新增
lmiterm([1,5,7,U2],6,1);%8.672395e-12

% 55
lmiterm([1,5,5,Q2],-1,1); lmiterm([1,5,5,U2],-4,1);%1.584701e-12

% 66
lmiterm([1,6,6,U1],-12,1);%3.252866e-12
%77
lmiterm([1,7,7,U2],-12,1);%2.654539e-12
% 88
lmiterm([1,8,8,U1],tau1_der^2,1);  lmiterm([1,8,8,U2],tau2_der^2,1);  lmiterm([1,8,8,0],-2*beta*I); 
% lmiterm([1,8,8,U1],tau1_der,1);  lmiterm([1,8,8,U2],tau2_der,1);  lmiterm([1,8,8,0],-2*beta*I); 
%注释后无法区分可行

%% 约定正定矩阵
lmiterm([-2,1,1,W1],1,1);
lmiterm([-3,1,1,Q1],1,1);
lmiterm([-4,1,1,Q2],1,1); 
lmiterm([-5,1,1,U1],1,1);
lmiterm([-6,1,1,U2],1,1);
lmiterm([-7,1,1,K1],1,1);

% epsilon = 1;%1e-1; % 松弛值
% lmiterm([-2,1,1,W1],1,1);
% lmiterm([-2,1,1,0],epsilon); % 添加松弛
% lmiterm([-3,1,1,Q1],1,1);
% lmiterm([-3,1,1,0],epsilon);
% lmiterm([-4,1,1,Q2],1,1);
% lmiterm([-4,1,1,0],epsilon);
% lmiterm([-5,1,1,U1],1,1);
% lmiterm([-5,1,1,0],epsilon);
% lmiterm([-6,1,1,U2],1,1);
% lmiterm([-6,1,1,0],epsilon);
% lmiterm([-7,1,1,K1],1,1);
% lmiterm([-7,1,1,0],epsilon);

% 结尾
lmisys = getlmis; %获取lmi信息

%% 求解LMI
options = [100, 55000, 1e+30, 100, 0];  % -1 == 1e+10 
[tmin,xfeas]=feasp(lmisys,options); %求出可行解

% [tmin,xfeas]=feasp(lmisys); %求出可行解

if (tmin<0)
    disp('Feasible');
      W1= dec2mat(lmisys,xfeas,W1);
      Q1= dec2mat(lmisys,xfeas,Q1);
      Q2= dec2mat(lmisys,xfeas,Q2);
      U1= dec2mat(lmisys,xfeas,U1);
      U2= dec2mat(lmisys,xfeas,U2);
      K1= dec2mat(lmisys,xfeas,K1);
else 
     W1=nan;
     Q1=nan;
     Q2=nan;
     U1=nan;
     U2=nan;
     K1= nan;
end


               
               
               

     

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值