You are on page 1of 3

clear all

clc
A=[2 1 0;0 2 0;0 1 3];
B=[0 1;1 0;0 1];
n=size(A,1);
m=size(B,2);
setlmis([])
X=lmivar(1,[n,1]);
Q=lmivar(2,[m n]);
lmiterm([1 1 1 X],1,A');
lmiterm([1 1 1 X],A,1);
lmiterm([1 1 1 Q],B,1,'S');
lmiterm([1 1 1 X],-4,1);
lmiterm([1 1 1 X],-1,A');
lmiterm([1 1 1 X],-A,1);
lmiterm([1 1 1 Q],-B,1,'S');
lmiterm([1 1 1 X],8,1);
lmiterm([2 1 1 X],-1,1);
Lmis=getlmis;
[t,sol]=feasp(Lmis);
X=dec2mat(Lmis,sol,X)
Q=dec2mat(Lmis,sol,Q)
K=Q*(inv(X))
Y=A+B*K
eig(Y)

Warning: In (1,1) block of LMI #1, non-symmetric term AXB was replaced by
(AXB+B'XA')/2. For safety, set FLAG='s' to specify AXB+B'XA' in one shot.
Warning: In (1,1) block of LMI #1, non-symmetric term AXB was replaced by
(AXB+B'XA')/2. For safety, set FLAG='s' to specify AXB+B'XA' in one shot.
Warning: In (1,1) block of LMI #1, non-symmetric term AXB was replaced by
(AXB+B'XA')/2. For safety, set FLAG='s' to specify AXB+B'XA' in one shot.
Warning: In (1,1) block of LMI #1, non-symmetric term AXB was replaced by
(AXB+B'XA')/2. For safety, set FLAG='s' to specify AXB+B'XA' in one shot.

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 0.143304
*** new lower bound: -6.125506e-03
2 0.019732
3 7.326077e-04
*** new lower bound: -8.398631e-04
4 7.326077e-04
*** new lower bound: -5.347627e-05
5 6.096219e-04
6 2.379723e-05
*** new lower bound: -1.482431e-05
7 4.485309e-06

1
*** new lower bound: -5.169169e-06
8 4.485309e-06
*** new lower bound: -3.419245e-07
9 4.485309e-06
10 2.609975e-07
*** new lower bound: -4.046299e-08
11 3.490196e-08
*** new lower bound: -2.780516e-09
12 2.548134e-08
13 7.522019e-10
*** new lower bound: -1.014157e-09
14 7.522019e-10
*** new lower bound: -1.309775e-10
15 1.726154e-10
16 2.081898e-11
*** new lower bound: -5.507924e-11

Result: best value of t: 2.081898e-11


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

Marginal infeasibility: these LMI constraints may be


feasible but are not strictly feasible

X =

1.0e-11 *

-0.8404 -0.0000 0.0000


-0.0000 -0.8404 -0.0000
0.0000 -0.0000 -0.8404

Q =

1.0e-16 *

0.0000 0 0.0000
-0.0000 0.9901 0.0000

K =

1.0e-04 *

-0.0000 0.0000 -0.0000


0.0000 -0.1178 -0.0000

Y =

2.0000 1.0000 -0.0000


-0.0000 2.0000 -0.0000
0.0000 1.0000 3.0000

2
ans =

2.0000
3.0000
2.0000

Published with MATLAB® R2022a

You might also like