求解lmi的matlab程序,Matlab中一个解LMI的程序问题

clc

clear all

A=[0 1;0 -0.1];

B=[0 0.1]';

H=[0.1 0]';

E_1=[1 0];

E_2=-1;

% Initial a LMI system

setlmis([]);

% Define Variables

Q(1,1)=lmivar(1,[2 1]);

Y(1,1)=lmivar(2,[1 2]);

Q(1,2)=lmivar(1,[2 1]);

Y(1,2)=lmivar(2,[1 2]);

Q(2,1)=lmivar(1,[2 1]);

Y(2,1)=lmivar(2,[1 2]);

Q(2,2)=lmivar(1,[2 1]);

Y(2,2)=lmivar(2,[1 2]);

e11=lmivar(1,[1 0]);

e12=lmivar(1,[1 0]);

e21=lmivar(1,[1 0]);

e22=lmivar(1,[1 0]);

lmiterm([-5 1 1 Q(1,1)],1,1);

lmiterm([-6 1 1 Q(1,2)],1,1);

lmiterm([-7 1 1 Q(2,1)],1,1);

lmiterm([-8 1 1 Q(2,2)],1,1);

lmiterm([-9 1 1 e11],1,1);

lmiterm([-10 1 1 e12],1,1);

lmiterm([-11 1 1 e21],1,1);

lmiterm([-12 1 1 e22],1,1);

% pos in (1,1)

lmiterm([1 1 1 Q(1,1)],A,1,'s');

lmiterm([1 1 1 Y(1,1)],B,1,'s');

lmiterm([1 1 1 e11],H,H');

lmiterm([1 1 1 Q(1,1)],-4,1);

% pos in (2,1)

lmiterm([1 2 1 Q(1,1)],E_1,1);

lmiterm([1 2 1 Y(1,1)],E_2,1);

% pos in (2,2)

lmiterm([1 2 2 0],-e11);

% pos in (3 1)

lmiterm([1 3 1 -Q(1,1)],sqrt(3),1);

% pos in (3,3)

lmiterm([1 3 3 Q(2,1)],-1,1);

% pos in (4,1)

lmiterm([1 4 1 -Q(1,1)],1,1);

% pos in (4,4)

lmiterm([1 4 4 Q(1,2)],-1,1);

% pos in (1,1)

lmiterm([2 1 1 Q(1,2)],A,1,'s');

lmiterm([2 1 1 Y(1,2)],B,1,'s');

lmiterm([2 1 1 e12],H,H');

lmiterm([2 1 1 Q(1,2)],-5,1);

% pos in (2,1)

lmiterm([2 2 1 Q(1,2)],E_1,1);

lmiterm([2 2 1 Y(1,2)],E_2,1);

% pos in (2,2)

lmiterm([2 2 2 0],-e12);

% pos in (3 1)

lmiterm([2 3 1 -Q(1,2)],sqrt(3),1);

% pos in (3,3)

lmiterm([2 3 3 Q(2,2)],-1,1);

% pos in (4,1)

lmiterm([2 4 1 -Q(1,2)],1,1);

% pos in (4,4)

lmiterm([2 4 4 Q(1,1)],-1,1);

% pos in (1,1)

lmiterm([3 1 1 Q(2,1)],A,1,'s');

lmiterm([3 1 1 Y(2,1)],B,1,'s');

lmiterm([3 1 1 e21],H,H');

lmiterm([3 1 1 Q(2,1)],-3,1);

% pos in (2,1)

lmiterm([3 2 1 Q(2,1)],E_1,1);

lmiterm([3 2 1 Y(2,1)],E_2,1);

% pos in (2,2)

lmiterm([3 2 2 0],-e21);

% pos in (3 1)

lmiterm([3 3 1 -Q(2,1)],sqrt(2),1);

% pos in (3,3)

lmiterm([3 3 3 Q(1,1)],-1,1);

% pos in (4,1)

lmiterm([3 4 1 -Q(2,1)],sqrt(2),1);

% pos in (4,4)

lmiterm([3 4 4 Q(2,2)],-1,1);

% pos in (1,1)

lmiterm([4 1 1 Q(2,2)],A,1,'s');

lmiterm([4 1 1 Y(2,2)],B,1,'s');

lmiterm([4 1 1 e22],H,H');

lmiterm([4 1 1 Q(2,2)],-4,1);

% pos in (2,1)

lmiterm([4 2 1 Q(2,2)],E_1,1);

lmiterm([4 2 1 Y(2,2)],E_2,1);

% pos in (2,2)

lmiterm([4 2 2 0],-e22);

% pos in (3 1)

lmiterm([4 3 1 -Q(2,2)],sqrt(2),1);

% pos in (3,3)

lmiterm([4 3 3 Q(1,2)],-1,1);

% pos in (4,1)

lmiterm([4 4 1 -Q(2,2)],sqrt(2),1);

% pos in (4,4)

lmiterm([4 4 4 Q(2,1)],-1,1);

lmis=getlmis;

[tmin,feas]=feasp(lmis);

把我上面提到的几个类似的错误句子改了一下,可以运行了

sizex =

24

Solver for LMI feasibility problems L(x) < R(x)

This solver minimizes  t  subject to  L(x) < R(x) + t*I

The best value of t should be negative for feasibility

Iteration   :    Best value of t so far

1                        1.630367

2                        0.419948

3                        0.419948

4                        0.233349

5                        0.233349

6                        0.062980

7                        0.062980

8                        0.029221

9                        0.029221

10                        0.029221

11                        0.010424

12                        0.010424

13                    -6.608582e-004

Result:  best value of t: -6.608582e-004

f-radius saturation:  0.000% of R = 1.00e+009

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值