Aula 10
15 Outubro 2019
EE-254 (Controle Preditivo) Aula 10 15 Outubro 2019 1 / 53
Resumo da aula passada
Estabilidade em malha fechada
EE-254 (Controle Preditivo) Aula 10 15 Outubro 2019 2 / 53
Topicos da aula de hoje
Uso de restricoes terminais
Caracterizacao do domınio de atracao da origem ao se empregar a leide controle preditivo
EE-254 (Controle Preditivo) Aula 10 15 Outubro 2019 3 / 53
Uso de horizonte de predicao finito
e restricoes terminais
EE-254 (Controle Preditivo) Aula 10 15 Outubro 2019 4 / 53
Uma forma de garantir a estabilidade empregando horizonte de predicaofinito consiste em impor que a origem seja alcancada ao final do horizontede predicao (restricao terminal).
No instante k, impoe-se x(k + N|k) = 0:
Tempok
x(k)
k + 1 k + 2
Horizonte considerado na obtenção deû*(k|k), û*(k + 1|k), …, û*(k + N 1|k)
k + N
x*(k + 2|k)^
x*(k + N|k)^
x*(k + 1|k) = x(k + 1)Estado
^
EE-254 (Controle Preditivo) Aula 10 15 Outubro 2019 5 / 53
No instante k + 1, impoe-se x(k + N|k + 1) = 0:
Tempok
x(k)
k + 1 k + 2
Horizonte considerado na obtenção deû*(k + 1|k + 1), û*(k + 2|k + 1), …, û*(k + N|k + 1)
k + N
x(k + 1)
x*(k + 2|k + 1)^
Estado
x*(k + N|k + 1)^
Se o problema de otimizacao for inicialmente factıvel, a origem seraatingida em N passos.
Esta abordagem equivale a usar um horizonte de predicao que vai sendoreduzido a cada passo.
EE-254 (Controle Preditivo) Aula 10 15 Outubro 2019 6 / 53
Como alternativa, pode-se colocar a restricao sempre N passos a frente doinstante atual, isto e, impor
x(k + N|k) = 0
x(k + N + 1|k + 1) = 0
e assim sucessivamente.
EE-254 (Controle Preditivo) Aula 10 15 Outubro 2019 7 / 53
Custo a ser minimizado no instante k:
J(k) =N−1∑i=0
||x(k + i |k)||2Q + ||u(k + i |k)||2R
Restricoes de controle e estado:
Suu(k + i |k) ≤ bu
Sx x(k + i |k) ≤ bx
para i = 0, 1, . . .N − 1.
Restricao terminal:x(k + N|k) = 0
EE-254 (Controle Preditivo) Aula 10 15 Outubro 2019 8 / 53
Empregando argumentacao similar a utilizada para o horizonte de predicaoinfinito, pode-se mostrar que o problema de otimizacao tem factibilidaderecursiva e que o estado x(k) convergira para a origem quando k →∞.
Demonstracao: Exercıcio.
EE-254 (Controle Preditivo) Aula 10 15 Outubro 2019 9 / 53
MPC para regulacao com garantia de estabilidade nominal
Informacao requerida sobre a planta:
Matrizes A ∈ Rn×n, B ∈ Rn×p do modelo no espaco de estados
Limitantes sobre a excursao dos estados: xmin, xmax ∈ Rn
Limitantes sobre a excursao dos controles: umin, umax ∈ Rp
Parametros de projeto:
Matrizes de peso Q ∈ Rn×n e R ∈ Rp×p
Horizonte de predicao N
EE-254 (Controle Preditivo) Aula 10 15 Outubro 2019 10 / 53
Inicializacao:
Fazer
H =
B 0 · · · 0AB B · · · 0
......
. . ....
AN−1B AN−2B · · · B
, Φu =
AA2
...AN
Q =
Q 0 · · · 00 Q · · · 0...
.... . .
...0 0 · · · Q
qN×qN
, R =
R 0 · · · 00 R · · · 0...
.... . .
...0 0 · · · R
pN×pN
Calcular Hn = QH
Fazer Hqp = 2(HTQH + R)
EE-254 (Controle Preditivo) Aula 10 15 Outubro 2019 11 / 53
Fazer Aqp =
IpN−IpNH−H
Fazer Aeq =
[0n×(n−1)N In
]H (ultimas n linhas de H).
Fazer k = 0
EE-254 (Controle Preditivo) Aula 10 15 Outubro 2019 12 / 53
Rotina principal:
1 Ler x(k) (estado da planta)
2 Calcular fu = Φu x(k) e fqp = 2HTn fu
3 Fazer
bqp =
[umax ]N−[umin]N
[xmax ]N − fu
fu − [xmin]N
4 Fazer beq = −
[0n×(n−1)N In
]fu (ultimas n linhas de fu)
5 Resolver o problema de otimizacao
u∗ = arg minu∈RpM
1
2uTHqpu + f Tqp u
s.a.Aqpu ≤ bqp, Aequ = beq
EE-254 (Controle Preditivo) Aula 10 15 Outubro 2019 13 / 53
6 Atualizar o controle aplicado a planta: u(k) = u∗(k|k)
7 Fazer k = k + 1
8 Aguardar o proximo instante de amostragem e retornar ao passo 1.
EE-254 (Controle Preditivo) Aula 10 15 Outubro 2019 14 / 53
Observacao: Restricao de igualdade
A restricao Aequ = beq pode ser imposta por meio de uma parametrizacaodo vetor u na forma
u = Zθ + u0
sendo Z uma matriz cujas colunas formem uma base para o espaco nulode Aeq e u0 uma solucao particular da equacao Aequ = beq.
Supondo que Aeq tenha posto completo de linhas, uma solucao particulare dada por
u0 = ATeq(AeqA
Teq)−1beq
Com isso, o problema de otimizacao pode ser reformulado em termos dovetor θ.
EE-254 (Controle Preditivo) Aula 10 15 Outubro 2019 15 / 53
No Matlab, a matriz Z pode ser obtida fazendo Z = null(Aeq)
Detalhes a respeito desse procedimento podem ser consultados em:
GOULD, N. I. M.; HRIBAR, M. E.; NOCEDAL, J. On the solution ofequality constrained quadratic programming problems arising inoptimization. SIAM Journal on Scientific Computing, v. 23, n. 4, p.1376-1395, 2001.
EE-254 (Controle Preditivo) Aula 10 15 Outubro 2019 16 / 53
Implementacao em Matlab
matrizes_regulador_estabilidade.m: Monta as matrizesΦu,Hn,Hqp,Aqp,Aeq.
mpc_regulador_estabilidade.m: S-function que implementa ocontrolador
Exemplo:
exemplo_regulador_estabilidade.m: Definicao das matrizes domodelo da planta (integrador duplo) e dos pesos do MPC.
regulador_estabilidade.mdl: Diagrama de simulacao.
EE-254 (Controle Preditivo) Aula 10 15 Outubro 2019 17 / 53
Implementacao em Matlab: Exemplo
Parametros do controlador:
N = 10
umax = −umin = 0,2
xmax = −xmin = [2 2]T
Condicoes iniciais da planta:
x(0) = [1 0]T
O que acontece se x(0) = [1 0,65]T ?
EE-254 (Controle Preditivo) Aula 10 15 Outubro 2019 18 / 53
Domınio de atracao
EE-254 (Controle Preditivo) Aula 10 15 Outubro 2019 19 / 53
Domınio de atracao
Considerando que haja garantia de factibilidade recursiva e convergenciado estado para a origem, o (maior) domınio de atracao pode ser definidocomo o conjunto das condicoes iniciais x ∈ Rn para as quais o problemade otimizacao e factıvel.
Pergunta: Como caracterizar tal conjunto ?
EE-254 (Controle Preditivo) Aula 10 15 Outubro 2019 20 / 53
Caracterizacao do domınio de atracao
O problema pode ser formulado da seguinte forma: Determinar o conjuntode pontos x ∈ X ⊂ Rn para os quais existe u ∈ RpN que satisfaz asseguintes restricoes:
Aqpu ≤ bqp
Aequ = beq
com
bqp =
[umax ]N−[umin]N
[xmax ]N − ΦuxΦux − [xmin]N
beq = −ANx
e Aqp, Aeq definidas como anteriormente.
EE-254 (Controle Preditivo) Aula 10 15 Outubro 2019 21 / 53
Considerando X = {x ∈ Rn : xmin ≤ x ≤ xmax}, a condicao inicial x devesatisfazer [
In−In
]x ≤
[xmax
−xmin
]Essa restricao, combinada com
IpN−IpNH−H
u ≤
[umax ]N−[umin]N
[xmax ]N − ΦuxΦux − [xmin]N
pode ser reescrita como
0n×pN In0n×pN −InIpN 0pN×n−IpN 0pN×nH Φu
−H −Φu
[
ux
]≤
xmax
−xmin
[umax ]N−[umin]N[xmax ]N−[xmin]N
EE-254 (Controle Preditivo) Aula 10 15 Outubro 2019 22 / 53
ou aindaSzz ≤ bz
em que
z =
[ux
], Sz =
0n×pN In0n×pN −InIpN 0pN×n−IpN 0pN×nH Φu
−H −Φu
, bz =
xmax
−xmin
[umax ]N−[umin]N[xmax ]N−[xmin]N
EE-254 (Controle Preditivo) Aula 10 15 Outubro 2019 23 / 53
A restricao de igualdadeAequ = −ANx
pode ser reescrita como
[Aeq AN
] [ ux
]= 0n
ou aindaSz,eqz = 0n
em queSz,eq =
[Aeq AN
]
EE-254 (Controle Preditivo) Aula 10 15 Outubro 2019 24 / 53
A restricao Szz ≤ bz define uma regiao Pz no espaco R(pN+n)
correspondente as variaveis u, x .
Considera-se aqui que tal regiao seja limitada em decorrencia de restricoessobre a excursao dos controles e dos estados. Diz-se entao que Pz e umpolitopo.
EE-254 (Controle Preditivo) Aula 10 15 Outubro 2019 25 / 53
Politopo (Maciejowski, 2002)
Um politopo no Rn e uma regiao finita delimitada por um numero finito dehiperplanos.
Um politopo pode ser descrito por um conjunto de desigualdades da formaAx ≤ b ou por um conjunto de vertices.
EE-254 (Controle Preditivo) Aula 10 15 Outubro 2019 26 / 53
A restricao Sz,eqz = 0n (n equacoes) define um corte no politopo inicial,resultando em um novo politopo P ′z .
Deve-se entao determinar quais os pontos x ∈ Rn para os quais existe
u ∈ RpN tal que z =
[ux
]∈ P ′z .
Para isso, pode-se projetar o politopo P ′z sobre as dimensoes definidas porsuas ultimas n componentes (correspondentes a x).
EE-254 (Controle Preditivo) Aula 10 15 Outubro 2019 27 / 53
Ilustracao das operacoes envolvidas para n = 1, N = 1
z1 = û(k|k)
z2 = x Sz,eqz = 0
S z <= bz
Px
Pz
Pz’
EE-254 (Controle Preditivo) Aula 10 15 Outubro 2019 28 / 53
Esse conjunto de operacoes pode ser realizado empregando ferramentas degeometria computacional.
Para ilustracao, serao aqui empregadas rotinas do Multiparametric Toolbox(MPT) para Matlab (http://control.ee.ethz.ch/∼mpt/)
Pzlinha = Polyhedron(’H’,[Sz bz],’He’,[Szeq zeros(n,1)]);
Px = projection(Pzlinha,p*N+1:p*N+n);
EE-254 (Controle Preditivo) Aula 10 15 Outubro 2019 29 / 53
Rotina em Matlab para determinacao do domınio deatracao
DominioAtracao.m
EE-254 (Controle Preditivo) Aula 10 15 Outubro 2019 30 / 53
Alternativa para alargar o domınio de atracao:Uso de conjunto terminal
EE-254 (Controle Preditivo) Aula 10 15 Outubro 2019 31 / 53
Uso de conjunto terminal
Ideia: Ao inves de impor que o estado atinja a origem ao final dohorizonte de predicao:
x(k + N|k) = 0
pode-se impor que o estado atinja um conjunto terminal:
x(k + N|k) ∈ Xf
sendo Xf um subconjunto invariante do conjunto de estados admissıveisX , com 0 ∈ Xf .
EE-254 (Controle Preditivo) Aula 10 15 Outubro 2019 32 / 53
Conjunto invariante
Considere um sistema com dinamica descrita por
x(k + 1) = Ax(k)
sendo x(k) ∈ Rn e A ∈ Rn×n.
Para esse sistema, um conjunto Xf e dito ser positivamente invariante(ou simplesmente “invariante”) se
x(0) ∈ Xf ⇒ x(k) ∈ Xf , ∀k ≥ 0
Vale notar que a origem e um conjunto invariante trivial.
EE-254 (Controle Preditivo) Aula 10 15 Outubro 2019 33 / 53
Determinacao do maior conjunto invariante contido em X
Suponha que o conjunto X de estados admissıveis seja descrito na formade desigualdades lineares:
X = {x ∈ Rn : Sxx ≤ bx}
Considere ainda que X seja limitado e contenha a origem em seu interior,ou seja:
0 < bx
EE-254 (Controle Preditivo) Aula 10 15 Outubro 2019 34 / 53
X = {x ∈ Rn : Sxx ≤ bx} (1)
Seja X1 o conjunto de condicoes iniciais x ∈ X a partir das quais o estadopermanece em X apos um passo, ou seja:
X1 = {x ∈ X : Ax ∈ X} (2)
De (1) e (2), tem-se
X1 = {x ∈ Rn : Sxx ≤ bx e SxAx ≤ bx}
ou ainda:
X1 =
{x ∈ Rn :
[SxSxA
]x ≤
[bxbx
]}
EE-254 (Controle Preditivo) Aula 10 15 Outubro 2019 35 / 53
Seguindo desenvolvimento similar, chega-se a seguinte caracterizacao parao conjunto Xi de condicoes iniciais x ∈ X a partir das quais o estadopermanece em X ao longo de i passos:
SxSxA
...SxA
i
x ≤
bxbx...bx
EE-254 (Controle Preditivo) Aula 10 15 Outubro 2019 36 / 53
Proposicao 1: Se Xi = Xi+1 para algum i , entao Xi e um conjuntoinvariante.
Prova: Inicialmente, vale notar que Xi 6= ∅, pois 0 ∈ Xi .
Seja x(0) ∈ Xi = Xi+1. Entao:
x(1) ∈ X , x(2) ∈ X , . . . , x(i + 1) ∈ X
Portanto, tem-se que x(1) ∈ Xi . Como Xi = Xi+1, conclui-se ainda quex(1) ∈ Xi+1. Logo:
x(2) ∈ X , x(3) ∈ X , . . . , x(i + 2) ∈ X
e, portanto, x(2) ∈ Xi . Empregando esse desenvolvimento repetidas vezes,conclui-se que x(k) ∈ Xi , ∀k ≥ 0.
EE-254 (Controle Preditivo) Aula 10 15 Outubro 2019 37 / 53
Proposicao 1: Se Xi = Xi+1 para algum i , entao Xi e um conjuntoinvariante.
Observacao 1: Pode-se ainda mostrar que Xi contem todos ossubconjuntos invariantes de X .
Com efeito, seja um conjunto invariante Xinv ⊂ X . Se x(0) ∈ Xinv, tem-seque x(k) ∈ Xinv, ∀k ≥ 0 e, portanto, x(k) ∈ X , ∀k ≥ 0. Trivialmente,tem-se que x(k) ∈ X para k = 1, 2, . . . , i . Logo x(0) ∈ Xi .
Diz-se entao que Xi e o maior subconjunto invariante de X .
EE-254 (Controle Preditivo) Aula 10 15 Outubro 2019 38 / 53
Observacao 2 (Determinacao finita de Xi ): Consideremos novamente acaracterizacao de Xi na forma de desigualdades lineares:
SxSxA
...SxA
i
x ≤
bxbx...bx
Por hipotese, Sxx ≤ bx define um conjunto X limitado, contendo a origemem seu interior, ou seja 0 < bx .
Se o sistema for assintoticamente estavel (ou seja, se todos os autovaloresde A tiverem modulo menor do que um), havera um inteiro i + 1 para oqual a desigualdade SxA
i+1x ≤ bx sera satisfeita para todo x ∈ X .
Portanto, a restricao SxAi+1x ≤ bx sera redundante e, consequentemente,
Xi+1 = Xi .
EE-254 (Controle Preditivo) Aula 10 15 Outubro 2019 39 / 53
Como verificar a redundancia de restricoes ?
Considere as seguintes restricoes:
Sx ≤ b (3)
cT x ≤ d (4)
com x ∈ Rn, S ∈ Rr×n, b ∈ Rr , c ∈ Rn, d ∈ R.
Como testar se a restricao (4) e redundante com respeito a (3) ?
Ideia: Resolver o seguinte problema de programacao linear (PPL):
maxx∈Rn
cT x s.a. Sx ≤ b
A restricao (4) sera redundante se e somente se (cT x∗ − d) ≤ 0.
EE-254 (Controle Preditivo) Aula 10 15 Outubro 2019 40 / 53
Mini-tutorial: Programacao linear no Matlab
Funcao LINPROG (Matlab Optimization Toolbox):
x = linprog(f,A,b)
minimiza f’*x
sujeito a A*x <= b
Em nosso caso:flp = −cAlp = Sblp = b
EE-254 (Controle Preditivo) Aula 10 15 Outubro 2019 41 / 53
Uso da funcao LINPROG: Exemplo
minx∈R2
J(x) = x1 + 2x2
s.a.
−3x1 − x2 ≤ −3 (i)
−x1 + x2 ≤ 1 (ii)
x1 ≥ 0 (iii)
x2 ≥ 0 (iv)
EE-254 (Controle Preditivo) Aula 10 15 Outubro 2019 42 / 53
x1
x2
1 2 3
1
2
3
(i) (ii)
(iii) (iv)
−3x1 − x2 ≤ −3 (i)
−x1 + x2 ≤ 1 (ii)
x1 ≥ 0 (iii)
x2 ≥ 0 (iv)
EE-254 (Controle Preditivo) Aula 10 15 Outubro 2019 43 / 53
z1
z2
1 2 3
1
2
3
(i) (ii)
(iii) (iv)
Região desoluçõesfactíveis
−3x1 − x2 ≤ −3 (i)
−x1 + x2 ≤ 1 (ii)
x1 ≥ 0 (iii)
x2 ≥ 0 (iv)
EE-254 (Controle Preditivo) Aula 10 15 Outubro 2019 44 / 53
x1
x2
1 2 3
1
2
3
Curvas de nívelde J(x)
J diminui
J(x) = x1 + 2x2
EE-254 (Controle Preditivo) Aula 10 15 Outubro 2019 45 / 53
x1
x2
1 2 3
1
2
3
Curvas de nívelde J(x)
J diminui
x*
J(x) = x1 + 2x2
EE-254 (Controle Preditivo) Aula 10 15 Outubro 2019 46 / 53
minx∈R2
J(x) = x1 + 2x2
s.a.
−3x1 − x2 ≤ −3 (i)
−x1 + x2 ≤ 1 (ii)
x1 ≥ 0 (iii)
x2 ≥ 0 (iv)
Usando o LINPROG:
flp =
[12
], Alp =
−3 −1−1 1−1 00 −1
, blp =
−3100
EE-254 (Controle Preditivo) Aula 10 15 Outubro 2019 47 / 53
Implementacao em Matlab
Funcoes a serem empregadas:
teste_redundancia.m
conjunto_inv.m
O conjunto invariante Xf e obtido na forma de desigualdades lineares:
Xf = {x ∈ Rn : Sf x ≤ bf }
EE-254 (Controle Preditivo) Aula 10 15 Outubro 2019 48 / 53
Exemplo
A =
[0 0.5−1 0.5
], xmin =
[−1−1
], xmax =
[11
]
Sx =
1 00 1−1 00 −1
, bx =
1111
EE-254 (Controle Preditivo) Aula 10 15 Outubro 2019 49 / 53
Exemplo
>> A = [0 0.5; -1 0.5];
>> eig(A)
>> Sx = [eye(2);-eye(2)];
>> bx = ones(4,1);
>> max_iter = 10;
>> [Sf,bf] = conjunto_inv(A,Sx,bx,max_iter)
EE-254 (Controle Preditivo) Aula 10 15 Outubro 2019 50 / 53
Visualizando o conjunto invariante com a funcao plot to MPT Toolbox:
>> Xf = Polyhedron('H',[Sf bf]);
>> plot(Xf)
EE-254 (Controle Preditivo) Aula 10 15 Outubro 2019 51 / 53
Visualizando algumas trajetorias:
>> hold on
>> x(:,1) = [-0.5;1];
>> for k = 1:10, x(:,k+1) = A*x(:,k); end
>> plot(x(1,:),x(2,:),'-o')
>> close, plot(Xf), hold on
>> x(:,1) = [-1;0];
>> for k = 1:10, x(:,k+1) = A*x(:,k); end
>> plot(x(1,:),x(2,:),'-o')
>> close, plot(Xf), hold on
>> x(:,1) = [-0.8;0.6];
>> for k = 1:10, x(:,k+1) = A*x(:,k); end
>> plot(x(1,:),x(2,:),'-o')
EE-254 (Controle Preditivo) Aula 10 15 Outubro 2019 52 / 53
Topicos da proxima aula
Uso de lei de controle terminal: “Dual mode predictive control”
EE-254 (Controle Preditivo) Aula 10 15 Outubro 2019 53 / 53