• Nenhum resultado encontrado

LMI Toolbox. Conceitos Básicos

N/A
N/A
Protected

Academic year: 2021

Share "LMI Toolbox. Conceitos Básicos"

Copied!
28
0
0

Texto

(1)

LMI Toolbox

(2)

LMI Toolbox

• Linear Matrix Inequality

• Desigualdade Matricial Linear

• xi Æ variáveis de decisão, escalares desconhecidos • A0, ... , AN Æ matrizes simétricas

• < 0 Æ significa “definida negativa”: maior autovalor menor que 0

0

...

)

(

x

=

A

0

+

x

1

A

1

+

+

x

N

A

N

<

A

(3)

LMI Toolbox

• Exemplo:

sendo e

x1, x2 e x3 são variáveis de decisão • LMI:

0

<

+ XP

X

P

T

=

2

0

2

1

P

=

3 2 2 1

x

x

x

x

X

0

4

0

0

0

4

3

3

0

0

2

2

2

3 2 1

<

+

+

⎡−

x

x

x

(4)

LMI Toolbox

• Dois problemas básicos:

• Solução factível (feasible problem): feasp

• Problema de minimização linear: mincx minimize cTx sujeito a

x é o vetor das variáveis de decisão

0

)

(

x

<

A

0

)

(

x

<

A

(5)

LMI Toolbox

• Programa básico:

setlmis([]) : inicia a descrição do sistema de LMIs

>> definição das variáveis e dos termos das LMIs

lmisys = getlmis : finaliza a descrição do sistema de LMIs

>> definição das variáveis de otimização (mincx) >> otimização >> feasp ou mincx

(6)

LMI Toolbox

• Exemplo: Dado um sistema

com quatro entradas, quatro saídas e seis estados. • Objetivo: Encontrar D tal que

sendo

B

A

sI

C

s

G

(

)

=

(

)

−1

1

)

(

1

<

∞ −

D

s

DG

⎥ ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎢ ⎣ ⎡ = 5 4 3 2 1 1 0 0 0 0 0 0 0 0 0 0 d d d d d d D

(7)

LMI Toolbox

• Existe solução se existirem matrizes X ∈ ℜ6x6 e S = DTD

∈ ℜ4x4 tais que: • Matriz S

1

0

0

<

>

<

+

+

S

X

S

X

B

XB

SC

C

XA

X

A

T T T ⎥ ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎢ ⎣ ⎡ = 4 3 3 2 1 1 0 0 0 0 0 0 0 0 0 0 s s s s s s S

(8)

LMI Toolbox

• Definição das variáveis: X = lmivar(type,struct)

type: estrutura de X

1 -> simétrica bloco diagonal 2 -> retangular completa

(9)

LMI Toolbox

• Definição das variáveis: X = lmivar(type,struct) struct : dados adicionais da estrutura de X

type=1: a i-ésima linha de struct descreve o i-ésimo

bloco diagonal de X

struct(i,1) -> tamanho do bloco struct(i,2) -> tipo do bloco, i.e.,

0 -> blocos escalares, aI 1 -> bloco completo

(10)

LMI Toolbox

• Definição das variáveis: X = lmivar(type,struct) struct : dados adicionais da estrutura de X

type = 2: struct = [M,N] se X é uma matriz MxN

type = 3: struct é uma matriz da mesma dimensão de X,

sendo struct(i,j) dado por 0 se X(i,j) = 0

+n se X(i,j) = n-ésima variável de decisão

(11)

LMI Toolbox

• Exemplo: • Definição de X: X=lmivar(1,[6 1]) • Definição de S: S=lmivar(1,[2 0;2 1]) ⎥ ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎢ ⎣ ⎡ = 4 3 3 2 1 1 0 0 0 0 0 0 0 0 0 0 s s s s s s S

(12)

LMI Toolbox

• Definição dos termos da LMI: lmiterm(termid,A,B,flag)

termid: vetor de 4 elementos, especifica local do termo e natureza Elemento 1: termid (1) = +n -> left-hand side of the n-th LMI

termid (1) = -n -> right-hand side of the n-th LMI Elementos 2 e 3: termid (2:3) = [0 0] -> fator externo

termid (2:3) = [i j] -> termo pertence ao (i,j) bloco Elemento 4:

termid (4) = 0 -> termo consntante termid (4) = X -> termo variável AXB termid (4) = -X -> termo variável AXTB

(13)

LMI Toolbox

• Definição dos termos da LMI: lmiterm(termid,A,B,flag)

A: valor do fator externo, termo constante ou coeficiente à

esquerda dos termos AXB ou AXTB

B: coeficiente à direita dos termos AXB ou AXTB

flag = 's' : forma rápida de especificar o termo AXB+BTXTAT

(14)

LMI Toolbox

• Exemplo: • Definição da LMI 1: lmiterm([1 1 1 X],1,A,'s') lmiterm([1 1 1 S],C',C) lmiterm([1 1 2 X],1,B) lmiterm([1 2 2 S],-1,1)

0

<

+

+

S

X

B

XB

SC

C

XA

X

A

T T T

(15)

LMI Toolbox

• Exemplo: • Definição da LMI 2: lmiterm([ 2 1 1 X],1,1) • Definição da LMI 3: lmiterm([ 3 1 1 S],1,1) lmiterm([3 1 1 0],1)

0

>

X

1

<

S

(16)

LMI Toolbox

• Solução factível (feasible problem):

[tmin,xfeas] = feasp(lmisys,options,target)

tmin: valor resultante do problema de minização

correspondente

xfeas: valor resultante das variáveis de decisão

options: opções de minimização

(17)

LMI Toolbox

• Problema de minimização linear: mincx minimize cTx sujeito a

[copt,xopt] = mincx(lmisys,c,options,xinit,target)

copt: valor de c ótimo

xopt: valor das variáveis de decisão ótimo

xinit: valor inicial de x

0

)

(

x

<

A

(18)

LMI Toolbox

• Definição do vetor de otimização c:

[V1,...,Vk] = defcx(lmisys,n,X1,....,Xk)

Retorna os valores V1,...,Vk das variáveis matriciais X1,...,Xk quando a N-ésima variável de decisão é definida como 1 e as demais como 0.

(19)

LMI Toolbox

• Exemplo:

• Definição das variáveis:

x0 = [1;1] setlmis([]) X = lmivar(1,[3 0]) P = lmivar(1,[2 1]) ... lmisys = getlmis ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎣ ⎡ = 1 1 1 0 0 0 0 0 0 x x x X ⎥ ⎦ ⎤ ⎢ ⎣ ⎡ = 4 3 3 2 x x x x P 0 0

)

(

X

x

Px

Trace

x

c

T

=

+

T

(20)

LMI Toolbox

• Exemplo:

• Definição do vetor de otimização c:

n = decnbr(lmisys) c = zeros(n,1) for j=1:n, [Xj,Pj] = defcx(lmisys,j,X,P) c(j) = trace(Xj) + x0'*Pj*x0 end 0 0

)

(

X

x

Px

Trace

x

c

T

=

+

T ⎥ ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎢ ⎣ ⎡ = 1 2 1 3 c

(21)

LMI Toolbox

• Visualização do resultado:

Xk = dec2mat(LMISYS,xdec,k)

• Xk -> valor da variável matricial k

• xdec -> variáveis de decisão resultante da otimização • k -> índice da variável matricial fornecido por lmivar

(22)

LMI Toolbox

• Exemplo: (1) X1 - X2 < 0 (2) X1 + X2 < 2 (3) 0 < X1 < 1 (4) 0 < X2 < 1

(23)

LMI Toolbox

X1 X2 (2) (1) (4) (3) 2 1 1 2

(24)

LMI Toolbox

• Exemplo:

setlmis([])

%Definição das variaveis X1 = lmivar(1,[1 1]);

X2 = lmivar(1,[1 1]);

%Definição das LMIs LMI1 = newlmi;

lmiterm([LMI1 1 1 X1],1,1); lmiterm([LMI1 1 1 X2],-1,1);

(25)

LMI Toolbox

• Exemplo: LMI2 = newlmi; lmiterm([LMI2 1 1 X1],1,1); lmiterm([LMI2 1 1 X2],1,1); lmiterm([LMI2 1 1 0],-2); LMI3 = newlmi; lmiterm([-LMI3 1 1 X1],1,1); LMI4 = newlmi; lmiterm([LMI4 1 1 X1],1,1); lmiterm([LMI4 1 1 0],-1);

(26)

LMI Toolbox

• Exemplo: LMI5 = newlmi; lmiterm([-LMI5 1 1 X2],1,1); LMI6 = newlmi; lmiterm([LMI6 1 1 X2],1,1); lmiterm([LMI6 1 1 0],-1); LMI = getlmis;

(27)

LMI Toolbox

• Exemplo: Solução factível

[tmin,xfeas]=feasp(LMI);

x1 = dec2mat(LMI,xfeas,X1) x2 = dec2mat(LMI,xfeas,X2)

• Definindo um valor para X2:

LMI=setmvar(LMI,X2,0.5); [tmin,xfeas]=feasp(LMI); x1=dec2mat(LMI,xfeas,X1)

(28)

LMI Toolbox

Exemplo: Minimização de cTx c =[1; 0]; [copt,xopt]=mincx(LMI,c); x1=dec2mat(LMI, xopt,X1) x2=dec2mat(LMI, xopt,X2)

Referências

Documentos relacionados