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)
CAPÍTULO 4
22
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
1
INTRODUÇÃO
Os Controladores PID são bastante utilizados em controles industriais, tais como controle de pressão, de nível, de velocidade, de temperatura, etc. Das malhas de controle na indústria, 95% são baseadas em controladores PID e suas variações, e em sua maioria são controladores 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, encontrase os parâmetros de ganho proporcional, integral e derivativo do controlador PID. Este controlador, 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 transferê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 controlador 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 instalado 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 controlador 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.
Introdução
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 recursos 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 quantidade 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 facilidade 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. É preciso 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 microcontrolador é 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, comportava um sistema equivalente a um microprocessador e seus periféricos.
Com o passar dos anos e com os avanços da tecnologia, os microcontroladores tornaram-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 microcontroladores 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 armazenamento, consumo e programação. Múltiplas formas de estruturação são utilizadas e implementadas 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, originalmente 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 instruçõ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 independentes 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 programa 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 encapsulamento 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 definidas no programa; uma série de pinos de entrada/saída, com a finalidade de realizar a comunicação do microcontrolador com o meio externo; e vários periféricos, tais como temporizadores, controladores de interrupção, temporizadores cão de guarda, WatchDog Timers, comunicação serial, geradores de modulação por largura de pulso, PWM, e conversores analógico/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, apresentam 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 seguintes 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 2 – Microcontroladores.
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 exemplificados 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 é usado 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 escolha 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, quando 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 para 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 necessitarão de um tempo mais longo para a estabilização da temperatura, como mostra a resposta 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 utilizada 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 é desligada como mostra a Figura 3.5. Este método de controle é chamado de ação de controle liga/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 caracterí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úmero de operações da chave de controle por intervalo de tempo o que reduz a vida útil do componente [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 K et Us K Es
(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 obtenha 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 empregada separada de uma ação proporcional [8]. No controlador proporcional – integral, a saída é
agora função do erro e da integral do erro:
1 1
ut K et eτdτ Us K 1 Es
T T . s
(3.2)
Onde T é o tempo integral, ou o tempo necessário para que a contribuição da ação integral 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 regime permanente, por outro, aumenta o tempo de estabelecimento e piora a estabilidade relativa, 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 (proporcional - 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 oscilaçõ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 à derivada 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:
uሺtሻ = K ൬eሺtሻ + T
de(t) ൰ ሱۛۛۛۛሮ Uሺsሻ = K ሺ1 + T . sሻE(s)
dt
(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 proporcional à 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 corrigindo 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, permite correções antes de o erro ser elevado. Não obstante o modo derivativo não afetar diretamente 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 modos proporcional, integral e derivativo e tem a relação entre a sua saída e o sinal de erro dada
por:
ut K et 1 det 1
eτdτ T
Us K 1 T . s Es
T dt
T . s
(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, estas propriedades assumem um carácter geral, pelo que podem existir exceções em determinados 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 regime 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 inicialmente com um K reduzido. A utilização do controle derivativo tem como principal consequê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 geralmente 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 especificaçõ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 integral deve ser incluído no controlador, uma vez que esta é a única ação que o permite eliminar 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 derivativo 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éricas 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 simplesmente 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:
1 de(t)
uሺtሻ = K ቆeሺtሻ + න eሺτሻdτ + T
ቇ
T dt
(3.5)
Na qual uሺtሻ é a variável de controle e eሺtሻ é 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 proporcional 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 geral, 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 assemelha-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 processo 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 derivativo é 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 conCAPÍ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 descrever 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 digital 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 aproximação de Tustin [10]:
s=
2z−1
Tz +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:
1 1
uሺtሻ = K ቆeሺtሻ + න eሺτሻdτቇ ሱۛۛۛۛሮ Uሺsሻ = K ൬1 +
൰ E(s)
T T . 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:
Uሺzሻ = K ቌ1 + ౟
ቍ E(z)
. 1
(3.8)
Reescrevendo a função de transferência do controlador PI:
Uሺzሻ = K ቌ
ሺz − 1ሻUሺzሻ = K ൬
ቀ
౟ ౟
ቁz + ቀ
౟ z−1
౟
ቁ
ቍ E(z)
2T + T
−2T + T
൰ z. Eሺzሻ + K ൬
൰ E(z)
2T
2T
z. Uሺzሻ − Uሺzሻ = K ൬
2T + T
−2T + T
൰ z. Eሺzሻ + K ൬
൰ E(z)
2T
2T
CAPÍTULO 3 – Controladores PID digitais de temperatura.
(3.9)
(3.10)
(3.11)
21
Dividindo por z, temos:
Uሺzሻ = z . Uሺzሻ + K ൬
2T + T
−2T + T
൰ Eሺzሻ + z . K ൬
൰ E(z)
2T
2T
(3.12)
A equação de diferenças do controle PI é:
uሺkሻ = uሺk − 1ሻ + K ൬
2T + T
−2T + T
൰ eሺkሻ + K ൬
൰ e(k − 1)
2T
2T
(3.13)
3.10 - MÉTODOS PRÁTICOS DE SINTONIA DE CONTROLADORES 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 adequada 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âmetros 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 enquanto 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 valores 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
P
K
K 0,5. G
T
T
-
-
PI
K 0,45. G
T PID
K 0,6. G
T P
1,2
P
2
T P
8
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 aumenta e o ganho integral é reduzido ao adicionar o modo derivativo, pois este estabiliza o sistema. 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 recorrer à 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
P
K
K PI
K PID
K M
N. L
0,9. M
N. L
1,2. M
N. L
T
T
-
-
T L
0,3
T 2. L
T L
2
A resposta em S é característica de sistemas de 1ª ordem com atraso, a função de transferência da planta pode ser descrita como [9]:
Ys K . e
.
Us 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 imediatamente.
CAPÍTULO 3 – Controladores PID digitais de temperatura.
24
A sua principal desvantagem decorre de grande parte dos sistemas serem mais complexos do que um simples sistema de primeira ordem com atraso, o que significa que ainda é necessá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 primeiras 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 à especificidade de cada sistema, até que “performances” ótimas sejam atingidas [4].
CAPÍTULO 3 – Controladores PID digitais de temperatura.
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 controle é 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 fabricado pela Microsol e com capacidade de 1 kVA.
4.2 - CONFIGURAÇÃO E DESCRIÇÃO GERAL DE FUNCIONAMENTO
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 temperatura LM35 [13] próximo aos dissipadores de calor da placa de controle do nobreak. Este senCAPÍ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ógica/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 informação necessária para o acionador do transistor. O exaustor irá girar numa velocidade variá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 visualizar 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 controlador variando entre 0 e 100%.
4.3 - ESTRUTURA DO CONTROLADOR DE TEMPERATURA EM MALHA
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 negativa.
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 utilizando 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 está 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
48
Temperatura (°C)
46
44
42
40
38
36
34
32
0
5
10 15 20 25 30 35 40 45 50 55 60 65 70 75 80 85 90
Tempo (minutos)
Figura 4.6 – Característica da resposta ao degrau.
48
Temperatura (°C)
46
44
42
40
38
36
34
32
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
Tempo (minutos)
Figura 4.7 – Característica da resposta ao degrau, gráfico para obtenção do valor da constante de tempo T.
48
Temperatura (°C)
47
46
45
44
43
42
0
0,5
1
1,5
2
Tempo (minutos)
Figura 4.8 – Característica da resposta ao degrau, gráfico para obtenção do valor do atraso L.
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 470
0,127
1023 0
(4.1)
A função de transferência do circuito em malha aberta pode ser aproximada como [11]:
G s 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. T
0,9.288
170
L. K 12. 0,127
(4.3)
L
12
40
0,3 0,3
(4.4)
T A função de transferência do controlador PI é [11]:
G s 170 1 1
40. (4.5)
Ou:
G s 680. s 17
4. s
(4.6)
A Figura 4.9 mostra o diagrama de blocos do sistema em malha fechada com o controlador 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 descrever 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:
uሺkሻ = uሺk − 1ሻ + ሺ−170ሻ. ൬
2.40 + 10
−2.40 + 10
൰ eሺkሻ + ሺ−170ሻ. ൬
൰ e(k − 1)
2.40
2.40
uሺkሻ = uሺk − 1ሻ − 191. eሺkሻ + 149. e(k − 1)
(4.7)
(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.
razão cíclica [%] - vermelho
erro [°C] - azul
1
0.5
0
-0.5
0
20
40
60
80
100
tempo [x10 segundos]
120
Figura 4.10 – Resultado da simulação do controlador.
CAPÍTULO 4 – Descrição do desenvolvimento do controlador.
140
160
180
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 Read-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 pinos 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 conecCAPÍ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) respectivamente. 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 direita. 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 disponibilizadas 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.
C5
22p
X1
U1
CRYSTAL
C1
13
14
2
3
4
5
6
7
TERRA
22p
1.5V
8
9
10
5V
RS
E
U2
1
1
R6
1k
67.0
VOUT
R9
RD0/PSP0
RD1/PSP1
RD2/PSP2
RD3/PSP3
RD4/PSP4
RD5/PSP5
RD6/PSP6
RD7/PSP7
10k
2
TERRA
RB0/INT
RB1
RB2
RB3/PGM
RB4
RB5
RB6/PGC
RB7/PGD
RA0/AN0
RA1/AN1
RA2/AN2/VREF-/CVREF
RA3/AN3/VREF+
RA4/T0CKI/C1OUT
RA5/AN4/SS/C2OUT
RC0/T1OSO/T1CKI
RE0/AN5/RD
RC1/T1OSI/CCP2
RE1/AN6/WR
RC2/CCP1
RE2/AN7/CS
RC3/SCK/SCL
RC4/SDI/SDA
MCLR/Vpp/THV
RC5/SDO
RC6/TX/CK
RC7/RX/DT
LM35
5V
3
OSC1/CLKIN
OSC2/CLKOUT
33
34
35
36
37
38
39
40
15
16
17
18
23
24
25
26
19
20
21
22
27
28
29
30
LEFT
UP
DOWN
RIGHT
PWM
TX
RX
D6
D7
D4
D5
PIC16F877A
VDD=5V
VSS=TERRA
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 coletor 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.
CAPÍTULO 4 – Descrição do desenvolvimento do controlador.
12V
34
+88.8
kRPM
D8
1N4001
Q5
R13
TIP31
PWM
TERRA
120
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 respectivos 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-
5V
terpretaria erroneamente com um pressionamento no botão CONFIG.
UP
UP
LEFT
RIGHT
RIGHT
LEFT
DOWN
DOWN
CONFIG
D1
R14
R4
R2
R1
10k
10k
10k
10k
1N4148
1N4148
TERRA
D2
Figura 4.14 – Esquema elétrico do teclado.
O esquema de montagem do mostrador LCD é mostrado na Figura 4.15. Por ter sido escolhida a comunicação em 4 bits, os pinos D0 a D3 do LCD não são utilizados. Por não ser
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.
LCD1
LM016L
7
8
9
10
11
12
13
14
D0
D1
D2
D3
D4
D5
D6
D7
RS
RW
E
4
5
6
1
2
3
VSS
VDD
VEE
TCONT
D4
D5
D6
D7
RS
RW
E
TERRA
5V
VEE
10K
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 microcontrolador.
U6
7805
12V
VI
VO
3
5V
2
GND
1
V1
12V
C3
C2
0.33uF
0.10uF
R7
R10
R11
3.3k
100
100
1.5V
R8
1.5K
TERRA
Figura 4.16 – Esquema elétrico da fonte de alimentação.
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á descrito 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 modo 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 segundo 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 posteriormente.
Se já tiverem ocorrido 10 medições (10 segundos), é feita a média aritmética das últimas 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 seguida 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, é configurado para 610 Hz.
Para calcular o valor da temperatura medida, o valor lido pelo conversor analógicodigital é 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 interfira 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 frequê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 microcontrolador) 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 exibida.
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 mostrada 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 montada. Na figura 4.23b também é mostrado o sensor de temperatura que não foi soldado diretamente 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
Sensor de temperatura
Teclado e
LCD
Circuito
Principal
Fonte
Externa
Figura 4.24 – Visão geral da montagem dos componentes.
A Figura 4.24 mostra o local de montagem dos componentes do controlador no interior 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.
CAPÍTULO 4 – Descrição do desenvolvimento do controlador.
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 controlador de temperatura desenvolvido.
5.2 - DESCRIÇÃO DO EXPERIMENTO
Com o controlador já montado no interior do nobreak, o circuito de testes foi novamente 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 utilizado 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 isso, 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 temperatura alvo foi ajustada em 40 °C e foi dado início a aquisição dos dados. Para diminuir a oscilaçã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 cada 10 segundos, sendo este valor a média aritmética dos valores obtidos nas últimas 10 aquisiçõ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
44
Temperatura (°C)
43
42
41
40
39
38
0
5
10 15 20 25 30 35 40 45 50 55 60 65 70 75 80 85 90
Tempo (minutos)
100%
90%
Razão Cíclica (%)
80%
70%
60%
50%
40%
30%
20%
10%
0%
0
5
10 15 20 25 30 35 40 45 50 55 60 65 70 75 80 85 90
Tempo (minutos)
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 experimento 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 razã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.
CAPÍTULO 5 – Resultados experimentais.
43
CAPÍTULO 6
CONCLUSÃO
Este trabalho foi realizado com o objetivo de reunir os conhecimentos adquiridos durante o curso de engenharia elétrica para desenvolver um controlador PI, implementado digitalmente 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 mediçã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.
CAPÍTULO 5 - Conclusão
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.
Referência Bibliograficas
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)
{
}
}
Download

DANIEL CARVALHO BEZERRA - DEE - UFC