Upload
others
View
0
Download
0
Embed Size (px)
Citation preview
Aula 6
03 Setembro 2019
EE-254 (Controle Preditivo) Aula 6 03 Setembro 2019 1 / 43
Resumo da aula passada
Uso de modelos no espaco de estados.
Implementacao em Matlab.
Uso de observador de estados.
Consideracoes sobre erro de regime na presenca de perturbacoesconstantes.
EE-254 (Controle Preditivo) Aula 6 03 Setembro 2019 2 / 43
Modelo adotado (SISO - Single Input, Single Output)
x(k + 1) = Ax(k) + Bu(k)
y(k) = Cx(k)
x(k) ∈ Rn, u(k) ∈ R, y(k) ∈ R
A ∈ Rn×n,B ∈ Rn×1,C ∈ R1×n
EE-254 (Controle Preditivo) Aula 6 03 Setembro 2019 3 / 43
Equacao de predicao
y(k + 1|k)y(k + 2|k)
...y(k + N|k)
=
H(N×N)︷ ︸︸ ︷CB 0 · · · 0CAB CB · · · 0
......
. . ....
CAN−1B CAN−2B · · · CB
u(k|k)u(k + 1|k)
...u(k + N − 1|k)
+
CACA2
...CAN
x(k)
︸ ︷︷ ︸fu(N×1)
⇒ y = Hu + fu
EE-254 (Controle Preditivo) Aula 6 03 Setembro 2019 4 / 43
y = Hu + fu
H =
CB 0 · · · 0CAB CB · · · 0
......
. . ....
CAN−1B CAN−2B · · · CB
N×N
fu = Φu x(k), Φu =
CACA2
...CAN
N×n
EE-254 (Controle Preditivo) Aula 6 03 Setembro 2019 5 / 43
Formulacao em termos de incrementos da entrada ∆u
ξ(k) =
[x(k)
u(k − 1)
]
ξ(k + 1) = Aξ(k) + B∆u(k), y(k) = Cξ(k)
A =
[A B
0Tn 1
], B =
[B1
], C = [C 0]
EE-254 (Controle Preditivo) Aula 6 03 Setembro 2019 6 / 43
y = G∆u + f
G =
C B 0 · · · 0
C AB C B · · · 0...
.... . .
...
C AN−1B C AN−2B · · · C B
N×N
f = Φ ξ(k), Φ =
C A
C A2
...
C AN
Obs: Caso M < N, basta suprimir as ultimas N −M colunas da matriz G .
EE-254 (Controle Preditivo) Aula 6 03 Setembro 2019 7 / 43
Rejeicao de perturbacoes
Problema: Esta abordagem nao garante erro de regime nulo na presencade perturbacoes constantes.
Uma forma de contornar esse problema consiste em estimar asperturbacoes e leva-las em conta na formulacao de controle preditivo.
EE-254 (Controle Preditivo) Aula 6 03 Setembro 2019 8 / 43
Topicos da aula de hoje
Estimacao de perturbacoes empregando observador de estados.
Inclusao da perturbacao estimada na equacao de predicao.
Formulacao alternativa: Determinacao de valores de equilıbrio para oestado e o controle.
EE-254 (Controle Preditivo) Aula 6 03 Setembro 2019 9 / 43
Uso de observador de estado para estimar perturbacoes
Plantau y
d+
+
Vamos supor que a dinamica da planta seja descrita por um modelo daforma
x(k + 1) = Ax(k) + Bu(k)
y(k) = Cx(k) + d
sendo d uma perturbacao constante que nao pode ser medida diretamente.
EE-254 (Controle Preditivo) Aula 6 03 Setembro 2019 10 / 43
x(k + 1) = Ax(k) + Bu(k) , y(k) = Cx(k) + d
Este modelo pode ser reescrito utilizando-se o seguinte estado aumentado:
χ(k) =
[x(k)
d(k)
]
sendo d(k + 1) = d(k). Com efeito, tem-se
χ(k + 1) =
[x(k + 1)
d(k + 1)
]=
[Ax(k) + Bu(k)
d(k)
]
=
[A 0n
0Tn 1
][x(k)
d(k)
]+
[B
0
]u(k)
y(k) = Cx(k) + d(k) = [C 1]
[x(k)
d(k)
]EE-254 (Controle Preditivo) Aula 6 03 Setembro 2019 11 / 43
Assim, o modelo torna-se
χ(k + 1) = Aχ(k) + Bu(k)
y(k) = Cχ(k)
sendo
A =
[A 0n
0Tn 1
], B =
[B
0
], C = [C 1]
Pode-se entao projetar um observador de estados para obter umaestimativa χ(k|k) do estado aumentado χ(k), que inclui a perturbacao.
EE-254 (Controle Preditivo) Aula 6 03 Setembro 2019 12 / 43
Uso do observador em conjunto com o MPC
Com o uso de um estimador de perturbacoes, pode-se obter erro de regimenulo mesmo empregando a primeira abordagem de controle.
Nesse caso, a equacao de predicao deve incluir a perturbacao estimada.Para isso, pode-se redefinir o estado do modelo empregado pelocontrolador como
ξ(k) =
[χ(k)
u(k − 1)
]
Dessa forma, basta usar χ(k) e (A, B, C ) em lugar de x(k) e (A,B,C ) naformulacao de controle preditivo apresentada na aula passada.
EE-254 (Controle Preditivo) Aula 6 03 Setembro 2019 13 / 43
MPC empregando observador de estado para estimarperturbacoes de saıda: Resumo
Informacao requerida sobre a planta:
Matrizes A,B,C do modelo no espaco de estados
Parametros de projeto:
Peso do controle ρ
Horizonte de predicao N
Horizonte de controle M
Posicoes dos polos para a dinamica do erro de estimacao de estado(incluindo a estimativa da perturbacao)
EE-254 (Controle Preditivo) Aula 6 03 Setembro 2019 14 / 43
Inicializacao:
Fazer
A =
[A 0n
0Tn 1
], B =
[B
0
], C = [C 1]
Projetar o observador de estado empregando as matrizes A, B, C .
Fazer
A =
[A B
0Tn 1
], B =
[B
1
], C =
[C 0
]
G =
C B 0 · · · 0
C AB C B · · · 0
......
. . ....
C AN−1B C AN−2B · · · C AN−M B
, Φ =
C A
C A2
...
C AN
Calcular KMPC = [ 1 0 · · · 0 ](GTG + ρIM)−1GT
Fazer k = 0, u(−1) = 0, χ(0| − 1) = 0.
EE-254 (Controle Preditivo) Aula 6 03 Setembro 2019 15 / 43
Rotina principal:
1 Ler y(k) (saıda da planta) e yref (valor de referencia para a saıda)
2 Obter a estimativa χ(k|k) usando o observador de estado
3 Fazer r = [yref ]N4 Fazer
ξ(k|k) =
[χ(k|k)
u(k − 1)
]5 Calcular f = Φ ξ(k|k)
6 Calcular o incremento no controle ∆u(k) = KMPC (r − f)
7 Atualizar o controle aplicado a planta: u(k) = u(k − 1) + ∆u(k)
8 Fazer k = k + 1
9 Aguardar o proximo instante de amostragem e retornar ao passo 1.
EE-254 (Controle Preditivo) Aula 6 03 Setembro 2019 16 / 43
Implementacao em Matlab
matrizes_ss_du.m: Monta as matrizes KMPC ,Φ.
mpc_ss_du.m: S-function que implementa o controlador
Exemplo (sistema de levitacao magnetica):
parametros_maglev_ss.m: Define os parametros do levitadormagnetico
levitador_mpc_ss_du_pert.mdl: Diagrama de simulacao incluindoestimador de perturbacao de saıda
O que acontece ao se remover as constantes de polarizacao da malha decontrole ?
EE-254 (Controle Preditivo) Aula 6 03 Setembro 2019 17 / 43
Perturbacao de entrada
Planta
u y
d+
+
Modelo da forma
x(k + 1) = Ax(k) + B[u(k) + d
]y(k) = Cx(k)
sendo d uma perturbacao constante que nao pode ser medida diretamente.
A estimacao de perturbacoes constantes na entrada da planta (ao inves dese considerar perturbacoes equivalentes na saıda) e particularmente util sea planta for de tipo 1 ou superior (por que ?).
EE-254 (Controle Preditivo) Aula 6 03 Setembro 2019 18 / 43
x(k + 1) = Ax(k) + B[u(k) + d
], y(k) = Cx(k)
Este modelo pode ser reescrito utilizando o seguinte estado aumentado:
χ(k) =
[x(k)
d(k)
]
com d(k + 1) = d(k). Com efeito, tem-se
χ(k + 1) =
[x(k + 1)
d(k + 1)
]=
[Ax(k) + Bu(k) + Bd(k)
d(k)
]
=
[A B
0Tn 1
][x(k)
d(k)
]+
[B
0
]u(k)
y(k) = Cx(k) = [C 0]
[x(k)
d(k)
]EE-254 (Controle Preditivo) Aula 6 03 Setembro 2019 19 / 43
Assim, o modelo torna-se
χ(k + 1) = Aχ(k) + Bu(k)
y(k) = Cχ(k)
sendo
A =
[A B
0Tn 1
], B =
[B
0
], C = [C 0]
Novamente, pode-se projetar um observador de estado para obter umaestimativa χ(k|k) do estado aumentado χ(k), que inclui a perturbacao deentrada d .
EE-254 (Controle Preditivo) Aula 6 03 Setembro 2019 20 / 43
Perturbacao tipo rampa
Pode-se tambem modificar o modelo de modo a contemplar perturbacoesdo tipo rampa.
Para isso, assume-se d(k + 1) = d(k) + µ(k), com µ(k + 1) = µ(k).
No caso de perturbacao de saıda, tem-se um modelo da forma
x(k + 1) = Ax(k) + Bu(k)
y(k) = Cx(k) + d(k)
Este modelo pode ser reescrito utilizando-se o seguinte estado aumentado:
χ(k) =
x(k)
d(k)
µ(k)
EE-254 (Controle Preditivo) Aula 6 03 Setembro 2019 21 / 43
Com isso, tem-se
χ(k + 1) =
x(k + 1)
d(k + 1)
µ(k + 1)
=
Ax(k) + Bu(k)
d(k) + µ(k)
µ(k)
=
A 0n 0n
0Tn 1 1
0Tn 0 1
x(k)
d(k)
µ(k)
+
B
0
0
u(k)
y(k) = Cx(k) + d(k) = [C 1 0]
x(k)
d(k)
µ(k)
EE-254 (Controle Preditivo) Aula 6 03 Setembro 2019 22 / 43
Assim, o modelo torna-se
χ(k + 1) = Aχ(k) + Bu(k)
y(k) = Cχ(k)
sendo
A =
A 0n 0n
0Tn 1 1
0Tn 0 1
, B =
B
0
0
, C = [C 1 0]
Com base neste modelo, pode-se entao projetar um observador de estadoscomo visto anteriormente.
De modo similar, pode-se reformular o modelo de modo a contemplarperturbacoes tipo rampa na entrada do sistema.
EE-254 (Controle Preditivo) Aula 6 03 Setembro 2019 23 / 43
Uma formalizacao do uso de observadores de estado para estimarperturbacoes no contexto de MPC pode ser encontrada na seguintereferencia:
MAEDER, U.; BORRELLI, F.; MORARI, M. Linear offset-free ModelPredictive Control. Automatica, v. 45, p. 2214 – 2222, 2009.
EE-254 (Controle Preditivo) Aula 6 03 Setembro 2019 24 / 43
Formulacao alternativa: Determinacao de valores deequilıbrio para o estado e o controle
Referencia: Rossiter (2003), paginas 21 – 23.
EE-254 (Controle Preditivo) Aula 6 03 Setembro 2019 25 / 43
Perturbacao de saıda constante
Considere que a dinamica da planta seja descrita por um modelo da forma
x(k + 1) = Ax(k) + Bu(k)
y(k) = Cx(k) + d
sendo d uma perturbacao constante.
EE-254 (Controle Preditivo) Aula 6 03 Setembro 2019 26 / 43
Problema 1: Determinar valores de equilıbrio apropriadospara o estado e o controle
x(k + 1) = Ax(k) + Bu(k) , y(k) = Cx(k) + d
Suponha inicialmente que o valor de d seja conhecido.
Pergunta: Quais devem ser os valores de equilıbrio xref ∈ Rn, uref ∈ Rpara o estado e o controle, de modo que a saıda seja igual a uma dadareferencia yref ∈ R em regime estacionario ?
EE-254 (Controle Preditivo) Aula 6 03 Setembro 2019 27 / 43
x(k + 1) = Ax(k) + Bu(k) , y(k) = Cx(k) + d
Deseja-se determinar xref ∈ Rn, uref ∈ R de modo a satisfazer as seguintesrelacoes de equilıbrio:
xref = Axref + Buref
yref = Cxref + d
que podem ser reescritas como
(A− I )xref + Buref = 0n
Cxref = yref − d
ou ainda: [(A− I ) B
C 0
][xref
uref
]=
[0n
yref − d
]EE-254 (Controle Preditivo) Aula 6 03 Setembro 2019 28 / 43
[(A− I ) B
C 0
][xref
uref
]=
[0n
yref − d
]
Tem-se, portanto:[xref
uref
]=
[(A− I ) B
C 0
]−1 [0n
1
](yref − d)
desde que a inversa indicada exista.
EE-254 (Controle Preditivo) Aula 6 03 Setembro 2019 29 / 43
Obs: Existencia da inversa
Vale notar que
det
([(A− I ) B
C 0
])= (−1)ndet
([(In − A) −B
C 0
])
= (−1)ndet
([(zIn − A) −B
C 0
]) ∣∣∣∣∣z=1
= (−1)nN(z)∣∣∣z=1
sendo N(z) o numerador da funcao de transferencia da planta:
H(z) = C (zIn − A)−1B
Referencia: GEROMEL, J. C.; KOROGUI, R. Controle linear de sistemasdinamicos. Sao Paulo: Edgar Blucher, 2011.
EE-254 (Controle Preditivo) Aula 6 03 Setembro 2019 30 / 43
Em resumo:
det
([(A− I ) B
C 0
])= (−1)nN(z)
∣∣∣z=1
sendo N(z) o numerador da funcao de transferencia da planta:
H(z) = C (zIn − A)−1B
Portanto, a matriz em questao admitira inversa se o “ganho DC” da plantafor nao nulo (considerando ainda que nao haja cancelamento de polos ezeros em z = 1).
Obs: Esta e uma condicao conhecida na literatura da area. O desenvolvimentoaqui apresentado pode ser encontrado na Tese de Doutorado de P. A. Q. Assis(ITA, 2018).
EE-254 (Controle Preditivo) Aula 6 03 Setembro 2019 31 / 43
Resumo
[xref
uref
]=
[(A− I ) B
C 0
]−1 [0n
1
](yref − d)
Alternativamente:
xref = Nx(yref − d) , uref = Nu(yref − d)
em que Nx e Nu correspondem, respectivamente, as primeiras n linhas e aultima linha da seguinte matriz:
[(A− I ) B
C 0
]−1 [0n
1
]
EE-254 (Controle Preditivo) Aula 6 03 Setembro 2019 32 / 43
Problema 2: Conducao do estado para o ponto deequilıbrio calculado
Ideia: Empregar uma funcao de custo da forma
J(y, u) = (y − r)T (y − r) + ρ(u− uref)T (u− uref)
comuref = [uref ]N
O problema de otimizacao pode ser reformulado utilizando uma mudancade variaveis:
δy = y − yref , δx = x − xref , δu = u − uref
EE-254 (Controle Preditivo) Aula 6 03 Setembro 2019 33 / 43
Empregando essa mudanca de variaveis, a funcao de custo torna-se
J = (δy)T (δy) + ρ(δu)T (δu)com
δy = y − r , δu = u− uref
Supondo conhecido o valor de d , a equacao de predicao pode ser escritacomo
y = Hu + Φux(k) + d
com d = [d ]N . Logo, segue que
δy + r = H(δu + uref) + Φu[δx(k) + xref ] + d
Por definicao, tem-se r = Huref + Φuxref + d. Portanto:
δy = Hδu + Φuδx(k)
EE-254 (Controle Preditivo) Aula 6 03 Setembro 2019 34 / 43
Obs: Equacao de predicao
δy = Hδu + Φuδx(k)
H =
CB 0 · · · 0CAB CB · · · 0
......
. . ....
CAN−1B CAN−2B · · · CB
N×N
, Φu =
CACA2
...CAN
N×n
Caso seja usado um horizonte de controle M < N, pode-se impor
δu(k + i − 1|k) = 0, i = M + 1,M + 2, . . . ,N
Com isso, basta suprimir as ultimas (N −M) colunas da matriz H.
EE-254 (Controle Preditivo) Aula 6 03 Setembro 2019 35 / 43
Solucao do problema de otimizacao
Problema: Minimizar
J = (δy)T (δy) + ρ(δu)T (δu)
s.a.
δy = Hδu + Φuδx(k)︸ ︷︷ ︸fu
Seguindo desenvolvimento similar ao empregado na Aula 2, chega-se a
δu∗ = −(HTH + ρI )−1HT fu
δu(k) = δu∗(k|k) = −[ 1 0 · · · 0 ](HTH + ρI )−1HTΦuδx(k)
EE-254 (Controle Preditivo) Aula 6 03 Setembro 2019 36 / 43
δu(k) = δu∗(k|k) = −[ 1 0 · · · 0 ](HTH + ρI )−1HTΦuδx(k)
ou ainda:
δu(k) = −Kδ δx(k)
sendo
Kδ = [ 1 0 · · · 0 ](HTH + ρI )−1HTΦu
Vale lembrar que
δx(k) = x(k)− xref , u(k) = δu(k) + uref
EE-254 (Controle Preditivo) Aula 6 03 Setembro 2019 37 / 43
MPC com determinacao de valores de equilıbrio paraestado e controle: Resumo
Informacao requerida sobre a planta:
Matrizes A,B,C do modelo no espaco de estados
Parametros de projeto:
Peso do controle ρ
Horizonte de predicao N
Horizonte de controle M
Posicoes dos polos para a dinamica do erro de estimacao de estado(incluindo a estimativa da perturbacao)
EE-254 (Controle Preditivo) Aula 6 03 Setembro 2019 38 / 43
Inicializacao:
Obter Nx e Nu como, respectivamente, as primeiras n linhas e aultima linha da seguinte matriz:[
(A− I ) B
C 0
]−1 [0n
1
]Fazer
H =
CB 0 · · · 0
CAB CB · · · 0
......
. . ....
CAN−1B CAN−2B · · · CAN−MB
, Φu =
CA
CA2
...
CAN
Calcular Kδ = [ 1 0 · · · 0 ](HTH + ρI )−1HTΦu;
Fazer k = 0, χ(0| − 1) = 0.
EE-254 (Controle Preditivo) Aula 6 03 Setembro 2019 39 / 43
Rotina principal:
1 Ler y(k) (saıda da planta) e yref (valor de referencia para a saıda).
2 Obter a estimativa χ(k|k) usando o observador de estado.
3 Extrair as estimativas x(k|k) e d(k|k).
4 Calcular xref = Nx
(yref − d(k|k)
)e uref = Nu
(yref − d(k|k)
).
5 Calcular δx(k|k) = x(k|k)− xref .
6 Calcular δu(k) = −Kδ δx(k|k).
7 Atualizar o controle aplicado a planta: u(k) = δu(k) + uref .
8 Fazer k = k + 1.
9 Aguardar o proximo instante de amostragem e retornar ao passo 1.
EE-254 (Controle Preditivo) Aula 6 03 Setembro 2019 40 / 43
Implementacao em Matlab
matrizes_ss_delta.m: Monta as matrizes Nx , Nu, Kδ.
mpc_ss_delta.m: S-function que implementa o controlador
Exemplo (sistema de levitacao magnetica):
parametros_maglev_ss.m: Define os parametros do levitadormagnetico
levitador_mpc_ss_delta.mdl: Diagrama de simulacao incluindoestimador de perturbacao de saıda
EE-254 (Controle Preditivo) Aula 6 03 Setembro 2019 41 / 43
Resumo da aula de hoje
Estimacao de perturbacoes empregando observador de estados.
Inclusao da perturbacao estimada na equacao de predicao.
Formulacao alternativa: Determinacao de valores de equilıbrio para oestado e o controle.
EE-254 (Controle Preditivo) Aula 6 03 Setembro 2019 42 / 43
Topicos da proxima aula
Tratamento de restricoes - Caso SISO
EE-254 (Controle Preditivo) Aula 6 03 Setembro 2019 43 / 43