Aula 14 - ele.ita.brkawakami/ee254/EE254_2019_Aula14_handouts.pdf · LMI Lab (Matlab Robust Control...

Post on 19-Apr-2020

3 views 0 download

Transcript of Aula 14 - ele.ita.brkawakami/ee254/EE254_2019_Aula14_handouts.pdf · LMI Lab (Matlab Robust Control...

Aula 14

12 Novembro 2019

EE-254 (Controle Preditivo) Aula 14 12 Novembro 2019 1 / 71

Resumo da aula passada

Robustez com respeito a incertezas no ganho da planta: Uso denorma 1, programacao linear e otimizacao min-max.

Uso de norma 2: Desigualdades matriciais lineares.

EE-254 (Controle Preditivo) Aula 14 12 Novembro 2019 2 / 71

Topico da aula de hoje

LMI Lab (Matlab Robust Control Toolbox)

Robustez com respeito a incertezas politopicas no modelo da planta.

Controle preditivo robusto empregando Desigualdades MatriciaisLineares.

EE-254 (Controle Preditivo) Aula 14 12 Novembro 2019 3 / 71

LMI Lab (Matlab Robust Control Toolbox)

EE-254 (Controle Preditivo) Aula 14 12 Novembro 2019 4 / 71

Consideracoes preliminares

No LMI Lab, LMIs sao especificadas na forma Fleft(x) < Fright(x). SeFleft(x) ou Fright(x) nao forem especificadas, assume-se 0 por default.

Cada lado da LMI e estruturado na forma NTMN, sendo M umamatriz simetrica. As matrizes N e M sao chamadas outer e innerfactor, respectivamente.

Na maioria dos casos, N = I , nao sendo necessario explicita-la naespecificacao da LMI.

EE-254 (Controle Preditivo) Aula 14 12 Novembro 2019 5 / 71

Como especificar um conjunto de LMIs

Passo 1: Inicializacao

SETLMIS([]) resets the internal variables used for creating LMIs so thatyou can create a new system of LMIs.

SETLMIS(LMISYS0) uses an existing LMI system LMISYS0 as thestarting point for creating a new system of LMIs.

EE-254 (Controle Preditivo) Aula 14 12 Novembro 2019 6 / 71

Passo 2: Especificacao das variaveis do problema

X = LMIVAR(TYPE,STRUCT) adds a new matrix variable X to the LMIsystem currently specified

EE-254 (Controle Preditivo) Aula 14 12 Novembro 2019 7 / 71

TYPE - Structure of X:

1 -> symmetric block diagonal (blocos simetricos na diagonal)2 -> full rectangular3 -> other (elementos iguais a zero, xn ou −xn em posicoes especificadas)

EE-254 (Controle Preditivo) Aula 14 12 Novembro 2019 8 / 71

STRUCT - Additional data on the structure of X

TYPE = 1: the i-th row of STRUCT describes the i-th diagonal block of XSTRUCT(i,1) -> block sizeSTRUCT(i,2) -> block type:0 (scalar block t*I), 1 (full symmetric block), -1 (zero block)

TYPE = 2: STRUCT = [M,N] if X is a MxN matrix

TYPE = 3: STRUCT is a matrix of the same dimension as X whereSTRUCT(i,j) is either 0 if X(i,j) = 0, +n if X(i,j) = n-th decision variable,-n if X(i,j) = (-1)* n-th decision variable.

EE-254 (Controle Preditivo) Aula 14 12 Novembro 2019 9 / 71

Exemplos:

X = lmivar(1,[2 1]) –> 2 x 2 full symmetric matrix

X =

[x1 x2

x2 x3

]Y = lmivar(2,[2 3]) –> 2 x 3 matrix

Y =

[y1 y2 y3

y4 y5 y6

]Z=lmivar(1,[3 0]) –> 3 x 3 scalar matrix

Z =

z 0 00 z 00 0 z

EE-254 (Controle Preditivo) Aula 14 12 Novembro 2019 10 / 71

Passo 3: Insercao de cada LMI

LMITAG = NEWLMI adds a new LMI to the LMI system currentlydescribed and attaches the identifier LMITAG to it. Declaring LMIs withNEWLMI is optional and only meant to make the code more readable.

Output: LMITAG (identifier of the new LMI). Its value is L if there arealready L-1 LMIs in the system. This value remains unchanged in allsubsequent modifications of the LMI system

EE-254 (Controle Preditivo) Aula 14 12 Novembro 2019 11 / 71

Passo 4: Especificacao de cada LMI

LMITERM(TERMID,A,B,FLAG) adds one term to some LMI in the LMIsystem currently specified. A term is either an outer factor, a constantmatrix, or a variable term A*X*B or A*X’*B where X is a matrix variable.The first input TERMID specifies which LMI and block the term belongsto.

Note: Because the OFF-DIAGONAL blocks (i,j) and (j,i) are transposed ofone another, specify the term content of ONLY ONE of these two blocks.

TERMID(1) = +n -> left-hand sideTERMID(1) = -n -> right-hand side

For outer factors, set TERMID(2:3) = [0 0]. Otherwise, set TERMID(2:3)= [i j] if the term belongs to the (i,j) block of the LMI

EE-254 (Controle Preditivo) Aula 14 12 Novembro 2019 12 / 71

TERMID(4) = 0 -> constant termTERMID(4) = X -> variable term A*X*BTERMID(4) = -X -> variable term A*X’*Bwhere X is the variable identifier returned by LMIVAR

A -> value of the outer factor, constant term, or left coefficient in variableterms A*X*B or A*X’*B

B -> right coefficient in variable terms A*X*B or A*X’*B

FLAG -> quick way of specifying the expression A*X*B+B’*X’*A’ in aDIAGONAL block. Set FLAG=’s’ to specify it with only one command.

EE-254 (Controle Preditivo) Aula 14 12 Novembro 2019 13 / 71

Observacoes (extraıdas do manual do Robust Control Toolbox):

Os blocos sao zero por default.

Um valor escalar α pode ser especificado em lugar de uma matriz daforma αI . A dimensao da matriz identidade I e inferida pelo contexto.

EE-254 (Controle Preditivo) Aula 14 12 Novembro 2019 14 / 71

Passo 5: Conclusao

LMISYS = GETLMIS returns a computer description LMISYS of thecurrently described LMI system.

LMIINFO(LMISYS) Gives information about:

the variable matrices (dimensions and structure)

the block structure and dimensions of the LMIs

the term content of each LMI

NDECV = DECNBR(LMISYS) returns the number of decision variablesNDECV in the system of LMIs.

EE-254 (Controle Preditivo) Aula 14 12 Novembro 2019 15 / 71

Como testar a factibilidade de um conjunto de LMIs

[TMIN,XFEAS] = FEASP(LMISYS)

Given an LMI feasibility problem:

Find x such that L(x) < R(x),

FEASP solves the auxiliary convex program:

Minimize t subject to L(x) < R(x) + t*I

TMIN -> value of t upon termination.The LMI system is feasible iff TMIN <= 0

XFEAS -> corresponding minimizer.If TMIN <= 0, XFEAS is a feasible vector for the set of LMI constraints.

EE-254 (Controle Preditivo) Aula 14 12 Novembro 2019 16 / 71

[TMIN,XFEAS] = FEASP(LMISYS)

Use DEC2MAT to get the matrix variable values from XFEAS.

X = DEC2MAT(LMISYS,DECVARS,XID) returns the value of the matrixvariable with identifier XID given the LMI system description LMISYS andthe vector DECVARS of decision variable values.

EE-254 (Controle Preditivo) Aula 14 12 Novembro 2019 17 / 71

Exemplo: Analise de estabilidade

Seja um sistema com dinamica descrita pela seguinte equacao de estado atempo contınuo:

x = Ax

O sistema e assintoticamente estavel (todos os autovalores de A possuemparte real negativa) se e somente se existir uma matriz P > 0 quesatisfaca a seguinte desigualdade:

ATP + PA < 0

EE-254 (Controle Preditivo) Aula 14 12 Novembro 2019 18 / 71

Vamos realizar a analise de estabilidade com

A =

[0 1−2 −3

]cujos autovalores sao −1 e −2.

EE-254 (Controle Preditivo) Aula 14 12 Novembro 2019 19 / 71

Passo 1: Inicializacao

A = [0 1;-2 -3]

setlmis([])

EE-254 (Controle Preditivo) Aula 14 12 Novembro 2019 20 / 71

Passo 2: Especificacao das variaveis

P = lmivar(1,[2 1])

Type = 1 (P e uma matriz simetrica bloco-diagonal)

Struct = [2 1] (uma linha –> um unico bloco):

Block size = 2 (Bloco tem dimensoes 2 x 2)

Block type = 1 (Bloco e uma matriz cheia)

EE-254 (Controle Preditivo) Aula 14 12 Novembro 2019 21 / 71

Passo 3: Insercao de cada LMI

LMIs a serem inseridas:

ATP + PA < 0 (1)

P > 0 (2)

EE-254 (Controle Preditivo) Aula 14 12 Novembro 2019 22 / 71

Primeira LMI: ATP + PA < 0

LyapEq = newlmi

lmiterm([LyapEq 1 1 P],1,A,’s’)

LyapEq: Valor positivo (lado esquerdo da LMI)

[1 1]: Bloco (1,1) da LMI

Termo da forma AlmiPBlmi com Almi = 1 e Blmi = A

FLAG = ’s’: Simetrizacao do termo: ATP + PA

EE-254 (Controle Preditivo) Aula 14 12 Novembro 2019 23 / 71

Segunda LMI: P > 0

Ppos = newlmi

lmiterm([-Ppos 1 1 P],1,1)

-Ppos: Valor negativo (lado direito da LMI)

[1 1]: Bloco (1,1) da LMI

Termo da forma AlmiPBlmi com Almi = 1 e Blmi = 1

Arquivo Matlab: ex1.m

EE-254 (Controle Preditivo) Aula 14 12 Novembro 2019 24 / 71

Exemplo: Analise de estabilidade

Experimente repetir a analise de estabilidade com

A =

[0 12 −1

]cujos autovalores sao 1 e −2.

EE-254 (Controle Preditivo) Aula 14 12 Novembro 2019 25 / 71

Problemas de programacao semidefinida

MINCX - Minimizes a linear objective under LMI constraints

[COPT,XOPT] = MINCX(LMISYS,C) solves the optimization problem

Minimize c’ * x subject to L (x) < R(x)

where x is the vector of decision variables (free scalar variables).

→ A chamada a esta rotina nao permite fazer distincao entredesigualdades estritas e nao estritas. Contudo, se as LMIs nao foremestritamente factıveis sera retornado um diagnostico de nao factibilidade*.

*Vide www.mathworks.com/help/robust/ug/advanced-topics.html

EE-254 (Controle Preditivo) Aula 14 12 Novembro 2019 26 / 71

Controle preditivo robusto empregando LMIs

Referencias:

MACIEJOWSKI, p. 233 - 239.

KOTHARE, M. V.; BALAKRISHNAN, V.; MORARI, M. Robustconstrained predictive control using linear matrix inequalities.Automatica, v. 32, n. 10, p. 1361-1379, 1996.

EE-254 (Controle Preditivo) Aula 14 12 Novembro 2019 27 / 71

Incerteza politopica

Assume-se que a dinamica da planta seja descrita por um modelo da forma

x(k + 1) = Ax(k) + Bu(k)

em que A,B sao matrizes incertas que pertencem a um dado politopo Ωcom vertices (A1,B1), (A2,B2), . . . , (AL,BL). Em outras palavras, existemescalares λ1, λ2, . . . , λL ≥ 0 tais que

A =L∑

j=1

λjAj , B =L∑

j=1

λjBj

L∑j=1

λj = 1

Notacao: Ω = Co

(A1,B1), (A2,B2), . . . , (AL,BL)

EE-254 (Controle Preditivo) Aula 14 12 Novembro 2019 28 / 71

Exemplo: Servomecanismo posicionador

Torque

Momento de inercia: J (conhecido)

Coeficiente de atrito viscoso: b ∈ [bmin, bmax ]

Caracterıstica do motor: τ = κu, κ ∈ [κmin, κmax ]

J θ + bθ = κu

EE-254 (Controle Preditivo) Aula 14 12 Novembro 2019 29 / 71

J θ + bθ = κu

Variaveis de estado: x1 = θ, x2 = θ.

Equacao de estado:

x1 = x2

x2 = −b

Jx2 +

κ

Ju

x =

[0 1

0 −b

J

]︸ ︷︷ ︸

Ac

x +

[0κ

J

]︸ ︷︷ ︸

Bc

u

Discretizacao aproximada com perıodo de amostragem T :

x(k + 1) = (I + AcT )︸ ︷︷ ︸A

x(k) + BcT︸︷︷︸B

u(k)

EE-254 (Controle Preditivo) Aula 14 12 Novembro 2019 30 / 71

A(b) =

[1 T

0 1− bT

J

], B(κ) =

[0κT

J

]

b ∈ [bmin, bmax ], κ ∈ [κmin, κmax ]

Neste caso, ha dois parametros incertos independentes.

O politopo Ω tera quatro vertices:

1 A(bmin),B(κmin)

2 A(bmin),B(κmax)

3 A(bmax),B(κmin)

4 A(bmax),B(κmax)

EE-254 (Controle Preditivo) Aula 14 12 Novembro 2019 31 / 71

Formulacao do Problema

Funcao de custo a ser minimizada no instante k:

J∞(k) =∞∑i=0

||x(k + i |k)||2S + ||u(k + i |k)||2R

com S = ST > 0 e R = RT > 0.

Problema min-max a ser resolvido:

minu

max(A,B)∈Ω

J∞(k)

EE-254 (Controle Preditivo) Aula 14 12 Novembro 2019 32 / 71

Abordagem empregada

Parametrizar o controle na forma u(k + i |k) = Fk x(k + i |k)

Determinar a matriz de ganho Fk de modo a minimizar um limitantesuperior γ para max

(A,B)∈ΩJ∞(k).

EE-254 (Controle Preditivo) Aula 14 12 Novembro 2019 33 / 71

Expressando-se a matriz de ganho como Fk = YQ−1, com Y e Q a seremdeterminadas, pode-se colocar o problema na seguinte forma:

minγ>0,Q>0,Y

γ

s.a. [Q x(k)? 1

]≥ 0 (1)

Q 0 0 AjQ + BjY

? γI 0 S1/2Q

? ? γI R1/2Y? ? ? Q

≥ 0 , j = 1, 2, . . . , L (2)

desde que as LMIs (1) e (2) sejam factıveis com γ > 0 e Q > 0.

EE-254 (Controle Preditivo) Aula 14 12 Novembro 2019 34 / 71

Demonstracao de que γ e um limitante superior para J∞(k)

Suponha que (γ,Q,Y ) satisfaca as LMIs (1) e (2), com γ > 0 e Q > 0.Sejam ainda λ1, λ2, . . . , λL ≥ 0 tais que

L∑j=1

λj = 1

Em vista de (2), tem-se

L∑j=1

λj

Q 0 0 AjQ + BjY

? γI 0 S1/2Q

? ? γI R1/2Y? ? ? Q

≥ 0

isto e,

Q 0 0

∑Lj=1 λjAjQ +

∑Lj=1 λjBjY

? γI 0 S1/2Q

? ? γI R1/2Y? ? ? Q

≥ 0

EE-254 (Controle Preditivo) Aula 14 12 Novembro 2019 35 / 71

Portanto: Q 0 0 AQ + BY

0 γI 0 S1/2Q

0 0 γI R1/2Y

(AQ + BY )T QS1/2 Y TR1/2 Q

≥ 0

qualquer que seja (A,B) ∈ Ω.

Aplicando o complemento de Schur, tem-se

Q−[

(AQ + BY )T QS1/2 Y TR1/2] Q−1 0 0

0 γ−1I 00 0 γ−1I

AQ + BYS1/2QR1/2Y

≥ 0

EE-254 (Controle Preditivo) Aula 14 12 Novembro 2019 36 / 71

Ou seja:

Q −[

(AQ + BY )TQ−1 γ−1QS1/2 γ−1Y TR1/2] AQ + BY

S1/2Q

R1/2Y

≥ 0

Q − (AQ + BY )TQ−1(AQ + BY )− γ−1QSQ − γ−1Y TRY ≥ 0

Q[Q−1 − (A + BYQ−1)TQ−1(A + BYQ−1)

−γ−1S − γ−1Q−1Y TRYQ−1]Q ≥ 0

Logo, como Q > 0, tem-se

Q−1 − (A + BYQ−1)TQ−1(A + BYQ−1)

−γ−1S − γ−1Q−1Y TRYQ−1 ≥ 0

EE-254 (Controle Preditivo) Aula 14 12 Novembro 2019 37 / 71

Ou seja:(A + BYQ−1)TQ−1(A + BYQ−1)− Q−1

+γ−1S + γ−1Q−1Y TRYQ−1 ≤ 0

Definindo agora P = γQ−1 > 0 e fazendo Fk = YQ−1, segue que

(A + BFk)TPγ−1(A + BFk)− Pγ−1

+γ−1S + γ−1FTk RFk ≤ 0

Logo, como γ > 0, tem-se

(A + BFk)TP(A + BFk)− P + S + FTk RFk ≤ 0

EE-254 (Controle Preditivo) Aula 14 12 Novembro 2019 38 / 71

(A + BFk)TP(A + BFk)− P + S + FTk RFk ≤ 0

Portanto, tem-se

xT (k + i |k)[(A + BFk)TP(A + BFk)− P + S + FT

k RFk

]x(k + i |k) ≤ 0

Segue entao que

xT (k + i |k)[(A + BFk)TP(A + BFk)

]x(k + i |k)− xT (k + i |k)Px(k + i |k)

≤ −xT (k + i |k)Sx(k + i |k)− xT (k + i |k)FTk RFk x(k + i |k)

EE-254 (Controle Preditivo) Aula 14 12 Novembro 2019 39 / 71

xT (k + i |k)[(A + BFk)TP(A + BFk)

]x(k + i |k)− xT (k + i |k)Px(k + i |k)

≤ −xT (k + i |k)Sx(k + i |k)− xT (k + i |k)FTk RFk x(k + i |k)

Considerando agora u(k + i |k) = Fk x(k + i |k), tem-se que

x(k + i + 1|k) = (A + BFk)x(k + i |k)

e portanto pode-se escrever

xT (k + i + 1|k)Px(k + i + 1|k)− xT (k + i |k)Px(k + i |k)

≤ −xT (k + i |k)Sx(k + i |k)− uT (k + i |k)Ru(k + i |k)

EE-254 (Controle Preditivo) Aula 14 12 Novembro 2019 40 / 71

xT (k + i + 1|k)Px(k + i + 1|k)− xT (k + i |k)Px(k + i |k)

≤ −xT (k + i |k)Sx(k + i |k)− uT (k + i |k)Ru(k + i |k)

Definindo-se V (x) = xTPx , tem-se

V(x(k + i + 1|k)

)− V

(x(k + i |k)

)≤ −xT (k + i |k)Sx(k + i |k)− uT (k + i |k)Ru(k + i |k) < 0, ∀x(k + i |k) 6= 0

uma vez que S > 0 e R > 0.

EE-254 (Controle Preditivo) Aula 14 12 Novembro 2019 41 / 71

Portanto, conclui-se que V (x) e uma funcao de Lyapunov para a dinamicadescrita por

x(k + i + 1|k) = Ax(k + i |k) + Bu(k + i |k)

u(k + i |k) = Fk x(k + i |k)

mostrando que

x(k + i |k)i→∞→ 0

EE-254 (Controle Preditivo) Aula 14 12 Novembro 2019 42 / 71

V(x(k + i + 1|k)

)− V

(x(k + i |k)

)≤ −xT (k + i |k)Sx(k + i |k)− uT (k + i |k)Ru(k + i |k)

Somando os dois lados desta desigualdade de i = 0 a i =∞, obtem-se

limi→∞

V(x(k + i |k)

)− V

(x(k|k)

)≤ −

∞∑i=0

xT (k + i |k)Sx(k + i |k)− uT (k + i |k)Ru(k + i |k)

Como x(k|k) = x(k), x(k + i |k)i→∞→ 0 e

J∞(k) =∞∑i=0

xT (k + i |k)Sx(k + i |k) + uT (k + i |k)Ru(k + i |k)

tem-seJ∞(k) ≤ V

(x(k)

)EE-254 (Controle Preditivo) Aula 14 12 Novembro 2019 43 / 71

Por outro lado, aplicando o complemento de Schur a[Q x(k)

xT (k) 1

]≥ 0

(com Q > 0), tem-se que xT (k)Q−1x(k) ≤ 1, ou seja

xT (k)γ−1Px(k) ≤ 1

xT (k)Px(k)︸ ︷︷ ︸V (x(k))

≤ γ

Portanto, conclui-se queJ∞(k) ≤ γ

EE-254 (Controle Preditivo) Aula 14 12 Novembro 2019 44 / 71

Codificacao empregando o LMI Lab

Variaveis:γ ∈ RQ ∈ Rn×n

Y ∈ Rp×n

setlmis([])

g = lmivar(1,[1 0])

Q = lmivar(1,[n,1])

Y = lmivar(2,[p,n])

EE-254 (Controle Preditivo) Aula 14 12 Novembro 2019 45 / 71

Primeira LMI:[Q x(k)? 1

]≥ 0

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

lmiterm([-1 1 2 0],xk)

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

EE-254 (Controle Preditivo) Aula 14 12 Novembro 2019 46 / 71

LMIs subsequentes - Para cadaj = 1, 2, . . . , L:

Q 0 0 AjQ + BjY

? γI 0 S1/2Q

? ? γI R1/2Y? ? ? Q

≥ 0

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

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

lmiterm([-2 1 4 Y],Bj,1)

lmiterm([-2 2 2 g],1,1)

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

lmiterm([-2 3 3 g],1,1)

lmiterm([-2 3 4 Y],Rsqrt,1)

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

EE-254 (Controle Preditivo) Aula 14 12 Novembro 2019 47 / 71

minγ,Q,Y

γ

Fk = YQ−1

lmisys = getlmis

ndecvar = decnbr(lmisys)

c = zeros(ndecvar,1)

c(1) = 1

[copt,xopt] = mincx(lmisys,c)

Ysol = dec2mat(lmisys,xopt,Y)

Qsol = dec2mat(lmisys,xopt,Q)

Fk = Ysol*inv(Qsol)

EE-254 (Controle Preditivo) Aula 14 12 Novembro 2019 48 / 71

Exemplo

Arquivo Matlab: ex2.m

Vide observacao a seguir sobre o calculo do custo para comparacao comDLQR.

EE-254 (Controle Preditivo) Aula 14 12 Novembro 2019 49 / 71

Observacao

Seja

J∞ =∞∑k=0

xT (k)Sx(k) + uT (k)Ru(k)

com x(k + 1) = Ax(k) + Bu(k) e u(k) = Fx(k). Pode-se entao escrever:

J∞ =∞∑k=0

xT (k)Ψx(k)

ex(k + 1) = Amf x(k)

sendo Ψ = S + FTRF e Amf = A + BF .

EE-254 (Controle Preditivo) Aula 14 12 Novembro 2019 50 / 71

J∞ =∞∑k=0

xT (k)Ψx(k)

= xT (0)Ψx(0) +∞∑k=1

xT (k)Ψx(k)

= xT (0)Ψx(0) +∞∑k=0

xT (k + 1)Ψx(k + 1)

= xT (0)Ψx(0) +∞∑k=0

xT (k)ATmf ΨAmf x(k)

= xT (0)Ψx(0) + xT (0)ATmf ΨAmf x(0) +

∞∑k=1

xT (k)ATmf ΨAmf x(k)

EE-254 (Controle Preditivo) Aula 14 12 Novembro 2019 51 / 71

Por inducao, conclui-se que

J∞ = xT (0)

∞∑j=0

(ATmf )jΨAj

mf

x(0)

ou entao:J∞ = xT (0)Ψ∞x(0)

sendo

Ψ∞ =∞∑j=0

(ATmf )jΨAj

mf

Como visto na Aula 10, considerando que os autovalores de Amf estejamno interior do cırculo unitario, Ψ∞ pode ser obtida como solucao daseguinte equacao de Lyapunov:

ATmf Ψ∞Amf −Ψ∞ + Ψ = 0

EE-254 (Controle Preditivo) Aula 14 12 Novembro 2019 52 / 71

Introducao de Restricoes

EE-254 (Controle Preditivo) Aula 14 12 Novembro 2019 53 / 71

Restricoes sobre a entrada da planta

Serao consideradas restricoes simetricas da forma

|ul(k + i |k)| ≤ umax ,l , i ≥ 0

para cada l = 1, 2, . . . , p.

Considerando que u(k + i |k) = Fk x(k + i |k), com Fk = YQ−1, tem-se

maxi≥0|ul(k + i |k)|2 = max

i≥0

∣∣(YQ−1)lx(k + i |k)

∣∣2sendo

(YQ−1

)l

a l-esima linha da matriz YQ−1.

EE-254 (Controle Preditivo) Aula 14 12 Novembro 2019 54 / 71

Por outro lado:∣∣(YQ−1)lx(k + i |k)

∣∣2 =∣∣∣(YQ−1/2

)lQ−1/2x(k + i |k)

∣∣∣2Aplicando a desigualdade de Cauchy-Schwarz tem-se que∣∣∣(YQ−1/2

)lQ−1/2x(k + i |k)

∣∣∣2 ≤ ∣∣∣∣∣∣(YQ−1/2)l

∣∣∣∣∣∣2 ∣∣∣∣∣∣Q−1/2x(k + i |k)∣∣∣∣∣∣2

Analisemos o termo∣∣∣∣Q−1/2x(k + i |k)

∣∣∣∣2.

EE-254 (Controle Preditivo) Aula 14 12 Novembro 2019 55 / 71

Sabendo que

V(x(k + i + 1|k)

)− V

(x(k + i |k)

)< 0, ∀x(k + i |k) 6= 0

com V (x) = xTPx = γxTQ−1x e γ > 0, tem-se

xT (k+i+1|k)Q−1x(k+i+1|k) < xT (k+i |k)Q−1x(k+i |k), ∀x(k+i |k) 6= 0

Por outro lado, tem-se ainda que xT (k)Q−1x(k) ≤ 1. Logo:

xT (k + i |k)Q−1x(k + i |k) ≤ 1, ∀i ≥ 0

ou seja, ∣∣∣∣∣∣Q−1/2x(k + i |k)∣∣∣∣∣∣2 ≤ 1, ∀i ≥ 0

EE-254 (Controle Preditivo) Aula 14 12 Novembro 2019 56 / 71

Portanto,

maxi≥0

∣∣(YQ−1)lx(k + i |k)

∣∣2 ≤ maxi≥0

∣∣∣∣∣∣(YQ−1/2)l

∣∣∣∣∣∣2 ∣∣∣∣∣∣Q−1/2x(k + i |k)∣∣∣∣∣∣2

≤∣∣∣∣∣∣(YQ−1/2

)l

∣∣∣∣∣∣2 =(YQ−1Y T

)ll

Desse modo, e suficiente impor(YQ−1Y T

)ll≤ u2

max ,l

EE-254 (Controle Preditivo) Aula 14 12 Novembro 2019 57 / 71

(YQ−1Y T

)ll≤ u2

max ,l

Sabendo que A ≥ B ⇒ All ≥ Bll , pode-se ver que esta restricao serasatisfeita se existir X = XT tal que Xll ≤ u2

max ,l , l = 1, 2, . . . , p, e

YQ−1Y T ≤ X

Esta ultima desigualdade pode tambem ser reescrita como uma LMI:[X YY T Q

]≥ 0

que pode ser agregada as demais LMIs envolvidas no problema deotimizacao.

EE-254 (Controle Preditivo) Aula 14 12 Novembro 2019 58 / 71

A restricao Xll ≤ u2max ,l , l = 1, 2, . . . , p, pode ser imposta atraves da

seguinte LMI:eT1 Xe1 0 · · · 0

0 eT2 Xe2 · · · 0...

.... . .

...0 0 · · · eTp Xep

u2max ,1 0 · · · 0

0 u2max ,2 · · · 0

......

. . ....

0 0 · · · u2max ,p

EE-254 (Controle Preditivo) Aula 14 12 Novembro 2019 59 / 71

Restricoes sobre a saıda da planta

Suponha que as variaveis de saıda sujeitas a restricoes estejamrelacionadas com o estado atraves de uma equacao da forma

y(k) = Cx(k)

sendo C ∈ Rq×n uma matriz conhecida.

Serao consideradas restricoes simetricas da forma

|yl(k + i |k)| ≤ ymax ,l , i ≥ 1

para cada l = 1, 2, . . . , q.

EE-254 (Controle Preditivo) Aula 14 12 Novembro 2019 60 / 71

Estas restricoes poderiam ser tratadas de forma similar as do controle.Contudo, vale salientar que as restricoes de saıda estao relacionadas com oestado x(k + i |k) a partir de i = 1, enquanto as restricoes de controlepartiam de i = 0.

Com efeito, nao faz sentido impor restricoes de saıda em i = 0, pois oestado atual x(k) e uma constante no problema de otimizacao.

Ja no caso do controle, as restricoes em i = 0 condicionam o ganho Fk ,que sera utilizado na geracao de u(k|k) a partir de x(k).

EE-254 (Controle Preditivo) Aula 14 12 Novembro 2019 61 / 71

Note-se inicialmente que

|yl(k + i |k)|2 = |Cl x(k + i |k)|2

sendo Cl a l-esima linha da matriz C .

Por outro lado, tem-se

x(k + i |k) = (A + BFk)x(k + i − 1|k), i ≥ 1

e, portanto,

maxi≥1|Cl x(k + i |k)|2 = max

i≥1|Cl(A + BFk)x(k + i − 1|k)|2

EE-254 (Controle Preditivo) Aula 14 12 Novembro 2019 62 / 71

Tem-se ainda que

|Cl(A + BFk)x(k + i − 1|k)|2 = |Cl(A + BFk)Q1/2Q−1/2x(k + i − 1|k)|2

≤∣∣∣∣∣∣Cl(A + BFk)Q1/2

∣∣∣∣∣∣2 ∣∣∣∣∣∣Q−1/2x(k + i − 1|k)∣∣∣∣∣∣2 ≤ ∣∣∣∣∣∣Cl(A + BFk)Q1/2

∣∣∣∣∣∣2

EE-254 (Controle Preditivo) Aula 14 12 Novembro 2019 63 / 71

Portanto, basta impor∣∣∣∣∣∣Cl(A + BFk)Q1/2∣∣∣∣∣∣2 ≤ y2

max ,l

isto e, ∣∣∣∣∣∣Cl(A + BYQ−1)Q1/2∣∣∣∣∣∣2 ≤ y2

max ,l

ou seja,Cl(A + BYQ−1)Q(A + BYQ−1)TCT

l ≤ y2max ,l

Cl(AQ + BY )Q−1(AQ + BY )TCTl ≤ y2

max ,l

para todo (A,B) ∈ Ω.

EE-254 (Controle Preditivo) Aula 14 12 Novembro 2019 64 / 71

A restricao

Cl(AQ + BY )Q−1(AQ + BY )TCTl ≤ y2

max ,l , ∀(A,B) ∈ Ω

pode ser imposta acrescentando-se as seguintes LMIs ao problema deotimizacao: [

Q (AjQ + BjY )TCTl

? y2max ,l

]≥ 0, j = 1, 2, . . . , L

para cada l = 1, 2, . . . , q.

EE-254 (Controle Preditivo) Aula 14 12 Novembro 2019 65 / 71

MPC Robusto empregando LMIs

Informacao requerida sobre a planta:

Vertices (A1,B1), (A2,B2), . . . , (AL,BL) do politopo Ω

Matriz C que relaciona o estado com as saıdas sujeitas a restricoes

Limitantes (simetricos) sobre a excursao dos controles: umax ∈ Rp

Limitantes (simetricos) sobre a excursao das saıdas: ymax ∈ Rq

Parametros de projeto:

Matrizes de peso S ∈ Rn×n e R ∈ Rp×p

EE-254 (Controle Preditivo) Aula 14 12 Novembro 2019 66 / 71

Rotina principal:

1 Ler x(k) (estado da planta)2 Resolver o problema de otimizacao

minγ>0,Q>0,Y ,X

γ

s.a. [Q x(k)? 1

]≥ 0

Q 0 0 AjQ + BjY? γI 0 S1/2Q? ? γI R1/2Y? ? ? Q

≥ 0, j = 1, 2, . . . , L

EE-254 (Controle Preditivo) Aula 14 12 Novembro 2019 67 / 71

[X Y? Q

]≥ 0

eT1 Xe1 0 · · · 00 eT2 Xe2 · · · 0...

.... . .

...0 0 · · · eTp Xep

u2max ,1 0 · · · 0

0 u2max ,2 · · · 0

......

. . ....

0 0 · · · u2max ,p

[Q (AjQ + BjY )TCT

l

? y2max ,l

]≥ 0, j = 1, 2, . . . , L, l = 1, 2, . . . , q

3 Calcular o ganho Fk = YQ−1

4 Atualizar o controle aplicado a planta: u(k) = Fkx(k)

5 Fazer k = k + 1

6 Aguardar o proximo instante de amostragem e retornar ao passo 1.

EE-254 (Controle Preditivo) Aula 14 12 Novembro 2019 68 / 71

Implementacao em Matlab

mpc_lmi.m: S-function que implementa o controlador

Exemplo:

exemplo_mpc_lmi.m: Definicao das matrizes do modelo da planta(integrador duplo) e dos pesos do MPC.

sim_mpc_lmi.mdl: Diagrama de simulacao.

EE-254 (Controle Preditivo) Aula 14 12 Novembro 2019 69 / 71

Finalizacao do curso

Proxima aula: Prova

Duracao: 150 minutos

Consulta permitida a livros, anotacoes pessoais e material distribuıdoao longo do curso.

Entrega dos trabalhos:

Data: 03 de dezembro de 2019 (3a feira da segunda semana deexames)

Horario: 13:30 as 14:00

Local: Sala 2206

EE-254 (Controle Preditivo) Aula 14 12 Novembro 2019 70 / 71

Obrigado pela atencao !

EE-254 (Controle Preditivo) Aula 14 12 Novembro 2019 71 / 71