controlo por computador - fenix.tecnico.ulisboa.pt · 2a hist´oria do juiz ´e uma hist ´oria do...
TRANSCRIPT
CONTROLO POR COMPUTADOR♢
Controlo por Realimentacao de Varaveis de Estadoem Tempo Discreto
Joao Miranda Lemos∗ e Joao Pedro Gomes†
Versao 2, Outubro de 2016
Resumo
Este texto apresenta de modo esquematico as ideias principais para o projecto de controladores por realimentacaode variaveis de estado. Destina-se prioritariamente a ser usado como apoio aos alunos que realizam o laboratorioda disciplina de Controlo por Computador do Mestrado em Engenharia Aeroespacial e do Mestrado em EngenhariaElectrotecnica e de Computadores do IST, mas pode ser util noutros contextos.
∗Instituto Superior Tecnico, Universidade de Lisboa, Portugal, [email protected]†Instituto Superior Tecnico, Universidade de Lisboa, Portugal, [email protected]
1
Contents
1 Modelo de estado de sistemas discretos. 5
2 Estado acessıvel para medida directa. 5
3 Controlo optimo LQ. 7
4 Polos do controlador LQ. 9
5 Observador preditivo. 10
6 Observador corrente. 13
7 O filtro de Kalman 14
8 O controlador LQG. 16
9 Recuperacao do ganho de malha. 17
10 Root-square locus para os polos do erro do filtro de Kalman 19
11 Seguimento de uma referencia nao nula. 19
12 Funcao de transferencia do sistema controlado 20
13 Observacoes finais 21
2
Nota introdutoria
A utilizacao de instrumentos de observacao levou no passado a grandes avancos, quer na Ciencia e na Tecnolo-
gia, quer na Filosofia, atraves do modo como os seres humanos, cada um de nos, considera o seu lugar no Mundo e
o sentido das suas vidas. Dois exemplos extremos sao a luneta astronomica de Galileu (ou telescopio de refraccao)
e o microscopio, inventado no seculo XVII por Anton van Leeuwenhoek (Holanda, 1632-1723). Com a luneta
astronomica, Galileu observou a superfıce da Lua com detalhe suficiente para mostrar que, ao contrario do que na
altura a corrente oficial de pensamento defendia, os corpos celestes tinham tantas imperfeicoes como os terrestres.
Descobriu ainda que Jupiter, com os seus satelites naturais formava como que uma miniatura do sistema solar tal
como o descrevia Copernico. Galileu foi perseguido pela Inquisicao mas, em conjunto com Copernico, Newton e
outros, contribuiu para uma nova visao do Mundo, que mudou radicalmente a vida do Homem.
Spinoza (1632 – 1677), filho de judeus portugueses estabelecidos em Amsterdam para fugir a Inquisicao, viveu
numa parte da Holanda onde, ao tempo, se gozava de uma invulgar liberdade de expressao, o que mesmo assim
nao o livrou de conflitos com a sua propria comunidade Judia, de que foi expulso, e com o Calvinismo que adquiria
uma forca crescente. Nao foi certamente por acaso que Spinoza se dedicou ao fabrico de lentes para microscopios
e telescopios como modo de vida, embora tenha sido pela sua actividade como filosofo que o seu nome perdurou.
De facto, para Spinoza, a Ciencia, a Filosofia e a tecnologia (neste caso a optica) nao eram ramos separados mas
partes integrantes da sua vida, o que lhe valeu ser considerado um dos filosofos mais importantes de todos os
tempos e ter defendido ideias hoje extremamente actuais, e cujo valor esta mais do que nunca na ordem do dia,
como o direito a liberdade de pensamento e expressao, ou a importancia de uma vida feliz para cada ser humano.
Embora o telescopio se refira a objectos de enormes dimensoes (planetas ou galaxias), e o microscopio a
objectos de muito pequenas dimensoes (bacterias ou, no caso dos modernos microscopios electronicos, vırus),
quer um quer outro amplificam detalhes. Por oposicao, o macroscopio permite-nos abstrair os detalhes, abrindo
os olhos do nosso entendimento para compreender globalmente os sistemas complexos. Uma vez compreendida a
essencia do problema, a ausencia de detalhes nao essenciais permite tracar uma estrategia para a solucao. Ao segui-
la deveremos entao incorporar os detalhes, que muitas vezes fazem a diferenca entre funcionar e nao funcionar.
Ao contrario dos microscopios e dos telescopios que podemos adquiri numa loja, o macroscopio nao esta a
venda em nenhum centro comercial, perto ou mesmo longe de si. Podemos no entanto construir um dentro de
nos proprios, comecando por adoptar uma atitude adequada perante os problemas e tentando olhar para eles de
um modo global. Expliquemo-nos com um exemplo. Quando no inıcio do seculo XX se fizeram as primeiras
comunicacoes de radio entre a Europa e a America houve uma perplexidade: A curvatura da terra deveria impedir
a propagacao em linha recta das ondas de radio. Embora hoje se saiba que a comunicacao foi possıvel gracas
a troposfera, uma camada ionizada que envolve a terra e que reflecte sucessivamente as ondas, na altura tal era
desconhecido, pelo que as atencoes se viraram para a difraccao, um fenomeno associado a propagacao de ondas
que lhes permite contornar obstaculos.
3
Provou-se no entanto que a difraccao nao permitia explicar o fenomeno da propagacao das ondas entre a Europa
e a America. Quem o fez, desenvolveu uma demonstracao matematica mas, antes de se embrenhar nos calculos,
fez uma analise muito simples que lhe permitiu ter uma ideia inicial do problema: Pegou numa esfera cujo raio
estava para o comprimento de onda da luz como o raio da Terra estava para o comprimento de onda das ondas de
radio usadas na comunicac ao. Colocou a esfera contra a luz e nao viu qualquer difraccao. Este raciocınio nao
e um argumento definitivo (o problema pode nao ser escalavel), mas proporcionou uma intuicao razoavel sobre o
que esperar.
O macroscopio funciona assim, na nossa mente, como uma maquina que constroi o essencial de um problema
por forma a criar-nos uma primeira intuicao sobre a solucao, ou pelo menos a indicar-nos um caminho que nos
leve a uma solucao. Sem ser a ultima resposta a todos os problemas (afinal de contas deve haver algum espa-
cinho para os Engenheiros que as prodigiosas victorias da Inteligencia Artificial nao ocupem, ou ficarıamos todos
desempregados...), o macroscopio e, a par com a maquina que da resposta a todas as perguntas (The-Know-It-All
machine, inventada nos anos 50 pelo improvavelmente genial inventor Gyro Gearloose), e o canivete suico com
esferografica incorporada, uma ferramenta essencial que deve equipar todos os novos candidatos a Engenheiro.
Na forma que aqui descrevemos, o macroscopio foi apresentado originalmente em 1975 por Joel de Rosnay
na sua obra Le Macroscope. Vers une vision globale (Editions du Seuil)1. Como e referido nesta obra, o termo
”megaloscopio” foi empregado pelo matematico e escritor fantasista, autor da famosa historia Alice No Paıs das
Maravilhas, Lewis Carroll. E significativo que o percursor da Ecologia, Howard T. Odum tenha empregue o termo
“macroscopio” ha cerca de 100 anos (1917).
E claro que um bom macroscopio nao se arranja de um dia para o outro. Como o bom vinho do Porto, tem
de ser maturado ao longo de anos de experiencias e cuidados diversificados. Estas notas visam dar uma ajudinha
no que diz respeito a projectar e, ponto crucial, afinar os ganhos de um controlador por realimentacao de variaveis
de estado para a barra flexıvel que se considera no trabalho de laboratorio de Controlo por Computador. Este
texto visa explicar os pontos principais e tentar dar uma perspectiva global sobre o problema. Os detalhes podem
ser vistos no excelente livro2 de Franklin, Powell e Workman, Digital Control of Dynamic Systems, sobretudo no
capıtulo 8 (3ra edicao).
Joao Pedro Gomes esta completamente inocente deste prefacio!
1Foi feita uma traducao portguesa, editada pela primeira vez pela Arcadia em 1977, e existe uma edicao americana disponıvel na internet.2A historia do Juiz e uma historia do popular heroi dos livros de quadradinhos Luky Luke. Conta a historia do juiz Roy Bean, no Oeste
americano do seculo XIX. Como e explicado, o juiz Roy Bean baseava a sua accao num livro com o codigo civil, que nunca usava, e numawinchester que usava a toda a hora. Um dia, pelo menos na historia em que Luky Luke intervem, Roy Bean e expulso da cidade onde vivia.Sem nada para fazer, comecou a ler o Codigo e conluiu: Este livro esta cheio de coisas interessantes. E ate uteis para um juiz!. Do livro deFranklin e dos seus co-autores pode certamente dizer-se o mesmo: Este livro esta cheio de coisas interessantes. E ate uteis para um engenheiroelectrotecnico!
4
1 Modelo de estado de sistemas discretos.
Assume-se que o processo a controlar e descrito pelo modelo de estado linear, invariante, e de dimensao finita, em
tempo discreto, a que correspondem as equacoes
x(k+1) = Φx(k)+Γu(k), (1)
y(k) = Hx(k), (2)
em que
• u ∈ R, y ∈ R (sistema SISO),
• x ∈ Rn,
• k = 0, 1, 2, 3, . . . (tempo discreto).
2 Estado acessıvel para medida directa.
Lei de controlo (realimentacao linear de variaveis de estado):
u(k) =−Kcx(k). (3)
Sistema em cadeia fechada ((3) → (1)):
x(k+1) = (Φ−ΓKc)x(k). (4)
Processoy
u
x
Kc
-
Figure 2: Controlo por realimentacao do estado.
A figura 2 mostra o diagrama de blocos deste sistema em que se supoe que o estado x esta acessıvel para
medida directa. Como em geral isto nao sucede, estudar-se-ao posteriormente se outras leis de controlo em que a
realimentacao e feita a partir da saıda.
5
Problema de colocacao de polos (Pole placement): Determinar o vector de ganhos Kc tal que a matriz da
dinamica em cadeia fechada, Φ−ΓKc, tenha os valores proprios (ou seja, os polos da cadeia fechada) em posicoes
especificadas β1, β2, . . . , βn. Ou seja, sendo αc(z) o polinomio caracterıstico desejado, da forma
αc(z) = (z−β1)(z−β2) . . .(z−βn),
pretende-se calcular o vector de ganhos de realimentacao Kc tal que se verifique
det(zI −Φ+ΓKc) = αc(z). (5)
A equacao (5) pode ser resolvida pelo metodo dos coeficientes indeterminados: Igualam-se os coeficientes dos
monomios da mesma ordem em ambos os membros de (5, e obtem-se um sistema de n equacoes algebricas a n
incognitas para as componentes de Kc.
Questao: Sera que este sistema de equacoes algebricas tem sempre solucao? Por outras palavras, sera que a
equacao (5) tem solucao qualquer que seja o polinomio caracterıstico especificado αc(z)?
A resposta e dada pelo seguinte teorema (que nao demonstraremos):
Teorema 1
A equacao (5) tem solucao sse a matriz
C (Φ, Γ) △=[Γ |ΦΓ |Φ2Γ | . . . |Φn−1Γ
],
dita matriz de controlabilidade associada a realizacao de estado (Φ, Γ), tiver caracterıstica n:
carC (Φ, Γ) = n. (6)
2
A condicao expressa no Teorema 1 tem uma interpretacao em termos de estrutura do sistema: Significa que o
actuador (ou actuadores, no caso de sistemas multivariaveis) tem de estar colocado por forma a influenciar todas
as componentes do estado.
Para sistemas controlaveis, ou seja, sistemas que verificam a condicao (6) do teorema 1, os ganhos podem ser
calculados com a formula de Ackerman, dada por
Kc = [0 . . . 01]C−1αc(Φ) (7)
em que
αc(Φ) = Φn +αc1Φn−1 + . . .+αc
nI. (8)
e o polinomio caracterıstico desejado calculado para z = Φ.
No MATLAB, a f’ormula de Ackerman e realizada atraves da funcao acker. Esta funcao e statisfat0ria para
sistemas SISO com ordens ate 10 e pode tratar raızes repetidas. Para sistemas de ordem superior, ou para sistemas
multivariaveis, deve usar-se a funcao place.
6
3 Controlo optimo LQ.
Tudo me e permitido, mas nem tudo me convem.
S. Paulo
Para sistemas controlaveis podemos calcular os ganhos do controlador por realimentacao das variaveis de
estado por forma a colocar os polos da cadeia fechada em qualquer posicao. Poe-se no entanto o problema de
determinar as posicoes adequadas a escolher para os polos.
Obviamente, os polos da cadeia fechada deverao estar dentro do cırculo unitario para que o sistema em cadeia
fechada seja ssimptoticamente estavel. Restam no entanto muitos graus de liberdade.
Uma possibilidade consiste em projectar o controlador por forma a minimizar o custo quadratico
J =12
∞
∑k=0
[xT (k)Qx(k)+Ru2(k)
],
em que Q e uma matriz quadrada n×n, semidefinida positiva, e R e um escalar, R > 0.
Repare-se que, se escolhermos
Q = HT H (9)
como (note que y e um escalar, pelo que yT = y)
xT Qx = xT HT Hx = (Hx)T Hx = yT y = y2,
o custo fica
J =12
∞
∑k=0
[y2(k)+Ru2(k)
].
Este custo e formado por duas parcelas:
• Uma parcela (y2) reflecte o objectivo de que a potencia da saıda seja pequena;
• A outra parcela (u2) reflecte o objectivo de que a variavel manipulada seja pequena.
De um modo geral, estes dois objectivos sao antagonicos, e o parametro R ( o “peso” na accao de controlo) pondera
a importancia relativa de um em relacao ao outro.
Assim, um valor pequeno de R significa que o custo da parcela do controlo e menor, pelo que o controlador vai
reduzir y, deixando u ser maior. Aumentando R, a potencia de u vai diminuir e a de y aumentar (o que se reflecte,
por exemplo, nos valores maximos destas variaveis), tal como se mostra na figura 3 para uma situacao tıpica.
De um ponto de vista do domınio da frequencia, quando R aumenta o sistema em cadeia fechada fica mais
lento, ou seja a sua largura de banda diminui. Podemos compreender intuitivamente que assim seja pois a variavel
manipulada fica com menos capacidade de responder quando R aumenta devido ao facto de o seu crescimento ser
penalizado.
7
R
Σ uk2
Σ yk2
Figure 3: Variacao tıpica das potencias dos sinais de entrada e de saıda com o parametro R.
O parametro R um “botao de ajuste” muito importante para que o projectista configure a resposta do sistema
controlado. Quando reduzimos R, a largura de banda da cadeia fechada aumenta, e a resposta fica mais rapida (o
que e em geral bom), mas acontecem dois fenomenos indesejaveis:
• A amplitude de u aumenta, o que pode levar a saturacao do controlador;
• O aumento da largura de banda leva a que haja efeitos nao considerados no modelo (por exemplo, picos de
ressonancia de alta frequencia, tal como na barra flexıvel considerada no laboratorio) que sao amplificados
(porue o aumento da largura de banda levou a que o ganho de malha de alta frequencia aumente), e que
podem conduzir a instabilidade do sistema em cadeia fechada.
A escolha de R e assim um compromisso entre conseguir uma resposta rapida e a estabilidade. Repare-se que
na situacao ideal em que a ordem do sistema utilizada para projectar o controlador e a correcta, o controlador
LQ garante a estabilidade assimptotica do sistema em cadeia fechada. Isso nao sucede no entanto se a ordem
assumida para o modelo for inferior a do sistema real, situacao em que os modos de alta frequencia (polos muito
rapidos desprezados no modelo) podem causar a instabilidade da cadeia fechada. No exemplo da barra flexıvel que
motiva estas notas, a ordem do sistema real e infinita, correspondendo aos multiplos modos de oscilacao da barra,
e qualquer modelo de dimensao finita despreza modos de alta frequencia. Aumentando a largura de banda e pois
inevitavel que haja modos de alta frequencia que se manifestem.
Numa situacao pratica devemos comecar por escolher um valor alto de R e fazer ensaios, ou simulacoes, em
que o baixamos sucessivamente para averiguar qual o melhor compromisso entre desempenho e estabilidade face
a erros de modelacao (estabilidade robusta).
A lei de controlo obtida pela minimizacao de J denomina-se Linear (do facto de o modelo (1), (2) ser linear)
Quadratica (pelo fecto de o custo ser quadratico), ou controlo LQ.
A solucao (que pode ser demonstrada usando Programacao Dinamica) e dada por uma retroaccao constante
8
do estado
u(k) =−KLQx(k) (10)
em que o vector de ganhos optimo e dado por
KLQ =1
R+ΓT SΓΓT SΦ, (11)
e a matriz S satisfaz a equacao algebrica dita equacao de Riccati algebrica
S = ΦT[
S−SΓT ΓS1R
]Φ+HT H. (12)
No MATLAB, os ganhos do controlador LQ podem ser obtidos com a funcao dlqr.
4 Polos do controlador LQ.
Onde sao colocados os polos da cadeia fechada quando se utiliza o controlador LQ?
A resposta e dada pelo teorema seguinte.
Teorema 2 (Chang, Letov)
Os polos da cadeia fechada do controlador LQ (ou seja, os valores proprios da matriz Φ−ΓKLQ, com KLQ
calculado por (11)) sao dados pelas n raızes estaveis (dentro do cırculo unitario) da equacao algebrica
1+1R
G(z)G(z−1) = 0
em que
G(z) = H(zI −Φ)−1Γ
e a funcao de transferencia do sistema a controlar, correspondente ao modelo (1), (2), ou, equivalentemente
Ra(z)a(z−1)+b(z)b(z−1) = 0 (13)
em queb(z)a(z)
= G(z).
2
Repare-se que para R muito pequeno, (13) reduz-se a
b(z)b(z−1) = 0,
pelo que, para esta escolha de R os polos da cadeia fechada cancelam os zeros se estes estiverem dentro do cırculo
unitario, ou sao os seus “simetricos” (quer dizer, a um zero em zi corresponde um polo em 1/zi) se os zeros
estiverem fora do cırculo unitario.
9
Analogamente, se R for muito grande, (13) e
a(z)a(z−1) = 0.
Nesta situacao, os polos da cadeia fechada sao iguais ao polos da cadeia aberta, se estes forem estaveis, ou os seus
simetricos se os polos da cadeia aberta forem instaveis.
Em qualquer caso, o sistema em cadeia fechada e sempre assimptoticamente estavel quando se usam os ganhos
do controlador LQ.
Para valores intermedios e necessario resolver a equacao (13) e tomar os n polos estaveis entre as suas 2n
raızes. Deste modo, ficamos a saber qual a posicao dos polos da cadeia fechada que correspondem ao ganho KLQ.
Esta tecnica e conhecida como root-locus simetrico.
5 Observador preditivo.
Na maior parte das situacoes nao conseguimos medir directamente o estado x, mas apenas a saıda y, com ele
relacionada atraves de (2), que traduz o modelo dos sensores. Uma estrategia pode entao ser estimar o estado a
partir do conhecimento dos sinais disponıveis (u e y) e do modelo do sistema, e realimentar esta estimativa usando
os ganhos do controlador LQ. E o que se mostra na figura 5, em que estimativa de estado e designada por x. Esta
abordagem levanta duas questoes:
1. Como estimar o estado?
2. Sera que podemos projectar separadamente o estimador de estado e o controlador (com o ganho LQ ou outra
realimentacao do estado) e o sistema que resulta do acoplamento dos dois (estimador e controlador) ainda
tem os polos nas posicoes especificadas?
Como podemos definir um algoritmo de estimacao de estado (dito tambem um observador) que permita,
tal como se mostra na figura 3, construir uma estimativa x (uma funcao do tempo k) do estado x, a partir das
observacoes das amostras sucessivas de u e y e do conhecimento do modelo de estado (1), (2)?
A figura 5 ilustra o que pretendemos: Inicialmente a estimativa do estado, x(0), pode ter um valor muito
diferente do estado x(0). A medida que o tempo discreto avanca queremos que a estimativa x(k) se aproxime do
valor verdadeiro do estado x(k).
Uma primeira hipotese seria, tal como se mostra na figura 5, “construir” (integrar as equacoes) uma replica do
sistema e excita-lo pela mesma entrada que esta a excitar o sistema.
A equacao que define o observador seria uma replica da equacao de estado que modela o sistema, guiada pela
mesma entrada, mas com um estado diferente (a estimativa x), resultando em (compare com a equacao (1)
x(k+1) = Φx(k)+Γu(k). (14)
10
u yProcessofísico
Estimador deestado
(observador)
x
Computacional
Figure 4: Estimador de estado (observador).
0 1 2 3 4 ...
x(k)
x(k)
x(k)
x(0)
x(0)
x(0)
^
^
~
~
k
Figure 5: O estado x, a sua estimativa x e o erro de estimativa x = x− x.
Processo
Estimador
u y
x
Figure 6: Observador em cadeia aberta.
11
O erro na estimativa do eestado, x = x− x satisfaz uma equacao que se obtem subtraindo (14) de (1), sendo dada
por
x(k+1) = Φx(k).
O erro de estimativa do estado x = x− x satisfaz entao a equacao de diferencas
x(k+1) = Φx(k), (15)
com condicao inicial
x(0) = x(0)− x(0). (16)
O problema de valores iniciais (15), (16) pode facilmente ser resolvido, obtendo-se a seguinte expressao para o
erro em funcao do tempo k
x = Φkx(0). (17)
Daqui se conclui imediatamente que, para que o erro tenda para zero, e necessario que todos os valores proprios de
Φ estejam no interior do cırculo unitario, ou seja, que o processo em cadeia aberta seja assimptoticamente estavel.
Com o estimador de estado da equacao (14) nao e pois possıvel estimar o estado de um processo instavel pois o
erro divergiria. Mesmo para processos assimptoticamente estaveis a taxa de convergencia do erro para zero e igual
a taxa de variacao dos transitoriuos do proprio processo que se pretende controlar (porque em ambos os casos, no
processo e no observador, a dinamica e definida pela mesma matriz Φ), o que impede que o estado seja conhecido
com precisao durante o transitorio. O estimador (14) e assim inutil, mas pode ser modificado.
Deste modo, uma outra possibilidade consiste em acrescentar a equacao que define o estimador um termo que
dependa da saıda medida no processo
x(k+1) = Φx(k)+Γu(k)+Lp(y(k)−Hx(k)), (18)
em que Lp ∈ Rn e um vector a dimensionar. O termo adicional e proporcional a y(k)−Hx(k), ou seja, a diferenca
entre o que observamos na saıda no instante k, y(k), e o que estamos a espera de observar dada a estimativa do
estado e o nosso conhecimento do nosso modelo das observacoes definido por (2).
A equacao de erro obtem-se subtraindo (18) de (1), sendo agora
x(k+1) = Φx(k)−Lp (y(k)−Hx(k)) .
Tendo em conta (2), a equacao da dinamica do erro e
x(k+1) = (Φ−LpH) x(k). (19)
O projecto do ganho Lp do observador e feito por forma a impor os valores proprios de Φ−LpH. Sendo αo(z)
o polinomio caracterıstico especificado para o observador, Lp satisfaz a equacao
det(zI −Φ+LpH) = αo(z). (20)
12
De modo analogo ao problema de colocacao de polos por realimentacao do estado, tem-se
Teorema 3
A equacao (20) tem solucao sse a matriz
O(H,Φ)△=
H
HΦHΦ2
...HΦn−1
,
dita matriz de observabilidade tiver caracterıstica n:
carO(H,Φ) = n. (21)
2
Tal como para o caso do controlador, a equacao (20) pode ser resolvida para problemas de pequena dimensao
pelo metodo dos coeficientes indeterminados. Tambem pode ser resolvida pela formula de Ackerman (7) (usando
as funcoes acker ou place) trocando Φ por ΦT e Γ por HT .
6 Observador corrente.
O observador (18) e tal que o calculo de x(k) e feito com base na observacao da saıda y(k− 1) feita no instante
anterior. Por este motivo diz-se um observador preditivo. Tem a desvantagem de nao usar a informacao mais
recente.
A alternativa e usar o chamado observador corrente, definido pela equacao recursiva
x(k) = Φx(k−1)+Γu(k−1)+Lc [y(k)−H (Φx(k−1)+Γu(k−1))] . (22)
Uma maneira alternativa de escrever as equaces dos observadores e
x(k) = x(k)+Lc(y(k)−Cx(k)), (23)
x(k+1) = Φx(k)+Γu(k), (24)
em que x e a estimativa preditiva e x e a estimativa corrente.
As equacoes (23) e (24) podem ser interpretadas do seguinte modo:
1. Estamos no instant k e temos disponııvel uma estimativa preditiva x(k), feita no instante anterior, k−1.
2. Fazemos uma observacao y(k) e corrigimos a estimativa x com base nesta observacao para obter a estimativa
corrente no instante k, x(k), utilizando para tal (23).
13
Γu(k)
y(k)
Φ
H
Lc
z-1x(k+1) x(k)
_
x(k)^
_+
+
+
+
+-
Figure 7: Diagrama de blocos do observador.
3. Com base na estimativa corrente no instante k, x(k), e usando (24), calculamos uma estimativa preditiva para
o prximo instante, x(k+1), e iteramos este procedimento voltando ao passo 1, agora com k substituııdo por
k+1.
As equacoes (22), por um lado, e (23) e (24), por outro, sao perfeitamente equivalentes. Este facto pode ser
facilmente verificado se substituirmos k por k− 1 em 24) e substituirmos a expressao assim obtida para x(k) em
(24), do que resulta (22).
A vantagem de usar o par (23, 24) consiste no facto de ele corresponder a um diagrama de blocos que nao
envolve nenhum atraso explıcito em u(k), ao contrario da equacao (22). Para alem disso, (23, 24) pode ser repre-
sentado atrav’es do diagrama de blocos da figura 6. Nesta figura, a parte a vermelho corresponde a equacao (24), e
a parte a azul corresponde a equacao (23). Este diagrama de blocos tem como entradas y(k) e u(k), e como saııda
a estimativa corrente do estado no iunstante k, x(k), embora a estimativa preditiva tambem esteja disponııvel.
O ganho Lc do observador corrente esta relacionado com o ganho Lp do observador preditivo atraves de
Lc = Φ−1Lp.
Poderemos assim calcular Lp usando a formula de Ackerman e, em seguida, calcular Lc usando a expressao acima.
Vamos no entanto ver ja a seguir uma outra maneira, optimizada, de dimensionar Lc.
7 O filtro de Kalman
O filtro de Kalman3 e um observador corrente, em que portanto a estimativa do estado e propagada no tempo
com base na equacao (22), mas em que o ganho Lc do observador e calculado por forma a optimizar a relacao
3O filtro de Kalman e uma das mais importantes descobertas da Engenharia Electrotecnica e de Computadores. Foi concebido no inıcio dosanos 60 por Rudolph Kalman na versao em tempo discreto, e por R. Kalman e Richard S. Bucy na versao em tempo contınuo.
14
sinal/ruıdo.
No domınio da frequencia, a escolha dos valores proprios desejados para a equacao de erro pode ser vista do
seguinte modo: A escolha dos valores proprios implica um valor para a largura de banda do observador. Quanto
mais rapidos forem os valores proprios especificados (ou seja, quanto mais perto da origem estiverem), maior sera
a largura de banda do observador.
Poder-se-ia pensar que e bom aumentar a largura de banda do observador dado que isso conduz a uma melhor
reproducao da evolucao temporal do estado, mas de facto isso nao e assim por dois motivos:
1. Pode haver erros de modelacao na alta frequencia. Aumentando a largura de banda do observador, estes erros
sao amplificados e podem levar a divergencia do observador (quer dizer o erro cresce em vez de aumentar).
2. Ha perturbacoes aleatorias (“ruıdo do sistema”) e ruıdo do sensor.
Consideremos o ponto 2) mais em detalhe. Em presenca do ruıdo, o modelo de estado passa a ser
x(k+1) = Φx(k)+Γu(k)+ v1(k), (25)
y(k) = Hx(k)+ v2(k). (26)
Os sinais v1 (vector) e v2 (escalar) sao sequencias gaussianas e incorrelacionadas, de media nula e variancia
E[v1(k)vT
1 (k)]= QE , (27)
E[v2
2(k)]= RE . (28)
Admitindo valido este modelo, considere-se uma situacao correspondente a um determinado valor do ganho Lc
do observador e, correspondentemente, a uma dada largura de banda do mesmo observador. Nesta situacao o
observador “deixa passar” para a estimativa x as componentes do estado x que estao dentro da sua banda. E e claro
que tambem deixa passar ruıdo.
Redimensionando Lc for forma a aumentar a largura de banda do observador, passarao mais componentes do
estado x (o que e bom), mas tambem passara mais ruıdo, correspondentemente ao acrescimo da banda (o que e
mau).
Aumentando progressivamente a largura de banda do observador (atraves da manipulacao do ganho L f ) havera
um ponto a partir do qual nao passam mais frequencias do sinal de interesse x (admitindo que este sinal e passa-
baixo), mas continuarao sempre a passar mais frequencias do ruıdo (uma vez que, como o ruıdo e branco, a sua
densidade espectral de potencia e constante na frequencia. Podemos assim perguntar-nos qual a largura de banda
do observador (e a correspondente distribuicao dos polos do observador) que optimiza a relacao sinal ruıdo?
O filtro de Kalman responde a uma pergunta ligeiramente diferente, mas relacionada com esta. Para tal
considere-se o custo
Jo = E
[∞
∑k=0
∥x(k)− x(k)∥2
].
15
Processo
Estimador
u y
x
-
Kc
Figure 8: Estrutura do controlador LQG.
Qual o estimador centrado (isto e, tal que E[x(k)− x(k)] = 0, ∀k) que minimiza Jo?
Quando o estado e as observacoes sao geradas pelo modelo (25, 26), o requisito de que o estimador seja
centrado conduz a estrutura do observador (equacao (22)).
A minimizacao de Jo conduz a um ganho calculado por
Lc = ΦPHT 1RE +HPHT , (29)
em que a matriz de covariancia do erro de estimativa do estdo, P satisfaz a equacao de Riccati algebrica
P = ΦPΦT +QE − ΦPHT HPΦT
RE +HPHT . (30)
O vector de ganhos optimo correspondente ao filtro de Kalman (ou seja, ao observador corrente optimizado)
pode ser calculado no MATLAB atraves da funcao dlqe.
8 O controlador LQG.
Podemos acoplar um controlador LQ a um observador realimentando a estimativa de estado, tal como se mostra
na figura 8, para obter o chamado controlador LQG (Linear Quadratico Gaussiano). Aqui, estamos a tratar do
chamado problema de regulacao, em que a referencia a seguir e nula. Posteriormente consideraremos referencias
nao nulas (problema do servomecanismo).
As equacoes que definem o controlador correspondem ao diagrama de blocos da figura 8 e sao, por conseguinte
x(k) = Φx(k−1)+Γu(k−1)+Lc [y(k)−H (Φx(k−1)+Γu(k−1))] , (31)
u(k) =−Kcx(k). (32)
Os ganhos do observador corrente, Lc, e do controlador, Kc sao calculados como se explicou nas seccoes
anteriores. Em particular, Lc pode ser obtido com as expressoes do filtro de Kalman ou com a funcao dlqe do
MATLAB, e Kc pode ser obtido com as expressoes do controlador LQ ou com a funcao dlqr do MATLAB.
Repare-se que podemos calcular a funcao de transferencia do controlador LQG, que relaciona a entrada y do
controlador (igual a saıda do processo) com o simetrico da saıda −u do controlador (a entrada do processo a con-
trolar), obtendo-se o diagrama de blocos da figura 8 que representa a interligacao entre o processo e o controlador.
16
Processo(1,2)
Controlador(33,34)
u y
-
Figure 9: O controlador LQG representado pela sua funcao de transferencia.
Com efeito, eliminando a variavel u na equacao (31) que define o observador, usando a lei de controlo (32) e
reagrupando termos, vem
x(k+1) = (Φ−ΓKc −LcHΦ+LcHΓKc)x(k)+Lcy(k). (33)
e ainda
u(k) =−Kcx(k). (34)
As equacoes (33) e (34) definem um modelo de estado para o controlador em que a matriz da dinamica e
Φ−ΓKc −LcHΦ+LcHΓKc, o vector de entrada e Lc, a entrada e y (a saıda do processo), o vector de saıda Kc, e a
saıda e −u(k) (o simetrico da entrada do processo).
9 Recuperacao do ganho de malha.
Recorde-se que o ganho de malha e dado pelo produto de todas as funcoes de transferencia da cadeia de retroaccao.
Como se conclui da observacao da figura 8, o ganho de malha pode ser facilmente calculado no MATLAB como
o produto das funcoes de transferencia do processo (definido pelas equacoes de estado (1) e (2)), e do controlador
(definido pelas equacoes de estado (33) e (34). O procedimento de calculo do ganho de malha no MATLAB e
assim:
1. Converter o modelo de estado do sistema (definido pelas equacoes de estado (1) e (2) para uma funcao de
transferencia equivalente, usando a func ao ss2tf do MATLAB.
2. Converter o modelo de estado do controlador (definido pelas equacoes de estado (33) e (34) para uma funcao
de transferencia equivalente, usando a func ao ss2tf do MATLAB.
3. Usar a funcao do MATLAB series para obter a funcao de transferncia do produto das duas funcoes de
transferencia anteriores, o que da o ganho de malha.
4. Usar a funcao bode para tracar a curva de resposta em frequencia do ganho de malha. Atencao: Deve fazer
o tracado numa gama de frequencias conveniente.
17
Ganho baixo naalta frequênciadevido a ruído nossensores eerros de modelação
Ganho alto nabaixa frequênciapara rejeição deperturbações eseguimento de referências
Ganho de malha |L|
ω
Perto dos 0 dB o ganhonão pode cair a mais de20dB/década para garantira estabilidade da cadeia fechada
Figure 10: Restricoes impostas a moldagem do ganho de malha numa cadeia de controlo por realimentacao.
Tal como e estudado no curso basico de controlo, o ganho de malha desempenha um papel de grande im-
portancia no projecto de controladores por realimentacao.
Tal como se mostra na figura 9, o projecto do controlador deve “moldar” o ganho de malha por forma a garantir
as seguintes restricoes:
1. Ganho de malha elevado nas baixas frequencias para garantir a atenuacao das perturbacoes e o seguimento
de referencias.
2. Ganho de malha reduzido nas altas frequencias por forma a garantir a insensibilizacao ao ruıdo nos sensores
(que aparece na alta frequencia) e a condicao de estabilidade robusta (quer dizer, a dinamica nao modelada de
alta frequencia deve ser afectada por um ganho suficientemente baixo que a impede de causar a instabilidade
do sistema em cadeia fechada).
3. Na vizinhamnca dos 0 dB a taxa de queda do ganho de malha em relacao a frequencia nao pode ser muito
elevada (em modulo) para nao causar instabilidade, garantindo que o sistema tenha margens de estabilidade
relativa adequadas (margem de fase e margem de ganho)4.
Quando se tem acesso a medida directa do estado, o controlador LQ proporciona margens de estabilidade
relativa boas (margem de ganho infinita em muitos casos e margem de fase de 60o).
4Isto e uma consequencia do Teorema Integral de Bode que relaciona a fase com a inclinacao da curva de amplitude para um sistema de fasenao mınima. De acordo com este teorema, a fase e tanto menor quanto maior for a inclinacao da curva do modulo de resposta em frequencia, oque implica uma reducao da margem de fase.
18
No entanto, quando a realimentacao do estado e substituıda pela sua estimativa x dada por um filtro de Kalman,
estas garantias na estabilidade relativa desaparecem completamente. Dependendo das matrizes de covariancia dos
ruıdos no modelo (25, 26), QE e RE , as margens de estabilidade relativa podem ser quase nulas.
Surgiu entao a ideia5 de escolher o valor de QE e RE nao com base nas covariancias dos ruıdos (que sao muito
difıceis de medir), mas considerando estas matrizes como paramteros que podem ser ajustados pelo projectista.
E em particular possıvel escolher QE e RE de tal maneira que o ganho de malha do controlador LQG aproxime
o ganho de malha do controlador LQ (com as suas boas propriedades de estabilidade relativa). Esta tecnica e
denominada recuperacao do ganho de malha ou LTR (do Ingles Loop Transfer Recovery).
No trabalho de laboratorio de Controlo por Computador sugere-se uma escolha de QE e RE que corresponde
a fazer RE = 1 e QE = qI em que q e um numero elevado. Esta e apenas uma sugestao inicial e que pode ser
optimizada.
10 Root-square locus para os polos do erro do filtro de Kalman
A influencia do peso na dinamica do erro do filtro de Kalman pode ser calculada usando uma tecnica semelhante
ao peso do controlo, tal como se estudou na seccao 4. De facto e possıvel mostrar (Franklin et al., 3ł ed., seccao
9.4.3, p.396) que para um sistema SISO os polos da dinamica do erro de estimacao com o filtro de Kalman seguem
o mesmo padrao dos polos optimos do controlador LQ. Especificamente, os polos optimos satisfazem a equacao
1+ γGe(z−1)Ge(z) = 0, (35)
em que
γ =QE
RE(36)
e
Ge(z) = H(zI −Φ)−1Γ. (37)
11 Seguimento de uma referencia nao nula.
Ate agora temo-nos preocupado com o chamado problema de regulacao, que consiste em levar para a zero a saıda
face a condicoes niciais nao nulas ou perturbacoes. Vamos agora considerar o problema do seguimento de uma
referencia diferente de zero (o problema dito do servomecanismo).
Existem diversas maneiras de resolver o problema do servomecanismo, que correspondem a sistemas em cadeia
fechada com zeros diferentes (e portanto com respostas dinamicas diferentes). Na solucao que se ilustra na figura
11, o sinal de referencia r pode ser introduzido atraves da lei de controlo
u(k) = Nr−Kcx(k), (38)5Esta ideia surgiu cerca de 1979.
19
Processo
Estimador
u y
x
-
Kc
rN
+
Figure 11: Introducao da referencia.
em que N e um escalar tal que o ganho estatico da funcao de transferencia seja 1, o que, a par da estabilidade
assimptotica da cadeia fechada, garante que, em regime estacionario y ≈ r.
O calculo de N pode ser feito de acordo com as formulas[NxNu
]=
[Φ− I Γ
H 0
]−1 [ 01
], (39)
N = Nu +KcNx. (40)
A demonstracao pode ser vista em
Franklin, Powell, Workman. Digital Control of Dynamic Systems, 3rd ed., Addison Wesley, pp. 310-313.
Uma outra hipotese consiste em introduzir a referencia por forma a que o erro de seguimento seja amplificado.
Os detalhes desta abordagem sao omitidos aqui, podendo ser vistos no livro indicado.
12 Funcao de transferencia do sistema controlado
A funcao de transferencia do sistema controlado traduz a relacao entre a referncia e a saıda) (posicao da ponta
da barra). E muito importante observar a curva de resposta em frequencia correspondente a esta funcao de trans-
ferencia pois ela da-nos uma informacao preciosa sobre o cumprimento das especificacoes, por exemplo:
• O ganho estatico e 1 (quer dizer, a saııda segue uma referencia constante em regime estacionario)? O
ganho de baixa frequencia da funcao de transferencia do sistema controlado tem de ser 0 dB (1 em unidades
lineares).
• A largura de banda e adequada?
• H’a sobrelevacao na frequencia?
A funcao de transferencia do sistema controlado pode ser obtida facilmente no MATLAB com o seguinte
procedimento:
1. Converter o modelo de estado do sistema (definido pelas equacoes de estado (1) e (2) para uma funcao de
transferencia equivalente, usando a func ao ss2tf do MATLAB.
20
2. Converter o modelo de estado do controlador (definido pelas equacoes de estado (33) e (34) para uma funcao
de transferencia equivalente, usando a func ao ss2tf do MATLAB.
3. Usar a funcao do MATLAB feedback para obter a funcao de transferncia do produto das duas funcoes de
transferencia anteriores.
4. Usar de novo a funcao series para obter a funcao de transferencia do sistema controlado como a serie da
funcao de transferencia obtida no numero acima e o ganho N.
5. Usar a func ao bode para tracar a curva de resposta em frequencia da funcao de transferencia do sistema
controlado. Atencao: Deve fazer o tracado numa gama de frequencias conveniente.
13 Observacoes finais
A figura 13 mostra o diagrama de blocos do SIMULINK para a simulacao do sistema controlado. Neste diagrama
SIMULINK:
• O bloco a amarelo e o modelo do processo que e usado para simular o controlador. No Laboratorio este bloco
e substituıdo por por dois blocos de entrada e saıda de dados que permitem fazer a interface com o sistema
real. As matrizes A, B e C definem o modelo de estado do sistema linearizado. Neste texto correspondem,
respectivamente, as matrizes Φ, Γ e H do modelo descrito nas equacoes (1) e (12). A matriz D tem todas as
entradas nulas.
• Os blocos a verde correspondem ao observador preditivo, implementado com a estrutura da figura 6.
• O bloco vermelho e o vector de ganhos de realimentacao do estado.
• O bloco azul corresponde ao ganho N calculado por 40, que e designado neste diagrama SIMULINK por
Nbar.
Na pagina seguinte mostra-se o codigo MATLAB que permite dimensionar o controlador com o observador
corrente.
21
Figure 12: Simulacao no SIMULINK do controlador de RLVE com observador corrente.
22
% Controlo por Computador
% Design of the current observer and state feedback gains
% A, B, C, D denote the state model of the process to control
% A, B, C are obtained from model identification; D=0
% regulator gain computation using LQ expressions
Q = C’*C;
R = 500; % 100
[K,S,E] = dlqr(A,B,Q,R);
%dstep(A-B*K,B,C,D);
% estimator gain computation using Kalman filter expressions
w2 = 100;
QE = eye(size(A))*w2;
RE = 1;
G = eye(size(A));
[M,P,Z,EE] = dlqe(A,G,C,QE,RE);
% Computing reference feedforward gain according to
% (8.73) Franklin DCDS 3rd Ed
N = inv([A-eye(size(A)), B; C,0])*[zeros(size(A,1),1);1];
Nx = N(1:end-1,:);
Nu = N(end,:);
Nbar = Nu+K*Nx;
23