UNIVERSIDADE FEDERAL DO CEARÁ CENTRO DE TECNOLOGIA
CURSO DE GRADUAÇÃO EM ENGENHARIA ELÉTRICA
CONTROLADOR DE TEMPERATURA UTILIZANDO UM PI DIGITAL APLICADO A UM NOBREAK DE 1 KVA
Daniel Carvalho Bezerra
Fortaleza Novembro de 2010
ii
DANIEL CARVALHO BEZERRA
CONTROLADOR DE TEMPERATURA UTILIZANDO UM PI DIGITAL APLICADO A UM NOBREAK DE 1 KVA
Monografia submetida à Universidade Federal
do Ceará como parte dos requisitos para
graduação em Engenharia Elétrica.
Orientador: Prof. Msc. Paulo Peixoto Praça
Fortaleza Novembro de 2010
iii
DANIEL CARVALHO BEZERRA
CONTROLADOR DE TEMPERATURA UTILIZANDO UM PI DIGITAL APLICADO A UM NOBREAK DE 1 KVA
Esta monografia foi julgada adequada para obtenção do título de Graduado em Engenharia
Elétrica e aprovada em sua forma final pelo programa de Graduação em Engenharia Elétrica
na Universidade Federal do Ceará.
Banca Examinadora:
Fortaleza, Novembro de 2010
iv
Aos meus pais, Adailton e Luzia,
A minha namorada Larissa e a minha irmã Ana Cláudia,
A todos os meus professores, que contribuíram com a minha formação,
A todos os familiares e amigos.
v
Bezerra, D. C. “Controlador de Temperatura Utilizando um PI Digital Aplicado a um
Nobreak de 1 kVA”, Universidade Federal do Ceará – UFC, 2010, 54p.
Neste trabalho foram abordados o projeto, implementação, montagem e obtenção dos resultados de um controlador PI digital de temperatura com a finalidade de controlar a temperatura no interior de um nobreak com potencia nominal de 1 kVA. O projeto do controlador foi baseado no método experimental de Ziegler e Nichols da resposta ao degrau (malha aberta). O controlador foi implementado digitalmente em um microcontrolador PIC 16F877A. A metodologia de projeto e resultados experimentais do protótipo são apresentadas para validar a análise teórica e comprovar o desempenho do sistema.
Palavras-Chave: Controle de temperatura, PIC, controle digital, PI, PID.
vi
Bezerra, D. C. e “Temperature Controller Using a Digital PI Applied to a UPS of 1 kVA”, Universidade Federal do Ceará – UFC, 2010, 54p.
This work presents the project, implementation, assembly and the results of a PI digital controller of temperature applied to a UPS with nominal output of 1 kVA. The project of the controller was based on the experimental method of Ziegler and Nichols of the step response (open loop). The controller was digitally implemented in a microcontroller PIC 16F877A. The methodology of the project and the results of the prototype are presented in order to validate the theoretical analysis and to prove the system performance.
Keywords: Temperature controller, PIC, digital controller, PI, PID.
vii
SUMÁRIO LISTA DE FIGURAS ............................................................................................................... ix
LISTA DE TABELAS .............................................................................................................. xi
INTRODUÇÃO .......................................................................................................................... 1
CAPÍTULO 2
MICROCONTROLADORES .................................................................................................... 3
2.1 CONSIDERAÇÕES INICIAIS .................................................................................. 3
2.2 INTRODUÇÃO AOS MICROCONTROLADORES ................................................ 3
2.3 BREVE HISTÓRICO ................................................................................................. 4
2.4 ARQUITETURAS DOS MICROCONTROLADORES ........................................... 5
2.4.1 ARQUITETURA CISC 5
2.4.2 ARQUITETURA RISC 6 2.5 MICROCONTROLADORES DA SÉRIE PIC .......................................................... 7
CAPÍTULO 3
CONTROLADORES PID DIGITAIS ....................................................................................... 9
3.1 CONSIDERAÇÕES INICIAIS .................................................................................. 9
3.2 CONTROLE DE TEMPERATURA ........................................................................ 10
3.3 AÇÃO DE CONTROLE LIGA/DESLIGA (ON/OFF) ........................................... 11
3.4 AÇÃO PROPORCIONAL ....................................................................................... 12
3.5 AÇÃO PROPORCIONAL – INTEGRAL ............................................................... 13
3.6 AÇÃO PROPORCIONAL – DERIVATIVA .......................................................... 15
3.7 AÇÃO PROPORCIONAL – INTEGRAL – DERIVATIVA................................... 16
3.8 CONTROLE DIGITAL ............................................................................................ 17
3.9 IMPLEMENTAÇÃO DIGITAL .............................................................................. 19
3.10 MÉTODOS PRÁTICOS DE SINTONIA DE CONTROLADORES PID ............... 21
3.10.1 MÉTODO DO GANHO CRÍTICO (MALHA FECHADA) 21
3.10.2 MÉTODO DA RESPOSTA AO DEGRAU (MALHA ABERTA) 22 CAPÍTULO 4
DESCRIÇÃO DO DESENVOLVIMENTO DO CONTROLADOR ...................................... 25
4.1 CONSIDERAÇÕES INICIAIS ................................................................................ 25
4.2 CONFIGURAÇÃO E DESCRIÇÃO GERAL DE FUNCIONAMENTO ............... 25
4.3 MODELO DO CONTROLADOR DE TEMPERATURA EM MALHA
FECHADA. .......................................................................................................................... 26
viii
4.4 DESCRIÇÃO DO PROJETO ................................................................................... 32
4.5 O SOFTWARE DO CONTROLADOR ................................................................... 36
4.6 MONTAGEM DO CONTROLADOR ..................................................................... 38
CAPÍTULO 5
RESULTADOS EXPERIMENTAIS ....................................................................................... 41
5.1 CONSIDERAÇÕES INICIAIS ................................................................................ 41
5.2 DESCRIÇÃO DO EXPERIMENTO ....................................................................... 41
5.3 RESULTADOS EXPERIMENTAIS. ...................................................................... 41
CAPÍTULO 6
CONCLUSÃO .......................................................................................................................... 43
REFERÊNCIAS BIBLIOGRÁFICAS ..................................................................................... 44
APÊNDICE A – PROGRAMA DO MICROCONTROLADOR ............................................. 46
ix
LISTA DE FIGURAS
Figura 1.1 – Diagrama de blocos de um sistema de controle PID.............................................. 1
Figura 2.1 – Organização interna dos microcontroladores ......................................................... 4
Figura 2.2 – Arquitetura CISC ................................................................................................... 5
Figura 2.3 – Arquitetura RISC ................................................................................................... 6
Figura 3.1 – Diagrama de blocos de um sistema de controle em malha fechada, baseado num
controlador PID ................................................................................................................ 10
Figura 3.2 – Resposta rápida: a temperatura atinge rapidamente o setpoint e se estabiliza após
alguns overshootings ........................................................................................................ 10
Figura 3.3 – Resposta lenta: a temperatura demora a alcançar o setpoint ................................ 11
Figura 3.4 – Resposta apropriada: a temperatura atinge o setpoint no menor tempo possível
sem a ocorrência de overshooting .................................................................................... 11
Figura 3.5 – Características da ação do controle ON/OFF ....................................................... 12
Figura 3.6 – Características da ação de controle Proporcional................................................. 13
Figura 3.7 – Características das ações de controle Proporcional e Integral combinados ......... 14
Figura 3.8 – Características das ações de controle Proporcional e Derivativo combinados .... 16
Figura 3.9 – Diagramas de blocos do controlador no tempo contínuo e do controlador digital
.......................................................................................................................................... 19
Figura 3.10 – Curva obtida pelo método do ganho crítico ....................................................... 22
Figura 3.11 – Curva obtida pelo método da resposta ao degrau............................................... 23
Figura 4.1 – Diagrama de blocos do controlador PI digital de temperatura ............................. 25
Figura 4.2 – Diagrama de blocos do controlador PI em malha fechada ................................... 26
Figura 4.3 – Circuito de teste utilizado para obtenção da resposta ao degrau .......................... 27
Figura 4.4 – Circuito de teste montado no nobreak .................................................................. 27
Figura 4.5 – Exaustor montado no nobreak .............................................................................. 28
Figura 4.6 – Característica da resposta ao degrau .................................................................... 29
Figura 4.7 – Característica da resposta ao degrau (gráfico para obtenção do valor da constante
de tempo T) ....................................................................................................................... 29
Figura 4.8 – Característica da resposta ao degrau (gráfico para obtenção do valor do atraso L)
.......................................................................................................................................... 29
Figura 4.9 – Diagrama de blocos do sistema em malha fechada com o controlador PI ........... 30
Figura 4.10 – Resultado da simulação do controlador ............................................................. 31
Figura 4.11 – Diagrama de pinos do PIC 16F877A ................................................................. 32
x
Figura 4.12 – Esquema elétrico das conexões do microcontrolador ........................................ 33
Figura 4.13 – Esquema elétrico das conexões do exaustor ...................................................... 34
Figura 4.14 – Esquema elétrico do teclado............................................................................... 34
Figura 4.15 – Esquema elétrico das conexões do mostrador LCD ........................................... 35
Figura 4.16 – Esquema elétrico da fonte de alimentação ......................................................... 35
Figura 4.17 – Tela principal ..................................................................................................... 37
Figura 4.18 – Tela de ajuste da máxima temperatura permitida .............................................. 37
Figura 4.19 – Tela de ajuste da mínima temperatura permitida ............................................... 38
Figura 4.20 – Tela que mostra a razão cíclica em percentual e a temperatura média. ............. 38
Figura 4.21 – Gravador de PIC utilizado na programação do microcontrolador ..................... 38
Figura 4.22 – Placa do teclado e do LCD; (a) projeto; (b) placa montada ............................... 39
Figura 4.23 – Placa principal; (a) projeto; (b) placa montada e detalhe do sensor de
temperatura ....................................................................................................................... 39
Figura 4.24 – Visão geral da montagem dos componentes ...................................................... 40
Figura 4.25 – Placa do teclado e do LCD montada sobre a tampa superior ............................. 40
Figura 5.1 – (a) Gráficos das temperaturas e (b) da ação de controle obtidos durante 90
minutos do experimento ................................................................................................... 42
xi
LISTA DE TABELAS
Tabela 2.1 – Tabela comparativa entre as arquiteturas CISC e RISC ........................................ 7
Tabela 3.1 – Tabela de sintonia de Ziegler e Nichols pelo método do ganho crítico ............... 22
Tabela 3.2 – Tabela de sintonia de Ziegler e Nichols pelo método da resposta ao degrau ...... 23
Introdução
1
INTRODUÇÃO
Os Controladores PID são bastante utilizados em controles industriais, tais como contro-
le de pressão, de nível, de velocidade, de temperatura, etc. Das malhas de controle na indús-
tria, 95% são baseadas em controladores PID e suas variações, e em sua maioria são controla-
dores PI [1].
Esses controladores são projetados, em sua maioria, com a resposta de um modelo de
referência de segunda ordem e, a partir do conhecimento da planta a ser controlada, encontra-
se os parâmetros de ganho proporcional, integral e derivativo do controlador PID. Este contro-
lador, utilizado em cascata com esta planta, em malha fechada, possibilita que a mesma
acompanhe a resposta do modelo da melhor forma possível, [1].
O esforço realizado pelo controlador é para determinar à inversa da função de transfe-
rência da planta, de forma que o valor desejado para a operação do sistema seja transferido
diretamente para a saída.
Ainda há pouco estudo na resolução dos problemas na sintonia de controladores, visto
que os métodos clássicos de sintonia apresentam resultados satisfatórios para a maioria das
aplicações.
A Figura 1.1 mostra o diagrama de blocos de um sistema de controle PID.
Figura 1.1 – Diagrama de blocos de um sistema de controle PID.
O controle da temperatura no interior de equipamentos eletrônicos é essencial para que
tenham a confiabilidade e a durabilidade exigidas. Este trabalho tem o objetivo de reunir os
conhecimentos adquiridos durante o curso de engenharia elétrica para desenvolver um contro-
lador PI para controlar a temperatura no interior de um nobreak, que originalmente não possui
um controle de temperatura ativo.
Introdução
2
O controlador é implementado digitalmente em um microcontrolador da família PIC e a
temperatura é controlada através do controle da velocidade de rotação de um exaustor instala-
do no interior do nobreak.
No capítulo 2 é feita uma revisão da literatura a respeito dos microcontroladores.
No capítulo 3 é feita uma revisão da literatura relativa aos controladores PID e seus mé-
todos de sintonia empíricos.
O capítulo 4 descreve o desenvolvimento, a modelagem e a implementação do controla-
dor escolhido.
Os resultados e as discussões são apresentados no capítulo 5.
No capítulo 6 são apresentadas as conclusões e as sugestões para trabalhos futuros.
CAPÍTULO 2 – Microcontroladores.
3
CAPÍTULO 2
MICROCONTROLADORES
2.1 - CONSIDERAÇÕES INICIAIS
Este capítulo apresenta uma introdução aos microcontroladores. São apresentadas suas
principais características, um breve histórico e os principais tipos de arquiteturas.
2.2 - INTRODUÇÃO AOS MICROCONTROLADORES
Os microcontroladores são dispositivos eletrônicos dotados de processador, memória e
interfaces de entrada e saída, exatamente como os computadores, porém com todos esses re-
cursos agregados em uma única pastilha de circuito integrado. Por meio da programação dos
microcontroladores pode-se controlar suas saídas, tendo como referência as entradas ou um
programa interno [2].
Os tipos de microcontroladores podem ser diferenciados pelos seguintes itens: a quanti-
dade de memória interna para armazenar dados e as instruções de programas (memória de
programa e memória de dados), a velocidade de processamento, a quantidade de pinos de I/O,
a forma de alimentação, os tipos e as quantidades de periféricos, a arquitetura e o conjunto de
instruções disponibilizado nos circuitos internos.
Por terem tamanho reduzido, baixo custo, baixo consumo de energia, aliados a facilida-
de de desenvolvimento de aplicações, os microcontroladores são amplamente utilizados na
automação industrial e na construção de aparelhos eletrônicos de uso geral.
Destacam-se vantagens da integração dos circuitos necessários aos sistemas de controle
junto da CPU, central processing unit ou unidade central de processamento, e dessa forma,
não é preciso um processador sofisticado, com uma grande capacidade de processamento [3].
O microcontrolador oferece um conjunto de instruções simples, que geram programas de rá-
pida execução, ou seja, instruções de tamanho reduzido. Além disso, é interessante que a CPU
possa efetuar expressões booleanas, para facilitar a construção de sistemas de controle. É pre-
ciso ainda oferecer uma forma simples de se comunicar com outros periféricos que venham a
ser adicionados, com pinos específicos para entrada de clock, frequência de oscilação, sinais
CAPÍTULO 2 – Microcontroladores.
4
analógicos, digitais e de controle do próprio dispositivo. A organização de um microcontrola-
dor é explicada na Figura 2.1.
Figura 2.1 – Organização interna dos microcontroladores.
2.3 - BREVE HISTÓRICO
Visando adquirir uma melhor eficiência no processamento de dados, na década de 70
começaram a ser utilizados microprocessadores em computadores. Um dos pioneiros foi o
microprocessador Intel, e, a partir de sua criação, gerou um grande interesse em melhorar o
sistema de processamento de dados por meio dos microprocessadores. O microcontrolador
surgiu a partir da arquitetura do microprocessador e seus periféricos, que serviram de base
para a criação de um componente que, fisicamente integrado em uma única unidade, compor-
tava um sistema equivalente a um microprocessador e seus periféricos.
Com o passar dos anos e com os avanços da tecnologia, os microcontroladores torna-
ram-se uma das melhores relações custo/benefício em se tratando de soluções que demandam
processamento, baixo custo de hardware e pequena necessidade de espaço físico.
Existem no mercado muitos tipos de microcontroladores, sendo o 8051 o mais popular.
A ATMEL possui uma enorme família de componentes com as mesmas características do
8051, alguns até com as mesmas pinagens dos registradores; outros com pinagens diferentes,
mas com o mesmo conjunto de instruções, com clock de 4 MHz até aproximadamente 10
CAPÍTULO 2 – Microcontroladores.
5
MHz. A DALLAS Semiconductors tem um microcontrolador de alta performance, de até
90MHz, compatível com 8051.
Por fim, vem a Microchip Technology Inc. com os microcontroladores da série PIC que
se tornaram muito populares, graças a um bom plano de marketing, baseado na disseminação
de uma ferramenta de auxílio à construção de programas – o MPLAB IDE. Os microcontrola-
dores da série PIC possuem ainda uma linguagem Assembly menos complexa em relação
àquelas disponibilizadas por outros fabricantes.
2.4 - ARQUITETURAS DOS MICROCONTROLADORES
Os Microcontroladores são estruturados internamente de diversas formas, e, a partir
dessa estrutura, serão definidos vários aspectos em seu desempenho, capacidade de armaze-
namento, consumo e programação. Múltiplas formas de estruturação são utilizadas e imple-
mentadas pelos fabricantes, aplicando conceitos consolidados de computação.
As duas principais arquiteturas serão explicadas a seguir.
2.4.1 - ARQUITETURA CISC
Criada em 1964, a arquitetura CISC (complex instruction set computer – computador
com conjunto de instruções complexas) possui instruções mais complexas com o objetivo de
minimizar o número de instruções que um programa necessita para sua implementação.
A arquitetura CISC tradicional utiliza o mesmo barramento, tanto para fazer a busca de
instruções na memória de programa quanto para acessar (escrever ou ler) a memória de dados
(Figura 2.2).
Figura 2.2 – Arquitetura CISC.
O número de ciclos por instruções pode aumentar, assim como o próprio tempo de reló-
gio. Um exemplo de aplicação seria a família do microcontrolador 8051 e seus derivados, ori-
ginalmente da Intel e com pouco mais de 100 instruções.
CAPÍTULO 2 – Microcontroladores.
6
2.4.2 - ARQUITETURA RISC
Criada em 1980, a arquitetura RISC (reduced instruction set computer – computador
com conjunto de instruções reduzido) é caracterizada pela redução do tempo médio de execu-
ção das instruções de máquina, que, apesar de ocasionar um menor número de ciclos por ins-
truções, aumenta o número de instruções executadas por programa.
Na arquitetura RISC a maioria das instruções são executadas em um único ciclo e a
maior parte das funções migrou para o software, deixando no hardware somente as que podem
ser implementadas eficientemente.
Diferente da arquitetura CISC, a estrutura RISC é baseada em barramentos independen-
tes para dados (Figura 2.3) e para programa com tamanhos diferenciados. Por exemplo, um
microcontrolador pode ter o barramento de dados de 8 bits, enquanto que o de programa é de
14 bits, o que significa que uma instrução pode ser constituída de uma única palavra de pro-
grama que além de conter o opcode (instrução), contém também os operandos (dados para
execução da instrução) [1].
Figura 2.3 – Arquitetura RISC.
Os elementos básicos de uma arquitetura RISC são: grande número de registradores de
propósito geral ou uso de tecnologias de compilação na otimização do uso de registradores,
conjunto simples e limitado (reduzido) de instruções e enfoque na utilização de pipeline de
instruções.
Na Tabela 2.1 é feita uma comparação entre a arquitetura CISC e a arquitetura RISC.
CAPÍTULO 2 – Microcontroladores.
7
Tabela 2.1 – Tabela comparativa entre as arquiteturas CISC e RISC
CISC RISC
Instruções complexas levando múltiplos ciclos
Instruções simples levando um ciclo
Qualquer instrução pode referência à memória
Apenas LOAD’s e STORE’s referenciam a memória
Pouco pipelined Altamente pipelined (2 ciclos: busca,
executa)
Instruções interpretadas pelo microprograma Instruções executadas pelo hardware
Instruções de vários formatos Instruções de formato fixo
Muitas instruções modos Poucas instruções modos
Microprograma complexo Compilador complexo
Poucos registradores Muitos registradores
Mais transistores na pastilha Menos transistores na pastilha
Projeto mais lento Projeto mais rápido
2.5 - MICROCONTROLADORES DA SÉRIE PIC
Os PICs são uma família de microcontrolador com arquitetura RISC fabricados pela
Microchip Technology Inc. e derivados do PIC1650, originalmente desenvolvido pela divisão
de microeletrônica da General Instrument.
Um microcontrolador da família PIC caracteriza-se por incorporar no mesmo encapsu-
lamento um microprocessador, com a finalidade de interpretar as instruções de programa e
processar dados; memória de programa, para armazenar de maneira permanente as instruções
do programa; memória de dados, para memorizar os valores associados com as variáveis defi-
nidas no programa; uma série de pinos de entrada/saída, com a finalidade de realizar a comu-
nicação do microcontrolador com o meio externo; e vários periféricos, tais como temporiza-
dores, controladores de interrupção, temporizadores cão de guarda, WatchDog Timers, comu-
nicação serial, geradores de modulação por largura de pulso, PWM, e conversores analógi-
co/digital; fazendo com que o hardware final fique extremamente complexo. Isto é uma das
características fundamentais que o diferencia dos microprocessadores, pois estes não possuem
todos esses recursos em uma única pastilha [2].
CAPÍTULO 2 – Microcontroladores.
8
A Microchip oferece famílias de microcontroladores de 8 bits no barramento de dados,
dentre as quais destacam-se:
• PIC12CXXX: linha compacta;
• PIC16C5X/PIC16C55X: linha-base;
• PIC16CXX: linha intermediária;
• PIC17CXX/PIC18CXX: topo de linha.
Todas as famílias oferecem diversas opções de memória de programa. Além disso, apre-
sentam opções de baixa tensão e inúmeros tipos de circuito osciladores, assim como várias
opções de encapsulamento.
O alto desempenho da família de microcontroladores PIC pode ser atribuído às seguin-
tes características de arquitetura RISC:
• Mapa de registradores versátil;
• Todas as instruções com palavras simples;
• Palavra de instrução longa;
• Arquitetura de instruções em pipeline;
• Instruções de apenas um ciclo de máquina;
• Conjunto de instruções reduzido;
• Conjunto de instruções ortogonal (simétrico).
CAPÍTULO 3 – Controladores PID digitais de temperatura.
9
CAPÍTULO 3
CONTROLADORES PID DIGITAIS
3.1 - CONSIDERAÇÕES INICIAIS
Este capítulo apresenta as principais características das várias ações que constituem um
controlador PID, Proporcional, Integral e Derivativo. Em seguida são apresentados e exempli-
ficados alguns métodos práticos de sintonia.
Existe o método analítico que consiste em sintonizar os modos PID para uma aplicação
específica, de modo que determinados critérios de desempenho sejam verificados. Este é usa-
do sempre que a função de transferência do sistema é conhecida [4].
Nos métodos práticos de sintonia, não existe a necessidade de conhecer o modelo do
sistema, algumas vezes muito difícil de determinar. Nestes métodos o primeiro passo é a esco-
lha do modo de controle a ser utilizado, Proporcional, Integral, Derivativo ou uma combina-
ção destes. Uma vez tomada a decisão, procede-se o ajuste dos parâmetros do controlador. O
ajuste, calibração ou sintonia, do controlador consiste em deduzir, partindo da resposta, quan-
do este é sujeito a entradas específicas, determinados valores que vão permitir o cálculo dos
referidos parâmetros [4].
Antes de proceder à apresentação de dois métodos práticos de sintonia, é necessário
analisar algumas das ações básicas de controle utilizadas na indústria e a sua contribuição pa-
ra a resposta de um sistema.
A Figura 3.1 mostra o diagrama de blocos de um sistema de controle em malha fechada,
baseado num controlador PID, onde o sinal de erro atuante, que é a diferença entre o sinal de
entrada e o sinal de realimentação, realimenta o controlador para minimizar o erro e acertar a
saída do sistema, variável controlada, ao valor desejado, ponto de ajuste [5].
CAPÍTULO 3 – Controladores PID digitais de temperatura.
10
Figura 3.1 – Diagrama de blocos de um sistema de controle em malha fechada, baseado num controlador PID.
3.2 - CONTROLE DE TEMPERATURA
A temperatura alvo, ponto de ajuste, é o valor de entrada do controlador de temperatura.
O tempo necessário para o controle de temperatura atingir um valor estável varia com o objeto
controlado. A tentativa de reduzir o tempo de resposta, usualmente resultará em sobressinal, a
temperatura ultrapassa a temperatura alvo, ou oscilação, a temperatura oscila em torno da
temperatura alvo.
Há aplicações que exigem maior rapidez e estas têm resposta como ilustrado na Figura
3.2, com ocorrência de sobressinal. Há as que exigem a eliminação do sobressinal e estas ne-
cessitarão de um tempo mais longo para a estabilização da temperatura, como mostra a res-
posta da Figura 3.3. Em outras palavras, o tipo de controle de temperatura varia com a aplica-
ção. O tipo de resposta mostrado na Figura 3.4 é usualmente considerado o melhor para a
maioria das aplicações [6].
Figura 3.2 – Resposta rápida: a temperatura atinge rapidamente o alvo e se estabiliza após alguns
sobressinais.
CAPÍTULO 3 – Controladores PID digitais de temperatura.
11
Figura 3.3 – Resposta lenta: a temperatura demora a alcançar o alvo.
Figura 3.4 – Resposta apropriada: a temperatura atinge o alvo no menor tempo possível sem a ocorrência de
sobressinal.
3.3 - AÇÃO DE CONTROLE LIGA/DESLIGA ( ON/OFF)
Esta é a forma mais simples e barata de controle e, por essa razão, extremamente utili-
zada tanto em sistemas de controle industriais como domésticos. Para um controle do tipo
proposto neste trabalho, onde se deseja resfriar o interior de um equipamento utilizando um
exaustor, se a temperatura é maior que a alvo a saída é ligada, caso contrário, a saída é desli-
gada como mostra a Figura 3.5. Este método de controle é chamado de ação de controle li-
ga/desliga, ou do inglês, on/off. Nesta operação, a temperatura é controlada com dois valores,
normalmente 0% e 100% da razão cíclica. Por esta razão, a operação é também chamada de
ação de controle de duas posições [5].
Na prática, existe uma zona diferencial de liga e desliga, histerese, que se deve às carac-
terísticas mecânicas do próprio controlador, bem como às necessidades de se evitar manobras
frequentes que poderiam desgastar elementos do sistema de controle [7]. Reduzindo esta zona
diferencial, a amplitude da oscilação de saída pode ser reduzida. Entretanto, aumenta o núme-
ro de operações da chave de controle por intervalo de tempo o que reduz a vida útil do com-
ponente [5].
CAPÍTULO 3 – Controladores PID digitais de temperatura.
12
Figura 3.5 – Características da ação do controle ON/OFF.
3.4 - AÇÃO PROPORCIONAL
Para um controle estável, é necessário reduzir a taxa de decida da temperatura, quando
esta se aproxima do alvo, e assim, evitar sobressinal. O controlador proporcional tem a rela-
ção entre a sua saída e o sinal de erro dada por:
ut Ket Us KEs (3.1)
Onde K é o ganho proporcional.
Um controlador proporcional consiste essencialmente num amplificador com ganho
ajustável [4]. Em operação normal, a saída de controle estará 100%, se o valor do processo for
maior do que a banda proporcional. A saída de controle decrescerá gradualmente, em propor-
ção ao desvio, se o valor do processo estiver dentro da banda proporcional, e a saída estará
desligada, se o valor do processo atingir o alvo, isto é, sem desvio. Isto significa que a ação
proporcional garante controle suave comparada com a forma oscilatória da ação de controle
liga/desliga como mostrado na Figura 3.6 [6].
Com a banda proporcional grande, menor valor de K, o processo estabiliza-se em um
tempo menor, porém com maior erro em regime permanente. Com a diminuição da banda
proporcional, maior valor de K, a estabilização ocorre mais lentamente, porém com erro re-
duzido. Uma redução excessiva da banda proporcional pode levar o processo à instabilidade,
tornando a resposta oscilatória. O ajuste da banda proporcional faz parte do processo chamado
de sintonia do controle [8].
CAPÍTULO 3 – Controladores PID digitais de temperatura.
13
Figura 3.6 – Características da ação de controle Proporcional.
Quando o alvo é atingido, nenhuma energia é entregue a saída de controle, neste caso o
exaustor, o que faz com que volte a surgir desvio na temperatura. Por causa disto, um controle
Proporcional puro nunca consegue se estabilizar com um erro nulo. Muitos controladores que
operam apenas no modo proporcional adicionam um valor constante ao valor medido para
garantir que ao atingir o alvo alguma energia seja entregue ao sistema, tipicamente 50%. Este
valor constante é denominado viés, ou do inglês, bias, e, quando ajustável, permite que se ob-
tenha uma estabilização mais próxima ao alvo [8].
3.5 - AÇÃO PROPORCIONAL – INTEGRAL
A ação integral não é, isoladamente, uma técnica de controle, pois não pode ser empre-
gada separada de uma ação proporcional [8]. No controlador proporcional – integral, a saída é
agora função do erro e da integral do erro:
ut K et 1T eτdτ
Us K 1 1T. s Es (3.2)
Onde T é o tempo integral, ou o tempo necessário para que a contribuição da ação inte-
gral igual a da ação proporcional e é expresso em segundos ou minutos [4].
A componente integral, ao adicional um polo na origem da função de transferência do
controlador, elimina o erro em regime permanente, independente do sistema controlado como
mostrado na Figura 3.7 [4].
CAPÍTULO 3 – Controladores PID digitais de temperatura.
14
A ação integral funciona da seguinte maneira: a intervalos regulares, corrige o valor da
saída, somando a esta o valor do desvio. Este intervalo de atuação se chama tempo integral,
que pode também ser expresso por seu inverso, chamado taxa integral, Ir. O aumento da taxa
integral aumenta a atuação do Integral no controle do processo.
Se, por um lado, como já referido anteriormente, a ação Integral elimina o erro em re-
gime permanente, por outro, aumenta o tempo de estabelecimento e piora a estabilidade rela-
tiva, o que usualmente é indesejável. Como consequência, o ganho da ação Proporcional deve
ser reduzido, sempre que esta esteja combinada com a ação Integral. O controlador PI (pro-
porcional - integral) é utilizado em sistemas com frequentes alterações de carga, sempre que o
controlador proporcional, por si só, não seja capaz de reduzir o erro estacionário a um nível
aceitável. Contudo, o sistema deve ter alterações de carga relativamente lentas para evitar os-
cilações induzidas pela ação integral [4].
Figura 3.7 – Características das ações de controle Proporcional e Integral combinados.
CAPÍTULO 3 – Controladores PID digitais de temperatura.
15
3.6 - AÇÃO PROPORCIONAL - DERIVATIVA
A ação derivativa é utilizada para que a saída seja proporcional ao valor do erro e à de-
rivada do erro, ou seja, à taxa de variação do erro o que proporciona uma rápida mudança no
nível de saída como resultado de uma rápida variação na temperatura medida. O fato de a saí-
da ser proporcional à taxa de variação do erro implica que o modo derivativo nunca possa ser
usado sozinho, uma vez que só responde a regimes transientes [4]. O controlador proporcional
– derivativo tem a relação entre a sua saída e o sinal de erro dada por:
ut = K et+ Tde(t)
dt Us = K1 + T. sE(s) (3.3)
Onde T é o tempo derivativo, ou o tempo antecipado pela ação derivativa relativamente
à ação proporcional e é expresso em segundos ou minutos [4].
As ações de controle proporcional e de controle integral respondem lentamente à varia-
ção da temperatura, o que justifica porque a ação de controle derivativo é necessária. A ação
de controle derivativo corrige o resultado do controle pela adição da saída de controle propor-
cional à inclinação da variação de temperatura. Uma grande quantidade de saída de controle é
adicionada para um distúrbio externo radical como mostrado na Figura 3.8, portanto corrigin-
do a temperatura rapidamente [6].
A adição do modo derivativo ao modo proporcional resulta num controlador altamente
sensível, uma vez que o modo derivativo, ao responder a uma taxa de variação do erro, permi-
te correções antes de o erro ser elevado. Não obstante o modo derivativo não afetar direta-
mente o erro em regime permanente, adiciona amortecimento ao sistema, estabilizando-o, e
assim permite o uso de valores de ganho proporcional (K) mais elevados, o que implica em
um menor erro em regime permanente. Um inconveniente deste modo é o de acentuar o ruído
de alta frequência [4].
CAPÍTULO 3 – Controladores PID digitais de temperatura.
16
Figura 3.8 – Características das ações de controle Proporcional e Derivativo combinados.
3.7 - AÇÃO PROPORCIONAL – INTEGRAL – DERIVATIVA
O controle PID, ou proporcional – integral – derivativo, resulta da combinação dos mo-
dos proporcional, integral e derivativo e tem a relação entre a sua saída e o sinal de erro dada
por:
ut K et 1T eτdτ
T detdt Us K 1 1T. s T. s Es (3.4)
Neste tipo de controlador, o modo integral é usado para eliminar o erro estacionário. O
modo derivativo 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. No entanto, es-
tas propriedades assumem um carácter geral, pelo que podem existir exceções em determina-
dos sistemas.
CAPÍTULO 3 – Controladores PID digitais de temperatura.
17
Geralmente, um K elevado tem o efeito de reduzir o tempo de subida e o erro em regi-
me permanente, sem nunca o eliminar. O controle integral terá como efeitos, por um lado,
eliminar o erro em regime permanente e, por outro, piorar a resposta transitória, isto é, torná-
la mais oscilatória. Sempre que se utilizar o controle integral, deve-se sempre testar inicial-
mente com um K reduzido. A utilização do controle derivativo tem como principal conse-
quência uma melhoria da estabilidade do sistema, reduzindo o sobressinal e melhorando a
resposta transitória [4].
O tipo de controlador a ser escolhido para uma determinada aplicação, idealmente, deve
ser o controlador mais simples que satisfaça a resposta desejada. Esta é uma escolha que ge-
ralmente só se pode fazer quando a aplicação é simples ou quando existe alguma informação
relativa a aplicações semelhantes [4].
A seleção do controlador deve depender das condições de operação do sistema e de es-
pecificações de desempenho tais como, o erro estacionário máximo, o sobressinal máximo e
tempo de estabelecimento permitido. Se o erro estacionário não é tolerado, então o modo in-
tegral deve ser incluído no controlador, uma vez que esta é a única ação que o permite elimi-
nar ou reduzir. A necessidade da ação derivativa pode ser ditada por um sobressinal máximo
e/ou tempo de estabelecimento. Se um reduzido erro estacionário não é critico para as condi-
ções operativas do sistema, então é possível omitir o modo integral, e o uso do modo derivati-
vo depende entre outros fatores da necessidade ou não de adicionar ganho suplementar ao
modo proporcional [4].
Como regra geral, pode-se afirmar que se adiciona o modo proporcional para obter um
determinado tempo de subida, que se adiciona o modo derivativo para obter um determinado
sobressinal e que o modo integral só deve ser introduzido para eliminar o erro estacionário
[4].
3.8 - CONTROLE DIGITAL
Para implementar uma lei de controle de tempo contínuo, tal como controle PID em um
microcontrolador ou em computador digital, pode ser feita fazendo-se aproximações numéri-
cas da derivada e da integral que aparecem na lei de controle.
A combinação das ações proporcional, integral e derivativa para gerar um só sinal de
controle dá origem ao que chamamos de controlador proporcional integral derivativo ou sim-
plesmente PID. O objetivo é aproveitar as características particulares de cada uma destas
CAPÍTULO 3 – Controladores PID digitais de temperatura.
18
ações a fim de se obter uma melhora significativa do comportamento transitório e em regime
permanente do sistema controlado. O sinal de controle gerado pelo controlador PID é assim
genericamente dado como:
ut = K et+ 1
T eτdτ + T
de(t)
dt
(3.5)
Na qual ut é a variável de controle e et é o erro entre o valor da saída do sistema
controlado e o valor do alvo, ou da referência. A variável de controle é a soma de três termos:
termo P, que é proporcional ao erro, o termo I, que é proporcional à integral do erro, e termo
D, que é proporcional à derivada do erro. Os parâmetros do controlador são o ganho proporci-
onal K, o tempo integral T, e o tempo derivativo T [1].
Os requisitos sobre um sistema de controle PID podem incluir muitos fatores, tais como
respostas aos sinais de comando, insensibilidade a ruído e variações de processo, e rejeição de
distúrbios de carga. O projeto do sistema de controle também envolve aspectos de processos
dinâmicos, saturação do atuador, e características de distúrbios. Pode parecer surpreendente
que um controlador tão simples quanto um controlador PID possa trabalhar tão bem. Em ge-
ral, muitos processos industriais podem ser controlados razoavelmente bem com controle PID,
dado que as exigências no desempenho do controlador não sejam altas [1].
A ação derivativa não é frequentemente utilizada. É uma observação interessante que
muitos controladores industriais tenham somente a ação PI e que em outros controladores a
ação derivativa pode ser desligada. Pode-se mostrar que o controle PI é adequado para todos
os processos onde as dinâmicas são essencialmente de primeira ordem. É fácil descobrir se
este é o caso, observando-se a resposta ao degrau do processo. Se a resposta ao degrau asse-
melha-se a de um sistema de primeira ordem, então o controle PI é suficiente. Outra razão é
quando o processo é projetado para que sua operação não exija controle fino, mesmo se o pro-
cesso tem dinâmica de alta ordem, necessita apenas de uma ação integral para eliminar o erro
de regime, e de uma resposta transiente adequada, proporcionada pela ação proporcional [1].
Similarmente, o controle PID é suficiente para processos onde a dinâmica dominante é
de segunda ordem. Para tais processos, não há um ganho de benefício usando um controlador
mais complexo. Um caso típico de melhoramento da ação derivativa é quando as dinâmicas
são caracterizadas por constante de tempo que diferem em amplitude. A ação derivativa pode
ser usada para acelerar a resposta. Controle de temperatura é um caso típico. O controle deri-
vativo é também benéfico quando se exige controle fino de um sistema de ordem superior. As
dinâmicas de ordem superior limitariam o resultado do ganho proporcional para o bom con-
CAPÍTULO 3 – Controladores PID digitais de temperatura.
19
trole. Com uma ação derivativa, a evolução da oscilação amortecida é evitada, daí um ganho
proporcional alto pode ser usado para aumentar a resposta transiente [1].
Os benefícios dos controladores mais sofisticados que o PID são citados em alguns
exemplos: Processos de ordem superior, mais que dois; Sistemas com tempo morto longo;
Sistemas com modos oscilatórios [1].
3.9 - IMPLEMENTAÇÃO DIGITAL
A implementação do controlador PI pode ser feita fazendo-se aproximações numéricas
da derivada e da integral que aparecem na lei de controle [1]. Desta forma, é possível descre-
ver cada uma das ações por uma equação de diferenças. A equação de diferenças descreve a
operação matemática a ser programada no microcontrolador onde será implementado o PI di-
gital conforme a Figura 3.10 [10].
Figura 3.9– Diagramas de blocos do controlador no tempo contínuo e do controlador digital.
CAPÍTULO 3 – Controladores PID digitais de temperatura.
20
A equivalência entre o sistema contínuo e o sistema discreto pode ser dada pela aproxi-
mação de Tustin [10]:
s =2
T
z − 1
z + 1 (3.6)
Onde:
s: é a variável de Laplace
z: é a variável de transformada Z
T: é o tempo de amostragem.
A função do controlador PI no domínio de Laplace é dada por:
ut = K et+ 1
T eτdτ
Us = K 1 +1
T. sE(s) (3.7)
Onde: : é a saída do controlador
E(s): é o erro
K: é o ganho proporcional
T: é o tempo integral
T: é o tempo derivativo
Utilizando a aproximação de Tustin:
Uz = K 1 +1
.
E(z) (3.8)
Reescrevendo a função de transferência do controlador PI:
Uz = K
z +
z − 1E(z) (3.9)
z − 1Uz = K 2T + T
2T z. Ez+ K −2T + T
2TE(z) (3.10)
z. Uz − Uz = K 2T + T
2T z. Ez+ K −2T + T
2TE(z) (3.11)
CAPÍTULO 3 – Controladores PID digitais de temperatura.
21
Dividindo por z, temos:
Uz = z. Uz+ K 2T + T
2TEz + z. K −2T + T
2TE(z) (3.12)
A equação de diferenças do controle PI é:
uk = uk − 1 + K 2T + T
2T ek+ K −2T + T
2T e(k − 1) (3.13)
3.10 - MÉTODOS PRÁTICOS DE SINTONIA DE CONTROLADORE S PID
Vários métodos de ajuste de controladores PID são conhecidos e utilizados na prática de
sistemas de controle. Cada um destes métodos requer algum tipo de informação sobre a dinâ-
mica do processo a ser controlado e a natureza desta informação é que caracteriza cada um
destes métodos. Para um método prático de ajuste, deve ser possível obter estas informações a
partir de ensaios simples sobre o processo, ao mesmo tempo em que estas informações devem
ser suficientes para possibilitar um ajuste adequado do controlador. Logo, a quantidade ade-
quada de informação a ser obtida do processo deve ser selecionada de forma a alcançar um
compromisso entre simplicidade e desempenho do controlador.
3.10.1 - MÉTODO DO GANHO CRÍTICO (MALHA FECHADA)
Este método é baseado no ajuste de um circuito em malha fechada até se obter oscila-
ções com amplitude constante e utiliza um conjunto de fórmulas para determinar os parâme-
tros do controlador, as quais requerem duas medidas do sistema: o ganho crítico, Gu (ganho
mínimo que torna o processo criticamente estável), e o período de oscilação correspondente,
Pu.
Para encontrar os valores do ganho crítico e do período de oscilação, deve-se reduzir
as ações integral e derivativa ao seu efeito mínimo, iniciar o processo com ganho reduzido e ir
aumentando até que a variável controlada entre em oscilação com amplitude constante en-
quanto se provocam pequenas oscilações no sistema com mostrado na Figura 3.11 [4].
CAPÍTULO 3 – Controladores PID digitais de temperatura.
22
Figura 3.10 – Curva obtida pelo método do ganho crítico.
Com a obtenção destes valores, podemos recorrer à Tabela 3.1 para determinar os va-
lores dos parâmetros dos controladores [4].
Tabela 3.1 – Tabela de sintonia de Ziegler e Nichols pelo método do ganho crítico
Tipo de Controlador K T T
P K 0,5. G - -
PI K 0,45. G T P1,2 -
PID K 0,6. G T P2 T P8
Analisando a Tabela 3.1 verifica-se que o ganho proporcional é reduzido em 10% ao
adicionar o modo integral, pois este torna o sistema menos estável, o ganho proporcional au-
menta e o ganho integral é reduzido ao adicionar o modo derivativo, pois este estabiliza o sis-
tema. Quando o não existir a ação integral (controlador PD), os valores de 0,6 Gu e 0,125 Pu
são muito conservadores, um vez que a ausência do modo integral aumenta a estabilidade do
sistema [11].
3.10.2 - MÉTODO DA RESPOSTA AO DEGRAU (MALHA ABERTA )
O procedimento normal no ajustamento dos parâmetros por este método consiste na
abertura da malha para que não haja realimentação e na obtenção da sua resposta a um degrau
de amplitude M na entrada de referência. A resposta deverá ter uma forma em S, em situação
contrária o método não é aplicável, como ilustrado na Figura 3.12 [4].
CAPÍTULO 3 – Controladores PID digitais de temperatura.
23
Figura 3.11 – Curva obtida pelo método da resposta ao degrau.
A curva em S pode ser caracterizada por duas constantes: o atraso L e a constante de
tempo T, sendo estas determinadas ao passar uma tangente pelo ponto de inflexão da curva.
Nos pontos onde a tangente intercepta o eixo das abcissas e a linha horizontal com ordenada
K, obtemos L e T, respectivamente.
Uma vez obtidos experimentalmente L, T e N (declive máximo = K/T), podemos recor-
rer à Tabela 3.2 para determinar os valores dos parâmetros dos controladores [4].
Tabela 3.2 – Tabela de sintonia de Ziegler e Nichols pelo método da resposta ao degrau
Tipo de Controlador K T T
P K MN. L - -
PI K 0,9.MN. L T L
0,3 -
PID K 1,2.MN. L T 2. L T L
2
A resposta em S é característica de sistemas de 1ª ordem com atraso, a função de trans-
ferência da planta pode ser descrita como [9]:
YsUs
K. e.T. s 1 (3.14)
Onde Kc é o ganho estacionário e Kc = K/M.
A principal vantagem deste método em relação ao anterior deve-se ao fato de que, uma
vez determinada a curva de reação do método, os parâmetros podem ser ajustados imediata-
mente.
CAPÍTULO 3 – Controladores PID digitais de temperatura.
24
A sua principal desvantagem decorre de grande parte dos sistemas serem mais comple-
xos do que um simples sistema de primeira ordem com atraso, o que significa que ainda é ne-
cessário um último ajuste no ganho antes de se poder considerar que a resposta do sistema é
“aceitável” [4].
É importante realçar que não existem conclusões gerais relativas à exatidão ou aptidão
destes métodos empíricos. A única inferência possível é que estes métodos conduzem a pri-
meiras aproximações dos parâmetros dos controladores, que se podem considerar “razoáveis”,
e que os valores obtidos podem necessitar de posteriores ajustes para fazer face à especifici-
dade de cada sistema, até que “performances” ótimas sejam atingidas [4].
CAPÍTULO 4 – Descrição do desenvolvimento do controlador.
25
CAPÍTULO 4
DESCRIÇÃO DO DESENVOLVIMENTO DO CONTROLADOR
4.1 - CONSIDERAÇÕES INICIAIS
Este capítulo tem a finalidade de apresentar o projeto do controlador de temperatura,
que tem como objetivo manter a temperatura dentro de um nobreak em torno de um valor
aceitável para o funcionamento do equipamento. O controlador é implementado digitalmente
através de programação no microcontrolador da família PIC 16F877A [12]. O circuito de con-
trole é responsável pela geração dos pulsos que servirão para acionar um exaustor para reduzir
a temperatura no interior do nobreak. O modelo do nobreak escolhido foi o STAY 1.000 fa-
bricado pela Microsol e com capacidade de 1 kVA.
4.2 - CONFIGURAÇÃO E DESCRIÇÃO GERAL DE FUNCIONAMEN TO
A Figura 4.1 apresenta o diagrama de blocos do controlador PI digital de temperatura.
Figura 4.1 – Diagrama de blocos do controlador PI digital de temperatura.
O estabelecimento da temperatura alvo é feito por meio dos botões do teclado, e, uma
vez atingida, a temperatura deverá manter-se dentro da faixa de tolerância.
Para monitorar a temperatura no interior do nobreak, é utilizado um sensor de tempera-
tura LM35 [13] próximo aos dissipadores de calor da placa de controle do nobreak. Este sen-
CAPÍTULO 4 – Descrição do desenvolvimento do controlador.
26
sor, ao ser alimentado com um tensão de 5 volts no terminal positivo e zero volts no terminal
negativo, produz na saída um nível de tensão que varia entre zero e 1,5 volt para temperaturas
entre zero e 150 °C, ou seja, cada 10 milivolts na saída do sensor corresponde a 1 ºC.
Este nível de tensão é lido pelo microcontrolador através da porta A/D (analógi-
ca/digital). O microcontrolador fará a leitura das amostras numa taxa de amostragem de 1
amostra por segundo.
Depois de obtidas dez amostras do valor da temperatura, é feita média aritmética e esta
é comparada com valor da temperatura alvo, o microcontrolador processa o erro e envia a in-
formação necessária para o acionador do transistor. O exaustor irá girar numa velocidade va-
riável conforme o acionamento do transistor, reduzindo a temperatura no interior do nobreak
até atingir o valor da temperatura alvo. O controlador digital de temperatura permite visuali-
zar os valores das temperaturas alvo e atual no interior do nobreak (variável de processo), por
meio de um mostrador digital LCD (liquid crystal display - display de cristal líquido) com 2
linhas e 16 caracteres por linha [14]. Utilizando mostrador digital e o teclado também é possí-
vel configurar valores máximo e mínimo para a temperatura alvo e visualizar a saída do con-
trolador variando entre 0 e 100%.
4.3 - ESTRUTURA DO CONTROLADOR DE TEMPERATURA EM MA LHA
FECHADA
O diagrama de blocos da Figura 4.2 mostra os elementos básicos de um controlador PI
em malha fechada. A planta e o controlador são conectados em um elo de realimentação nega-
tiva.
Figura 4.2 – Diagrama de blocos do controlador PI em malha fechada.
CAPÍTULO 4 – Descrição do desenvolvimento do controlador.
27
A resposta a um degrau na entrada da planta mostrada na Figura 4.6 foi obtida utilizan-
do um circuito com um sensor de temperatura LM35, um microcontrolador PIC 16F877A, um
circuito integrado MAX232 [15] para compatibilizar a comunicação serial assíncrona entre o
microcontrolador e o um computador e um transistor para o acionamento do exaustor. Este
circuito era, originalmente, um controlador de temperatura do tipo liga/desliga e foi adaptado
para obter a resposta ao degrau da planta. O a placa do circuito é mostrada na Figura 4.3.
Figura 4.3 – Circuito de teste utilizado para obtenção da resposta ao degrau.
O circuito de teste montado com o sensor de temperatura próximo aos dissipadores de
calor da placa de controle do nobreak é mostrado na Figura 4.4 e o exaustor montado em uma
das saídas de ventilação do nobreak é mostrado na Figura 4.5.
Figura 4.4 – Circuito de teste montado no nobreak.
CAPÍTULO 4 – Descrição do desenvolvimento do controlador.
28
Figura 4.5 – Exaustor montado no nobreak.
No computador foi desenvolvido um software em linguagem Visual Basic.NET que a
cada segundo recebe, através da porta serial, a temperatura medida pelo microprocessador e,
após 60 minutos, envia um sinal para que o microprocessador ative o exaustor.
Para simular uma condição de carga, foram ligados ao nobreak dois computadores com
processador Intel Core 2. Para evitar que oscilações de carga fossem causadas por diferenças
nos níveis de processamento, em ambos os computadores foi executado o programa OCCT
versão 3.1.0 [16] que simula o uso intenso dos componentes principais do computador.
Com o exaustor desligado, ou seja, com a razão cíclica igual a zero, a saída do sensor de
temperatura se estabilizou em 470 mV (47 ºC). Após o exaustor ser ativado na velocidade
máxima, ou seja, com a razão cíclica igual a 1023, a saída do sensor se estabilizou em 340
mV (34 ºC).
O resultado da medição após a ativação do exaustor e por um período de 90 minutos es-
tá representado na Figura 4.6. Para facilitar a leitura dos valores da constante de tempo T, foi
feita uma aproximação no gráfico da medição e é mostrada na Figura 4.7. Outra aproximação
foi feita para a leitura do valor do atraso L e é mostrada na Figura 4.8.
CAPÍTULO 4 – Descrição do desenvolvimento do controlador.
29
Figura 4.6 – Característica da resposta ao degrau.
Figura 4.7 – Característica da resposta ao degrau, gráfico para obtenção do valor da constante de tempo T.
Figura 4.8 – Característica da resposta ao degrau, gráfico para obtenção do valor do atraso L.
32
34
36
38
40
42
44
46
48
0 5 10 15 20 25 30 35 40 45 50 55 60 65 70 75 80 85 90
Te
mp
era
tura
(°C
)
Tempo (minutos)
32
34
36
38
40
42
44
46
48
0 0,5 1 1,5 2 2,5 3 3,5 4 4,5 5 5,5 6 6,5 7 7,5 8 8,5 9 9,5 10
Te
mp
era
tura
(°C
)
Tempo (minutos)
42
43
44
45
46
47
48
0 0,5 1 1,5 2
Te
mp
era
tura
(°C
)
Tempo (minutos)
CAPÍTULO 4 – Descrição do desenvolvimento do controlador.
30
Usando-se as Figuras 4.7 e 4.8, obtém-se: T = 288 segundos e L = 12 segundos. O valor
de Kc é obtido através da equação 4.1 [11]:
K 340 4701023 0 0,127 (4.1)
A função de transferência do circuito em malha aberta pode ser aproximada como [11]:
Gs 0,127. e.1 288. s (4.2)
Para determinar os valores de K e T foi escolhido o método de sintonia de Ziegler e
Nichols para manha aberta.
K 0,9. TL. K 0,9.288
12. 0,127 170 (4.3)
T L0,3 12
0,3 40 (4.4)
A função de transferência do controlador PI é [11]:
Gs 170 1 140. (4.5)
Ou:
Gs 680. s 174. s (4.6)
A Figura 4.9 mostra o diagrama de blocos do sistema em malha fechada com o contro-
lador PI.
Figura 4.9 – Diagrama de blocos do sistema em malha fechada com o controlador PI.
CAPÍTULO 4 – Descrição do desenvolvimento do controlador.
31
A constante de tempo T é 288 segundos e é recomendado que o tempo de aquisição seja
bem menor que 288/10 = 29 segundos [11]. Para este trabalho foi escolhido um tempo de
aquisição de 10 segundos.
A implementação do controlador PI pode ser feita utilizando aproximações numéricas
da derivada e da integral que aparecem na lei de controle [1]. Desta forma, é possível descre-
ver cada uma das ações por uma equação de diferenças. As equações de diferenças descrevem
as operações matemáticas a serem programadas no microcontrolador onde será implementado
o PI digital. Substituindo-se os parâmetros Kp = -170, Ti = 40 e T = 10 segundos na equação
3.13 tem-se:
uk = uk − 1 + −170. 2.40 + 10
2.40 ek+ −170. −2.40 + 10
2.40 e(k − 1) (4.7)
uk = uk − 1 − 191. ek+ 149. e(k − 1) (4.8)
Utilizando a equação 4.8, foi feita uma simulação do controlador fazendo o erro variar
algumas vezes de -0,5 a 0,5 ºC durante o perído de meia hora. Na figura 4.10 é mostrado o
gráfico do resultado da simulação, sendo a linha azul o erro em °C e em vermelho a razão
cíclica, que é a saída do controlador em valor percentual.
Figura 4.10 – Resultado da simulação do controlador.
0 20 40 60 80 100 120 140 160 180-0.5
0
0.5
1
tempo [x10 segundos]
razã
o cí
clic
a [%
] -
verm
elho
erro
[°C
] -
azul
CAPÍTULO 4 – Descrição do desenvolvimento do controlador.
32
4.4 - DESCRIÇÃO DO PROJETO
O projeto consiste de um microcontrolador que lê a temperatura medida por um sensor
de temperatura LM35 e compara com o valor definido pelo usuário através de um teclado e
um mostrador. A partir do erro, um controlador PI digital programado no microcontrolador
calcula a razão cíclica para controlar um exaustor a partir de um sinal PWM, Pulse-Width
Modulation ou Modulação por largura de pulso, gerado pelo microcontrolador. Desta forma é
controlada a temperatura no interior do nobreak.
O controlador de temperatura baseia-se no microcontrolador da família PIC 16F877A
de 8 bits e núcleo de 14 bits, com 14,3 kbytes de memoria Flash de programa que permite ser
programada eletricamente, 256 bytes de EEPROM, Electrically-Erasable Programmable Re-
ad-Only Memory, com encapsulamento PDIP, Plastic Dual In-Line Package, e suporte a
clock, frequência do oscilador, de até 20 MHz [12].
O microcontrolador dispõe de 33 pinos de I/O (input/output – entrada/saída) divididos
em 5 portas: porta A com 6 pinos (A0 – A5), porta B com 8 pinos (B0 – B7), porta C com 8
pinos (C0 – C7) e porta E com 3 pinos (E0 – E2).
Outros 7 pinos para alimentação, reset e entrada do sinal da clock completam os 40 pi-
nos do microcontrolador conforme a Figura 4.11.
Figura 4.11 – Diagrama de pinos do PIC 16F877A.
Para gerar o clock foi montado um circuito com dois capacitores de 22 pF e um cristal
de 10 MHz conectados aos pinos OSC1 e OSC2. A saída do sensor de temperatura foi conec-
CAPÍTULO 4 – Descrição do desenvolvimento do controlador.
33
tada a porta A0, que é a entrada AN0 do módulo conversor A/D através de um resistor de 1
kΩ. A porta A3, que é a referência do módulo conversor A/D é alimentado por um nível de
tensão de 1,5 volts. A porta C2 é a saída do sinal PWM. As portas B4, B5, B6 e B7 por existir
uma interrupção que detecta mudanças de estados nessas portas, foram escolhidas para serem
as entradas das teclas esquerda (LEFT), cima (UP), baixo (DOWN) e direita (RIGHT) respec-
tivamente. A falta de uma quinta porta com detecção de mudança de estado fez com que o
botão configuração (CONFIG) fosse lido como uma combinação dos botões esquerda e direi-
ta. As portas D4 a D7 fazem a comunicação de 4 bits com o mostrador LCD e as portas E0 e
E1 são as saídas dos sinais E, enable que inicia leitura ou gravação de dados, e RS, registers
select que seleciona registradores para configurar o LCD. As portas C6 e C7 foram disponibi-
lizadas junto com nível de tensão de 5 volts e o terra para alimentar um circuito de comunica-
ção serial que não foi utilizado nesse trabalho. O esquema elétrico com as conexões das portas
do microcontrolador é mostrado na Figura 4.12.
Figura 4.12 – Esquema elétrico das conexões do microcontrolador.
Para controlar o exaustor, o sinal PWM chaveia um transistor TIP31. O exaustor tem o
terminal positivo ligado a um nível de tensão de 12 volts e o terminal negativo ligado ao cole-
tor do transistor. Um diodo 1N4001 é conectado em antiparalelo, roda livre, com o exaustor
para evitar picos durante o chaveamento. O esquema de montagem do exaustor é mostrado na
Figura 4.13.
RA0/AN02
RA1/AN13
RA2/AN2/VREF-/CVREF4
RA4/T0CKI/C1OUT6
RA5/AN4/SS/C2OUT7
RE0/AN5/RD8
RE1/AN6/WR9
RE2/AN7/CS10
OSC1/CLKIN13
OSC2/CLKOUT14
RC1/T1OSI/CCP2 16
RC2/CCP1 17
RC3/SCK/SCL 18
RD0/PSP0 19
RD1/PSP1 20
RB7/PGD 40RB6/PGC 39
RB5 38RB4 37
RB3/PGM 36RB2 35RB1 34
RB0/INT 33
RD7/PSP7 30RD6/PSP6 29RD5/PSP5 28RD4/PSP4 27RD3/PSP3 22RD2/PSP2 21
RC7/RX/DT 26RC6/TX/CK 25
RC5/SDO 24RC4/SDI/SDA 23
RA3/AN3/VREF+5
RC0/T1OSO/T1CKI 15
MCLR/Vpp/THV1
U1
PIC16F877AVDD=5VVSS=TERRA
1.5V
5VTE
RR
A
R61k
5V
R910k
PWM
DOWNUP
67.0
3
1
VOUT 2
U2
LM35
RIGHT
LEFT
D4D5
D6D7
RSE
X1CRYSTALC1
22p
C5
22p
TER
RA
RXTX
CAPÍTULO 4 – Descrição do desenvolvimento do controlador.
34
Figura 4.13 – Esquema elétrico das conexões do exaustor.
O esquema de montagem do teclado é mostrado na Figura 4.14. Os botões UP,
DOWN, LEFT e RIGHT ao serem pressionados, enviam um nível de tensão de 5 volts aos res-
pectivos pinos do microcontrolador. O botão CONFIG é conectado as saídas dos botões LEFT
e RIGHT simulando um pressionamento simultâneo. Dois diodos 1N4148 são usados para
evitar fluxo de corrente no sentido inverso. Sem eles, ao pressionar um dos botões LEFT ou
RIGHT, o outro também teria a saída com nível de tensão de 5 volts e o microcontrolador in-
terpretaria erroneamente com um pressionamento no botão CONFIG.
Figura 4.14 – Esquema elétrico do teclado.
O esquema de montagem do mostrador LCD é mostrado na Figura 4.15. Por ter sido es-
colhida a comunicação em 4 bits, os pinos D0 a D3 do LCD não são utilizados. Por não ser
12V
Q5TIP31PWM
D81N4001
+88.8
kRP
M
R13
120
TER
RA
UP
DOWN
R410k
R1410k
5V
TER
RA
UP
DOWN
CONFIG
LEFT RIGHT
R110k
R210k
RIGHTLEFT
D1
1N4148
D2
1N4148
CAPÍTULO 4 – Descrição do desenvolvimento do controlador.
35
necessária a leitura do LCD, o pino R/W, read/write ou leitura/escrita, é aterrado, pois não
será feita leitura do LCD. Um potenciômetro de 5 kΩ é utilizado para variar o nível de tensão
do pino VEE que regula o contraste do LCD.
Figura 4.15 – Esquema elétrico das conexões do mostrador LCD.
A Figura 4.16 mostra o esquema da fonte de alimentação. Um nível de tensão de 12
volts contínuos é obtido através de uma fonte de alimentação externa. Esse nível de tensão é
utilizado para alimentar o exaustor. Um regulador de tensão L7805CV produz um nível de
tensão de 5 volts para alimentar o microcontrolador, o sensor de temperatura e o mostrador
LCD. A partir do nível de tensão de 5 volts, um divisor de tensão resistivo produz um nível de
tensão de 1,5 volts que serve como referência do conversor analógico-digital do microcontro-
lador.
Figura 4.16 – Esquema elétrico da fonte de alimentação.
5VTE
RR
A D4
D5
D6
D7
RS E
RW
VE
E
TCONT
10K
D7
14D
613
D5
12D
411
D3
10D
29
D1
8D
07
E6
RW
5R
S4
VS
S1
VD
D2
VE
E3
LCD1LM016L
C20.10uF
R73.3k
R81.5K
5V
1.5V
TERRA
C30.33uF
12V
R10100
R11100
VI1 VO 3
GN
D2
U67805
V112V
CAPÍTULO 4 – Descrição do desenvolvimento do controlador.
36
4.5 - O SOFTWARE DO CONTROLADOR
O software implementado no microcontrolador foi escrito em linguagem C e será des-
crito em cinco passos a seguir:
Primeiro passo – O programa inicia com a declaração das variáveis.
Segundo passo – É configurado o modulo CCP1 (comparação, captura e PWM) no mo-
do PWM e o modulo conversor analógico digital para usar o clock interno, AN0 e AN1 como
portas analógicas, tensão de referência pela porta A3 e é selecionada a porta AN0 para leitura.
Em seguida são configurados todos os pinos como entradas ou saídas e o LCD é iniciado.
Após a inicialização do LCD é escrito na primeira linha “Alvo: 0.0°C” e na segunda linha
“Atual: 0.0ºC”. Durante o funcionamento do programa, na tela inicial será mostrado o valor
do setpoint (alvo) na primeira linha e da temperatura atual na segunda linha.
Por último o timer 1 é configurado para disparar uma interrupção cinco vezes por se-
gundo e as interrupções do timer 1, de mudança de nível lógico na porta B (pinos B4 a B7) e
global são ativadas.
Terceiro passo – Inicia-se um laço eterno sem fazer nada.
Quarto passo – Interrupção do timer 1 – Se já tiverem ocorrido 5 interrupções do timer
1 (1 segundo), o programa atualiza o LCD e faz a leitura da saída do sensor de temperatura
calculando a temperatura atual e alimentando a matriz de medições para fazer a média poste-
riormente.
Se já tiverem ocorrido 10 medições (10 segundos), é feita a média aritmética das últi-
mas 10 medições e é calculada a temperatura média. Pela diferença entre a temperatura alvo e
a média, o erro é calculado e o valor da razão cíclica é calculado pela equação 4.8. Em segui-
da os valores do razão cíclica e do erro são salvos, o modulo PWM é configurado com o valor
da razão cíclica e o timer 2, que controla a frequência de oscilação do sinal PWM, é configu-
rado para 610 Hz.
Para calcular o valor da temperatura medida, o valor lido pelo conversor analógico-
digital é multiplicado por 1500, que é a tensão de referência em milivolts, e depois dividido
por 1023, que é a escala de medição do conversor de 10 bits.
Durante os testes iniciais, foi detectada uma oscilação para mais e para menos na leitura
do sensor. Pela precisão deste sensor que é de 1 mV, esta oscilação provavelmente ocorre por
pequenas oscilações na tensão de alimentação do sensor ou por interferências eletromagnéti-
CAPÍTULO 4 – Descrição do desenvolvimento do controlador.
37
cas nos condutores que ligam o sensor a placa de controle. Para evitar que essa oscilação in-
terfira no funcionamento do controlador, é feita a média aritmética das últimas 10 medições.
A frequência de 610 Hz foi escolhida por ser a menor possível com o cristal de 10 MHz
(10.000.000 / 4 / 16 / (255 + 1) = 610 Hz). Durante os testes iniciais, foram utilizadas fre-
quências acima de 20 kHz por estarem fora do limite da audição humana, porem o controle
sobre a velocidade do exaustor foi pouco eficaz. A Microchip (fabricante do microcontrola-
dor) recomenda baixas frequências (30 Hz) nesse tipo de aplicação para um melhor controle
sobre a velocidade do exaustor. A frequência escolhida, apesar de ser audível, apresentou um
bom controle sobre a velocidade do exaustor.
Quinto passo – Interrupção de mudança de nível lógico nos pinos B4 a B7 – Se uma
tecla for pressionada, será executada uma função de acordo com a tela que estiver sendo exi-
bida.
Se estiver na tela principal mostrada na Figura 4.17, os botões UP e DOWN ajustam a
temperatura alvo (setpoint) para mais e para menos de um em um grau Celsius. O botão
CONFIG muda para a tela de ajuste da máxima temperatura permitida. Os botões RIGHT e
LEFT vão para a tela que mostra a razão cíclica em percentual e a temperatura média.
Figura 4.17 – Tela principal.
Se estiver na tela de ajuste da máxima temperatura permitida mostrada na Figura 4.18,
os botões UP e DOWN ajustam o maior valor permitido para a temperatura alvo para mais e
para menos. Os botões RIGHT e LEFT permitem alternar entre as casas das unidades, dezenas
e centenas. O botão CONFIG muda para a tela de ajuste da mínima temperatura permitida.
Figura 4.18 – Tela de ajuste da máxima temperatura permitida.
Se estiver na tela de ajuste da mínima temperatura permitida mostrada na Figura 4.19,
os botões UP e DOWN ajustam o menor valor permitido para a temperatura alvo para mais e
para menos. Os botões RIGHT e LEFT permitem alternar entre as casas das unidades, dezenas
e centenas. O botão CONFIG volta para a tela principal.
CAPÍTULO 4 – Descrição do desenvolvimento do controlador.
38
Figura 4.19 – Tela de ajuste da mínima temperatura permitida.
Se estiver na tela que mostra a razão cíclica em percentual e a temperatura média mos-
trada na Figura 4.20, os botões UP e DOWN não têm função. Os botões CONFIG, RIGHT e
LEFT voltam para a tela principal.
Figura 4.20 – Tela que mostra a razão cíclica em percentual e a temperatura média.
O programa foi gravado no microcontrolador usando o programa IC-Prog versão 1.05D
[17] e um gravador de PIC modelo PicBurner da Worldpic mostrado na Figura 4.21.
Figura 4.21 – Gravador de PIC utilizado na programação do microcontrolador.
4.6 - MONTAGEM DO CONTROLADOR
O controlador foi dividido em duas placas: uma para fazer a interface com o usuário
contendo o mostrador LCD e o teclado, instalada do lado externo do nobreak, e outra com o
restante dos componentes instalada internamente ao nobreak.
A Figura 4.22a mostra o projeto da placa do teclado e do LCD e a Figura 4.22b mostra a
placa montada.
CAPÍTULO 4 – Descrição do desenvolvimento do controlador.
39
Figura 4.22 – Placa do teclado e do LCD; (a) projeto; (b) placa montada.
A Figura 4.23a mostra o projeto da placa principal e a Figura 4.23b mostra a placa mon-
tada. Na figura 4.23b também é mostrado o sensor de temperatura que não foi soldado direta-
mente a placa para poder ser instalado numa posição mais próxima aos dissipadores de calor
da placa de controle do nobreak.
Figura 4.23 – Placa principal; (a) projeto; (b) placa montada e detalhe do sensor de temperatura.
CAPÍTULO 4 – Descrição do desenvolvimento do controlador.
40
Figura 4.24 – Visão geral da montagem dos componentes.
A Figura 4.24 mostra o local de montagem dos componentes do controlador no interi-
or do nobreak e a Figura 4.25 mostra o nobreak montado com a placa do teclado e do LCD
montada sobre a tampa superior.
Figura 4.25 – Placa do teclado e do LCD montada sobre a tampa superior.
Fonte Externa
Circuito Principal
Teclado e LCD
Sensor de temperatura
CAPÍTULO 5 – Resultados experimentais.
41
CAPÍTULO 5
RESULTADOS EXPERIMENTAIS
5.1 - CONSIDERAÇÕES INICIAIS
Este capítulo tem a finalidade de apresentar o resultado dos experimentos com o contro-
lador de temperatura desenvolvido.
5.2 - DESCRIÇÃO DO EXPERIMENTO
Com o controlador já montado no interior do nobreak, o circuito de testes foi novamen-
te montado próximo aos dissipadores de calor da placa de controle do nobreak, para fazer a
aquisição das temperaturas por um computador via porta serial. Os dois computadores utiliza-
do na obtenção da resposta ao degrau do sistema foram novamente ligados ao nobreak e em
ambos foi iniciado o aplicativo OCCT [16] para aumentar a carga sobre o nobreak e, com is-
so, sua temperatura interna, além de tornar a resposta mais plana.
5.3 - RESULTADOS EXPERIMENTAIS
O experimento teve início com o valor da temperatura alvo configurado para 60 °C para
que não houvesse a atuação do exaustor e permitisse que a temperatura interna do nobreak se
elevasse. Após cerca de 1 hora e com a temperatura interna pouco acima de 43 °C, a tempera-
tura alvo foi ajustada em 40 °C e foi dado início a aquisição dos dados. Para diminuir a osci-
lação no valor medido pela placa de testes e ter uma leitura próxima ao do controlador objeto
deste trabalho, a aquisição foi feita a cada segundo e o valor da temperatura armazenado a ca-
da 10 segundos, sendo este valor a média aritmética dos valores obtidos nas últimas 10 aqui-
sições, exatamente como foi programado no controlado de temperatura. O resultado da medi-
ção após o ajuste da temperatura alvo e por um período de 90 minutos está representado na
Figura 5.1a e a ação de controle é mostrada na figura 5.1b.
CAPÍTULO 5 – Resultados experimentais.
42
Figura 5.1 – (a) Gráficos das temperaturas e (b) da ação de controle obtidos durante 90 minutos do experimento.
Analisando os gráficos da Figura 5.1 com as temperaturas obtidas durante o experimen-
to e a ação de controle, é possível notar que o controlador cumpriu com o objetivo para o qual
fora projetado. O valor da temperatura se estabilizou cerca de um grau Celsius abaixo da ra-
zão cíclica e houve um oscilação de apenas cerca de 0,5 °C na temperatura após a estabiliza-
ção provavelmente devido ao ruído na medição.
Por a frequência de chaveamento estar dentro do limite audível pelo ser humano, foi
possível escutar o chaveamento do exaustor quando este operava em baixa velocidade. Em
[18] é descrito um método para suprimir esse ruído acústico.
38
39
40
41
42
43
44
0 5 10 15 20 25 30 35 40 45 50 55 60 65 70 75 80 85 90
Te
mp
era
tura
(°C
)
Tempo (minutos)
0%
10%
20%
30%
40%
50%
60%
70%
80%
90%
100%
0 5 10 15 20 25 30 35 40 45 50 55 60 65 70 75 80 85 90
Ra
zão
Cíc
lica
(%
)
Tempo (minutos)
CAPÍTULO 5 - Conclusão
43
CAPÍTULO 6
CONCLUSÃO
Este trabalho foi realizado com o objetivo de reunir os conhecimentos adquiridos duran-
te o curso de engenharia elétrica para desenvolver um controlador PI, implementado digital-
mente em um microcontrolador da família PIC, para controlar a temperatura no interior de um
nobreak.
Os resultados experimentais comprovaram que o controlador cumpriu com o objetivo
para o qual fora projetado, estabilizando a temperatura cerca de um grau Celsius abaixo do
alvo.
Diante do exposto acima, pode-se afirmar que o objetivo do trabalho foi alcançado, ou
seja, efetivamente foi desenvolvido um controlador PI digital de temperatura aplicado a um
nobreak de 1 kVA.
Como trabalhos futuros, podem-se sugerir inserir um filtro para eliminar o ruído na me-
dição da temperatura, removendo a necessidade do cálculo do valor médio e reduzindo o perí-
odo das aquisições tornando mais suave o controle sobre o exaustor.
Pode-se incluir também como trabalho futuro, utilizar um exaustor com controle direto
por PWM que suporta frequências de chaveamento acima da capacidade de audição humana e
ainda fazer a leitura da velocidade do cooler a fim de se obter um resultado mais preciso.
Referência Bibliograficas
44
REFERÊNCIAS BIBLIOGRÁFICAS
[1] Åström, K. J.; Hägglund, T., PID Controllers: Theory, Design, and Tuning. 2ª Ed.
Carolina do Norte: Instrument Society of America, 1995.
[2] Martins, N. A., Sistemas Microcontrolados. 1ª Ed. Novatec, 2005.
[3] Stallings, W., Arquitetura e Organização de Computadores. 5ª Ed. Pearson Addison
Wesley, 2005.
[4] Loureço, J., Sintonia de controladores P.I.D. Escola Superior de Tecnologia, 1997.
[5] Ogata, K., Engenharia de Controle Moderno. 4ª Ed. São Paulo: Prentice Hall, 2003.
[6] Omron Electronics LLC, Temperature and Process Control Instrumentation. Catálogo
H301-E3-1, 2004, pp. E-1 – E-23.
[7] Kempenich, G., Curso de Projetos de Instrumentação. São Caetano do Sul: Instituto
Mauá de Tecnologia, 1985.
[8] Controladores PID Microprocessados. Disponível em
<HTTP://www.wma.ind.br/downloads.html>. Acesso em 30 de Outubro de 2010.
[9] McDonald, J. S., Temperature Control Using a Microcontroller: An Interdisciplinary
Undergraduate Engineering Design Project. In: IEEE Frontiers in Education Conference,
seção S4H, 1997, pp. 1620-1624.
[10] Campo, A. B, Tópicos Sobre a Teoria de Controle. São Paulo: CEFET/SP, 2004.
[11] Ibrahim, D., Microcontroller Based Temperature Monitoring and Control. 1ª Ed.
Newnes, 2002.
[12] Datasheet PIC16F87XA. Disponível em <HTTP://www.microchip.com>. Acesso em 30
de Outubro de 2010.
[13] Datasheet LM35. Disponível em <HTTP://www.national.com>. Acesso em 30 de
Outubro de 2010.
Referência Bibliograficas
45
[14] Datasheet TM162AAA6-1. Disponível em <HTTP://www.alldatasheet.com>. Acesso em
30 de Outubro de 2010.
[15] Datasheet MAX232. Disponível em <HTTP://www.datasheetcatalog.com>. Acesso em 30
de Outubro de 2010.
[16] Software OCCT versão 3.1.0. Disponível em <HTTP://www.ocbase.com>. Acesso em 30
de Outubro de 2010.
[17] Software IC-Prog versão 1.05D. Disponível em <HTTP://www.ic-prog.com>. Acesso em
30 de Outubro de 2010.
[18] Gaede, K., Suppressing Acoustic Noise in PWM Fan Speed Control Systems. Microchip,
2003. Disponível em <HTTP://www.microchip.com>. Acesso em 30 de Outubro de 2010.
[19] Kaliyugavaradan, S., A Microcontroller-based Programmable Temperature Controller.
In: IEEE 23rd International Conference on Industrial Electronics, Control and
Instrumentation, Vol. 1, 1997, pp. 155-158.
[20] Pereira, F., Microcontroladores PIC Programação em C, 7ª Ed. São Paulo: Editora Érica,
2009.
APÊNDICE A (PROGRAMA DO MICROCONTROLADOR)
47
#include <16f877a.h> #include <regs_16f87x.h> #device adc=10 #use delay(clock=10000000) #fuses HS,NOWDT,PUT,NOLVP,BROWNOUT,NOLVP,NOCPD #include <mod_lcd.c> #use fast_io(a) #use fast_io(b) #use fast_io(c) #use fast_io(d) #use fast_io(e) //////////////////////////////////////////////Declaração de variáveis/////////////////////////////////////////////// //Temperaturas int16 temp_atual; int16 temp_atual_media; int temp_alvo = 40; int temp_alvo_max = 50; int temp_alvo_min = 30; //Controlado Proporcional-Integral int16 Kp = 191; //Ganho proporcional int16 Ki = 149; //Ganho integral signed int16 erro = 0; //Erro signed int16 erro1 = 0; //Erro anterior signed int16 ciclo_s=0; //Saída do controlador //LCD int config = 0; //Tela atual int posicao; //Posição atual do cursor int posicaoM; //Máxima posição possível para o cursor int velocidade = 0; //Valor percentual do duty cicle //PWM int16 ciclo=0; //Duty cicle //ADC int16 valor; //Valor lido int16 valor_medio; //Valor médio dos valores lido int16 matriz_valores[10]; //Matriz para salvar valores lido //Timer 1 int8 contaT1_1 = 0; int8 contaT1_2 = 0;
48
//Estado dos botões boolean botao_up = 0; boolean botao_down = 0; boolean botao_left = 0; boolean botao_right = 0; //Variáveis de uso geral int16 temp1; //Variável temporária de uso geral int16 temp2; //Variável temporária de uso geral ///////////////////////////////////////////Tratamento das interrupções/////////////////////////////////////////// //////////////////////////////////////////////////////////Timer 1////////////////////////////////////////////////////////// #int_timer1 void trata_t1 () // reinicia o timer 1 em 3036 mais a contagem que já passou set_timer1(3036 + get_timer1()); contaT1_1 += 1; If (contaT1_1 == 5) //Se já passou um segundo: //LCD If (config == 0) lcd_pos_xy(10,1); If (temp_alvo<10) printf (lcd_escreve," "); else if (temp_alvo<100) printf (lcd_escreve," "); printf (lcd_escreve,"%u",temp_alvo); lcd_pos_xy(10,2); If (temp_atual/10<10) printf (lcd_escreve," "); else if (temp_atual/10<100) printf (lcd_escreve," "); printf (lcd_escreve,"%lu.%lu",(temp_atual/10),temp_atual%10); Else If (config == 3) velocidade = ((int32)ciclo*100)/1023; lcd_pos_xy(13,1); If (velocidade<10) printf (lcd_escreve," "); else if (velocidade<100) printf (lcd_escreve," "); printf (lcd_escreve,"%u",velocidade); lcd_pos_xy(10,2); If (temp_atual/10<10) printf (lcd_escreve," "); else if (temp_atual/10<100) printf (lcd_escreve," "); printf (lcd_escreve,"%lu.%lu",(temp_atual_media/10),temp_atual_media%10);
49
//ADC valor = read_adc(); //Efetua a conversão A/D matriz_valores[contaT1_2] = valor; // O escalonamento é realizado da seguinte forma: // resultado = (1500 * valor lido) / 1023 // simplificando: // resultado = valor + (valor * 159) / 341 // Repare que é necessário converter a segunda parte da // equação para 32 bits para que o compilador efetue o // cálculo corretamente temp_atual = valor + ((int32)valor* 159)/341; contaT1_2 += 1; contaT1_1 = 0; If (contaT1_2 == 10) //Se já passou dez segundos: //PID //Calculo do valor médio da temperatura lida durante os últimos 10 segundos valor_medio = 0; For (temp1 = 0; temp1 < 10; temp1++) valor_medio += matriz_valores[temp1]; valor_medio /= 10; temp_atual_media = valor_medio + ((int32)valor_medio * 159)/341; //Calculo do erro erro = (signed int16)temp_alvo*10 - (signed int16)temp_atual_media; //Controle proporcional-integral ciclo_s = ciclo_s + (((signed int32)Ki*erro1) - ((signed int32)Kp*erro)); // teste de extrapolação de valores if (ciclo_s>1023) ciclo_s=1023; If (ciclo_s<0) ciclo_s=0; //Salva valores para o próximo ciclo ciclo = ciclo_s; erro1 = erro; //PWM set_pwm1_duty (ciclo); // Configura o ciclo ativo setup_timer_2 (T2_DIV_BY_16, 255, 1); //Frequência de oscilação igual a 10MHz / 4 / 16 / (255 + 1) = 610 Hz contaT1_2 = 0;
50
/////////////////////////////////////////Mudança de estado na porta B///////////////////////////////////////// #int_rb void Botoes () //Carrega estado dos botões botao_up = input(pin_b5); botao_down = input(pin_b6); botao_left = input(pin_b4); botao_right = input(pin_b7); If (botao_up) //BOTÃO UP Switch (config) Case 0: If (temp_alvo<temp_alvo_max) temp_alvo += 1; //Se botão UP for precionado e a temperatura alvo for menor que a máxima, incrementa a temperatura alvo. Break; Case 1: temp1 = 1; for(temp2=0;temp2<(posicaoM-posicao);++temp2) temp1*=10; If (temp_alvo_max+temp1<150) temp_alvo_max += temp1; else temp_alvo_max = 150; lcd_pos_xy(1,2); If (temp_alvo_max<10) printf (lcd_escreve,"00"); else if (temp_alvo_max<100) printf (lcd_escreve,"0"); printf (lcd_escreve,"%u",temp_alvo_max); lcd_pos_xy(posicao,2); Break; Case 2: temp1 = 1; for(temp2=0;temp2<(posicaoM-posicao);++temp2) temp1*=10; If (temp_alvo_min+temp1<temp_alvo_max) temp_alvo_min += temp1; else temp_alvo_min = temp_alvo_max; lcd_pos_xy(1,2); If (temp_alvo_min<10) printf (lcd_escreve,"00"); else if (temp_alvo_min<100) printf (lcd_escreve,"0"); printf (lcd_escreve,"%u",temp_alvo_min);
51
lcd_pos_xy(posicao,2); Break; else If (botao_down) //BOTÃO DOWN Switch (config) Case 0: If (temp_alvo>temp_alvo_min) temp_alvo -= 1; //Se botão DOWN for precionado e a temperatura alvo for maior que a mínima, deincrementa a temperatura alvo. Break; Case 1: temp1 = 1; for(temp2=0;temp2<(posicaoM-posicao);++temp2) temp1*=10; If (temp_alvo_max>temp1) temp_alvo_max -= temp1; else temp_alvo_max = 0; lcd_pos_xy(1,2); If (temp_alvo_max<10) printf (lcd_escreve,"00"); else if (temp_alvo_max<100) printf (lcd_escreve,"0"); printf (lcd_escreve,"%u",temp_alvo_max); lcd_pos_xy(posicao,2); Break; Case 2: temp1 = 1; for(temp2=0;temp2<(posicaoM-posicao);++temp2) temp1*=10; If (temp_alvo_min>temp1) temp_alvo_min -= temp1; else temp_alvo_min = 0; lcd_pos_xy(1,2); If (temp_alvo_min<10) printf (lcd_escreve,"00"); else if (temp_alvo_min<100) printf (lcd_escreve,"0"); printf (lcd_escreve,"%u",temp_alvo_min); lcd_pos_xy(posicao,2); Break; else If (botao_left && botao_right) //BOTÃO CONFIG lcd_envia_byte(0,0x0C);
52
config+=1; If (config>2) config=0; Switch (config) Case 0: lcd_escreve("\f"); printf (lcd_escreve,"Alvo: 0.0"); lcd_escreve(0xDF); lcd_escreve(0x43); printf (lcd_escreve,"\nAtual: 0.0"); lcd_escreve(0xDF); lcd_escreve(0x43); delay_ms (2); If (temp_alvo>temp_alvo_max) temp_alvo=temp_alvo_max; If (temp_alvo<temp_alvo_min) temp_alvo=temp_alvo_min; Break; Case 1: lcd_escreve("\f"); printf (lcd_escreve,"Temp Maxima:\r"); If (temp_alvo_max<10) printf (lcd_escreve,"00"); else if (temp_alvo_max<100) printf (lcd_escreve,"0"); printf (lcd_escreve,"%u",temp_alvo_max); lcd_escreve(0xDF); lcd_escreve(0x43); lcd_envia_byte(0,0x10); lcd_envia_byte(0,0x10); lcd_envia_byte(0,0x10); lcd_envia_byte(0,0x0F); delay_ms (2); posicao = 3; posicaoM = 3; Break; Case 2: If (temp_alvo_min>temp_alvo_max) temp_alvo_min=temp_alvo_max; //Se a temperatura alvo máxima for menor que a mínima, a mínima e recebe o valor da máxima. lcd_escreve("\f"); printf (lcd_escreve,"Temp Minima:\r"); If (temp_alvo_min<10) printf (lcd_escreve,"00"); else if (temp_alvo_min<100) printf (lcd_escreve,"0"); printf (lcd_escreve,"%u",temp_alvo_min); lcd_escreve(0xDF); lcd_escreve(0x43); lcd_envia_byte(0,0x10); lcd_envia_byte(0,0x10); lcd_envia_byte(0,0x10); lcd_envia_byte(0,0x0F); delay_ms (2);
53
posicao = 3; posicaoM = 3; Break; else If (botao_right || botao_left) //BOTÃO RIGHT If (config == 0) lcd_escreve("\f"); printf (lcd_escreve,"Exaustor: 0"); lcd_escreve(0x25); printf (lcd_escreve,"\nTemp: 0.0"); lcd_escreve(0xDF); lcd_escreve(0x43); config = 3; Else If (config == 3) lcd_escreve("\f"); printf (lcd_escreve,"Alvo: 0.0"); lcd_escreve(0xDF); lcd_escreve(0x43); printf (lcd_escreve,"\nAtual: 0.0"); lcd_escreve(0xDF); lcd_escreve(0x43); config = 0; else If (botao_left && config!=0) //BOTÃO LEFT If (posicao>1) lcd_envia_byte(0,0x10); posicao -= 1; else If (botao_right && config!=0) //BOTÃO RIGHT If (posicao!=posicaoM) lcd_envia_byte(0,0x14); posicao += 1;
54
///////////////////////////////////////////////////Rotina principal///////////////////////////////////////////////////// main() //Configuração do PWM setup_ccp1 (CCP_PWM); //Configura CCP1 para modo PWM // Configuração do ADC setup_ADC_ports (AN0_AN1_VSS_VREF); //AN0 e AN1 como entradas analógicas e VREF+ no pino RA3 setup_adc(ADC_CLOCK_INTERNAL); set_adc_channel(0); //Seleciona a entrada AN0 //Configuração de I/Os porta = 0x00; portb = 0x00; portc = 0x00; portd = 0x00; porte = 0x00; set_tris_a(0b11111111); //1-pino entrada 0-pino saida set_tris_b(0b11110000); set_tris_c(0b10000000); set_tris_d(0b00000000); set_tris_e(0b00000000); //Configuração do LCD lcd_ini(); delay_ms (2); // aguarda 2 ms printf (lcd_escreve,"Alvo: 0.0"); lcd_escreve(0xDF); lcd_escreve(0x43); printf (lcd_escreve,"\nAtual: 0.0"); lcd_escreve(0xDF); lcd_escreve(0x43); //Configuração do Timer 1 setup_timer_1( T1_INTERNAL | T1_DIV_BY_8 ); //configura o timer 1 para clock interno e prescaler dividindo por 8 set_timer1(3036); //inicia o timer 1 em 3036 - Frequência igual a 10MHz / 4 / 8 / (65536 - 3036) = 5 Hz //Habilita interrupções enable_interrupts(INT_TIMER1); enable_interrupts(INT_RB); // Libera as interrupções por mudança de estado no Port B = Pinos B4 -> B7 enable_interrupts(GLOBAL); // Libera o registrador de interrupção global e permite que as interrupçoes funcionem
55
//Inicia loop infinito while (true)