Buscar

aula_3_controle

Prévia do material em texto

Tito Luís M. Santos
Controle preditivo em espaço de estados.
ENGC65: Sistemas de Controle III
Departamento de Engenharia Elétrica - DEE
Universidade Federal da Bahia - UFBA
19 de março de 2014
Tito Luís M. Santos
Sumário
1 Introdução
2 Inclusão da ação integral
3 Solução Anaĺıtica
4 Representação não-mı́nima
5 Problema com restrições
6 Comentários Finais
Tito Luís M. Santos
Sumário
1 Introdução
2 Inclusão da ação integral
3 Solução Anaĺıtica
4 Representação não-mı́nima
5 Problema com restrições
6 Comentários Finais
Tito Luís M. Santos
Introdução
Controle preditivo (MPC) em variáveis de estado.
Inclusão da ação integral;
Caso sem restrições;
Caso com restrições;
Referências
J. M. Maciejowski. Predictive Control with Constraints.
Prentice Hall, 2002.
L. Wang Model Predictive Control System Design and
Implementation using MATLAB Springer-Verlag, 2009.
Tito Luís M. Santos
Introdução
Considerações
Modelo de predição sem ação integral
x(k + 1) = Ax(k) + Bu(k)
z(k) = Hx(k)
y(k) = Cx(k)
com x(k) ∈ Rn, u(k) ∈ Rm, z(k) ∈ Rp e y(k) ∈ Rm.
Saı́das controladas - y(k) (par (A,C) detectável).
Saı́das mensuráveis - z(k):
Estados mensuráveis: z(k) = x(k) (H = I);
Saı́das mensuráveis: z(k) (par (A,H) detectável).
O sistema pode ser estabilizado (par (A,B) estabilizável).
Tito Luís M. Santos
Introdução
Problema sem restrições
Modelo de predição sem ação integral
x(k + 1) = Ax(k) + Bu(k)
y(k) = Cx(k)
com x(k) ∈ Rn, u(k) ∈ Rm e y(k) ∈ Rm.
O problema de otimização pode ser descrito em “k ′′ por
min
u(k)
N2∑
j=N1
(y(k + j |k)− yr )
′Q(y(k + j |k)− yr ) +
Nu−1∑
j=0
(u(k + j |k)− ur )
′R(u(k + j |k)− ur )
s.a. x(k |k) = x(k)
x(k + 1 + j |k) = Ax(k + j |k) + Bu(k + j |k), j = 0, 1, ..., N2 − 1
u(k + j) = u(k + j + Nu), j = Nu , Nu + 1, ..., N2 − 1
y(k + 1 + j |k) = Cx(k + j |k), j = 0, 1, ..., N2 − 1
No caso mais geral, yr pode ser substituı́do pela referência futura.
Tito Luís M. Santos
Introdução
Problema sem restrições
Modelo de predição sem ação integral
x(k + 1) = Ax(k) + Bu(k)
y(k) = Cx(k)
com x(k) ∈ Rn, u(k) ∈ Rm e y(k) ∈ Rm.
O problema de otimização pode ser descrito em “k ′′ por
min
u(k)
N2∑
j=N1
(y(k + j |k)− yr )
′Q(y(k + j |k)− yr ) +
Nu−1∑
j=0
(u(k + j |k)− ur )
′R(u(k + j |k)− ur )
s.a. x(k |k) = x(k)
x(k + 1 + j |k) = Ax(k + j |k) + Bu(k + j |k), j = 0, 1, ..., N2 − 1
u(k + j) = u(k + j + Nu), j = Nu , Nu + 1, ..., N2 − 1
y(k + 1 + j |k) = Cx(k + j |k), j = 0, 1, ..., N2 − 1
No caso mais geral, yr pode ser substituı́do pela referência futura.
Tito Luís M. Santos
Introdução
Predições
Seja um modelo dado por
x(k + 1) = Ax(k) + Bu(k)
y(k) = Cx(k)
A saı́da predita pode ser obtida como segue
x(k + 1|k) = Ax(k) + Bu(k |k),
x(k + 2|k) =Ax(k + 1|k)+Bu(k + 1|k)
=A2x(k) + ABu(k |k) + Bu(k + 1|k),
x(k + 3|k) =Ax(k + 2|k)+Bu(k + 2|k)
=A3x(k) + A2Bu(k |k) + ABu(k + 1|k) + Bu(k + 2|k),
...
x(k + N|k) =ANx(k) + AN−1Bu(k |k) + AN−2Bu(k + 1|k) + ...
+ AN−N+1Bu(k + N − 2|k) + AN−NBu(k + N − 1|k),
com
y(k + i |k) = Cx(k + i |k).
Tito Luís M. Santos
Resposta livre e resposta forçada
Predições na forma matricial
Seja um modelo dado por
x(k + 1) = Ax(k) + Bu(k)
y(k) = Cx(k)
Verifica-se





x(k + 1|k)
x(k + 2|k)
.
.
.
x(k + N|k)





=





A
A2
.
.
.
AN





x(k) +





B 0 ... 0
AB B ... 0
.
.
.
.
.
.
. . .
.
.
.
AN−1B AN−2B ... A0B










u(k |k)
u(k + 1|k)
.
.
.
u(k + N − 1|k)





Tito Luís M. Santos
Resposta livre e resposta forçada
Predições na forma matricial
Seja um modelo dado por
x(k + 1) = Ax(k) + Bu(k)
y(k) = Cx(k)
Verifica-se





x(k + 1|k)
x(k + 2|k)
.
.
.
x(k + N|k)





=





A
A2
.
.
.
AN





x(k)
︸ ︷︷ ︸
RESPOSTA LIVRE
+





B 0 ... 0
AB B ... 0
.
.
.
.
.
.
. . .
.
.
.
AN−1B AN−2B ... B










u(k |k)
u(k + 1|k)
.
.
.
u(k + N − 1|k)





︸ ︷︷ ︸
RESPOSTA FORÇADA
Tito Luís M. Santos
Resposta livre e resposta forçada
Predições na forma matricial
Seja um modelo dado por
x(k + 1) = Ax(k) + Bu(k)
y(k) = Cx(k)
Também verifica-se





y(k + 1|k)
y(k + 2|k)
...
y(k + N|k)





︸ ︷︷ ︸
Y(k)
=





C 0 ... 0
0 C ... 0
...
...
. . .
...
0 0 ... C





︸ ︷︷ ︸
C





x(k + 1|k)
x(k + 2|k)
...
x(k + N|k)





︸ ︷︷ ︸
X (k)
Alternativamente
X (k) = Ax(k) + Bu(k)
Y(k) = CX (k)
Tito Luís M. Santos
Introdução
Notação simplificada
Por simplicidade x0 , x(k |k), xj , x(k + j |k) e uj , u(k + j |k) .
O problema de otimização pode ser descrito em “k ′′ por
min
u(k)
N2∑
j=N1
(yj − yr )
′
Q(yj − yr ) +
Nu−1∑
j=0
(uj − ur )
′
R(uj − ur )
s.a. x0 = x(k)
xj+1 = Axj + Buj , j = 1, 2, ..., N2
yj = Cxj , j = 1, 2, ..., N2
uj = 0, j = Nu, Nu + 1, ..., N2
↑ Q ≥ 0 → ↓ (y(k + j |k) − yr ) e vice-versa.
↑ R > 0 → ↓ (u(k + j |k) − ur ) e vice-versa.
Dado yr , ur depende da ação de perturbações.
Tito Luís M. Santos
Sumário
1 Introdução
2 Inclusão da ação integral
3 Solução Anaĺıtica
4 Representação não-mı́nima
5 Problema com restrições
6 Comentários Finais
Tito Luís M. Santos
Inclusão da ação integral
Modelo incremental
Seja o modelo em k dado por
x(k + 1) = Ax(k) + Bu(k)
y(k) = Cx(k)
e em k − 1 dado por
x(k) = Ax(k − 1) + Bu(k − 1)
y(k − 1) = Cx(k − 1)
Subtraindo a equação em k pela de k − 1
∆x(k + 1) = A∆x(k) + B∆u(k)
∆y(k) = C∆x(k)
onde
∆y(k) = C∆x(k) ⇒ ∆y(k + 1) = C∆x(k + 1)
y(k + 1) = y(k) + C (A∆x(k) + B∆u(k))
︸ ︷︷ ︸
∆x(k+1)
Tito Luís M. Santos
Inclusão da ação integral
Modelo incremental
Seja o modelo em k dado por
x(k + 1) = Ax(k) + Bu(k)
y(k) = Cx(k)
e em k − 1 dado por
x(k) = Ax(k − 1) + Bu(k − 1)
y(k − 1) = Cx(k − 1)
Subtraindo a equação em k pela de k − 1
∆x(k + 1) = A∆x(k) + B∆u(k)
∆y(k) = C∆x(k)
onde
∆y(k) = C∆x(k) ⇒ ∆y(k + 1) = C∆x(k + 1)
y(k + 1) = y(k) + C (A∆x(k) + B∆u(k))
︸ ︷︷ ︸
∆x(k+1)
Tito Luís M. Santos
Inclusão da ação integral
Modelo incremental
Seja o modelo em k dado por
x(k + 1) = Ax(k) + Bu(k)
y(k) = Cx(k)
e em k − 1 dado por
x(k) = Ax(k − 1) + Bu(k − 1)
y(k − 1) = Cx(k − 1)
Subtraindo a equação em k pela de k − 1
∆x(k + 1) = A∆x(k) + B∆u(k)
∆y(k) = C∆x(k)
onde
∆y(k) = C∆x(k) ⇒ ∆y(k + 1) = C∆x(k + 1)
y(k + 1) = y(k) + C (A∆x(k) + B∆u(k))
︸ ︷︷ ︸
∆x(k+1)
Tito Luís M. Santos
Inclusão da ação integral
Modelo incremental
Dada representação a seguir
∆x(k + 1) = A∆x(k) + B∆u(k)
y(k + 1) =y(k) + CA∆x(k) + CB∆u(k)
é possı́vel formar o modelo incremental em espaço de estados na forma
[
∆x(k + 1)
y(k + 1)
]
=
[
A 0
CA I
]
︸ ︷︷ ︸
Aa
[
∆x(k)
y(k)
]
+
[
B
CB
]
︸ ︷︷ ︸
Ba
∆u(k)
y(k) = [0 I]
︸︷︷︸
Ca
[
∆x(k)
y(k)
]
Fazendo ξ(k) = [∆x(k)′ y(k)′] chegamos a
ξ(k + 1) = Aaξ(k) + Ba∆u(k)
y(k) = Caξ(k)
Tito Luís M. Santos
Inclusão da ação integral
Efeito de perturbações constante
Seja o modelo em k dado por
x(k + 1) = Ax(k) + Bu(k) + w(k)
y(k) = Cx(k) + v(k)
e em k − 1 dado por
x(k) = Ax(k − 1) + Bu(k − 1) + w(k − 1)
y(k − 1) = Cx(k − 1) + v(k − 1)
Sendo w(k) = w(k − 1) = w e v(k) = v(k − 1) = v
∆x(k + 1) = A∆x(k) + B∆u(k)
∆y(k) = C∆x(k)
onde
∆y(k) = C∆x(k) ⇒ ∆y(k + 1) = C∆x(k + 1)
y(k + 1) = y(k) + C (A∆x(k) + B∆u(k))
︸ ︷︷ ︸
∆x(k+1)
Tito Luís M. Santos
Inclusão da ação integral
Efeito de perturbações constante
Seja o modelo em k dado por
x(k + 1) = Ax(k) + Bu(k) + w(k)
y(k) = Cx(k) + v(k)
e em k − 1 dado por
x(k) = Ax(k − 1) + Bu(k − 1) + w(k − 1)
y(k − 1) = Cx(k − 1) + v(k − 1)
Sendo w(k) = w(k − 1) = w e v(k) = v(k − 1) = v
∆x(k + 1) = A∆x(k) + B∆u(k)
∆y(k) = C∆x(k)
onde
∆y(k) = C∆x(k) ⇒ ∆y(k + 1) = C∆x(k + 1)
y(k + 1) = y(k) + C (A∆x(k) + B∆u(k))
︸ ︷︷ ︸
∆x(k+1)
Tito Luís M. Santos
Modelo Incremental
Predições na forma matricial
Seja um modelo dado por
ξ(k + 1) = Aaξ(k) + Ba∆u(k)
y(k) =Caξ(k)
Verifica-se





ξ(k + 1|k)
ξ(k + 2|k)
.
.
.
ξ(k + N|k)





=





Aa
A2a
.
.
.
ANa





x(k) +





Ba 0 ... 0
AaBa Ba ... 0
.
.
.
.
.
.
. . .
.
.
.
AN−1a Ba A
N−2
a Ba ... Ba










∆u(k |k)
∆u(k + 1|k)
.
.
.
∆u(k + N − 1|k)





Tito Luís M. Santos
Modelo Incremental
Predições na forma matricial
Seja um modelo dado por
ξ(k + 1) = Aaξ(k) + Ba∆u(k)
y(k) = Caξ(k)
Verifica-se





ξ(k + 1|k)
ξ(k + 2|k)
.
.
.
ξ(k + N|k)





=





Aa
A2a
.
.
.
ANa





x(k)
︸ ︷︷ ︸
RESPOSTA LIVRE
+





Ba 0 ... 0
AaBa Ba ... 0
.
.
.
.
.
.
. . .
.
.
.
AN−1a Ba A
N−2
a Ba ... Ba










∆u(k |k)
∆u(k + 1|k)
.
.
.
∆u(k + N − 1|k)





︸ ︷︷ ︸
RESPOSTA FORÇADA
Tito Luís M. Santos
Modelo Incremental
Predições na forma matricial
Seja um modelo dado por
ξ(k + 1) = Aaξ(k) + Ba∆u(k)
y(k) = Caξ(k)
Caso ∆u(k + Nu|k) = ∆u(k + Nu + 1|k) = ... = ∆u(k + N − 1|k) = 0,
verifica-se:





ξ(k + 1|k)
ξ(k + 2|k)
.
.
.
ξ(k + N|k)





=





Aa
A2a
.
.
.
ANa





x(k)+





Ba 0 ... 0
AaBa Ba ... 0
.
.
.
.
.
.
. . .
.
.
.
AN−1a Ba A
N−2
a Ba ... A
N−Nu
a Ba










∆u(k |k)
∆u(k + 1|k)
.
.
.
∆u(k + Nu − 1|k)





Tito Luís M. Santos
Modelo Incremental
Formulação do problema de otimização
Seja o modelo incremental
[
∆x(k + 1)
y(k + 1)
]
=
[
A 0
CA I
]
︸ ︷︷ ︸
Aa
[
∆x(k)
y(k)
]
+
[
B
CB
]
︸ ︷︷ ︸
Ba
∆u(k)
y(k) = [0 I]
︸︷︷︸
Ca
[
∆x(k)
y(k)
]
Podemos considerar
min
∆u(k)
N2∑
j=N1
(yj − y r )
′
Qy (yj − y r ) +
Nu−1∑
j=0
∆u′j R∆uj
s.a. ξ0 = [(x(k) − x(k − 1))
′
y(k)′]′
∆uj = 0, j = Nu, Nu + 1, ...N2
ξj+1 = Aaξj + Ba∆uj , j = 1, 2, ... N2
yj = Caξ(j), j = 1, 2, ... N2
Tito Luís M. Santos
Modelo Incremental
Formulação do problema de otimização
Seja o problema de otimização abaixo
min
∆u(k)
N2∑
j=N1
(yj − y r )
′Qy (yj − y r ) +
Nu−1∑
j=0
∆u′j R∆uj
s.a. ξ0 = [(x(k) − x(k − 1))
′
y(k)′]′
∆uj = 0, j = Nu, Nu + 1, ...N2
ξj+1 = Aaξj + Ba∆uj , j = 1, 2, ... N2
yj = Caξ(j), j = 1, 2, ... N2
Note que
i) Em regime permanente: ∆ur = 0.
iii) O mı́nimo é obtido com yj = y r e ∆uj = 0 para todo j .
Tito Luís M. Santos
Sumário
1 Introdução
2 Inclusão da ação integral
3 Solução Anaĺıtica
4 Representação não-mı́nima
5 Problema com restrições
6 Comentários Finais
Tito Luís M. Santos
Solução Analı́tica
Formulação matricial
No caso sem restrições, é possı́vel encontrar analiticamente uma lei de
controle linear que determina u∗0 (yr , x(k), x(k − 1)).
Para tanto, considere os vetores aumentados
∆u(k) = [∆u(k |k)′ ∆u(k + 1|k)′ ... ∆u(k + N − 1|k)′]′,
X (k) = [ξ(k + 1|k)′ ξ(k + 2|k)′ ... ξ(k + N|k)′]′,
Y(k) = [y(k + 1|k)′ y(k + 2|k)′ ... y(k + N|k)′]′,
W(k) = [yr (k + 1|k)
′
yr (k + 2|k)
′ ... yr (k + N2|k)
′]′,
As predições são descritas por:
X (k) = Aξ(k) + B∆u(k)
Y(k) = CX (k)
Tito Luís M. Santos
Solução Analı́tica
Formulação matricial
No caso sem restrições, é possı́vel encontrar analiticamente uma lei de
controle linear que determina u∗0 (yr , x(k), x(k − 1)).
Para tanto, considere os vetores aumentados
∆u(k) = [∆u(k |k)′ ∆u(k + 1|k)′ ... ∆u(k + N − 1|k)′]′,
X (k) = [ξ(k + 1|k)′ ξ(k + 2|k)′ ... ξ(k + N|k)′]′,
Y(k) = [y(k + 1|k)′ y(k + 2|k)′ ... y(k + N|k)′]′,
W(k) = [yr (k + 1|k)
′
yr (k + 2|k)
′ ... yr (k + N2|k)
′]′,
As predições são descritas por:
X (k) = Aξ(k) + B∆u(k)
Y(k) = CX (k)
Tito Luís M. Santos
Solução Analı́tica
Problema de otimização equivalente
Seja o problema de otimização abaixo
min
∆u(k)
N2∑
j=N1
(yj − y r )
′
Qy (yj − y r ) +
Nu−1∑
j=0
∆u′j R∆uj
s.a. ξ0 = [(x(k) − x(k − 1))
′
y(k)′]′
∆uj = 0, j > Nu − 1
ξj+1 = Aaξj + Ba∆uj , j > 0
yj = Caξ(j), j > 0
usando
Q = diag(Q,Q, ...,Q) e R = diag(R,R, ...,R)
podemos escrever
min
∆u(k)
(Y −W)′Q(Y −W) +∆u(k)′R∆u(k)
s.a. ξ0 = [(x(k) − x(k − 1))
′
y(k)′]′
X = Aξ0 + B∆u(k)
Y = CX
Tito Luís M. Santos
Solução Analı́tica
Problema de otimização equivalente
Seja o problema na forma matricial dado por
min
∆u(k)
(Y −W)′Q(Y −W) +∆u(k)′R∆u(k)
s.a. ξ0 = [(x(k) − x(k − 1))
′
y(k)′]′
X = Aξ0 + B∆u(k)
Y = CX
Uma vez que ξ0 é constante com relação a ∆u(k), consideraremos
min
∆u(k)
[C(Aξ0 + B∆u(k))−W]
′Q[C(Aξ0 + B∆u(k))−W] +∆u(k)
′R∆u(k)
Alternativamente
min
∆u(k)
J = ∆u(k)′(B′C′QCB +R)∆u(k) + 2(ξ′0A
′C′ −W ′)QCB∆u(k)
Tito Luís M. Santos
Solução Analı́tica
Problema de otimização equivalente
Seja o problema na forma matricial dado por
min
∆u(k)
(Y −W)′Q(Y −W) +∆u(k)′R∆u(k)
s.a. ξ0 = [(x(k) − x(k − 1))
′
y(k)′]′
X = Aξ0 + B∆u(k)
Y = CX
Uma vez que ξ0 é constante com relação a ∆u(k), consideraremos
min
∆u(k)
[C(Aξ0 + B∆u(k))−W]
′Q[C(Aξ0 + B∆u(k))−W] +∆u(k)
′R∆u(k)
Alternativamente
min
∆u(k)
J = ∆u(k)′(B′C′QCB +R)∆u(k) + 2(ξ′0A
′C′ −W ′)QCB∆u(k)
Tito Luís M. Santos
Solução Analı́tica
Solução do problema de otimização
Considerando o problema quadrático
min
∆u(k)
J = ∆u(k)′(B′C′QCB+R)∆u(k)+2(ξ′0A
′C′−W ′)QCB∆u(k)+W ′W
O candidato a mı́nimo é obtido com
∂J
∂u(k)
= 2(B′C′QCB +R)∆u∗(k) + [2(ξ′0A
′C′ −W ′)QCB]′ = 0
o que implica
∆u∗(k) = (B′C′QCB +R)−1B′C′Q′(W − CAξ0)
Tito Luís M. Santos
Solução Analı́tica
Observações
Seja a solução linear explı́cita
∆u∗(k) = (B′C′QCB +R)−1B′C′Q′(W − CAξ0)
Predições
O termo CAξ0 é a resposta livre predita.
O vetor W é composto pelas referências.
Se a referência futura não é conhecida, utiliza-se
W = [yr (k)
′
yr (k)
′ ... yr (k)
′]′
Devido ao princı́pio do horizonte deslizante, utiliza-se apenas os p
primeiros termos de ∆u∗(k).
Tito Luís M. Santos
Solução Analı́tica
Observações
Seja a solução linear explı́cita
∆u∗(k) = (B′C′QCB +R)−1B′C′Q′(W − CAξ0)
Predições
O termo CAξ0 é a resposta livre predita.
O vetor W é composto pelas referências.
Se a referência futura não é conhecida, utiliza-se
W = [yr (k)
′
yr (k)
′ ... yr (k)
′]′
Devido ao princı́pio do horizonte deslizante, utiliza-se apenas os p
primeiros termos de ∆u∗(k).
Tito Luís M. Santos
Solução Analı́tica
Motor DC
Exemplo: Seja o modelo de um motor DC dado por
[
i̇a(t)
ω̇r (t)
]
=
[
−R/L −K/L
K/L −b/J
] [
ia(t)
ωr (t)
]
+
[
1/L
0
]
Va(t)
y(t) = ωr (t)
com R = 2.7 Ω, L = 0.004 H, K = 0.105 Nm/A, J = 10−5Kg · m2 e
b = 9.3 · 10−6 N · ms/rad .
Obter o controlador preditivo com modelo incremental para Ts = 0.1 s,
yr = 50 rpm, Qy = 1, R = 10, N1 = 1, N2 = 20 e Nu = 5.
Aplicar uma perturbação constante de 2V após 6 s de simulação.
Tito Luís M. Santos
Solução Analı́tica
Motor DC
Resposta:
0 1 2 3 4 5 6 7 8 9 10
0
20
40
60
 
 
ref
x
1
x
2
0 1 2 3 4 5 6 7 8 9 10
0
5
10
15
 
 
u
0 1 2 3 4 5 6 7 8 9 10
-5
0
5
10
15
 
 
du
Tito Luís M. Santos
Sumário
1 Introdução
2 Inclusão da ação integral
3 Solução Anaĺıtica
4 Representação não-mı́nima
5 Problema com restrições
6 Comentários Finais
Tito Luís M. Santos
Representação não-mı́nima
Caso monovariável
Seja uma função de transferência pulsada dada por:
P(z−1) = z−d
b1z
−1 + b2z
−2 + ...+ bnbz
−nb
1 + a1z−1 + a2z−2 + ...+ anaz−na
.
Neste caso, d representa o atraso em tempo-discreto.
Um modelo não-mı́nimo com atraso na entrada é dado por vetor definido
como segue:
x(k) = [y(k) y(k − 1) ... y(k − na + 1) u(k − 1) u(k − 2) ...u(k − nb + 1)],
sendo
x(k + 1) = Ayux(k) + Byuu(k − d)
y(k) = Cyux(k).
Tito Luís M. Santos
Representação não-mı́nima
Caso monovariável
Seja uma função de transferência pulsada dada por:
P(z−1) = z−d
b1z
−1 + b2z
−2 + ...+ bnbz
−nb
1 + a1z−1 + a2z−2 + ...+ anaz−na
.
As matrizes Ayu , Byu e Cyu são dadas como segue:
Ayu =











−a1 −a2 ... −ana−1 −ana b2 ... bnb−1 bnb
1 0 ... 0 0 0 ... 0 0
...
...
. . .
...
...
...
. . .
...
...
0 0 ... 1 0 0 ... 0 0
0 0 ... 0 0 0 ... 0 0
0 0 ... 0 0 1 ... 0 00 0 ... 0 0 0 ... 1 0











, Byu =













b1
0
...
0
1
0
0
0













Cyu = [1 0 ... 0 0 0 ... 0 0].
Tito Luís M. Santos
Sumário
1 Introdução
2 Inclusão da ação integral
3 Solução Anaĺıtica
4 Representação não-mı́nima
5 Problema com restrições
6 Comentários Finais
Tito Luís M. Santos
Problema com restrições
Problema geral
Seja o problema com restrições na forma
min
∆u(k)
(Y −W)′Q(Y −W) +∆u(k)′R∆u(k)
s.a. ξ0 = [(x(k) − x(k − 1))
′
y(k)′]′
X = Aξ0 + B∆u(k)
Y = CX
FyY ≤ Gy
Fdu∆u(k) ≤ Gdu
Fuu(k) ≤ Gu
E um problema equivalente dado como segue
min
∆u(k)
(Y −W)′Q(Y −W) +∆u(k)′R∆u(k)
s.a. ξ0 = [(x(k) − x(k − 1))
′ y(k)′]′
X = Aξ0 + B∆u(k)
Y = CX
F∆u(k) ≤ G
Tito Luís M. Santos
Problema com restrições
Problema geral
Restrições no incremento de controle
Fdu∆u(k) ≤ Gdu.
Restrições nas saı́das (estados)
FyY ≤ Gy ⇒ FyC(Aξ0 + B∆u(k)) ≤ Gy ⇒ FyCB∆u(k) ≤ Gy − FyCAξ0
Restrições no controle (u(k) = ∆u(k) + u(k − 1))





u(k)
u(k + 1)
...
u(k + Nu)





︸ ︷︷ ︸
u(k)
=





1 0 ... 0
1 1 ... 0
...
...
. . .
...
1 1 ... 1





︸ ︷︷ ︸
M





∆u(k)
∆u(k + 1)
...
∆u(k + Nu − 1)





︸ ︷︷ ︸
∆u(k)
+





1
1
...
1





︸︷︷︸
L
u(k − 1)
Fuu(k) ≤ Gu ⇒ FuM∆u(k) ≤ Gu − FuLu(k − 1).
Tito Luís M. Santos
Problema com restrições
Problema geral
Restrições no incremento de controle
Fdu∆u(k) ≤ Gdu.
Restrições nas saı́das (estados)
FyY ≤ Gy ⇒ FyC(Aξ0 + B∆u(k)) ≤ Gy ⇒ FyCB∆u(k) ≤ Gy − FyCAξ0
Restrições no controle (u(k) = ∆u(k) + u(k − 1))





u(k)
u(k + 1)
...
u(k + Nu)





︸ ︷︷ ︸
u(k)
=





1 0 ... 0
1 1 ... 0
...
...
. . .
...
1 1 ... 1





︸ ︷︷ ︸
M





∆u(k)
∆u(k + 1)
...
∆u(k + Nu − 1)





︸ ︷︷ ︸
∆u(k)
+





1
1
...
1





︸︷︷︸
L
u(k − 1)
Fuu(k) ≤ Gu ⇒ FuM∆u(k) ≤ Gu − FuLu(k − 1).
Tito Luís M. Santos
Problema com restrições
Problema geral
Restrições no incremento de controle
Fdu∆u(k) ≤ Gdu.
Restrições nas saı́das (estados)
FyY ≤ Gy ⇒ FyC(Aξ0 + B∆u(k)) ≤ Gy ⇒ FyCB∆u(k) ≤ Gy − FyCAξ0
Restrições no controle (u(k) = ∆u(k) + u(k − 1))





u(k)
u(k + 1)
...
u(k + Nu)





︸ ︷︷ ︸
u(k)
=





1 0 ... 0
1 1 ... 0
...
...
. . .
...
1 1 ... 1





︸ ︷︷ ︸
M





∆u(k)
∆u(k + 1)
...
∆u(k + Nu − 1)





︸ ︷︷ ︸
∆u(k)
+





1
1
...
1





︸︷︷︸
L
u(k − 1)
Fuu(k) ≤ Gu ⇒ FuM∆u(k) ≤ Gu − FuLu(k − 1).
Tito Luís M. Santos
Problema com restrições
Problema geral
Restrições no incremento de controle
Fdu∆u(k) ≤ Gdu.
Restrições nas saı́das (estados)
FyY ≤ Gy ⇒ FyC(Aξ0 + B∆u(k)) ≤ Gy ⇒ FyCB∆u(k) ≤ Gy − FyCAξ0
Restrições no controle (u(k) = ∆u(k) + u(k − 1))





u(k)
u(k + 1)
...
u(k + Nu)





︸ ︷︷ ︸
u(k)
=





1 0 ... 0
1 1 ... 0
...
...
. . .
...
1 1 ... 1





︸ ︷︷ ︸
M





∆u(k)
∆u(k + 1)
...
∆u(k + Nu − 1)





︸ ︷︷ ︸
∆u(k)
+





1
1
...
1





︸︷︷︸
L
u(k − 1)
Fuu(k) ≤ Gu ⇒ FuM∆u(k) ≤ Gu − FuLu(k − 1).
Tito Luís M. Santos
Problema com restrições
Problema geral
Seja o problema com restrições na forma
min
∆u(k)
(Y −W)′Q(Y −W) +∆u(k)′R∆u(k)
s.a. ξ0 = [(x(k) − x(k − 1))
′
y(k)′]′
X = Aξ0 + B∆u(k)
Y = CX
F∆u(k) ≤ G
Ele pode ser reescrito na forma
min
∆u(k)
∆u(k)′(B′C′QCB +R)∆u(k) + 2(ξ′0A
′C′ −W ′)QCB∆u(k)
s.a. ξ0 = [(x(k) − x(k − 1))
′
y(k)′]′
F∆u(k) ≤ G
Tito Luís M. Santos
Problema com restrições
Problema geral
Para o problema
min
∆u(k)
∆u(k)′(B′C′QCB +R)∆u(k) + 2(ξ′0A
′C′ −W ′)QB∆u(k)
s.a. ξ0 = [(x(k) − x(k − 1))
′ y(k)′]′
F∆u(k) ≤ G
Se F∆ũ(k) < G para ∆ũ(k) = (B′C′QCB +R)−1B′C′Q′(W − CAξ0),
então,
∆u∗(k) = ∆ũ(k).
Caso contrário - no Matlab - v∗ = quadprog(H, f ,F ,G) para
min
v
0.5v ′Hv + f ′v
s.a.
Fv ≤ G
o que resultaria em
∆u(k) = quadprog(2(B′C′QCB +R), [2(ξ′0A
′C′ −W ′)QCB]′,F ,G)
Tito Luís M. Santos
Problema com restrições
Problema geral
Para o problema
min
∆u(k)
∆u(k)′(B′C′QCB +R)∆u(k) + 2(ξ′0A
′C′ −W ′)QB∆u(k)
s.a. ξ0 = [(x(k) − x(k − 1))
′ y(k)′]′
F∆u(k) ≤ G
Se F∆ũ(k) < G para ∆ũ(k) = (B′C′QCB +R)−1B′C′Q′(W − CAξ0),
então,
∆u∗(k) = ∆ũ(k).
Caso contrário - no Matlab - v∗ = quadprog(H, f ,F ,G) para
min
v
0.5v ′Hv + f ′v
s.a.
Fv ≤ G
o que resultaria em
∆u(k) = quadprog(2(B′C′QCB +R), [2(ξ′0A
′C′ −W ′)QCB]′,F ,G)
Tito Luís M. Santos
Solução Analı́tica
Motor DC
Exemplo: Seja o modelo de um motor DC dado por
[
i̇a(t)
ω̇r (t)
]
=
[
−R/L −K/L
K/L −b/J
] [
ia(t)
ωr (t)
]
+
[
1/L
0
]
Va(t)
y(t) = ωr (t)
com R = 2.7 Ω, L = 0.004 H, K = 0.105 Nm/A, J = 10−4Kg · m2 e
b = 9.3 · 10−6 N · ms/rad .
Obter o controlador preditivo com modelo incremental para Ts = 0.1 s,
yr = 50 rpm, Qy = 1, R = 10, N1 = 1, N2 = 20 e Nu = 5.
Restrições: y(k) < 60, |u(k)| < 10 e |∆u(k)| < 4.
Aplicar uma perturbação constante de 2V após 6 s de simulação.
Tito Luís M. Santos
Solução Analı́tica
Motor DC
Resposta:
0 1 2 3 4 5 6 7 8 9 10
0
20
40
60
 
 
ref
x
1
x
2
0 1 2 3 4 5 6 7 8 9 10
0
5
10
 
 
u
0 1 2 3 4 5 6 7 8 9 10
-2
0
2
4
 
 
du
Tito Luís M. Santos
Sumário
1 Introdução
2 Inclusão da ação integral
3 Solução Anaĺıtica
4 Representação não-mı́nima
5 Problema com restrições
6 Comentários Finais
Tito Luís M. Santos
Comentários Finais
Apresentou-se uma estratégia MPC em espaço de estados
Tratou-se da incorporação do efeito integrador no modelo
Obteve-se a solução analı́tica para o caso sem restrições
Discutiu-se a respeito do caso com restrições.
	Introdução
	Inclusão da ação integral
	Solução Analítica
	Representação não-mínima
	Problema com restrições
	Comentários Finais

Continue navegando