aula 4 - instituto tecnológico de aeronáutica · 2019. 8. 14. · ee-254 (controle preditivo)...
TRANSCRIPT
Aula 4
20 Ago 2019
EE-254 (Controle Preditivo) Aula 4 20 Ago 2019 1 / 60
Resumo da aula passada
DMC: Sintonia de parametros (Perıodo de amostragem, M, N, ρ)
Implementacao em Matlab/Simulink
Exemplo 1: Aquecedor de agua
Exemplo 2: Pendulo de haste rıgida (modelo de simulacao nao linear)
Consideracoes sobre as constantes de polarizacao na malha decontrole
Importante: A abordagem DMC e aplicavel a planta estaveis em malhaaberta.
EE-254 (Controle Preditivo) Aula 4 20 Ago 2019 2 / 60
Topicos da aula de hoje
Uso de funcoes de transferencia
Implementacao em Matlab
Exemplo com planta instavel em malha aberta
EE-254 (Controle Preditivo) Aula 4 20 Ago 2019 3 / 60
Modelo auto-regressivo
Plantau y
y(k) + a1y(k − 1) + a2y(k − 2) + · · ·+ any(k − n)
= b1u(k − 1) + b2u(k − 2) + · · · bnu(k − n)
Modelo Auto-Regressivo com entrada eXogena (ARX)
Equacao a diferencas relacionando a sequencia de entrada u com asequencia de saıda y .
EE-254 (Controle Preditivo) Aula 4 20 Ago 2019 4 / 60
Exemplo (Circuito RC)
u(t)+
y(t)-
C
R i(t)i(t) = Cy(t)
i(t) =u(t)− y(t)
R
Cy(t) =u(t)− y(t)
R⇒ y(t) +
1
RCy(t) =
1
RCu(t)
EE-254 (Controle Preditivo) Aula 4 20 Ago 2019 5 / 60
Exemplo: Funcao de Transferencia
y(t) +1
RCy(t) =
1
RCu(t)
Aplicando a Transformada de Laplace a ambos os lados da equacao eassumindo condicoes iniciais nulas:(
s +1
RC
)Y (s) =
1
RCU(s)⇒ Hc(s) =
Y (s)
U(s)=
1RC
s + 1RC
Hc(s) denota a funcao de transferencia entre a entrada (tensao dafonte) e a saıda (tensao do capacitor) do circuito.
Hc(s) tambem corresponde a Transformada de Laplace da resposta aimpulso (delta de Dirac) do circuito.
O ındice c e usado para indicar que se trata de uma funcao detransferencia associada a um modelo de tempo contınuo.
EE-254 (Controle Preditivo) Aula 4 20 Ago 2019 6 / 60
Exemplo: Discretizacao aproximada
y(t) +1
RCy(t) =
1
RCu(t) (1)
Pode-se aproximar a derivada por uma diferenca finita:
y(t) ' 1
T[y(t + T )− y(t)] (2)
sendo T o tamanho do passo empregado.
Substituindo (2) em (1), tem-se
1
T[y(t + T )− y(t)] +
1
RCy(t) =
1
RCu(t)
⇒ y(t + T ) +
(T
RC− 1
)y(t) =
T
RCu(t)
EE-254 (Controle Preditivo) Aula 4 20 Ago 2019 7 / 60
y(t + T ) +
(T
RC− 1
)y(t) =
T
RCu(t) (3)
Se T for um perıodo de amostragem, os instantes de amostragem seraodados por t = kT , k ∈ Z.
Substituindo t = kT em (3), tem-se
y((k + 1)T ) +
(T
RC− 1
)y(kT ) =
T
RCu(kT )
ou, fazendo k = k − 1,
y(kT ) +
(T
RC− 1
)y((k − 1)T ) =
T
RCu((k − 1)T )
EE-254 (Controle Preditivo) Aula 4 20 Ago 2019 8 / 60
Finalmente, denotando y(kT ) e u(kT ) simplesmente por y(k) e u(k),chega-se a uma expressao da forma
y(k) + a1y(k − 1) = b1u(k − 1)
em que
a1 =
(T
RC− 1
), b1 =
T
RC
EE-254 (Controle Preditivo) Aula 4 20 Ago 2019 9 / 60
Exemplo: Discretizacao exata
y(t) +1
RCy(t) =
1
RCu(t)
Se a entrada u(t) for constante entre os instantes de amostragem, isto e,
u(t) = u(kT ), ∀t ∈ [kT ,(k + 1)T )
pode-se obter uma equacao a diferencas que relaciona as sequencias{u(kT ), k ∈ Z} e {y(kT ), k ∈ Z} de maneira exata.
EE-254 (Controle Preditivo) Aula 4 20 Ago 2019 10 / 60
Com efeito, seja uma equacao diferencial da forma
y(t) + acy(t) = bcu(t) (4)
que corresponde a equacao anterior com ac = 1RC e bc = 1
RC .
A solucao de (4) partindo de uma condicao inicial y(t0) e dada por
y(t) = e−ac(t−t0)y(t0) +
∫ t
t0
e−ac(t−τ)bcu(τ)dτ
Logo, fazendo t0 = kT , t = (k + 1)T e supondo u(τ) = u(kT ),∀τ ∈ [kT ,(k + 1)T ), tem-se
y((k + 1)T ) = e−acT y(kT ) +
[∫ (k+1)T
kTe−ac((k+1)T−τ)bcdτ
]u(kT )
EE-254 (Controle Preditivo) Aula 4 20 Ago 2019 11 / 60
y((k + 1)T ) = e−acT y(kT ) +
[∫ (k+1)T
kTe−ac((k+1)T−τ)bcdτ
]u(kT ) (5)
Fazendo (k + 1)T − τ = ξ, tem-se
τ = kT ⇒ ξ = T
τ = (k + 1)T ⇒ ξ = 0
dτ = −dξ
Logo, (5) pode ser re-escrita como
y((k + 1)T ) = e−acT y(kT ) +
[∫ T
0e−acξbcdξ
]u(kT )
EE-254 (Controle Preditivo) Aula 4 20 Ago 2019 12 / 60
y((k + 1)T ) = e−acT y(kT ) +
[∫ T
0e−acξbcdξ
]u(kT )
Por fim, fazendo k = k − 1 e denotando y(kT ) e u(kT ) simplesmente pory(k) e u(k), chega-se a
y(k) + a1y(k − 1) = b1u(k − 1)
sendo
a1 = −e−acT , b1 =
∫ T
0e−acξbcdξ
EE-254 (Controle Preditivo) Aula 4 20 Ago 2019 13 / 60
Observacoes sobre a discretizacao exata
A premissa de u constante entre os instantes de amostragem seravalida, por exemplo, se o sinal u for gerado por um conversor D/Adotado de segurador de ordem zero (zero-order-hold, ZOH)
Pode-se efetuar a discretizacao exata com a funcao c2d do MatlabControl Systems Toolbox (opcao ’zoh’).
EE-254 (Controle Preditivo) Aula 4 20 Ago 2019 14 / 60
Se o perıodo de amostragem T for pequeno, resultados similares saoobtidos ao se fazer a discretizacao de forma exata ou aproximada. Porexemplo:
y(t) + acy(t) = bcu(t)
Discretizacao aproximada:
1
T[y((k + 1)T ))− y(kT )] + acy(kT ) = bcu(kT )
y((k + 1)T )) + (−1 + acT )︸ ︷︷ ︸a1,aprox
y(kT ) = bcT︸︷︷︸b1,aprox
u(kT )
Discretizacao exata (ZOH):
a1,zoh = −e−acTT↓' −(1− acT )
b1,zoh =
∫ T
0e−acξbcdξ
T↓' bcT
EE-254 (Controle Preditivo) Aula 4 20 Ago 2019 15 / 60
Escolha do perıodo de amostragem
Se a planta for estavel, a escolha do perıodo de amostragem T podeser feita com base na resposta a degrau, seguindo as regras vistaspara o DMC.
Alternativamente, pode-se escolher T supondo a existencia de umfiltro anti-aliasing com frequencia de corte fc igual a metade dafrequencia de amostragem, isto e fc = 1/(2T ). Seleciona-se entao omaior valor de T para o qual a presenca do filtro nao entre emconflito com os requisitos de desempenho para o sistema de controle.
Consideracoes gerais sobre a escolha do perıodo de amostragempodem ser encontradas em FRANKLIN, G.F. Rational rate. IEEEControl Systems Magazine, v. 27, n. 4, p. 19, Aug. 2007.
EE-254 (Controle Preditivo) Aula 4 20 Ago 2019 16 / 60
Uso da Transformada Z
Um modelo no formato de equacao a diferencas pode ser convertido para aforma de funcao de transferencia utilizando a transformada Z .
A Transformada Z de uma sequencia y(k), k ≥ 0 e definida como
Z [y(k)] = Y (z) =∞∑k=0
y(k)z−k
Duas propriedades a destacar sao:
Linearidade: Z [αy1(k) + βy2(k)] = αY1(z) + βY2(x).
Atraso no tempo: Z [y(k − n)] = z−nY (z), n > 0.
EE-254 (Controle Preditivo) Aula 4 20 Ago 2019 17 / 60
Relacao entre equacao a diferencas e funcao de transferencia
y(k) + a1y(k − 1) + a2y(k − 2) + · · ·+ any(k − n) =
= b1u(k − 1) + b2u(k − 2) + · · · bnu(k − n)
Aplicando a Transformada Z a ambos os lados desta equacao, tem-se
H(z) ,Y (z)
U(z)=
b1z−1 + b2z
−2 + · · ·+ bnz−n
1 + a1z−1 + a2z−2 + · · ·+ anz−n
H(z) denota a funcao de transferencia entre as sequencias de entradae saıda do modelo.
H(z) tambem corresponde a Transformada Z da resposta a impulso(delta de Kronecker) do modelo.
EE-254 (Controle Preditivo) Aula 4 20 Ago 2019 18 / 60
Funcao de transferencia: Observacoes
H(z) =b1z−1 + b2z
−2 + · · ·+ bnz−n
1 + a1z−1 + a2z−2 + · · ·+ anz−n
Se b1 for igual a 0, H(z) pode ser re-escrita como
H(z) =b2z−2 + · · ·+ bnz
−n
1 + a1z−1 + a2z−2 + · · ·+ anz−n
= z−1
(b2z−1 + · · ·+ bnz
−n+1 + 0z−n
1 + a1z−1 + a2z−2 + · · ·+ anz−n
)Nesse caso, o modelo descrevera um sistema com atraso de transporte deum perıodo de amostragem.
Se b1 = b2 = · · · = bd = 0, o modelo descrevera um sistema comatraso de transporte de d perıodos de amostragem.
EE-254 (Controle Preditivo) Aula 4 20 Ago 2019 19 / 60
Funcao de transferencia: Observacoes
H(z) =b1z−1 + b2z
−2 + · · ·+ bnz−n
1 + a1z−1 + a2z−2 + · · ·+ anz−n
Multiplicando o numerador e o denominador por zn, a funcao detransferencia tambem pode ser expressa como
H(z) =b1z
n−1 + b2zn−2 + · · ·+ bn
zn + a1zn−1 + a2zn−2 + · · ·+ an
Numero de polos = Grau do denominador = Ordem do modelo = n
EE-254 (Controle Preditivo) Aula 4 20 Ago 2019 20 / 60
Predicao um passo a frente
Seja um modelo da forma
y(k) + a1y(k − 1) + a2y(k − 2) + · · ·+ any(k − n) =
= b1u(k − 1) + b2u(k − 2) + · · ·+ bnu(k − n)
Fazendo k = k + 1 tem-se
y(k + 1) + a1y(k) + a2y(k − 1) + · · ·+ any(k − n + 1) =
= b1u(k) + b2u(k − 1) + · · ·+ bnu(k − n + 1)
Em termos de valores preditos:
y(k + 1|k) + a1y(k) + a2y(k − 1) + · · ·+ any(k − n + 1) =
= b1u(k|k) + b2u(k − 1) + · · ·+ bnu(k − n + 1)
EE-254 (Controle Preditivo) Aula 4 20 Ago 2019 21 / 60
y(k + 1|k) + a1y(k) + a2y(k − 1) + · · ·+ any(k − n + 1) =
= b1u(k|k) + b2u(k − 1) + · · ·+ bnu(k − n + 1)
Em forma matricial:
y(k + 1|k) + [a1 a2 · · · an]
y(k)
y(k − 1)...
y(k − n + 1)
=
= b1u(k|k) + [b2 b3 · · · bn]
u(k − 1)u(k − 2)
...u(k − n + 1)
EE-254 (Controle Preditivo) Aula 4 20 Ago 2019 22 / 60
Predicao dois passos a frente
y(k + 2|k) + a1y(k + 1|k) + a2y(k) + · · ·+ any(k − n + 2) =
= b1u(k + 1|k) + b2u(k|k) + · · ·+ bnu(k − n + 2)
Em forma matricial:
[a1 1]
[y(k + 1|k)y(k + 2|k)
]+ [a2 a3 · · · 0]
y(k)
y(k − 1)...
y(k − n + 1)
=
= [b2 b1]
[u(k|k)
u(k + 1|k)
]+ [b3 b4 · · · 0]
u(k − 1)u(k − 2)
...u(k − n + 1)
EE-254 (Controle Preditivo) Aula 4 20 Ago 2019 23 / 60
Predicoes ate N passos a frente (N > n)
EE-254 (Controle Preditivo) Aula 4 20 Ago 2019 24 / 60
y(k + 1|k) + a1y(k) + · · ·+ any(k − n + 1)
= b1u(k|k) + b2u(k − 1) + · · ·+ bnu(k − n + 1)
y(k + 2|k) + a1y(k + 1|k) + · · ·+ any(k − n + 2)
= b1u(k + 1|k) + b2u(k|k) + · · ·+ bnu(k − n + 2)
y(k + 3|k) + a1y(k + 2|k) + · · ·+ any(k − n + 3)
= b1u(k + 2|k) + b2u(k + 1|k) + · · ·+ bnu(k − n + 3)
...
y(k + n|k) + a1y(k + n − 1|k) + · · ·+ any(k)
= b1u(k + n − 1|k) + · · ·+ bnu(k|k)
y(k + n + 1|k) + a1y(k + n|k) + · · ·+ any(k + 1|k)
= b1u(k + n|k) + · · ·+ bnu(k + 1|k)
...
y(k + N|k) + a1y(k + N − 1|k) + · · ·+ any(k − n + N|k)
= b1u(k + N − 1|k) + · · ·+ bnu(k − n + N|k)
EE-254 (Controle Preditivo) Aula 4 20 Ago 2019 25 / 60
Equacao de predicao
Ta(N×N)︷ ︸︸ ︷
1 0 0 · · · 0 0 · · · 0 0a1 1 0 · · · 0 0 · · · 0 0a2 a1 1 · · · 0 0 · · · 0 0...
......
......
......
......
an−1 an−2 an−3 · · · 1 0 · · · 0 0an an−1 an−2 · · · a1 1 · · · 0 00 an an−1 · · · a2 a1 · · · 0 0...
......
......
......
......
0 0 0 · · · 0 0 · · · 1 00 0 0 · · · 0 0 · · · a1 1
︸ ︷︷ ︸
FormatoToeplitz
y(N×1)︷ ︸︸ ︷
y(k + 1|k)y(k + 2|k)y(k + 3|k)
...y(k + n|k)
y(k + n + 1|k)y(k + n + 2|k)
...y(k + N − 1|k)y(k + N|k)
+
EE-254 (Controle Preditivo) Aula 4 20 Ago 2019 26 / 60
+
Sa(N×n)︷ ︸︸ ︷
a1 a2 · · · ana2 a3 · · · 0a3 a4 · · · 0...
.... . .
...an 0 · · · 00 0 · · · 00 0 · · · 0...
.... . .
...0 0 · · · 00 0 · · · 0
︸ ︷︷ ︸
FormatoHankel
yp(n×1)︷ ︸︸ ︷y(k)
y(k − 1)...
y(k − n + 1)
=
EE-254 (Controle Preditivo) Aula 4 20 Ago 2019 27 / 60
=
Tb(N×N)︷ ︸︸ ︷
b1 0 · · · 0b2 b1 · · · 0b3 b2 · · · 0...
.... . .
...0 0 · · · 00 0 · · · 00 0 · · · 0...
.... . .
...0 0 · · · 00 0 · · · b1
︸ ︷︷ ︸
FormatoToeplitz
u(N×1)︷ ︸︸ ︷u(k|k)
u(k + 1|k)...
u(k + N − 1|k)
+
EE-254 (Controle Preditivo) Aula 4 20 Ago 2019 28 / 60
+
Sb[N×(n−1)]︷ ︸︸ ︷
b2 b3 · · · bnb3 b4 · · · 0b4 b5 · · · 0...
.... . .
...0 0 · · · 00 0 · · · 00 0 · · · 0...
.... . .
...0 0 · · · 00 0 · · · 0
︸ ︷︷ ︸
FormatoHankel
up[(n−1)×1)]︷ ︸︸ ︷u(k − 1)u(k − 2)
...u(k − n + 1)
EE-254 (Controle Preditivo) Aula 4 20 Ago 2019 29 / 60
Tay + Sayp = Tbu + Sbup
EE-254 (Controle Preditivo) Aula 4 20 Ago 2019 30 / 60
Equacao de predicao: Exemplo
H(z) =8z + 3
z2 + 4z + 5=
8z−1 + 3z−2
1 + 4z−1 + 5z−2=
Y (z)
U(z)
y(k) + 4y(k − 1) + 5y(k − 2) = 8u(k − 1) + 3u(k − 2)
n = 2
Coeficientes do numerador: b1 = 8, b2 = 3
Coeficientes do denominador: a1 = 4, a2 = 5
Escrever a equacao de predicao para N = 4.
EE-254 (Controle Preditivo) Aula 4 20 Ago 2019 31 / 60
Equacao de predicao:
Ta︸︷︷︸N×N
y︸︷︷︸N×1
+ Sa︸︷︷︸N×n
yp︸︷︷︸n×1
= Tb︸︷︷︸N×N
u︸︷︷︸N×1
+ Sb︸︷︷︸N×(n−1)
up︸︷︷︸(n−1)×1
Neste exemplo: n = 2 e N = 4. Logo,
Ta =
1 0 0 0a1 1 0 0a2 a1 1 00 a2 a1 1
, y =
y(k + 1|k)y(k + 2|k)y(k + 3|k)y(k + 4|k)
,Sa =
a1 a2
a2 00 00 0
, yp =
[y(k)
y(k − 1)
]
Tb =
b1 0 0 0b2 b1 0 00 b2 b1 00 0 b2 b1
, u =
u(k|k)
u(k + 1|k)u(k + 2|k)u(k + 3|k)
,Sb =
b2
000
, up = u(k − 1)
EE-254 (Controle Preditivo) Aula 4 20 Ago 2019 32 / 60
Equacao de predicao na forma usual
Tay + Sayp = Tbu + Sbup
⇒ y = T −1a (Tbu + Sbup − Sayp)
⇒ y = Hu + fu
em que H = T −1a Tb e fu = T −1
a (Sbup − Sayp) .
EE-254 (Controle Preditivo) Aula 4 20 Ago 2019 33 / 60
Calculo de T −1a
Ta =
1 0 0 · · · 0 0
a1 1 0. . . 0 0
a2 a1 1. . . 0 0
.... . .
. . .. . .
. . ....
0 0 0. . . 1 0
0 0 0 · · · a1 1
N×N
Matriz Toeplitz construıda com os coeficientes de
A(z) = 1 + a1z−1 + a2z
−2 + · · ·+ anz−n
EE-254 (Controle Preditivo) Aula 4 20 Ago 2019 34 / 60
Propriedade: T −1a = Ta−1 , Matriz Toeplitz construıda com os
coeficientes de
A−1(z) =1
1 + a1z−1 + a2z−2 + · · ·+ anz−n
Com efeito, seja
Q(z) = 1 + q1z−1 + q2z
−2 + · · · =1
1 + a1z−1 + a2z−2 + · · ·+ an
EE-254 (Controle Preditivo) Aula 4 20 Ago 2019 35 / 60
Por definicao, tem-se A(z)Q(z) = 1, isto e
(1 + a1z−1 + a2z
−2 + · · ·+ an)(1 + q1z−1 + q2z
−2 + · · · ) = 1
Logo,
Ta Tq =
1 0 0 · · · 0a1 1 0 · · · 0a2 a1 1 · · · 0...
......
. . ....
an an−1 an−2 · · · 1
1 0 0 · · · 0q1 1 0 · · · 0q2 q1 1 · · · 0...
......
. . ....
qn qn−1 qn−2 · · · 1
=
=
1 0 0 · · · 00 1 0 · · · 00 0 1 · · · 0...
......
. . ....
0 0 0 · · · 1
EE-254 (Controle Preditivo) Aula 4 20 Ago 2019 36 / 60
Calculo de T −1a : Exemplo
A(z) = 1 + 2z−1 + 3z−2
A−1(z) =1
1 + 2z−1 + 3z−2= 1 + q1z
−1 + q2z−2 + q3z
−3 + · · ·
Para um horizonte de predicao N = 3:
Ta =
1 0 02 1 03 2 1
, Ta−1 = Tq =
1 0 0q1 1 0q2 q1 1
Problema: Determinar q1 e q2 .
EE-254 (Controle Preditivo) Aula 4 20 Ago 2019 37 / 60
Determinacao de q1 e q2:
1
1 + 2z−1 + 3z−2= 1 + q1z
−1 + q2z−2 + q3z
−3 + · · ·
⇒ (1 + 2z−1 + 3z−2)(1 + q1z−1 + q2z
−2 + q3z−3 + · · · ) = 1
⇒
z−1 : q1 + 2 = 0⇒ q1 = −2
z−2 : q2 + 2q1 + 3 = 0⇒ q2 = −2q1 − 3⇒ q2 = 1
Ta−1 =
1 0 0q1 1 0q2 q1 1
=
1 0 0−2 1 01 −2 1
EE-254 (Controle Preditivo) Aula 4 20 Ago 2019 38 / 60
Calculo de T −1a : Exemplo (Verificacao)
Ta Ta−1 =
1 0 02 1 03 2 1
1 0 0−2 1 01 −2 1
=
1 0 00 1 00 0 1
Alternativa: Divisao longa de 1/A(z).
EE-254 (Controle Preditivo) Aula 4 20 Ago 2019 39 / 60
Formulacao em termos de incrementos da entrada ∆u
+
{y(k) + a1y(k − 1) + · · ·+ any(k − n)
= b1u(k − 1) + · · ·+ bnu(k − n)
−
{y(k − 1) + a1y(k − 2) + · · ·+ any(k − n − 1)
= b1u(k − 2) + · · ·+ bnu(k − n − 1)
y(k) + (a1 − 1)y(k − 1) + (a2 − a1)y(k − 2) + · · ·++ (an − an−1)y(k − n)− any(k − n − 1) =
= b1∆u(k − 1) + · · ·+ bn∆u(k − n)
EE-254 (Controle Preditivo) Aula 4 20 Ago 2019 40 / 60
y(k) + a′1y(k − 1) + · · ·+ a′ny(k − n) + a′n+1y(k − n − 1)
= b1∆u(k − 1) + · · ·+ bn∆u(k − n)
em quea′1 = a1 − 1
a′2 = a2 − a1
...
a′n = an − an−1
a′n+1 = −an
Vale salientar que o modelo passa a ser de ordem n + 1, devido a inclusaoimplıcita de um integrador a tempo discreto.
EE-254 (Controle Preditivo) Aula 4 20 Ago 2019 41 / 60
Interpretacao alternativa: Seja ∆(z) = 1− z−1
A(z)Y (z) = B(z)U(z)
⇒ ∆(z)A(z)Y (z) = B(z)∆(z)U(z)
⇒ A′(z)Y (z) = B(z)∆U(z)
em que
A′(z) = (1− z−1)(1 + a1z−1 + · · ·+ anz
−n) =
= 1 + (a1 − 1)z−1 + (a2 − a1)z−2 + · · ·++ (an − an−1)z−n − anz
−n−1
Como se pode observar, o novo modelo possui um polo em z = 1, que estaassociado a presenca de um integrador a tempo discreto.
EE-254 (Controle Preditivo) Aula 4 20 Ago 2019 42 / 60
Correcao implıcita de perturbacoes
O uso do modelo reformulado em termos de ∆u permite efetuar umacorrecao implıcita de perturbacoes constantes:
vPlanta
u yd+
+
v(k) + a1v(k − 1) + a2v(k − 2) + · · ·+ anv(k − n) =
= b1u(k − 1) + b2u(k − 2) + · · ·+ bnu(k − n)
y(k) = v(k) + d ⇒ v(k) = y(k)− d
EE-254 (Controle Preditivo) Aula 4 20 Ago 2019 43 / 60
v(k) + a1v(k − 1) + a2v(k − 2) + · · ·+ anv(k − n) =
= b1u(k − 1) + b2u(k − 2) + · · ·+ bnu(k − n) (6)
v(k) = y(k)− d (7)
Substituindo (7) em (6), tem-se
[y(k)− d ] + a1[y(k − 1)− d ] + a2[y(k − 2)− d ] + · · ·+ an[y(k − n)− d ]
= b1u(k − 1) + b2u(k − 2) + · · ·+ bnu(k − n)
EE-254 (Controle Preditivo) Aula 4 20 Ago 2019 44 / 60
[y(k)− d ] + a1[y(k − 1)− d ] + a2[y(k − 2)− d ] + · · ·+ an[y(k − n)− d ]
= b1u(k − 1) + b2u(k − 2) + · · ·+ bnu(k − n) (8)
[y(k−1)−d ]+a1[y(k−2)−d ]+a2[y(k−3)−d ]+ · · ·+an[y(k−n−1)−d ]
= b1u(k − 2) + b2u(k − 3) + · · ·+ bnu(k − n − 1) (9)
Subtraindo (9) de (8), chega-se a
y(k) + (a1 − 1)y(k − 1) + (a2 − a1)y(k − 2) + · · ·+
+ (an − an−1)y(k − n)− any(k − n − 1) =
= b1∆u(k − 1) + · · ·+ bn∆u(k − n)
Portanto, a relacao entre ∆u e y continua sendo valida mesmo napresenca de perturbacoes constantes na saıda da planta.
EE-254 (Controle Preditivo) Aula 4 20 Ago 2019 45 / 60
Equacao de Predicao em termos de ∆u
y(k) + a′1y(k − 1) + · · ·+ a′ny(k − n) + a′n+1y(k − n − 1)
= b1∆u(k − 1) + · · ·+ bn∆u(k − n)
Ta′ y + Sa′yp = Tb∆u + Sb∆up
⇒ y = G∆u + f
em queG = T −1
a′ Tbf = T −1
a′ (Sb∆up − Sa′yp)
Se M < N, basta usar somente as M primeiras colunas de Tb.
EE-254 (Controle Preditivo) Aula 4 20 Ago 2019 46 / 60
Resposta livre f: Observacao
f = T −1a′ (Sb∆up − Sa′yp)
Por conveniencia de implementacao, sera empregada a seguinte notacao:
f = K∆u∆up + Kyyp
em que
K∆u = T −1a′ Sb, Ky = −T −1
a′ Sa′
EE-254 (Controle Preditivo) Aula 4 20 Ago 2019 47 / 60
MPC empregando modelo ARX: Resumo
Informacao requerida sobre a planta:
Funcao de transferencia: H(z) = b1z−1+b2z−2+···+bnz−n
1+a1z−1+a2z−2+···+anz−n
Parametros de projeto:
Peso do controle ρ
Horizonte de predicao N
Horizonte de controle M
Inicializacao:
Montar as matrizes T −1a′ , Sa′ , Tb, Sb
Calcular G = T −1a′ Tb, K∆u = T −1
a′ Sb, Ky = −T −1a′ Sa′
Calcular KMPC = [ 1 0 · · · 0 ](GTG + ρIM)−1GT
Fazer k = 0, y(−1) = y(−2) = · · · = y(−n) = 0 e∆u(−1) = ∆u(−2) = · · · = ∆u(−n + 1) = 0 (supondo que a plantaesteja inicialmente em repouso).
EE-254 (Controle Preditivo) Aula 4 20 Ago 2019 48 / 60
Rotina principal:
1 Ler y(k) (saıda da planta) e yref (valor de referencia)
2 Fazer r = [yref ]N3 Fazer
∆up =
∆u(k − 1)∆u(k − 2)
...∆u(k − n + 1)
, yp =
y(k)
y(k − 1)...
y(k − n + 1)
4 Calcular f = K∆u∆up + Kyyp
5 Calcular o incremento no controle ∆u(k) = KMPC (r − f)
6 Atualizar o controle aplicado a planta: u(k) = u(k − 1) + ∆u(k)
7 Fazer k = k + 1
8 Aguardar o proximo instante de amostragem e retornar ao passo 1.
EE-254 (Controle Preditivo) Aula 4 20 Ago 2019 49 / 60
Implementacao em Matlab
long division.m: Obtem os coeficientes de Q(z) = A−1(z)
matrizes arx du.m: Monta as matrizes T −1a′ ,Sa′ ,Tb,Sb
mpc arx du.m: S-function que implementa o controlador
EE-254 (Controle Preditivo) Aula 4 20 Ago 2019 50 / 60
Exemplo: Sistema de levitacao magnetica
Fonte deCorrente
MPC
Foto-receptor
yp
yref
upi
f
mg
Ele
troí
mã
h
Foto-emissor
+-
yp
y
up
+
+
u
EE-254 (Controle Preditivo) Aula 4 20 Ago 2019 51 / 60
f = Kfi2
h2, i = i0 + rup
yp = y0 + γh⇒ h =yp − y0
γ
mh = mg − Kfi2
h2⇒ h = g − Kf
m
i2
h2
⇒ ypγ
= g − Kf
m
(i0 + rup)2γ2
(yp − y0)2⇒ yp = γg − Kf
m
(i0 + rup)2γ3
(yp − y0)2
Dinamica nao-linear
EE-254 (Controle Preditivo) Aula 4 20 Ago 2019 52 / 60
yp = γg − Kf
m
(i0 + rup)2γ3
(yp − y0)2
Em equilıbrio:
Kf
m
(i0 + r up)2γ3
(yp − y0)2= γg ⇒ Kf (i0 + r up)2γ2 = mg(yp − y0)2
i0 + r up =yp − y0
γ
√mg
Kf
⇒ up =1
r
(yp − y0
γ
√mg
Kf− i0
)
EE-254 (Controle Preditivo) Aula 4 20 Ago 2019 53 / 60
yp = f (yp,up) = γg − Kf
m
(i0 + rup)2γ3
(yp − y0)2
Seja y = yp − yp e u = up − up, isto e:
yp = yp + y , up = up + u
Tem-se entao que
yp = y = f (yp + y ,up + u) ' f (yp,up)︸ ︷︷ ︸0
+∂f
∂yp
∣∣∣∣(yp ,up)
y +∂f
∂up
∣∣∣∣(yp ,up)
u
EE-254 (Controle Preditivo) Aula 4 20 Ago 2019 54 / 60
f (yp,up) = γg − Kf
m
(i0 + rup)2γ3
(yp − y0)2
∂f
∂yp=
2Kf (i0 + r up)2γ3
m(yp − y0)3=
2Kf (yp − y0)2γ−2 mgKfγ3
m(yp − y0)3=
2γg
yp − y0
∂f
∂up= −2Kf (i0 + r up)2rγ3
m(yp − y0)2= −
2Kf (yp − y0)2γ−1√
mgKf
rγ3
m(yp − y0)2=
− 2rγ2
yp − y0
√Kf g
m
EE-254 (Controle Preditivo) Aula 4 20 Ago 2019 55 / 60
Modelo linearizado:y = ηy − βu
η =2γg
yp − y0, β =
2rγ2
yp − y0
√Kf g
m
Funcao de transferencia em s:
Hc(s) = − β
s2 − η
Funcao de transferencia em z :
H(z) =b1z−1 + b2z
−2
1 + a1z−1 + a2z−2
EE-254 (Controle Preditivo) Aula 4 20 Ago 2019 56 / 60
Parametros do modelo
Parametros fısicos levantados experimentalmente:
m = 2,12× 10−2 kg
y0 = −7,47 V
γ = 328 V/m
i0 = 0,514 A
r = 0,166 A/V
Kf = 1,2× 10−4 Nm2/A2
Faixa de trabalho: yp ∈ [−2 V, +2 V]
Assume-se ainda g = 9,8 m/s−2
Ponto de equilıbrio considerado: yp = 0 V (centro da faixa de trabalho)
Perıodo de amostragem adotado: T = 5 ms
Referencia: GRIMM, C. Um Controlador Digitalmente Assistido para um Sistemade Levitacao Magnetica. Tese de Mestrado, ITA, 2002.
EE-254 (Controle Preditivo) Aula 4 20 Ago 2019 57 / 60
Arquivos Matlab
parametros maglev.m: Define os parametros do levitador magnetico
levitador mpc.mdl: Diagrama de simulacao
Observar o resultado obtido com horizontes de predicao muito longos(N = 200, por exemplo) → Mau condicionamento da matriz dinamica G .
EE-254 (Controle Preditivo) Aula 4 20 Ago 2019 58 / 60
Resumo da aula de hoje
Uso de funcoes de transferencia (modelos ARX)
Implementacao em Matlab
Exemplo com planta instavel em malha aberta (levitador magnetico)
EE-254 (Controle Preditivo) Aula 4 20 Ago 2019 59 / 60
Topicos da proxima aula
Uso de modelos no espaco de estados
Implementacao em Matlab
Uso de observador de estados
Consideracoes sobre acao integral de controle
EE-254 (Controle Preditivo) Aula 4 20 Ago 2019 60 / 60