Você está na página 1de 41

UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO

CENTRO DE ENGENHARIAS
DEPARTAMENTO DE ENGENHARIA E TECNOLOGIA
CURSO DE ENGENHARIA ELÉTRICA
DISCIPLINA: CONTROLE DIGITAL

CONTROLE DE SISTEMA DE TANQUE TRAPEZOIDAL E SISTEMA DE


PÊNDULO INVERTIDO

CARLOS HENRIQUE ROCHA DOS SANTOS


POLLYANA HOLANDA SIMÃO

Mossoró - RN
2018

1
CARLOS HENRIQUE ROCHA DOS SANTOS
POLLYANA HOLANDA SIMÃO

CONTROLE DE SISTEMA DE TANQUE TRAPEZOIDAL E SISTEMA DE


PÊNDULO INVERTIDO

Projeto realizado para obtenção da nota


da 3° unidade da disciplina Controle
Digital, do curso de Engenharia Elétrica.

Professor: Marcelo Roberto Bastos


Guerra Vale

MOSSORÓ-RN
2018

2
RESUMO

Na presente contribuição é apresentado um estudo de problema clássico de sistemas


físico, pêndulo invertido e controlador de tanque trapezoidal, onde é adequadamente
resolvido por técnicas de controle. Isso envolve a construção de uma planta experimental,
bem como o projeto de um sistema automático de controle do tipo proporcional-
diferencial (PID). Neste trabalho são discutidas cada etapa de implementação, os
conceitos básicos e as técnicas envolvidas durante seu desenvolvimento. Simulações
computacionais foram utilizadas para auxiliar o mapeamento dos parâmetros de controle
que alimentam o algoritmo implementado presente no sistema automático de controle. Os
resultados obtidos se mostram satisfatórios para os dois tipos de controlador.
Palavra chaves: controle; pêndulo invertido; tanque trapezoidal; PID.

3
LISTA DE FIGURAS
Figura 1: Malha de Controle com Realimentação...............................................................7
Figura 2: Resposta de um controlador P para diferentes valores de Kp...........................10
Figura 3: Resposta de um controlador PI para diferentes valores de Ti............................11
Figura 4: Resposta de um controlador PID......................................................................12
Figura 5: Tanque trapezoidal............................................................................................13
Figura 6: Arduino® Uno...................................................................................................14
Figura 7: Driver Quanser®...............................................................................................14
Figura 8: Pêndulo Invertido..............................................................................................15
Figura 9: Foto da impressora............................................................................................16
Figura 10: Primeiro ensaio de controle do tanque trapezoidal com o PID.......................17
Figura 11: Segundo ensaio de controle do tanque trapezoidal com o PID.......................18
Figura 12: Terceiro ensaio de controle do tanque trapezoidal com o PID........................19
Figura 13: Primeiro ensaio do controle do tanque trapezoidal com o PID escalonado......20
Figura 14: Segundo ensaio do controle do tanque trapezoidal com o PID escalonado......21
Figura 15: Terceiro ensaio do controle do tanque trapezoidal com o PID escalonado......22
Figura 16: Primeiro ensaio do controle do pêndulo invertido com o PID........................23
Figura 17: Segundo ensaio do controle do pêndulo invertido com o PID.......................24
Figura 18: Terceiro ensaio do controle do pêndulo invertido com o PID.......................24
Figura 19: Primeiro ensaio do controle do pêndulo invertido com o PID escalonado......25
Figura 20: Segundo ensaio do controle do pêndulo invertido com o PID escalonado......26
Figura 21: Terceiro ensaio do controle do pêndulo invertido com o PID escalonado.......27

4
LISTAS DE TABELAS

Tabela 1: Parâmetros do PID simples utilizados nos ensaios de controle do sistema de


tanque trapezoidal............................................................................................................17
Tabela 2: Parâmetros do PID escalonado utilizados nos ensaios de controle do sistema de
tanque trapezoidal...........................................................................................................20
Tabela 3: Parâmetros do PID simples utilizados nos ensaios de controle do sistema do
pêndulo invertido............................................................................................................22
Tabela 4: Parâmetros do PID escalonado utilizados nos ensaios de controle do sistema do
pêndulo invertido............................................................................................................25

5
SUMÁRIO

1. INTRODUÇÃO..................................................................................................7
2. OBJETIVO.........................................................................................................7
2.1 OBJETIVOS GERAIS...................................................................................7
2.2 OBJETIVOS ESPECÍFICOS........................................................................7
3. REFERÊNCIAL TEÓRICO............................................................................8
3.1 CONTROLADOR PID..................................................................................9
3.1.1 AÇÃO PROPORCIONAL................................................................9
3.1.2 AÇÃO PROPORCIONAL-INTEGRAL.........................................10
3.1.3 AÇÃO PROPORCIONAL-INTEGRAL-DERIVATIVO................11
4. MATERIAIS E MÉTODOS...........................................................................12
4.1 SISTEMA DE TANQUE TRAPEZOIDAL...............................................12
4.1.1 ELABORAÇÃO DO CONTROLADOR PID............................... .14
4.2 SISTEMA DE PÊNDULO INVERTIDO....................................................14
5. RESULTADOS................................................................................................16
5.1 TANQUE TRAPEZOIDAL........................................................................16
5.2 PÊNDULO INVERTIDO............................................................................22
6. CONCLUSÃO..................................................................................................27
7. REFERÊNCIAS..............................................................................................28

APÊNDICE A – SCRIPT FEITO NO MATLAB PARA CONTROLE DO


SISTEMA DE TANQUE TRAPEZOIDAL UTILIZANDO O PID
CONVENCIONAL.

APÊNDICE B - SCRIPT FEITO NO MATLAB PARA CONTROLE DO SISTEMA


DE TANQUE TRAPEZOIDAL UTILIZANDO O PID ESCALONADO.

APÊNDICE C – SCRIPT FEITO NO IDE ARDUINO PARA CONTROLE DO


SISTEMA DE PÊNDULO INVERTIDO UTILIZANDO O PID
CONVENCIONAL.
APÊNDICE C – CÓDIGO NO MATLAB PARA SIMULAÇÃO DO PÊNDULO
INVERTIDO ESCALONADO.

6
1. INTRODUÇÃO

Nas últimas décadas, estabeleceu firmemente uma moderna teoria de controle


para sistemas contínuo no tempo. O suficiente para provocar uma revolução nos processos
industriais e habilitar a humanidade a iniciar a exploração do universo. Nas últimas três
décadas, engenheiros e cientistas buscaram a perfeição no projeto de sistemas de controle,
tentando alcançar o desempenho ideal dos sistemas dinâmicos.

O advento do computador digital possibilita a criação de controladores mais


precisos do que os controladores analógicos, mas restringiu a velocidade de operação,
que está sendo melhorada com a evolução dos microcomputadores. Esta evolução está
possibilitando cada vez mais que os projetistas de controladores digitais cheguem mais
próximos de sistemas com desempenho ideal. Obviamente, a evolução citada ocorreu, e
ainda ocorre, em virtude de uma série de fatores, de modo que pode ressaltar o reforço
proveniente das ferramentas matemáticas nos seus diversos níveis de complexidade.
Além disso deve-se dar a devida importância aos recursos computacionais
(CLPs, microcontroladores, entre outros), que por sua vez, encontram-se presentes em
aplicações existentes tanto em ambientes acadêmicos quanto dentro das indústrias.

O estudo e a implementação de técnicas de controle são utilizados para otimizar


o uso desses sistemas, tornando-os mais confiáveis, robustos e eficientes. O pêndulo
invertido, tem um sistema de considerável interesse prático por apresentarem sistemas
mecânicos intrinsecamente instáveis que são encontrados em importantes aplicações
técnicas, como por exemplo, lançamento de foguetes, controle de satélites e sistemas para
proteção de edifícios em regiões propensas a terremotos, sendo mais utilizado como
princípio básico de equilíbrio de um robô bípede. Outra forma de controle de sistema
digital, está relacionada ao controle de nível de líquido em tanques industriais, muito
utilizada em controle de nível de tanque de petróleo, onde a complexidade existente é a
de implementar controles para tanques de diversos formatos e modos de acoplamentos,
como por exemplo, os tanques esféricos.

2. OBJETIVOS
2.1 Objetivo Geral
Controlar o sistema de pêndulo invertido e o sistema de tanque trapezoidal
utilizando o PID escalonado.
2.2 Objetivos Específicos

7
 Projetar um controlador PID convencional e um PID escalonado para um
sistema de tanque trapezoidal.
 Projetar um controlador PID convencional e um PID escalonado para um
sistema de pêndulo invertido.
 Implementar um índice de avaliação de desempenho.
 Comparar os resultados obtidos do PID convencional com o PID
escalonado.

3. REFERÊNCIAL TEÓRICO

Um conhecimento básico que deve fazer parte do entendimento do leitor no que


diz respeito à teoria de controle de sistemas dinâmicos e o conceito de sistema
realimentado, que, por sua vez, pode ser considerado o centro deste campo de estudo.
Basicamente, um sistema deste tipo pode ser dividido em três partes:

 O sistema a ser controlado: Geralmente este consiste em uma planta ou


processo;
 Um controlador: Elemento de referência para cada nível que deseja manter;
 Um ramo de realimentação: Influencia diretamente a variável controlada e
pode ser alterada quando necessário, conforme a figura 1.

Figura 1 – Malha de controle com realimentação.

Fonte: BEGA et al, 2006.

Como todo controlador existente em um sistema de controle, um controlador


digital tem como finalidade atuar sobre o desempenho do sistema caracterizado por uma
planta ou um processo, que por sua vez é considerado na grande maioria dos casos como
um componente fixo da malha de controle. Ou seja, que não possui a flexibilidade

8
necessária para ser alterada, visando garantir a estabilidade, precisão
e agilidade, requeridas pelo projetista.

3.1 CONTROLADOR PID

Um controlador PID possui a combinação das ações proporcional, integral e


derivativo (BEGA et al, 2006). Cada ação dessa combinação está melhor descrita
próximas seções.

3.1.1 AÇÃO PROPORCIONAL

Neste tipo de controlador a relação entre o sinal de saída e o de erro, é dada pela
Equação 01.

(Eq. 01)

Em que u(t) é a saída do controlador, Kp é o ganho proporcional e e(t) é o erro


da variável do processo dado por e(t) = ysp - y(t ) onde ysp é o set-point e y(t) é a saída
do sistema. O termo L representa a passagem da equação no domínio do tempo (t) para o
domínio de Laplace (s).
Uma característica importante desta ação de controle é a existência de um erro
residual permanente quando o sistema não possui um integrador. O erro estacionário que
é dependente de Kp e da planta, pode ser minimizado por um aumento de Kp. No entanto,
ao mesmo tempo em que o erro diminui com o aumento do ganho proporcional,
aumentam as oscilações e o tempo para estabilização da variável. Este fato constitui-se
num limitante com relação ao valor do ganho proporcional, uma vez que um valor
excessivo de Kp pode instabilizar o processo, ou seja, o número de oscilações pode
aumentar de forma crescente, como é observado na Figura 4 (BEGA et al, 2006).

9
Figura 2 - Resposta de um controlador P para diferentes valores de Kp.

Fonte: BEGA et al, 2006.

Conclui-se assim, que este tipo de controlador só pode ser usado quando o ganho
proporcional for suficientemente elevado para reduzir o erro estacionário a um nível
aceitável.
3.1.2 AÇÃO PROPORCIONAL-INTEGRAL

Considerando a saída do controlador como função do erro e da integral do erro


tem-se um controlador proporcional-integral conforme apresentado na Equação 02.

(Eq. 02)

Onde Ti é o tempo integral. A ação do controlador PI devido à sua característica


de variar a saída sempre que houver erro, faz com que se elimine o offset quando o
processo atingir um estado estável. A Figura 3 mostra curvas de resposta em malha
fechada de um controlador PI, para um valor constante do ganho proporcional (Kp),
variando-se o tempo integral Ti.

10
Figura 3 - Resposta de um controlador PI para diferentes valores de Ti.

Fonte: BEGA et al, 2006.


O controle proporcional-integral é a ação de controle mais utilizada em controles
de processos. Não apresenta o offset associado ao controle proporcional puro e devido à
presença da ação integral, a estabilidade da malha de controle diminui. Nesse contexto,
há risco da saturação pelo modo integral, sendo que neste caso, o controlador continua
integrando o erro. É muito utilizado no controle de nível, vazão, pressão e outras variáveis
que não apresentam atrasos muito grandes.

3.1.3 AÇÃO PROPORCIONAL-INTEGRAL-DERIVATIVO

O controlador proporcional-integral-derivativo combina as características de


estabilidade conferida pelo controle proporcional mais derivativo com as características
de eliminação do erro oferecidas pelo controle proporcional mais integral. Estas
particularidades são, então, reunidas num único controlador (MARLIN, 1995).

(Eq. 03)

Onde Td é o tempo derivativo.

11
Figura 4 - Resposta de um controlador PID.

Fonte: BEGA et al, 2006.


A análise do gráfico mostra que a combinação PID produz um número maior de
oscilações no sistema, mas diminui o tempo para estabilização da variável. O modo
integral é usado para eliminar o erro estacionário causado por grandes variações de carga.
O modo derivativo, como seu efeito estabilizador, permite um aumento do ganho e reduz
a tendência para as oscilações o que conduz a uma velocidade de resposta superior quando
comparado com P e PI.

4. MATERIAIS E MÉTODOS

4.1 SISTEMA DE TANQUE TRAPEZOIDAL

O sistema de tanque trapezoidal foi o primeiro a ser utilizado, onde apresenta as


seguintes dimensões:15 cm de comprimento, base de 10 cm, largura de 5 cm e uma altura
de 30 cm, o orifício de saída possui 0,48 cm de diâmetro. O tanque utilizado para realizar
os ensaios de controle foi o da bomba do tanque da Quanser®, presente no laboratório, a
Figura 5 ilustra o tanque trapezoidal que foi utilizado.

12
Figura 5 – Tanque trapezoidal.

Fonte: Autoria Própria, 2018.

Para implementar a comunicação entre os periféricos e o Matlab® foi utilizado


um Arduino® Uno, em que seu esquema de conexão pode ser observado na Figura 6,
onde o mesmo recebe o código com o controlador PID e seus comandos através de uma
porta serial.
Figura 6 - Arduino® Uno.

Fonte: Autoria própria, 2018.


Em seguida foi utilizado um drive para ter o controle da bomba, onde tem a
função de receber o sinal analógico e converte-lo em um valor de tensão fazendo a leitura
do sensor do tanque da Quanser® presente no laboratório utilizado para medir o nível de
água no tanque. Como a tensão nominal da bomba de 12 V e a tensão fornecida pelo

13
Arduino® Uno é de 5V, assim foi necessário utilizar um amplificador. A figura 7 ilustra
o amplificador utilizado no experimento.
Figura 7 – Driver Quanser®.

Fonte: Autoria Própria, 2018.

4.1.2 ELABORAÇÃO DO CONTROLADOR PID

No taque trapezoidal, os ganhos encontrados foram feitos com simulação real,


utilizando um código criado através da utilização do Arduino® IDE e depois reescrito
para o Matlab para a obtenção dos gráficos que representam o comportamento do
sistema. Para a obtenção desses valores, foram testados inúmeras vezes mudando os
valores de ki, kp e kd para que se ajustassem ao sistema real.

4.2 SISTEMA DE PÊNDULO INVERTIDO.

O equipamento utilizado consiste em uma base móvel atuado por um motor de


corrente contínua, no qual sua montagem permite apenas a translação sobre um trilho
horizontal, onde é acoplado um pêndulo com eixo de rotação perpendicular. Através do
deslocamento da referida base, onde pretende-se manter a haste equilibrada na posição
vertical.

14
Figura 8 – Pêndulo Invertido

Fonte: Autoria Própria, 2018.


Como alternativa e disponibilidade do laboratório, foi utilizado a estrutura de
uma impressora como plataforma para a construção da planta. Onde o compartimento
dos cartuchos de tinta serve como “ carrinho”, sobre o qual foi acoplado uma haste de
cano tipo PVC. Para o sistema de movimentos do carrinho foi utilizado um motor para
seu posicionamento, empregado originalmente na impressora. Onde temos um
potenciômetro que nos serve como um sensor que nos indica a posição vertical do
pêndulo para que se torne possível fazer o controle.

Figura 9 – Foto da impressora.

Fonte: Autoria Própria, 2018.

Para a implementação da comunicação entre o pêndulo foi utilizado um


Arduino®, onde o mesmo está ligado diretamente na rede wi-fi com a própria impressora.
A figura 9 abaixo ilustra a impressora que foi utilizado.

15
5. RESULTADOS

Os valores de kp, ki e kd adotados no controle dos sistemas de tanque trapezoidal


e no pêndulo invertido, tanto no uso do PID simples quanto no uso do PID escalonado,
estão apresentados nas Tabelas 1, 2, 3 e 4. E os códigos utilizados para o controle do
tanque trapezoidal e do pendulo invertido usando o PID simples e o escalonado estão nos
APENDECES A, B, C e D.

5.1. TANQUE TRAPEZOIDAL.

Para o controle do sistema de tanque trapezoidal foram implementadas duas


técnicas de controle, tornando possível a comparação entre as respectivas técnicas, em
que elas são denominadas por controle PID e PID escalonado. Lembrando ainda que foi
utilizado um polinômio linearizado, já que a área transversal do tanque varia de acordo
com a sua altura.
No controle do tanque usando PID simples, foram registrados 3 ensaios onde cada
um possui duração de 90 segundos, e foram definidos quatro setpoints em diferentes
níveis do tanque. A Figura 10 apresenta os gráficos do nível do tanque pelo tempo e o
nível de tensão pelo tempo do tanque trapezoidal com PID convencional do primeiro
ensaio com os valores de kp, ki e kd utilizados em cada ensaio estão apresentados na
Tabela 1.

Tabela 1: Parâmetros do PID simples utilizados nos ensaios de controle do sistema de


tanque trapezoidal.
PID simples no tanque trapezoidal
Ensaio kp ki kd
1 2 0,0075 0
2 2.2 0,007 0
3 3 0,0077 0
Fonte: Autoria própria, 2018.

16
Figura 10 – Primeiro ensaio de controle do tanque trapezoidal com o PID.

Fonte: Autoria própria, 2018.

Observando o gráfico apresentado na Figura 10, nota-se que há uma demora em


atingir o setpoint na primeira regia, já a segunda região não apresenta o problema da
primeira, porém notasse a presença de um overshoot na mesma, mais os dados medidos
conseguiram ficar bem próximos do setpoint. Já na terceira observamos um overshoot
maior.
Na Figura 11, é possível visualizar o gráfico referente ao segundo ensaio, com os
valores de kp, ki e kd alterados de acordo com o que está apresentado na Tabela 1,
visando melhorar o controle do sistema.

17
Figura 11 – Segundo ensaio de controle do tanque trapezoidal com o PID.

Fonte: Autoria própria, 2018.

Observando o gráfico apresentado na Figura 11, na primeira região não


conseguimos atingir o setpoint, já na segunda consideramos que o controle foi bom, com
um bom tempo de resposta e na terceira região continua apresentando um overshoot.
Além disso notamos a presença de ruídos externos durante todo ensaio.
Já no terceiro ensaio, temos novos valores de kp, ki e kd como mostra a Tabela
1, na primeira região conseguimos chegar mais próximo do setpoint do que na anterior,
porém não atingimos o mesmo. Já na segunda região o controle foi muito bom, melhor
do que ainda a anterior. E na terceira, apesar de continuar com overshoot, foi melhor do
que a segunda.

18
Figura 12 – Terceiro ensaio de controle do tanque trapezoidal com o PID.

Fonte: Autoria própria, 2018.

Para o controle do tanque trapezoidal utilizando o PID escalonado, foram


utilizados os mesmos setpoints do ensaio feito com o PID simples, no entanto o tanque
foi dividido em diferentes faixas, onde cada faixa teve um PID diferente, além disso,
foram registrados 3 ensaios diferentes, onde em cada um eles foram variados os
parâmetros kp, ki e kd visando buscar melhorar cada vez mais a eficiência do controle.
Além disso, o controle do tanque trapezoidal com o PID escalonado pode ser observado
através de gráficos que relacionam o nível de água no tanque com o tempo, e a tensão
aplicada na bomba com o tempo. Para cada ensaio foram definidas quatro faixas com
diferentes valores para kp, ki e kd devido a não linearidade do tanque, além de ter sido
definido um set point para cada faixa do PID escalonado como no PID simples. A
duração total do ensaio foi de 360 segundos, sendo 90 para cada nível.
A Figura 13 ilustra o gráfico do tanque trapezoidal com PID escalonado gerado
no primeiro ensaio. Na Tabela 2 é possível ver os valores de kp, ki e kd utilizados nos
ensaios do controle do tanque utilizando o PID escalonado.

19
Tabela 2: Parâmetros do PID escalonado utilizados nos ensaios de controle do sistema
de tanque trapezoidal.
PID escalonado no tanque trapezoidal
Ensaio Faixa kp ki kd
1 1,5 0,006 0
1 2 2 0,009 0
3 4 0,008 0
1 2 0,006 0
2 2 2 0,008 0
3 4 0,005 0
1 2,5 0,007 0
3 2 2 0,0075 0
3 4,2 0,0058 0
Fonte: Autoria própria, 2018.

Figura 13 – Primeiro ensaio do controle do tanque trapezoidal com o PID escalonado.

Fonte: Autoria própria, 2018.

Pela Figura 13 é possível observar que no primeiro ensaio com o PID escalonado
não obtivemos um bom resultado nas três regiões, com a presença do overshoot na
segunda e na terceira região. Enquanto na primeira não conseguimos atingir o setpoint.
Os parâmetros do PID estão de modo como mostrado na Tabela 2.

20
Já no segundo ensaio, foi obtido o gráfico apresentado na Figura 14, onde já é
possível notar uma leve melhora no comportamento do sistema devido ao ajuste dos
parâmetros do PID escalonado. E um resultado melhor do que um PID comum.

Figura 14 – Segundo ensaio do controle do tanque trapezoidal com o PID escalonado.

Fonte: Autoria própria, 2018.

Já no terceiro ensaio, foi obtido o gráfico apresentado na Figura 15, com um


comportamento tão bom quanto o anterior devido ao ajuste dos parâmetros do PID
escalonado.
Podemos observar também que houve presença de ruído durante todos os ensaios.

21
Figura 15 – Terceiro ensaio do controle do tanque trapezoidal com o PID escalonado.

Fonte: Autoria própria, 2018.

Observando as figuras 13, 14 e 15 concluímos que para o sistema do tanque


trapezoidal o PID escalonado apresenta melhor rendimento do que o PID simples.

5.2. PÊNDULO INVERTIDO.

Assim como para o controle do sistema de tanque trapezoidal, no sistema de


controle do pêndulo invertido, foram implementadas as técnicas de controle PID e PID
escalonado. Nesse sistema, foi feito inicialmente o controle utilizando o PID simples,
onde se obtém a inclinação do pêndulo em relação ao seu eixo, em que sua inclinação é
controlada através do movimento do motor de acordo com a resistência medida no
potenciômetro. Foram registrados três ensaios, A Figura 16 apresenta os gráficos da
inclinação medida no potenciômetro pelo tempo e a tensão pelo tempo do primeiro ensaio.
Já na Tabela 3 é apresentada os parâmetros do PID para os três ensaios.

22
Tabela 3: Parâmetros do PID simples utilizados nos ensaios de controle do sistema do
pêndulo invertido.
PID simples no pêndulo invertido
Ensaio kp ki kd
1 170 0,85 0,075
2 150 0,6 0,08
3 100 0,5 0,1
Fonte: Autoria própria, 2018.

Figura 16 – Primeiro ensaio do controle do pêndulo invertido com o PID.

Fonte: Autoria Própria, 2018.

Observando o gráfico apresentado na Figura 16, podemos notar que esse sistema
se comporta de uma forma totalmente diferente da anterior e também é mais difícil de
controlar. Podemos observar que houve uma demora para atingir o overshoot e mesmo
assim ainda teve bastante oscilação acerca do sertpoint. Os parâmetros do PID utilizados
que geraram esses gráficos estão apresentados na Tabela 3.
No segundo ensaio os parâmetros do PID foram alterados como mostrado na
Tabela 3, porém não houve muita alteração no comportamento do controle do pêndulo

23
tendo uma leve melhora quando comparado com o anterior. Ainda conta com muito ruído
e alto overshoot, porém obteve leve melhora no tempo até chegar ao setpoint.

Figura 17 – Segundo ensaio do controle do pêndulo invertido com o PID.

Fonte: Autoria própria, 2018.

No terceiro ensaio já conseguimos melhorar um pouco o controle, apesar de o


pêndulo apresentar certa dificuldade em se manter no setpoint como mostra a Figura 18.
Os parâmetros do PID utilizado nesse ensaio podem ser conferidos na Tabela 3. Houve
bastante dificuldade do sistema se manter no setpoint devido a suscetibilidade ao ruído
que esse sistema possui.

24
Figura 18 – Terceiro ensaio do controle do pêndulo invertido com o PID.

Fonte: Autoria própria, 2018.

Para o controle do pêndulo invertido utilizando o PID escalonado, foram


definidas 2 regiões diferentes, onde cada região representa determinada inclinação do
pêndulo em relação ao seu eixo, e que sua inclinação é controlada através do movimento
do motor de acordo com a resistência medida no potenciômetro. Também foram
registrados três ensaios, além utilizar duas faixas diferentes para o controle desse sistema
através do PID escalonado. A Figura 12 ilustra o gráfico do tanque trapezoidal com PID
escalonado. Os parâmetros do PID escalonado utilizados nos três ensaios estão
apresentados na Tabela 4.

Tabela 4: Parâmetros do PID escalonado utilizados nos ensaios de controle do sistema


do pêndulo invertido.
PID escalonado no pendulo invertido
Ensaio Faixa kp ki kd
1 170 0,85 0,075
1
2 200 0,7 0,09
1 170 0,85 0.075
2
2 200 0,7 0,09
1 170 0,85 0,075
3
2 200 0,7 0,09
Fonte: Autoria própria, 2018.

25
Figura 19 – Primeiro ensaio do controle do pêndulo invertido com o PID escalonado.

Fonte: Autoria própria, 2018.


Na Figura 19 está apresentado o comportamento da inclinação com o tempo,
assim como a tensão com o tempo para o primeiro ensaio usando o PID escalonado. Os
parâmetros do PID escalonado que fizeram com que o gráfico obtivesse essa forma, estão
apresentado na Tabela 4. Como é possível notar, o sistema ainda apresenta muito ruído,
com um overshoot alto e demora para chegar até o setpoint.
No segundo ensaio, pode-se observar que não houve melhora no controle do pêndulo
como é possível ver na Figura 20. Porém ainda observa-se muito ruído, fazendo com que
o sistema tenha dificuldade para permanecer no setpoint, além da presença do overshoot
fazendo com que o sistema tenha dificuldade de ficar estável.

26
Figura 20 – Segundo ensaio do controle do pêndulo invertido com o PID escalonado.

Fonte: Autoria própria, 2018.

No terceiro e último ensaio, os parâmetros do PID escalonado utilizados estão


apresentados na Tabela 4. Não houve muita melhora quando comparado aos ensaios
anteriores, com um overshoot menor, porém ainda continua apresentando ruído
dificultando o controle do sistema.
Figura 21 – Terceiro ensaio do controle do pêndulo invertido com o PID escalonado.

Fonte: Autoria própria, 2018.

27
Comparando os ensaios feitos utilizando o PID convencional com o PID
escalonado, não foi possível notar melhora considerável devido a dificuldade de
controlar o sistema do pêndulo invertido.

6. CONCLUSÃO

O projeto realizado teve o intuito de controlar o nível de um pêndulo invertido e um


tanque de formato trapezoidal, por meio da implementação de um controlador PI, através
da qual foi possível realizar a análise da eficiência do controle projetado. Para ter uma
análise de maior qualidade foram realizados três ensaios para cada controlador, sendo o
segundo e terceiro de cada baseado nos defeitos encontrados no primeiro teste.
O primeiro ensaio foi realizado para controlar o tanque trapezoidal, porém foi possível
perceber um pequeno overshoot em cada nível, além da presença de ruídos na saída do
sensor. A partir desses defeitos encontrados, foi possível verificar que no segundo, o
nível se estabilizou rapidamente na referência, e no terceiro com novos valores de ajustes,
demorou um pouco a chegar no setpoint.
Para o controle do tanque trapezoidal utilizando o PID escalonado, foram utilizados
os mesmos setpoints do ensaio feito com o PID simples, no entanto o tanque foi dividido
em diferentes faixas, onde em cada um eles foram variados os parâmetros kp, ki e kd
visando buscar melhorar cada vez mais a eficiência do controle. Além de diminuir
praticamente por completo os pequenos overshoot existentes no gráfico do tanque
trapezoidal sem PID escalonado, foi possível verificar que que o PID escalonado possui
um controle mais eficiente para tanques com forma não linear.
Enquanto o ensaio do pêndulo invertido, foi realizado um controle de PID
simples, onde se obteve a inclinação do pêndulo em relação ao eixo. No primeiro teste
foi possível notar uma maior suscetibilidade a ruídos externos e um overshoot alto, além
de demorar a chegar no setpoint. Já no segundo teste obteve leve melhora no tempo até
chegar ao setpoint e o terceiro ensaio já foi possível melhorar o controle, apesar de o
pêndulo apresentar certa dificuldade em se manter no setpoint. Já no PID escalonado
foram definidas duas regiões diferentes, onde cada região representa determinada
inclinação do pêndulo em relação ao seu eixo, foi dividido entre três ensaios e foi possível
concluir uma melhora quando comparado aos ensaios anteriores, com um overshoot
menor, mas permanecendo presente ruídos.

28
Ambas as formas de controle, convencional e escalonada, apresentaram suas
particularidades, mostrando a possibilidade de domínio e controle sobre o sistema com
diferenças na precisão desejada e ajustada pelo programador. Buscando o
aperfeiçoamento e aprofundamento no assunto abordado neste trabalho, têm-se uma série
de aplicabilidades dos sistemas de controle aos quais podem ser estudadas, como:
aplicações em linha em drones, e em sistemas que trabalhem como pêndulo invertido
como overboards e novas tecnologias de motocicletas.

7. REFERÊNCIAS

RIBEIRO, Ricardo. IMPLEMENTAÇÃO DE UM SISTEMA DE CONTROLE DE


UM PÊNDULO INVERTIDO. 2007. 86 f. Tese (Doutorado) - Curso de Engenharia
Elétrica, Universidade Federal de ItajubÁ, Itabujá, 2007.

PRATO, Igor Ferreira do. CONSTRUÇÃO E CONTROLE DO SISTEMA DO


PÊNDULO INVERTIDO. 2011. 86 f. Dissertação (Mestrado) - Curso de Engenharia
Elétrica, Universidade Federal da Bahia, Vitória da Conquista, 2011.

MACHADO, Ariel Geraldo. Sistemas em Tempo Real Controlo de pêndulo


invertido. 2006. 26 f. Dissertação (Mestrado) - Curso de Engenharia Elétrica, Faculdade
de Engenharia Feup, Porto, 2006.

PIRES, Vinícius Pereira. SINTONIA DE UM CONTROLADOR PID EM UM


SISTEMA DE CONTROLE DE VAZÃO. 2006. 26 f. Dissertação (Mestrado) - Curso
de Engenharia Química, Pontifícia Universidade Católica do Rio Grande do Sul, Porto
Alegre, 2006.

BEGA, Egídio A.; FINKEL, Vitor S.; KOCH, Ricardo; Instrumentação industrial,
Instituto Brasileiro de Petróleo e Gás, Rio de Janeiro, 2006.

D’AZZO, John J. Analise e Projeto de Sistemas de Controle Lineares. 2 ed. Rio de

Janeiro: Editora Guanabara Dois S.A., 1978.

29
APÊNDICE A – CÓDIGO NO MATLAB PARA A SIMUALAÇÃO DO
CONTROLE SIMPLES DO NÍVEL DE TANQUE TRAPEZOIDAL.

%PROJETO DE CONTROLE DE UM TANQUE TRAPEZOIDAL UTILIZANDO O PID


%COCNVENCIONAL

clc
close all;

%DEFININDO AS CONDIÇÕES INICIAIS


nivi=0;
vi=0;
somaerroi=0;
erroi=0;
deriverroi=0;

Tamost=0.45; %DEFININDO O PERÍODO DE AMOSTRAGEM UTILIZADO

%DECLARAÇÃO DOS PINOS DE ENTRADA E SAÍDA DO ARDUINO


a.pinMode(9,'output');
a.pinMode(15,'input');

sp=10; %DECLARAÇÃO DO SETPOINT UTILIZADO (NÍVEL DE REFERÊNCIA)

%DECLARANDO A VARIÁVEL DE TEMPO


k=2;
tempo(1)=0;
tic;

%DEFININDO LAÇO PARA REALIMENTAÇÃO DO SISTEMA DE CONTROLE ATÉ ATENDER


SUAS
%CONDIÇÕES
while (tempo(k-1)<90)

nivel=a.analogRead(15); %LEITURA DO NÍVEL DE ÁGUA UTILIZANDO O


SENSOR

%OBTENDO VALORES DO NÍVEL DA ÁGUA NO TANQUE EM cm


niveli=((0.00001*(nivel*nivel)+(0.1118*nivel)-6.5701));

%DECLARANDO O TEMPO UTILIZADO PARA CONTROLAR O SISTEMA EM


DETERMINADO EM
%DETERMINADO NÍVEL DE REFERÊNCIA

if(tempo(k-1)<90)
sp=10;
end

if(niveli>0 && niveli<12)


kp=1;
ki=0.00095;
kd=0;
end

%CALCULANDO O ERRO, SOMATÓRIO DO ERRO E DERIVADA DO ERRO


erro=(sp-niveli);
somaerro=(somaerroi+erro);

30
deriverro=erro-erroi;

%CALCULO DA TENSÃO APLICADA NA BOMBA


tensao=kp*erro+ki*somaerro+kd*deriverro;

%DEFININDO CONDIÇÕES DE TENSÃO PARA NÍVEIS ACEITAVEIS PELA BOMBA


if (tensao>4)
tensao=4;
end

if (tensao<0)
tensao=0;
end

%OBTENDO VALORES DE TENSÃO EM volts.


v2=round(tensao*51);

%ESCREVENDO O VALOR DE TENSÃO PARA SER APLICADO NA BOMBA


a.analogWrite(9,v2);

%GERANDO OS NOVOS VALORES DE ITERAÇÃO DE ACORDO COM O VALOR ANTERIOR


OBTIDO
somaerroi=somaerro;
erroi=erro;

%FINALIZANDO O INTERVALO DE TEMPO DE CONTROLE


tempo(k)=toc;

%DEFININCO PAUSA DO PERÍODO DE AMOSTRAGEM


pause(Tamost-(tempo(k)-tempo(k-1)));
disp(['tempo(s): ' ,num2str(tempo(k))])
k=k+1;

%CALCULANDO O ÍNDICE DE DESEMPENHO


y=(nivi+niveli)/n;
nivi=y;
v=vi+erro;
vi=v;

end

%INDICE DE DESEMPENHO FINAL


n=k-1
y2=y/n
u2=v/n
I=alfa*y2+beta*u2

%DESLIGANDO A BOMBA
v2=0;
a.analogWrite(9,v2);

%PLOTANDO OS GRÁFICOS

%GRÁFICO TEMPO X NÍVEL


figure (1); clf;
subplot(2,1,1)
plot(tempo,niveli);
hold on;
plot(tempo,sp,'--g');

31
legend('Nível do tanque','Referência');
xlabel('Tempo (s)'); ylabel('Nível do tanque(cm)'); grid
title ('Nível do tanque em função do tempo ')

%GRÁFICO TEMPO X TENSÃO


subplot(2,1,2)
plot(tempo,v2);
legend('Tensão na bomba');
xlabel('Tempo (s)'); ylabel('Tensão (V)'); grid
title ('Tensão na bomba em função do tempo')

32
APÊNDICE B – SCRIPT FEITO NO MATLAB PARA CONTROLE DO
SISTEMA DE TANQUE TRAPEZOIDAL UTILIZANDO O PID ESCALONADO.

%PROJETO DE CONTROLE DE UM TANQUE TRAPEZOIDAL UTILIZANDO O PID


ESCALONADO

clc
close all;

%DEFININDO AS CONDIÇÕES INICIAIS

nivi=0;
vi=0;
somaerroi=0;
erroi=0;
deriverroi=0;

Tamost=0.45; %DEFININDO O PERÍODO DE AMOSTRAGEM UTILIZADO

%DECLARAÇÃO DOS PINOS DE ENTRADA E SAÍDA DO ARDUINO


a.pinMode(9,'output');
a.pinMode(15,'input');

%DECLARAÇÃO DO SETPOINT UTILIZADO (NÍVEL DE REFERÊNCIA)


ref=5;

%DECLARANDO A VARIÁVEL DE TEMPO


k=2;
tempo(1)=0;
tic;

%DEFININDO LAÇO PARA REALIMENTAÇÃO DO SISTEMA DE CONTROLE ATÉ ATENDER


SUAS
%CONDIÇÕES

while (tempo(k-1)<100)
%%LEITURA DO NÍVEL DE ÁGUA UTILIZANDO O SENSOR
nivel=a.analogRead(15);

%OBTENDO VALORES DO NÍVEL DA ÁGUA NO TANQUE EM cm


niveli=((0.00001*(nivel*nivel)+(0.1118*nivel)-6.5701));

%%DECLARANDO O TEMPO UTILIZADO PARA CONTROLAR O SISTEMA EM


DETERMINADO EM
%DETERMINADO NÍVEL DE REFERÊNCIA
if(tempo(k-1)<90)
ref=5;
end

if(tempo(k-1)>90 && tempo(k-1)<180)


ref=10;
end

if(tempo(k-1)>180 && tempo(k-1)<270)


ref=15;
end

33
if(niveli>0 && niveli<6)
kp=1;
ki=0.00095;
kd=0;
end

if(niveli>6 && niveli<12)


kp=1;
ki=0.0098;
kd=0;
end

if(niveli>12 && niveli<18)


kp=1;
ki=0.0098;
kd=0;
end

%CALCULANDO O ERRO, SOMATÓRIO DO ERRO E DERIVADA DO ERRO


e=(ref-niveli);
somae=(somaerroi+e);
dere=e-erroi;

%CALCULO DA TENSÃO APLICADA NA BOMBA)


tensao=kp*e+ki*somae+kd*dere;

%DEFININDO CONDIÇÕES DE TENSÃO PARA NÍVEIS ACEITAVEIS PELA BOMBA


if (tensao>4)
tensao=4;
end

if (tensao<0)
tensao=0;
end

%OBTENDO VALORES DE TENSÃO EM volts.


tensao2=round(tensao*51);

%ESCREVENDO O VALOR DE TENSÃO PARA SER APLICADO NA BOMBA


a.analogWrite(9,tensao2);

%GERANDO OS NOVOS VALORES DE ITERAÇÃO DE ACORDO COM O VALOR ANTERIOR


OBTIDO
somaerroi=somae;
erroi=e;

%FINALIZANDO O INTERVALO DE TEMPO DE CONTROLE


tempo(k)=toc;

%DEFININCO PAUSA DO PERÍODO DE AMOSTRAGEM


pause(Tamost-(tempo(k)-tempo(k-1)));
disp(['tempo(s): ' ,num2str(tempo(k))])
k=k+1;

%CALCULANDO O ÍNDICE DE DESEMPENHO


y=(nivi+niveli)/n;
nivi=y;
u=vi+e;
vi=u;

34
end

%INDICE DE DESEMPENHO FINAL


n=k-1
y2=y/n
u2=u/n
I=alfa*y2+beta*u2

%DESLIGANDO A BOMBA
tensao2=0;
a.analogWrite(9,tensao2);

%PLOTANDO OS GRÁFICOS

%GRÁFICO TEMPO X NÍVEL


figure (1); clf;
subplot(2,1,1)
plot(tempo,niveli);
hold on;
plot(tempo,ref,'--g');
legend('Nível do tanque','Referência');
xlabel('Tempo (s)'); ylabel('Nível do tanque(cm)'); grid
title ('Nível do tanque em função do tempo ')

%GRÁFICO TEMPO X TENSÃO


subplot(2,1,2)
plot(tempo,tensao2);
legend('Tensão na bomba');
xlabel('Tempo (s)'); ylabel('Tensão (V)'); grid
title ('Tensão na bomba em função do tempo')

35
APÊNDICE C - SCRIPT FEITO NO IDE ARDUINO PARA CONTROLE DO
SISTEMA DE PÊNDULO INVERTIDO UTILIZANDO O PID CONVENCIONAL.
//DEFININDO AS CONDIÇÕES INICIAIS
int erroi = 0;
int somaerroi=0;
int erro,nivel,niveli,mserro,mserroi,somaerro,dererro,Kp,Ki,Kd;
int dererroi = 0;
float sensor,tensao;

//DECLARAÇÃO DO SETPOINT UTILIZADO (NÍVEL DE REFERÊNCIA)


int sp= 300;
int tensao2;

void setup(){
Serial.begin (9600);

//DECLARAÇÃO DOS PINOS DE ENTRADA E SAÍDA DO ARDUINO


pinMode (A0, INPUT);
pinMode (9, OUTPUT);
pinMode (10, OUTPUT);

void loop (){


//LEITURA DO SENSOR
sensor = analogRead (A0);

//CALCULANDO O ERRO
erro=abs (ref-sensor);
somaerro=somaerro+erro;
dererro=erro-erroi;

//PARÂMETROS DO PID
Kp=100;
Ki=0.5;
Kd=0.1;

//CALCULO DA TENSÃO
tensao= Kp*erro + Ki*somaerro + Kd*dererro;

if(tensao>255)
tensao=255;
if(tensao<0)

36
tensao=0;

tensao2=round(tensao);

//MOVIMENTO DO PENDULO PARA DIREITA OU ESQUERDA


if (sensor>300) {
analogWrite (9, tensao2);
analogWrite (10,0);
}

if (sensor <300){
analogWrite (10, tensao2);
analogWrite (9,0);
}
erroi=erro;
somaerroi= somaerro;

//CALCULO DO ÍNDICE DE DESEMPENHO


nivel=niveli+sensor;
niveli=nivel;
mserro=mserroi+(erro*erro);
mserroi=mserro;
Serial.println (sensor);
Serial.println(tensao);
Serial.println (nivel);
Serial.println (mserro);
}

37
APÊNDICE D - SCRIPT FEITO NO IDE ARDUINO PARA CONTROLE DO
SISTEMA DE PÊNDULO INVERTIDO UTILIZANDO O PID CONVENCIONAL.

//DEFININDO AS CONDIÇÕES INICIAIS

int erroi = 0;

int somaerroi=0;

int erro,nivel,niveli,mse,msei,somaerro,dererro,kp,ki,kd;

int dererroi = 0;

float sensor,tensao;

//DECLARAÇÃO DO SETPOINT UTILIZADO (NÍVEL DE REFERÊNCIA)

int sp = 300;

int tensao2;

void setup(){

Serial.begin (9600);

//DECLARAÇÃO DOS PINOS DE ENTRADA E SAÍDA DO ARDUINO

pinMode (A0, INPUT);

pinMode (9, OUTPUT);

pinMode (10, OUTPUT);

void loop (){

//LEITURA DO SENSOR

38
sensor = analogRead (A0);

//CALCULANDO O ERRO

erro=abs (ref-sensor);

somaerro=somaerro+erro;

dererro=erro-erroi;

//PARÂMETROS DO PID ESCALONADO PARA DUAS FAIXAS

if (sensor>146 && sensor<300)

kp=500;

ki=0.5;

kd=0.1;

if (sensor>200 && sensor<300)

kp=1000;

ki=0.25;

kd=0.001;

//CALCULO DA TENSÃO

tensao= kp*erro + ki*somaerro + kd*dererro;

if(tensao>255)

tensao=255;

39
if(tensao<0)

tensao=0;

tensao2=round(tensao);

//MOVIMENTO DO PENDULO PARA DIREITA OU ESQUERDA

if (sensor>300) {

analogWrite (9, tensao2);

analogWrite (10,0);

if (sensor <300){

analogWrite (10, tensao2);

analogWrite (9,0);

erroi=erro;

somaerroi= somaerro;

//CALCULO DO ÍNDICE DE DESEMPENHO

nivel=niveli+sensor;

niveli=nivel;

mserro=mserroi+(erro*erro);

mserroi=mserro;

Serial.println (sensor);

Serial.println(tensao);

40
Serial.println (nivel);

Serial.println (mserro);

41

Você também pode gostar