Baixe o app para aproveitar ainda mais
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
Compartilhar