aula 14 - ele.ita.brkawakami/ee254/ee254_2019_aula14_handouts.pdf · lmi lab (matlab robust control...
TRANSCRIPT
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