Você está na página 1de 18

UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL

ESCOLA DE ENGENHARIA
ENGENHARIA DE CONTROLE E AUTOMAÇÃO

LUÍZA BORTOLON HECK

Projeto de um controlador do tipo LQR utilizando o método dos Mı́nimos


Quadrados

Porto Alegre, RS
2019
Sumário
1 Introdução 3

2 Revisão bibliográfica 4
2.1 Mı́nimos quadrados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.2 Método LQR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

3 Desenvolvimento 6
3.1 Montagem do circuito . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
3.2 Modelagem da planta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
3.2.1 Análise teórica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
3.2.2 Ensaio em malha aberta . . . . . . . . . . . . . . . . . . . . . . . . . 8
3.2.3 Mı́nimos quadrados . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
3.3 Projeto do controlador . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
3.3.1 Simulação e ajustes . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
3.4 Implementação do Controlador . . . . . . . . . . . . . . . . . . . . . . . . . . 14

4 Ensaios em malha fechada e resultados 16

5 Análise e Conclusão 18
3

1 Introdução
Este trabalho possui como objetivo projetar um controlador que faça com que a planta
siga referências constantes em regime permanente. A planta a ser controlada é um circuito com
três estágios RC em série, conforme apresentado na Figura 1, alimentado por uma fonte de
tensão que varia de -10 V à 10 V e com a saı́da sendo a tensão no capacitor do terceiro estágio
(V3 ).

R R R

u C1 C2 C3

Figura 1: Representação do circuito equivalente.

Para atingir o objetivo, a modelagem da planta será realizada utilizando o método dos
Mı́nimos Quadrados e, a partir dos resultados obtidos, o controlador será projetado como um
regulador quadrático linear (LQR). Portanto, ao final, espera-se que a tensão no capacitor do
terceiro estado possua erro zero em regime permanente quando a referência for constante.
4

2 Revisão bibliográfica
Antes de começar o desenvolvimento do trabalho, achou-se necessário realizar uma re-
visão bibliográfica sobre os dois principais assuntos, mı́nimos quadrados e LQR, a fim de re-
lembrar suas teorias e resultados.

2.1 Mı́nimos quadrados


Como o sistema a ser estudado nesse trabalho é de terceira ordem (devido aos três ca-
pacitores), esse será o caso estudado. Sendo assim, é possı́vel afirmar que o denominador da
função de transferência terá ordem 3 e o numerador terá ordem 2, conforme formato represen-
tado na Equação 1.

b1 z 2 + b2 z + b3
G(z) = (1)
z 3 + a1 z 2 + a2 z + a3
A partir da função de transferência acima, é possı́vel representar o valor da saı́da do
sistema através da equação de diferenças, descrita na Equação 2.

y[k] = b1 u[k − 1] + b2 u[k − 2] + b3 u[k − 3] − a1 y[k − 1] − a2 y[k − 2] − a3 y[k − 3] (2)

O método dos Mı́nimos Quadrados consiste em procurar o melhor ajuste para um con-
junto de dados, para isso, é necessário encontrar o mı́nimo (J) da função custo, dada pelo o
erro quadrático médio entre a saı́da real e a saı́da identificada, conforme mostra a Equação 3.
Com esse método, é possı́vel encontrar uma função de transferência a partir dos dados de saı́da
e entrada coletados experimentalmente.

N
X
J(θ) = [y(t) − φ(t, θ)]2 (3)
t=1
A equação de diferenças representada na Equação 2 também pode ser escrita na forma
y[k] = φ · θ, em que φ é uma matriz de observação e θ é um vetor de coeficientes desconhecidos
da função de transferência, ou seja, a variável de interesse.
A matriz de observação pode ser montada a partir dos dados de entrada e saı́da coletados
na amostragem, como mostra a Equação 17, onde n representa o número de amostras coletadas.
 
u[3] u[2] u[1] y[3] y[2] y[1]
 
 u[4] u[3] u[2] y[4] y[3] y[2] 
 
 
 u[5] u[4] u[3] y[5] y[4] y[3] 
φ=
 u[6]
 (4)
 u[5] u[4] y[6] y[5] y[4] 

 
 ... ... ... ... ... ... 
 
u[n − 1] u[n − 2] u[n − 3] y[n − 1] y[n − 2] y[n − 3]
5

O objetivo é encontrar o vetor θ para, assim, chegar nos coeficientes da função de trans-
ferência. Dessa forma, juntando as equações vistas anteriormente e realizando alguns passos
algébricos, tem-se que θ pode ser descrito como na Equação 5.

θ = (φT φ)−1 φT y (5)

2.2 Método LQR


O método do Regulador Quadrático Linear (LQR) consiste em encontrar a lei de controle
que minimize a equação
Z ∞
1
J= (xT Qx + Ru2 )dt
2 0
em que x é o vetor de estados, u é o vetor de entrada, Q é positiva definida e R > 0.
A solução desse problema pode ser encontrada através de

u = −Kx

onde K tem dimensão [1 x n], sendo n a ordem do sistema. Para encontrar o K, primei-
ramente deve-se resolver a equação de Ricatti, definida como

AT P + P A − P BR−1 B T P = −Q

e, em seguida, resolver
K = R−1 B T P.

Sendo assim, deve-se possuir uma matriz Q e um fator escalar R que ponderam os efeitos
da minimização sobre os estados e a entrada, respectivamente. Se o controlador for calculado
como descrito acima, o sistema em malha fechada será obrigatoriamente estável. Essa dedução
foi realizada para sistemas contı́nuos, entretanto, para sistemas discretos a teoria é a mesma, mas
será uma soma de 0 ao númeoro de amostras obtido ao invés da integral. Ainda, é interessante
salientar que o software MatLab possui funções prontas para calcular o LQR, dados Q, R e o
sistema de estados, tanto para sistemas contı́nuos como discretos.
6

3 Desenvolvimento
O desenvolvimento do trabalho foi dividido em três etapas. Na primeira, ocorreu a
montagem do circuito. Em seguida, foi realizada a coleta de dados e a estimativa por mı́nimos
quadrados. Por fim, com os resultados anteriores, o controlador foi projetado, implementado na
planta teórica, testado, ajustado e implementado na planta real.

3.1 Montagem do circuito


Para iniciar o projeto, o circuito da Figura 1 foi montado em uma protoboard, conforme
Figura 2. Os valores utilizados foram especificados pelo professor, sendo eles: C1 = 100 µF ,
C2 = 1000 µF , C3 = 1000 µF e R = 10 kΩ.

Figura 2: Circuito implementado na protoboard.

A entrada u(t) do sistema deveria variar de -10 à 10 V. Entretanto, como só é possı́vel
encontrar capacitores eletrolı́ticos e, portanto, polarizados, com as caracterı́sticas especificadas,
essa entrada foi limitada em tensões positivas apenas, conforme recomendação do professor.
Para alimentar o circuito, foi utilizado um microcontrolador Arduino UNO com uma entrada
PWM. Essa entrada varia de 0 a 5 V, mas como o sistema é linear, os resultados são válidos
também para entradas de maior amplitude.

3.2 Modelagem da planta


A modelagem da planta foi dividida em três etapas. Primeiramente, realizou-se a análise
teórica do circuito RC, a fim de obter um tempo de amostragem ideal. Em seguida, fez-se um
7

ensaio em malha aberta do sistema para, então, aplicar os resultados no método dos mı́nimos
quadrados e encontrar a G(z) ideal.

3.2.1 Análise teórica

Primeiramente, foi realizada uma análise teórica do circuito em questão, a fim de en-
contrar as matrizes A, B, C e D que satisfizessem o sistema da Equação 6, de forma que o vetor
de estados x(t) representasse as tensões nos três capacitores e a saı́da y(t) fosse a tensão no
capacitor C3 .

(
ẋ(t) = Ax(t) + Bu(t)
(6)
y(t) = Cx(t) + Du(t)

Sabendo que a corrente nos capacitores é dada por:

dvc (t)
ic (t) = C
dt
e que v1 é a tensão no primeiro capacitor, v2 no segundo capacitor e v3 no terceiro
capacitor, utilizando os métodos dos nós e das malhas, é possı́vel chegar ao sistema mostrado
nas Equações 7 à 9.

u(t) − 2v1 (t) + v2 (t)


v˙1 (t) = (7)
C1 R

v1 (t) − 2v2 (t) + v3 (t)


v˙2 (t) = (8)
C2 R

v2 (t) − v3 (t)
v˙3 (t) = (9)
C3 R
Dessa forma, o sistema pode ser reorganizado a fim de ficar no formato desejado, con-
forme Equação 10, com seus valores mostrados nas matrizes da Equação 11.
      
2 1 1
v˙1 (t) − 0 v1 (t)
   C1 R C1 R    C1 R  h i
v˙2 (t) =  1 2 1  v2 (t) +  0  u(t)
   C2 R − C2 R C2 R      (10)
1 1
v˙3 (t) 0 C3 R
− C3 R v3 (t) 0

  
−2 1 0 1 h i
   
A = 0, 1 −0, 2 0, 1  B = 0 C = 0 0 1 D = 0
    (11)
0 0, 1 −0, 1 0
8

Resultando na G(z) mostrada na Equação 12.

0, 005348z 2 + 0, 009154z + 0, 000602


G(z) = (12)
z 3 − 1.613z 2 + 0, 6377z − 0, 01005
Substituindo os valores dos capacitores e resistores e utilizando a função eig do software
MatLab, que retorna os autovalores de uma matriz quadrada, tem-se que os autovalores (λ) de
A são os mostrados abaixo.
 
−2, 0541
 
λ=
 −0, 2242

−0, 0217
Fazendo |4/λ|, tem-se os tempos de estabilização (ts ) de cada estado do circuito, o
resultado está representado na matriz abaixo. Cada tempo de estabilização se refere à um polo,
sendo assim, é possı́vel observar que há um polo bem mais lento do que os outros, que estabiliza
em aproximadamente 184 segundos e que é responsável por regir o tempo de estabilização do
sistema.
 
1, 9473
 
ts = 
 17, 8411 

184, 2116
Para conseguir um valor razoavelmente bom de tempo de amostragem (Ts ), costuma-se
dividir o tempo de estabilização do circuito por 10, o que significa que será possı́vel amostrar 10
valores até que o circuito esteja estável. Dessa forma, teria-se um Ts de aproximadamente 18, 4
segundos. Entretanto, para esse trabalho, escolheu-se utilizar um número maior de amostras, a
fim de obter um resultado mais preciso e sabendo que o hardware é capaz de simular com tal
valor, logo, o Ts utilizado foi 2 segundos.

3.2.2 Ensaio em malha aberta

Para realizar o ensaio em malha aberta, primeiramente implementou-se um sinal PRBS


(pseudo random binary sequence) na entrada do sistema. Esse sinal serve para alimentar o
circuito com 0 ou 5 V e manter esse valor por um tempo de 5 amostras, após esse perı́odo,
o PRBS é recalculado, podendo permanecer no valor que estava ou mudar. Além disso, foi
implementada uma interrupção para garantir que o sistema iria amostrar exatamente com o
perı́odo desejado (2 segundos). Dessa forma, foram medidos os valores de v1 [n], v2 [n] e v3 [n]
com o tempo de amostragem especificado. Os resultados de todas as variáveis são mostrados
na Figura 3, na qual todos os valores estão plotados em função do tempo.
9

Figura 3: Amostragem de dados utilizando PRBS.

3.2.3 Mı́nimos quadrados

Para implementar o método dos mı́nimos quadrados, primeiramente, importou-se os


valores resultantes do ensaio realizado para o software MatLab. Em seguida, obteve-se φ con-
forme descrito na revisão bibliográfica, sendo que u[n] é a entrada do sistema fornecida pelo
PRBS e y[n] é a tensão no terceiro capacitor. Em seguida, obteve-se θ utilizando uma função do
software MatLab que aproxima funções lineares por mı́nimos quadrados quando não há solução
exata.
Sendo assim, os elementos do vetor θ são os coeficientes da função de transferência
G(z). Entretanto, ao converter essa função em um sistema de estados com matrizes A, B, C e
D, não há nada que garanta que os estados são as tensões nos capacitores e a saı́da é a tensão
no terceiro capacitor (já que C é diferente de [0 0 1]). Para adaptar esse sistema, é necessário
realizar uma transformação de similaridade, dada conforme as Equações 13 à 16, sendo que Mc
é a matriz de controlabilidade e W é uma matriz que contém os coeficientes da G(z) encontrada.

T = Mc W (13)

h i
2
Mc = Bd Ad Bd Ad Bd (14)

 
a2 a1 1
 
W = a1 1 0

 (15)
1 0 0
10

At = (T −1 )Ad T Bt = (T −1 )Bd Ct = Cd T Dt = 0 (16)

É interessante lembrar que todas as discretizações foram realizadas com o mesmo tempo
de amostragem da coleta de dados. O resultado da G(z) encontrada pós transformação é mos-
trado na Figura 4, juntamente com a G(z) encontrada teoricamente. É possı́vel notar que não há
diferença visı́vel entre os dois valores, entretanto, o valor do vetor Ct não foi o esperado ([0 0
1]), que garantiria que a saı́da é a esperada e permitiria o controle de cada estado. Dessa forma,
optou-se por realizar um novo método de mı́nimos quadrados, a fim de garantir que a obtenção
da planta estava correta.

Figura 4: Resultado da G(z) encontrada com transformação de similaridade comparada com a


G(z) teórica.

A nova tentativa consistiu em montar uma matriz θ em que cada linha fosse a solução
de um sistema de mı́nimos quadrados e cada coluna fosse referente à um estado do sistema e à
entrada, como nas Equações 17 e 5, sendo que V1, V2, V3 e U são os vetores de valores obtidos
na amostragem.

h i
φ= V1 V2 V3 U (17)

Assim, encontra-se θ utilizando φ e y, conforme Equação 5 da revisão bibliográfica, va-


riando os valores de y para correponderem as tensões de cada capacitor, como mostra a Equação
11

18.
 
(φT φ)−1 φT V 1
 
θ= T −1 T (18)
(φ φ) φ V 2

(φT φ)−1 φT V 3
Logo, as matrizes A, B e C do sistema de estados resultaram no que é mostrado nas
Equações 19 à 21, sendo que C foi definida considerando que a saı́da que se quer é a tensão V3
no terceiro capacitor e D permanece sendo zero.
   
θ1,1 θ1,2 θ1,3 0.5411 0.1301 0.0610
   
Amq =
θ2,1 θ2,2 θ 2,3
 = 0.1109 0.6762 0.1746
   (19)
θ3,1 θ3,2 θ3,3 0.0126 0.1270 0.8569
   
θ1,4 0.2643
   
Bmq = θ2,4  = 0.0377
  
 (20)
θ3,4 0.0033
h i
Cmq = 0 0 1 (21)
A G(z) encontrada com essa representação é a mostrada na Equação 22.

0, 003338z 2 + 0, 004043z + 0, 0001254


G(z) = (22)
z 3 − 2.074z 2 + 1.372z − 0.2898
Após encontrar os coeficientes da G(z), o resultado foi plotado juntamente com a G(z)
teórica. Pode-se concluir, observando os resultados na Figura 5, que a aproximação é suficiente-
mente boa e, como C = [0 0 1], é possı́vel fazer o controle por estados do sistema experimental.

Figura 5: Resultado da G(z) encontrada ao final da aplicação do método comparada com a G(z)
encontrada teoricamente.
12

Além disso, pode-se observar que o mı́nimo da função custo (J), dada pelo erro quadrático
médio entre a saı́da real e a identificada é J = 0, 3809, o que configura um resultado satisfatório,
já que é próximo de zero.

3.3 Projeto do controlador


Para realizar o projeto do controlador, foi utilizada a função de transferência no tempo
discreto encontrada com o método dos mı́nimos quadrados. Primeiramente, deve-se conferir
que a matriz encontrada possui formato controlável. Para isso, encontra-se a matriz de contro-
labilidade (Mc ) definida anteriormente e com resultados conforme a Equação 23.
 
0.5144 0.0451 0.0298
 
Mc = 
0.0661 0.0697 0.0562
 (23)
0.0053 0.0178 0.0259
Como o determinante de Mc é diferente de zero, é possı́vel afirmar que o sistema é
controlável, logo, pode-se seguir para o projeto do controlador.
A fim de seguir referência com erro nulo em regime permanente, sabe-se que um in-
tegrador deve ser implementado, para isso, como o sistema é discreto, utiliza-se o método da
matriz aumentada. Dessa forma, o novo sistema terá um estado a mais, além das tensões dos
capacitores, que é definido como a integral do erro (i(z) = referência - saı́da). Aa, Ba, Ca e
Da são as novas matrizes do sistema e podem ser encontradas conforme mostra a Equação 24.

" # " #
A 0 B h i
Aa = Ba = Ca = C 0 Da = 0 (24)
−C 1 0

Em seguida, conforme revisão bibliográfica, deve-se encontrar uma matriz de ganhos K


para implementar nos estados do sistema, de forma que u(z) = −Kx(z), sendo u(z) o sinal de
controle aplicado na planta. Para isso, utilizou-se a função dlqr do MatLab que fornece uma
matriz K a partir do sistema de estados discreto e das matrizes de custo Q e R. Fazendo com
que Q fosse uma matriz identidade 4x4 e R = 1, obteve-se a matriz K representada na Equação
25.

h i
K = 0, 2092 0, 7141 1, 8144 −0, 1746 (25)

3.3.1 Simulação e ajustes

Para implementar o controlador na planta teórica, a malha de controle do sistema foi


reproduzida no software Simulink e está representada na Figura 6, dado que K1 , K2, K3 e K4
são os elementos da matriz de coeficientes K.
13

Figura 6: Malha de controle projetada do Simulink.

Implementando uma referência constante de 1 V no sistema obtêm-se o resultado re-


presentado na Figura 7, sendo que a curva em azul representa o esforço de controle do sistema
(u(z)) e a linha amarela é a saı́da (v3 (z)).

Figura 7: Resultado da simulação em malha fechada da resposta ao degrau unitário com R = 1.

Pela imagem, é possı́vel perceber que o tempo de estabilização do circuito é menor que
100 segundos, bem diferente do valor teórico (184 segundos). Sendo assim, o R foi reajustado
a fim de tornar esse tempo mais próximo do encontrado nos cálculos analı́ticos. Após algumas
iterações, chegou-se em uma valor de R = 30, que apresentou o resultado mostrado na Figura
8, com um tempo de estabilização bem mais próximo do desejado e encontrado analiticamente.
14

Figura 8: Resultado da simulação em malha fechada da resposta ao degrau unitário com R =


30.

3.4 Implementação do Controlador


Para implementar o controlador no circuito RC, foi criado um código no software próprio
do Arduino, com a mesma função de interrupção e o mesmo tempo de estabilização utilizados
na amostragem. A entrada utilizada no Arduino permaneceu sendo a porta 3 do PWM, que varia
de 0 a 255, e as saı́das continuaram sendo as analógicas A1, A2 e A3, para V1, V2 e V3 res-
pectivamente, variando de 0 a 1023 cada. Dessa forma, aplicou-se o LQR identificado anterior-
mente, conforme código mostrado na Figura 9. Além disso, em algumas amostras observou-se
o efeito wind-up, logo, implementou um filtro simples de anti wind-up para garantir o controle
do sistema.
15

Figura 9: Código do controle com anti wind-up implementado no software do Arduino.


16

4 Ensaios em malha fechada e resultados


Após implementação do controlador, o mesmo foi testado com diversos valores de re-
ferências. Primeiramente, fez-se r = 2, 5 V e os resultados obtidos, tanto simulados com o
Simulink quanto medidos na prática, são mostrados na Figura 10.

Figura 10: Resposta dos sistemas teórico e experimental com referência de 2,5 V.

Em seguida, fez-se r = 4, 0 V e obteve-se os resultados da Figura 11.

Figura 11: Resposta dos sistemas teórico e experimental com referência de 4,0 V.

Então, fez-se r = 1.5 V e os resultados obtidos são os da Figura 12.


17

Figura 12: Resposta dos sistemas teórico e experimental com referência de 1,5 V.
18

5 Análise e Conclusão
Após observar os resultados na sessão anterior, é possı́vel afirmar que o projeto do con-
trolador cumpre seu objetivo, já que o sistema possui erro praticamente nulo em regime perma-
nente para qualquer entrada entre 0 e 5 V. Além disso, com a entrada de 4 V, observa-se a ação
do filtro anti wind-up, que impede a atualização da integral do erro quando valores maiores de
5 V são identificados na entrada de controle, e um tempo de estabilização levemente maior que
os outros exemplos.
É importante ressaltar que, embora o Arduino só forneça 5 V, por ser um sistema linear,
o circuito em MF deve funcionar também para valores de 10 V, como especificado no trabalho,
desde que haja cuidado com a saturação do sinal de controle. O teste com os 10 V não foi
realizado por falta de uma fonte de mais de 5 V para alimentar o amplificador operacional que
forneceria ganho 2 para o sistema e de tempo hábil fora do horário de aula para ir no laboratório
da faculdade. O controle também poderia ter sido testado utilizando um tempo de amostragem
maior e, por tanto, menos amostrar, mas não foi identificada a necessidade, já que o resultado
foi bastante agregador.
Além disso, o trabalho foi muito útil para mostrar na prática os métodos aprendidos em
aula. Várias dúvidas que não aparecem quando o conteúdo é estudado na teoria puderam ser
sanadas.