FACULDADE DE ENGENHARIA
CURSO DE ENGENHARIA DE ENERGIA
DOURADOS/MS
2018
II
III
DOURADOS/MS
2018
IV
V
AGRADECIMENTOS
(Colossenses 3:23)
VIII
IX
RESUMO
ABSTRACT
Considering that in the modern world there are a great number of more and more
complex processes wheter it be day-to-day of common people or in the industry, it is
necessary that in addition to controlling such processes, that these processes are stable and do
not affect the productivity. In this way, this work developed an ON/OFF control system for a
drying oven using Arduino platform. The system was analyzed using two different types of
ON/OFF control, being one by hysteresis and the other by improved logic, with the second
presenting better stability, because it got an error smaller than 5 % in the control of the drying
oven temperature. With this, the equipment, which was inoperative, returned to work
correctly, being possible its use in futures studies.
LISTA DE ILUSTRAÇÕES
SUMÁRIO
1. INTRODUÇÃO .................................................................................................. 1
3. METODOLOGIA............................................................................................. 17
REFERÊNCIAS .......................................................................................................... 39
APÊNDICE ................................................................................................................. 43
XVI
1
1. INTRODUÇÃO
Segundo Dorf e Bishop (2001), antes da criação de James Watt, ainda se pode citar
mecanismos de controle de nível de água através de uma boia na Grécia Antiga no período
entre 300 e 1 a.C. De acordo com os mesmos autores, no século primeiro d.C. foi escrito o
2
livro Pneumatica de Heron de Alexandria, que citava formas de controle de nível de água
utilizando-se boias. Isso demonstra que a necessidade de se controlar processos pelos seres
humanos data de muito antes da Primeira Revolução Industrial.
Por volta de 1922, Minorsky utilizou equações diferenciais para desenvolver
controladores automáticos para pilotagem de embarcações. Dez anos depois, Nyquist
conseguiu criar um método para análise de estabilidade em sistemas de malha fechada a partir
de respostas do sistema em malha aberta (OGATA, 2010).
Antes do êxito de Nyquist, houve o trabalho de H.W. Bode em 1927 com
amplificadores, o que permitiu na década 1940, ao se utilizar os chamados Diagramas de
Bode, a criação de métodos de resposta no domínio da frequência. Ainda nessa década Ziegler
e Nichols criaram regras para o uso de controladores Proporcionais, Integrais e Derivativos
(PID) (OGATA, 2010).
Com todos os trabalhos que possibilitaram o desenvolvimento das principais técnicas
de controle e estabilidade, é possível dizer que todas buscam basicamente os mesmos
objetivos. Segundo Franklin et al. (2013), um sistema bem controlado possui quatro requisitos
básicos: deve ser sempre estável; a saída do sistema deve responder ao sinal de comando da
entrada; a saída não deve sofrer com perturbações externas; e todos os requisitos citados
devem ser obedecidos, independentemente das variações e imprecisões que vierem a ocorrer
seja por meios externos (mudança de temperatura, por exemplo) ou internos (avaria de algum
componente de um motor).
O sinal de saída de um sistema dependerá diretamente se este é controlado por malha
aberta ou fechada. Num sistema de malha aberta, de acordo com Ogata (2010), o sinal de
saída não exerce influência no controle do sistema, sendo que em alguns casos o controle em
malha aberta atinge o nível de precisão desejada. Como exemplo, pode-se citar um semáforo,
que automaticamente muda as suas cores para controlar o tráfego numa via (vermelho para
parada obrigatória, amarelo para atenção e verde para permissão para passar).
O contrário ocorre num sistema de malha fechada. De acordo com Franklin et al.
(2013), a informação da saída é enviada ao controlador para influenciar a variável controlada,
como no caso de uma estufa. Um exemplo é a temperatura de uma sala fornecida por um
forno, que precisa se manter estável mesmo com as variações externas. O dispositivo
responsável por controlar a temperatura irá lê-la continuamente, de modo a poder ajustá-la
automaticamente. O diagrama de blocos mostrado na Figura 1.2 ilustra o exemplo descrito.
3
Figura 1.2: Diagrama de Blocos para um sistema de controle de temperatura de uma sala.
1.1. OBJETIVO
O presente trabalho traz como objetivo instrumentar e automatizar uma estufa com
recirculação de ar utilizando o Arduino, desenvolvendo um controle do tipo ON/OFF da
temperatura ao automatizar o sistema de aquecimento da mesma.
1.2. JUSTIFICATIVA
2. REVISÃO BIBLIOGRÁFICA
2.1. ESTUFA
Uma estufa é um aparato que permite a criação de um ambiente adequado para que
plantas possam se desenvolver sem sofrerem com condições ambientais diversas, sendo que
estas plantas podem ser para alimentação ou podem ser ornamentais, como no caso das flores
(MARANGONI, DE SOUZA e MOREIRA, 2014).
Embora essa seja uma definição correta de estufa, esta também pode ser um aparato
utilizado para executar a secagem de algum produto, como no caso da madeira, de maneira
constante, podendo inclusive ser automatizada, de modo a se aumentar a segurança de uso e
diminuir os custos de operação (CARDOSO, 2017).
Uma estufa para secagem é composta basicamente por um sistema de controle, que
tem a função de ajustar a temperatura do interior da estufa de acordo com as suas
necessidades e por um sistema de circulação de ar, que deve promover o movimento do ar
quente, para a temperatura se manter uniforme em todos os pontos do ambiente da estufa
(CARDOSO, 2017).
Por se tratar de um equipamento que utiliza calor para conseguir executar a secagem
de algum produto, uma estufa pode ser considerada um sistema térmico. Conforme Ogata
(2010), um sistema térmico possui o comportamento de um sistema de primeira ordem. Desse
modo, ao se aplicar um sinal na entrada do sistema, será obtida uma curva com
comportamento crescente.
Santos et al. (2017), com o intuito de se identificar o modelo matemático de uma
estufa, utilizou um Arduino Pro Mini para aplicar um sinal PWM (Pulse Width Modulation)
de 255 bits na mesma, obtendo uma curva característica de resposta a um degrau unitário, que
pode ser observada na Figura 2.1.
8
𝐶(𝑠) 1
= (1)
𝑅(𝑠) 𝜏𝑠 + 1
𝐾
𝐻(𝑠) = (2)
𝜏𝑠 + 1
Onde:
K é o ganho do sistema.
𝑦(∞) − 𝑦(0)
𝐾= (3)
𝐴
O valor de 0,632 corresponde ao tempo que o sistema leva para atingir 63,2 % da
variação total do degrau aplicado em sua entrada (MELO, 2007).
Considerando-se que um equipamento como uma estufa pode demorar um
determinado período de tempo para atingir a temperatura desejada, é interessante se conhecer
a resposta transitória do sistema a um degrau unitário. Ogata (2010) diz que esta resposta
depende diretamente da entrada do sistema.
Dessa forma, o processo para se conhecer a resposta transitória, utiliza-se
primeiramente como condição inicial, o sistema em repouso, ou seja, com todas as suas
variáveis de saída e respectivas derivadas iguais à zero (OGATA, 2010).
A análise de resposta transitória permite identificar certas características que ajudam a
explicar o comportamento do sistema até que este atinja o regime permanente, quando
teoricamente não haverá oscilações. A primeira característica de acordo com Ogata (2010) a
ser analisada é o tempo de subida (tr), que é o período de tempo que a resposta leva para
atingir seu valor final.
Partindo-se da premissa de que o sistema não é completamente estável, haverá um
sobressinal (Mp) que indicará em porcentagem quanto a resposta ultrapassou seu valor final.
O tempo de duração desse sobressinal é o chamado tempo de pico (tp).
Após este pico, a resposta tenderá a retornar para seu valor final, demorando um
determinado período de tempo para que se estabilize e entre em regime permanente, sendo
chamado de tempo de acomodação (ts). É importante salientar que a resposta em regime
permanente pode variar de 2 a 5 %. A Figura 2.2 apresenta o comportamento típico de um
controle ON/OFF.
10
De acordo com Tillmann et al. (1998), as estufas devem passar por avaliações quanto
sua estabilidade de temperatura, igualdade de aquecimento, ventilação, taxa de fluxo de ar e o
tempo para a recuperação da temperatura quando inseridas as amostras. Essa avaliação
mostra-se importante para uma utilização mais eficaz das estufas, de acordo com regras
nacionais e internacionais o aquecimento da estufa quando preaquecida e após abertura deve-
se retornar a temperatura requerida em 15 minutos aproximadamente.
Dessa forma, utilizar um microcontrolador para se controlar uma estufa pode ser
importante para que se possa integrar os dados colhidos por sensores e controlar o
funcionamento da mesma, como no trabalho de Litjens (2009), que utilizou um PIC 16F877
para monitorar e automatizar os equipamentos de uma estufa de cultivo de plantas.
Litjens (2009) faz uso de um sensor LDR (Light Dependent Resistor) para leitura de
luminosidade e um sensor de temperatura LM35 dentro da estufa, sendo que as informações
colhidas por eles são monitoradas pelo PIC, que por sua vez faz a transmissão de dados para
um computador por radiofrequência.
Cardoso (2017) automatizou uma estufa de secagem de madeira utilizando um CLP
(Controlador Lógico Programável), de modelo Clic 02-Weg. Neste caso, a linguagem de
programação do CLP foi a Ladder, cuja utilidade é específica para este caso.
Marangoni, de Souza e Moreira (2014) utilizou a plataforma Arduino para a
automação de uma estufa de secagem, colhendo a temperatura através de um termistor NTC.
Foram usados ainda, dois ventiladores para se fazer a refrigeração da estufa a partir da
temperatura lida pelo termistor. Foi comparada a estufa automatizada com uma não
automatizada, concluindo-se que a automação da primeira, foi vital para o controle de
temperatura, podendo-se assim, obter um melhor rendimento nos cultivos a serem realizados.
Na Figura 2.3, pode-se ver as estufas produzidas para a pesquisa, sendo que a automatizada
está à direita.
11
Martins et al. (2002) diz que nos processos de trocas térmicas por radiação podemos
dividi-los em três termos:
1- Radiação emitida;
2- Radiação proveniente da região da chama e absorvida pelo termopar;
3- Radiação proveniente da vizinhança do termopar.
fornecida por uma fonte ou bateria. Utilizam-se divisores de tensão para coletar corrente de
fuga entre eletrodos (BATISTA e BORBA, 2011).
Fonte: Própria.
𝐸
𝑉𝑥 = 𝑅𝑥 ∗ (5)
𝑅𝑡
3. METODOLOGIA
A estufa de secagem utilizada neste trabalho é da marca Nova Ética, modelo 400/4ND,
que trabalha com uma tensão de 220 VCA, em 60 Hz e possui potência de 1580 W, sendo
alocada no Laboratório de Máquinas e Acionamentos Elétricos (LAMAE) na Faculdade de
Engenharia (FAEN), da Universidade Federal da Grande Dourados (UFGD). A Figura 3.1
apresenta a estufa de secagem (inoperante) antes de passar por alterações.
Sendo assim, foi inserido bornes na tampa lateral (Figura 3.3) com o objetivo de
instrumentar a estufa para o uso de controladores sem a necessidade de abertura do
equipamento. Para tal, foi escolhido o terminal do tipo banana, dada a sua facilidade de se
conectar, além de sua disponibilidade. O esquemático que será montado servirá para deixar a
estufa preparada para receber qualquer plataforma de micro controlador sem a necessidade de
maiores adaptações.
O Arduino foi programado para atuar através da utilização de dois botões de pulsar
para regulagem da temperatura interna desejada da estufa, desta forma, mantendo-a aquecida.
Por questões operacionais e de segurança as temperaturas de funcionamento foram limitadas
de 10 °C até 300 °C, conforme indicado no manual da estufa (Figura 3.4).
Para efetuar a leitura de temperatura por meio do Arduino, foi necessário utilizar um
divisor de tensão, pois o Arduino não é capaz de medir a resistência elétrica sem o auxílio de
um sensor, podendo apenas medir tensão elétrica. Desta forma, montou-se um simples
circuito em série, combinando um resistor de valor ôhmico conhecido (995 Ω) ligado à
alimentação de 5 VCC proporcionada pelo Arduino com o sensor de temperatura pt100 da
estufa, que por sua vez é ligado ao terra do próprio Arduino. Na Figura 3.9 pode-se observar o
esquemático descrito.
𝑉1 𝑉2
= (6)
𝑅1 𝑅2
𝑉1 = 5 − 𝑉2 (7)
23
𝑅1 × 𝑉2
𝑅2 = (8)
5 − 𝑉2
Foram efetuados ensaios na estufa com o sensor pt100 para verificar se seu
comportamento estava correto quando comparado a um termo resistor convencional. Para tal,
por meio do multímetro foi efetuada a medida da resistência nos terminais do sensor e
comparados com a tabela de um fabricante (Figura 3.10) e com a leitura da temperatura
interna da estufa por outro multímetro.
350
y = 2,655x - 265,17
300 R² = 0,9998
250
Temperatura (°C)
200
150
100
50
0
0 50 100 150 200 250
-50
Resistência (Ω)
Figura 3.13: Regime de aquecimento até 300 °C e resfriamento com o recirculador de ar desligado.
Figura 3.14: Regime de aquecimento até 300 °C e resfriamento com o recirculador de ar ligado.
Por meio da análise da resposta dos ensaios de aquecimento da estufa, verifica-se que
as rampas de aquecimento da estufa apresentam um comportamento semelhante. Desta forma,
será realizado o cálculo da função de transferência utilizando apenas um dos casos, podendo
ser aplicado ao outro sem diferenças significantes.
Sendo assim, foi efetuado o cálculo da função de transferência da estufa com o
recirculador de ar desligado, para um controle do tipo ON/OFF. Primeiramente identificaram-
se os valores inicial (equação 10) e máximo (equação 11) de temperatura.
Sabendo-se o valor no eixo das abscissas, o valor correspondente para o eixo das
ordenadas é mostrado na equação 13.
(414,65 − 19,69)
𝐾= =
̃ 0,25 (14)
1580
0,25
𝐺(𝑠) = (15)
2291𝑠 + 1
28
29
4. RESULTADOS E DISCUSSÃO
Devido ao fato da estufa ser um aparato hermético com boa isolação térmica, ocorre a
chamada inércia térmica, que por sua vez faz com que a temperatura interna do equipamento
continue a aumentar, mesmo após o desligamento do atuador.
No experimento, primeiramente implementou-se o sistema de controle ON/OFF por
histerese de temperatura, sendo que um diferencial de temperatura é calculado para ligar e
desligar o atuador, evitando assim uma variação brusca quando a temperatura atual está muito
próxima da temperatura de setpoint.
Durante a realização dos testes, este diferencial (histerese) foi ajustado para alcançar a
estabilidade do sistema. A Figura 4.2 apresenta o comportamento da temperatura para uma
30
histerese de +/- 2,50 °C, sendo que a uma temperatura de 101,25 °C o atuador desliga e
quando este atinge 98,75 °C, o atuador religa.
108
106
104
102
100
98
96
94
0 500 1000 1500 2000
Tempo (s)
Para uma histerese de +/- 5,00 °C, o atuador desliga na temperatura de 100,00 °C, e
religa na temperatura de 95,00 °C. O comportamento da temperatura neste caso é dado pela
Figura 4.3.
115
Temperatura (°C)
110
105
100
95
90
0 200 400 600 800 1000 1200 1400 1600
Tempo (s)
O sistema novamente foi testado com uma histerese de +/- 2,50 °C (Figura 4.4), sendo
que desta vez o atuador desliga com 100,00 °C e religa com 97,50 °C.
108
106
104
102
100
98
96
94
0 500 1000 1500 2000 2500 3000
Tempo (s)
Em seguida o sistema foi testado com uma histerese de +/- 1,00 °C, onde atuador liga
na temperatura de 100,00 °C e desliga com 99,00 °C, sendo apresentada a curva resultante na
Figura 4.5.
106
104
102
100
98
96
94
0 500 1000 1500 2000 2500
Tempo (s)
106
104
102
100
98
96
94
0 200 400 600 800 1000 1200 1400 1600 1800
Tempo (s)
Após análise de todos os testes realizados, verifica-se que nenhum foi estável, pois
todos ultrapassaram os 5 % de tolerância. Provavelmente, o causador da instabilidade é o
ruído existente nas portas analógicas do Arduino, influenciando nas tensões medidas e
consequentemente, fazendo com que o cálculo das resistências também fique impreciso.
Com isso, foi colocado em prática um sistema ON/OFF com uma lógica aprimorada,
sendo que este ligava a chave estática assim que a temperatura ficava abaixo da temperatura
de setpoint e desligava todas as vezes que a temperatura anteriormente lida pelo Arduino
fosse maior que a temperatura atual.
O teste foi realizado com três diferentes temperaturas para verificar a estabilidade do
sistema de controle, estabelecendo um limite de 5 % de erro para a temperatura definida como
setpoint. A Figura 4.7 apresenta o comportamento da temperatura para diferentes setpoints,
sendo estes de 100 °C, 150 °C e 200 °C, respectivamente.
33
200
Temperatura (°C)
150
100
50
0
0 2000 4000 6000 8000 10000 12000
Tempo (s)
Por meio das curvas apresentadas na Figura 4.7, verifica-se uma melhora considerável
no controle da temperatura, não havendo variações bruscas na curva em azul.
Para uma análise mais específica da curva de temperatura, tem-se a curva de
temperatura da Figura 4.8 para um setpoint de 100,00 °C, em que a média de temperatura
obtida dentro de cada ciclo foi de aproximadamente 101,28 °C.
104
Temperatura (°C)
102
100
98
96
94
0 500 1000 1500 2000
Tempo (s)
Temperatura (°C)
154
152
150
148
146
144
142
140
0 500 1000 1500 2000 2500
Tempo (s)
Fonte: Própria.
Com o setpoint em 200 °C, a média dentro de cada ciclo foi de aproximadamente
199,83 °C. A Figura 4.10 mostra o comportamento da temperatura neste caso.
210
Temperatura (°C)
205
200
195
190
185
0 500 1000 1500 2000 2500
Tempo (s)
Com a análise dos resultados, verifica-se que o sistema está estável com lógica
aprimorada, onde o erro foi menor que 5 %. Comparando-se as respostas das Figuras 4.8, 4.9
e 4.10, quanto maior o valor do setpoint, mais tempo se leva para atingir o setpoint após o
ligamento ou desligamento da chave estática. Este é um comportamento esperado, já que
naturalmente leva-se mais tempo para atingir temperaturas mais elevadas.
35
1,2
0,8
0,6
%
0,4
0,2
0
0 500 1000 1500 2000 2500 3000 3500 4000
-0,2
Tempo (s)
própria estrutura hermética da estufa, que é feita justamente para permitir que o mínimo de
calor escape para o ambiente.
Existe a possibilidade de que se houvesse uma fonte fria no interior da estufa, o calor
gerado pelo equipamento se transferiria mais rapidamente para a fonte fria, fazendo com que
o tempo de acomodação pudesse ser menor.
37
5. CONCLUSÃO
REFERÊNCIAS
APÊNDICE
[001] double pino_A5 = 5; // porta analógica do arduino que vai ler a temperatura
[002] int R1 = 995; // valor ôhmico da resistência de controle
[003] double leitura; // variável responsável pela leitura da porta A5
[004] double Tensao_de_trabalho = 5.0; // tensão que o arduino opera
[005] double Voltagem_R2; // variável a ser calculada para se obter e resistência
[006] double Resistencia; // variável a ser calculada para se obter a temperatura
[007] double Temperatura; // temperatura no interior da estufa
[008] int chave_estatica = 3; // porta defina como saída para atuar na chave estática
[009] int botaovermelho; // botão destinado a aumentar a temperatura
[010] int botaoazul; // botão destinado a diminuir a temperatura
[011] double temp; // variável que define o setpoint da estufa
[012] int estadobotaovermelho; // variável que define se o botão está ou não pressionado
[013] int estadobotaoazul; // variável que define se o botão está ou não pressionado
[014] int a; //variável de controle que define o estado da chave estática
[015] double temp_anterior; // registra a última temperatura de setpoint no looping
[016] double Temperatura_anterior; // registra a última temperatura da estufa no looping
[017] int temp_min; // variável que representa a temperatura mínima a ser mantida dentro dos
5% de erro
[018] int temp_max; // variável que representa a temperatura máxima a ser mantida dentro dos
5% de erro
[019] int estadobotaobranco; // variável que define se o botão está ou não pressionado
[020] void setup()
[021] {
[022] botaovermelho = 7; // define a porta a qual o botão vermelho deve ser ligado
[023] botaoazul = 6; // define a porta a qual o botão azul deve ser ligado
[024] pinMode(chave_estatica, OUTPUT); // define como saída a chave estática
[025] digitalWrite(chave_estatica, LOW); // a chave estática começa desligada
[026] delay(500); // tempo de atraso em milissegundos
[027] Serial.begin(9600); //inicia o monitor serial
[028] Serial.println("CLEARDATA"); // apaga tudo o que está escrito no Excel
44
[060]
[061] pinMode (botaovermelho, INPUT_PULLUP); // define como entrada a porta do botão
em uma função que mantem a porta em estado ligado própria para uso de botões
[062] pinMode (botaoazul, INPUT_PULLUP);
[063]
[064] Temperatura_anterior = Temperatura; //registra a temperatura anteriormente lida
[065] temp_anterior = temp; //registra a temperatura de setpoint anteriormente lida
[066] }
[067]
[068] void loop() //inicia o processo de looping
[069] {
[070]
[071]
[072] for (double i = 0; i < 1000; i++) {
[073] leitura += analogRead(pino_A5);
[074] }
[075] leitura = (leitura / 1000);
[076] Voltagem_R2 = (Tensao_de_trabalho / 1023.0) * leitura;
[077] Resistencia = R1 * Voltagem_R2 / (Tensao_de_trabalho - Voltagem_R2);
[078] Temperatura = Resistencia * 2.6555 - 265.17;
[079]
[080] boolean estadobotaovermelho = digitalRead (botaovermelho); // transforma o estado
do botão em uma variável booleana
[081] boolean estadobotaoazul = digitalRead (botaoazul);
[082] if (estadobotaoazul == LOW) { //se o botão estiver pressionado
[083] if (temp == 10) { // limita a temperatura mínima em 10 °C
[084] temp = 10;
[085] } else {
[086] temp = temp - 1; // diminui a temperatura de setpoint
[087] }
[088] }
[089] if (estadobotaovermelho == LOW) { //se o botão estiver pressionado
[090] if (temp == 300) { // limita a temperatura máxima em 300 °C
[091] temp = 300;
46
[092] }
[093] else {
[094] temp = temp + 1; // aumenta a temperatura de setpoint
[095] }
[096] }
[097] delay (1000);
[098] if (temp_anterior != temp) { // caso o botão tenha sido pressionado recalcula a
temperatura mínima e a temperatura máxima
[099] temp_min = temp - (temp * 0.05);
[100] temp_max = temp + (temp * 0.05);
[101] }
[102] if ((Temperatura_anterior > Temperatura) && (Temperatura < temp)) { //se a
temperatura da estufa estiver diminuindo em relação a última leitura e estiver abaixo da
temperatura de setpoint
[103] digitalWrite(chave_estatica, HIGH); // liga a chave estática
[104] a = 1; //registra o estado da chave estática
[105] }
[106] if ((Temperatura_anterior < Temperatura) && (Temperatura > temp_min)) { // se a
temperatura estiver aumentando em relação a leitura anterior e estiver acima da temperatura
da mínima a chave estática é desligada
[107] digitalWrite(chave_estatica, LOW); // desliga a chave estática
[108] a = 0; //registra o estado da chave estática
[109] }
[110] if (Temperatura >= temp_max) { // garante uma redundância que a chave estática será
desligada caso a temperatura ultrapasse 5%
[111] digitalWrite(chave_estatica, LOW); // desliga a chave estática
[112] a = 0; //registra o estado da chave estática
[113] }
[114] if (Temperatura <= temp_min) { //condição para caso a temperatura da estufa esteja
abaixo dos 5% (regime de aquecimento inicial)
[115] digitalWrite(chave_estatica, HIGH); // liga a chave estática
[116] a = 1; //registra o estado da chave estática
[117] }
[118]
47