Upload
trannguyet
View
224
Download
0
Embed Size (px)
Citation preview
FACULDADE TALENTOS HUMANOS – FACTHUS
CLEITON SILVANO GOULART
IMPLEMENTAÇÃO DE UM CONTROLADOR FUZZY USANDO O
MICROCONTROLADOR ATMEGA 32
UBERABA – MG
2010
CLEITON SILVANO GOULART
IMPLEMENTAÇÃO DE UM CONTROLADOR FUZZY USANDO O
MICROCONTROLADOR ATMEGA 32
Projeto apresentado á Faculdade Talentos Humanos – Facthus, de Uberaba como parte das exigências para conclusão do curso de graduação em Engenharia Mecânica com habilitação em controle e automação.
Orientador: Prof. Rogério B. Andrade
UBERABA - MG
2010
CLEITON SILVANO GOULART
IMPLEMENTAÇÃO DE UM CONTROLADOR FUZZY USANDO O
MICROCONTROLADOR ATMEGA 32
Projeto apresentado á Faculdade Talentos Humanos – Facthus, de Uberaba como parte das exigências para conclusão do curso de graduação em Engenharia Mecânica com habilitação em controle e automação.
Orientador: Prof. Rogério B. Andrade
ÁREA DE CONCENTRAÇÃO:
Uberaba, 12 de junho de 2010
BANCA EXAMINADORA
_____________________________________________________________
Prof.º Rogério Bernardes Andrade – FACTHUS
_____________________________________________________________
Prof.º MSc Leandro Aureliano da Silva – FACTHUS
____________________________________________________________
Prof.º Antônio Carlos Lemos Júnior – FACTHUS
AGRADECIMENTOS
Agradeço primeiramente a Deus por permitir que o homem pudesse
aprender com a Sua criação, e fazer dela um exemplo para a criação de novas
tecnologias.
Agradeço a minha família, que muito me compreendeu e me auxiliou na
concepção deste trabalho, através de estímulos, força, e apoio de forma
incondicional.
Ao meu coordenador, Rogério, também fica uma homenagem especial,
por muito colaborar com este trabalho, através de idéias, sugestões, críticas e pelo
apoio incondicional.
Agradeço também ao Cláudio, que muito ajudou na confecção da planta
piloto e seus elementos, ao Engº Ivan Trida, que gentilmente contribuiu com seus
conhecimentos e sua experiência na concepção das válvulas de controle da planta
piloto. E aos meus vizinhos em Araxá, pelo apoio com o café e o chá, que tanto
amenizaram o cansaço mental proveniente do árduo trabalho.
“Não existe verdadeira inteligência sem bondade.” Ludwig van Beethoven
RESUMO
A lógica fuzzy (nebulosa), famosa pela sua capacidade de realizar
operações com dados imprecisos, vem se tornando um campo cada dia mais
interessante dentro da inteligência artificial. Sistemas com grande eficiência estão
sendo modelados, algoritmos singulares estão sendo escritos, a lógica fuzzy, é uma
tecnologia nova, porém notável.
Estudar esta tecnologia é um dos objetivos deste trabalho, o qual propõe
uma plataforma de baixo custo, simples, flexível e prática para o desenvolvimento de
aplicações nebulosas. Graças aos avanços na eletrônica, existem hoje no mercado,
microcontroladores com capacidade extremamente notável e custo irrisório.
O controlador desenvolvido envolve além da lógica nebulosa, conceitos
de eletrônica os quais são responsáveis por toda a estrutura física do controlador,
bem como uma interface amigável de operação e controle, disponibilizada pelos
softwares supervisórios.
Palavras Chave: Lógica Fuzzy; Microcontroladores; Supervisórios; Controle;
ABSTRACT
Fuzzy logic, famous for its ability to conduct operations with imprecise
data, is becoming an increasingly interesting field within Artificial Intelligence.
Systems with high efficiency are being modeled, individuals algorithms are being
written, fuzzy logic, is a new technology, but remarkable.
Studying this technology is one of the goals of this work, which proposes a
platform for low cost, simple, flexible and practical for developing Fuzzy applications.
From the advances in electronics, there are in the market today, capable
microcontrollers remarkable and extremely low cost.
The controller involves addition of fuzzy logic, concepts of electronics
which are responsible for all the physical structure of the controller and a user-
friendly operation and control interface, provided by the supervisory software.
Keyword: Fuzzy Logic; Microcontrollers; Supervisory; Control;
LISTA DE FIGURAS
Figura 1 - Lógica realizada pelo controle da posição do olho humano. ..................... 16
Figura 2 - EAP do Projeto.......................................................................................... 18
Figura 3 - Arquitetura do Controlador. ....................................................................... 19
Figura 4 - Instrumentação da planta piloto. ............................................................... 21
Figura 5 - Estrutura de Blocos do firmware do controlador. ...................................... 23
Figura 6 - Diagrama de blocos do Cartão de Entradas. ............................................ 24
Figura 7 - Diagrama de blocos do código do cartão de saídas. ................................ 25
Figura 8 - Válvula de Controle. .................................................................................. 26
Figura 9 - Planta Piloto - Finalizada. ......................................................................... 27
Figura 10 – Barramento de comunicação com chave para seleção de slot. ............. 29
Figura 11 - PCI do cartão de entradas, com as trilhas já formadas (cobre) e placa de
fenolite (branco). Vista superior. ................................................................................ 30
Figura 12 - EAP da Fabricação das PCI. .................................................................. 31
Figura 13 - Tela para impressão da máscara de solda. ............................................ 32
Figura 14 - PCI com máscara de solda aplicada. ...................................................... 33
Figura 15 - Cartão de entradas, com alguns componentes já soldados. ................... 34
Figura 16 - Arquitetura do Cartão Principal. .............................................................. 35
Figura 17 - Circuito eletrônico do cartão principal. Folha 1 de 2. .............................. 36
Figura 18 - Circuito Eletrônico do Cartão Principal. Folha 2 de 2. ............................. 37
Figura 19 - Placa de Circuito Impresso proposta para o cartão de Principal. ............ 38
Figura 20 - Ligação elétrica do visor de feedback. .................................................... 39
Figura 21 - Ligação elétrica do bloco RS-232, camada física. .................................. 40
Figura 22 - Circuito ISP-10. ....................................................................................... 40
Figura 23 - Ligação elétrica do sistema de Reset. .................................................... 41
Figura 24 - Ligação elétrica do cristal. ....................................................................... 42
Figura 25 - Arquitetura do Cartão de Entradas. ......................................................... 43
Figura 26 - Esquema elétrico de uma entrada discreta. ............................................ 44
Figura 27 - Circuito Eletrônico do Cartão de Entradas. Folha 1 de 3. ....................... 45
Figura 28 - Circuito Eletrônico do Cartão de Entradas. Folha 2 de 3. ....................... 46
Figura 29 - Circuito Eletrônico do Cartão de Entradas. Folha 3 de 3. ....................... 47
Figura 30 - Placa de Circuito Impresso proposta para o cartão de Entradas. ........... 48
Figura 31 - Entrada analógica para sinais de tensão 0-5V. ....................................... 49
Figura 32 - Arquitetura do Cartão de Saídas Contínuas. .......................................... 51
Figura 33 - Placa de Circuito Impresso proposta para o cartão de saídas. ............... 52
Figura 34 - Circuito Eletrônico do Cartão de Saídas. Folha 1 de 2. .......................... 53
Figura 35 - Circuito Eletrônico do Cartão de Saídas. Folha 2 de 2. .......................... 54
Figura 36 - Circuito de saída analógica. .................................................................... 55
Figura 37 - Exemplos de onda PWM. ........................................................................ 56
Figura 38 - Pinagem do ATMEGA32. ........................................................................ 62
Figura 39 - Estrutura de um sistema automatizado de controle. ............................... 68
Figura 40 - Display LCD 16 colunas x 2 linhas. ......................................................... 70
Figura 41 - Logotipo do supervisório LAquis. ............................................................ 70
Figura 42 - Tela no supervisório LAquis para controle da Planta Piloto. ................... 71
Figura 43 - Conjunto Fuzzy: Temperatura e seus subconjuntos. .............................. 74
Figura 44 - Lógica de Controle Fuzzy. ...................................................................... 75
Figura 45 - Função Triângulo. ................................................................................... 76
Figura 46 - Função Trapézio. .................................................................................... 76
Figura 47 - Regra de Inferência 01 – Causa Simples. ............................................... 77
Figura 48 – Regra de Inferência 02 - Dupla Causa. .................................................. 78
Figura 49 - Defuzificação das Regras 01 e 02. ......................................................... 80
Figura 50 - Comparativo de estratégias de defuzificação. ........................................ 81
Figura 51 - Processamento de Imagens com Lógica Fuzzy. ..................................... 83
Figura 52 - EAP Manutenção de SCF. ...................................................................... 86
Figura 53 - Planta Piloto. ........................................................................................... 87
Figura 54 - Montagem didática do controlador implementado................................... 88
LISTA DE ABREVIATURAS
A/D Ver ADC
ADC Analog Digital Converter - Conversor Analógico-Digital
ALU Arithmetic Logic Unit - Unidade lógica de Aritimética
BSD Berkeley Software Distribution - Distribuição de Software Berkeley
CAM computer Aided Manufacturing – Manufatura Assistida por Computador
CISC Complex Instruction Set Computer - Computador com um conjunto complexo de Instruções
CLP Controlador Lógico Programável
CPU Central Processing Unit - Unidade de Processamento Central
E/S Entrada / Saída
EAP Estrutura Analítica do Projeto
EEPROM Electrically-Erasable Programmable Read-Only Memory - Memória programável somente-leitura, apagável eletricamente
ERP Enterprise Resource Planning – Sistema integrado de gestão empresarial.
F. Máx. Frequência Máxima
HAL Hardware Abstraction Layer - Camada de Abstração de Hardware
IDE Integrated Development Environment - Ambiente de Desenvolvimento Integrado
ISP In-Circuit Serial Programing - Programação Serial no circuito
IUPAC International Union of Pure and Applied Chemistry - União Internacional de Química Pura e Aplicada
LCD Liquid Crystal Display - Display de Cristal Líquido
MCU Microcontrolador
PCI Placa de Circuito Impresso
PCP Planejamento e Controle da Produção.
PID Proporcional, Integral Derivativo
PWM Pulse-Width Modulation - Modulação por largura de pulso
RAM Random Access Memory - Memória de Acesso Randômico
RISC Reduced Instruction Set Computer - Computador com um conjunto reduzido de instruções
RTU Remote Terminal Unit - Terminal de Unidade Remota
SCF Sistema de Controle Fuzzy
SPI Serial Peripheral Interface - Interface Periférica Serial
SRAM Static Random Access Memory - Memória Estática de Acesso Aleatório
TWI I²C - Two Wire Interface - Interface de Dois Fios
UART Universal Synchronous Receiver/Transmitter - Transmissor/Receptor Síncrono Universal
USART Universal Synchronous Asynchronous Receiver Transmitter - Transmissor/Receptor Síncrono Assíncrono Universal
SUMÁRIO
1 PREFÁCIO ................................................................................................ 13
1.1 Objetivo Geral ........................................................................................... 13
1.2 Objetivo Específico ................................................................................... 13
1.3 Organização do trabalho ........................................................................... 13
2 FUNDAMENTAÇÃO TEORICA SOBRE CONTROLADORES ................. 16
2.1 Princípios de um Controlador .................................................................... 16
3 IMPLEMENTAÇÃO DO CONTROLADOR ................................................ 18
3.1 FASE I - Projeto ........................................................................................ 18
3.1.1 Projeto Básico – Definição de Parâmetros e Arquitetura .......................... 18
3.1.2 Projeto da Planta Piloto ............................................................................ 20
3.2 FASE II – Implementação ......................................................................... 22
3.2.1 Implementação do Controlador ................................................................. 22
3.2.2 Implementação da Planta Piloto ............................................................... 25
4 HARDWARE - ELETRÔNICO ................................................................... 28
4.1 Introdução ................................................................................................. 28
4.2 Arquitetura ................................................................................................ 28
4.3 Fonte de Alimentação ............................................................................... 29
4.4 Microcontrolador e Circuitos Acessórios ................................................... 29
4.5 Placa de Circuito Impresso ....................................................................... 30
4.5.1 Processo Fotográfico ................................................................................ 31
4.6 Cartão Principal ........................................................................................ 34
4.6.1 Arquitetura ................................................................................................ 34
4.6.2 Circuito Eletrônico ..................................................................................... 35
4.6.3 Microcontrolador ....................................................................................... 35
4.6.4 Display de FeedBack ................................................................................ 38
4.6.5 RS-232 ...................................................................................................... 39
4.6.6 ISP-10 ....................................................................................................... 40
4.6.7 Reset ........................................................................................................ 40
4.6.8 Cristal ........................................................................................................ 41
4.7 Cartão de entradas discretas e contínuas ................................................ 42
4.7.1 Arquitetura ................................................................................................ 42
4.7.2 Circuito Eletrônico ..................................................................................... 44
4.7.3 Microcontrolador ....................................................................................... 44
4.7.4 Entradas Discretas .................................................................................... 44
4.7.5 Entradas Contínuas .................................................................................. 49
4.8 Cartão de saídas contínuas ...................................................................... 50
4.8.1 Arquitetura ................................................................................................ 51
4.8.2 Circuito Eletrônico ..................................................................................... 52
4.8.3 Microcontrolador ....................................................................................... 52
4.8.4 Saídas Analógicas .................................................................................... 55
5 MICROCONTROLADORES ..................................................................... 58
5.1 Conceito .................................................................................................... 58
5.2 Características .......................................................................................... 58
5.3 Arquitetura ................................................................................................ 60
5.3.1 Arquitetura RISC ....................................................................................... 60
5.3.2 Arquitetura CISC ....................................................................................... 61
5.4 Microcontrolador Escolhido ....................................................................... 61
5.5 Descrição dos Componentes Internos ...................................................... 62
5.5.1 CPU .......................................................................................................... 62
5.5.2 Sistema de Clock ...................................................................................... 63
5.5.3 Memórias .................................................................................................. 63
5.5.4 Interface JTAG .......................................................................................... 64
5.5.5 Módulos de Entrada e Saída ..................................................................... 64
5.5.6 Conversores Analógicos/Digitais .............................................................. 64
5.5.7 Interrupções .............................................................................................. 64
5.5.8 Timers – PWM .......................................................................................... 65
5.5.9 Comunicação serial .................................................................................. 65
5.5.10 SPI – Interface Periférica Serial ................................................................ 65
5.6 Quadro Comparativo de Recursos ............................................................ 66
6 SISTEMA SUPERVISÓRIO ...................................................................... 67
6.1 Introdução ................................................................................................. 67
6.2 Protocolo MODBUS .................................................................................. 68
6.3 FreeModBus ............................................................................................. 69
6.4 Feedback via LCD .................................................................................... 69
6.5 Supervisório Escolhido ............................................................................. 70
6.6 Tela do Supervisório ................................................................................. 71
7 LÓGICA NEBULOSA ................................................................................ 72
7.1 Sistemas Inteligentes ................................................................................ 72
7.2 Princípios da lógica Fuzzy: Conjuntos Fuzzy ............................................ 72
7.3 A lógica de controle fuzzy ......................................................................... 74
7.3.1 Variáveis Fuzzy ......................................................................................... 75
7.3.2 Bloco de Fuzificação ................................................................................. 77
7.3.3 Bloco de Inferência ................................................................................... 77
7.3.4 Bloco de Defuzificação ............................................................................. 79
7.3.5 Comparativo entre os métodos de defuzificação ...................................... 81
7.4 Utilizações Práticas da Lógica Nebulosa .................................................. 81
7.5 Modelagem de Processos em Lógica Nebulosa ....................................... 83
7.5.1 Modelagem PID ........................................................................................ 83
7.5.2 Modelagem Nebulosa ............................................................................... 83
7.5.3 Manutenção de Sistemas de Controle Fuzzy ............................................ 85
8 PLANTA PILOTO ...................................................................................... 87
8.1 Objetivo da Planta Piloto ........................................................................... 87
8.2 Aplicações da Planta Piloto ....................................................................... 88
8.3 Experimento Prático .................................................................................. 89
9 CONCLUSÃO ........................................................................................... 91
9.1 Dificuldades obtidas .................................................................................. 91
9.2 Resultados Obtidos ................................................................................... 91
9.3 Conclusão Geral ....................................................................................... 92
9.4 Idéias Futuras ........................................................................................... 93
9.4.1 Funções de Pertinência das Variáveis Fuzzy ........................................... 93
9.4.2 Plano de Manutenção ............................................................................... 93
10 REFERÊNCIAS ........................................................................................ 95
APÊNDICE A - FOLHA DE DADOS TÉCNICOS DO CONTROLADOR ................... 97
APÊNDICE B - MEMÓRIA DE CÁLCULO DOS CIRCUITOS ELETRÔNICOS ....... 101
APÊNDICE C - VARIÁVEIS NEBULOSAS.............................................................. 104
APÊNDICE D - REGRAS DE INFERÊNCIA ............................................................ 106
APÊNDICE E - CÓDIGOS FONTE DOS MICROCONTROLADORES ................... 107
APÊNDICE F - PLANTA PILOTO – DESENHOS DE REFERÊNCIA ...................... 108
APÊNDICE G - PROTOCOLO SPI - COMUNICAÇÃO ENTRE CARTÕES ............ 112
13
1 PREFÁCIO
1.1 Objetivo Geral
“Projeto de um controlador fuzzy, com uma estrutura simples e de baixo
custo, utilizando tecnologia de microcontroladores.”
1.2 Objetivo Específico
O projeto de um controlador envolve várias fases. Desde a concepção da
arquitetura idealizada para o controlador, até a pesquisa e desenvolvimento de
ínfimos detalhes construtivos. O objetivo apesar de curto em termos de palavras é
extenso em termos de conhecimento, por envolver inúmeras áreas do conhecimento
humano, tais como eletrônica, redes, instrumentação, inteligência artificial, métodos
de programação, engenharia de software, dentre várias outras disciplinas.
Uma aplicação do controlador objeto deste trabalho é formar uma base
que possa servir de desenvolvimento para futuros sistemas de controle nebuloso,
contribuindo desta forma para com outros pesquisadores e desenvolvedores.
1.3 Organização do trabalho
Para um melhor entendimento deste trabalho, ele foi estruturado em sete
capítulos cuja descrição resumida de seus conteúdos estão listadas na seqüência:
INTRODUÇÃO – Contém uma noção introdutória à lógicas de
controle;
IMPLEMENTAÇÃO – Contém uma descrição dos métodos e uma
visão macro do projeto de implementação do controlador fuzzy. As
decisões chaves estão justificadas dentro deste capítulo.
HARDWARE – Contém os aspectos técnicos envolvidos na
concepção eletrônica do controlador.
14
MICROCONTROLADORES – Descreve em maiores detalhes a
definição e estrutura de um microcontrolador, bem como seus
principais recursos.
SUPERVISÓRIO – Neste capítulo está exposta de forma sucinta a
importância de um software supervisório num sistema de controle.
LÓGICA NEBULOSA – Os princípios e o funcionamento da lógica
nebulosa estão descritos neste capítulo. Também são
apresentadas aplicações para a lógica nebulosa.
CONCLUSÃO – Na Conclusão deste trabalho, existem além da
conclusão formal do trabalho, idéias e possíveis melhoramentos a
serem estudados futuramente.
Além dos sete capítulos, este trabalho conta ainda oito Apêndices com
dados e informações que visam complementar o perfeito entendimento do
Controlador como um todo. Segue o conteúdo resumido dos oito apêndices:
APÊNDICE A - FOLHA DE DADOS TÉCNICOS – Contém a folha
de dados técnicos do controlador desenvolvido. Os dados
abrangem tanto os aspectos físicos quanto lógicos do controlador.
O principal objetivo da folha de dados é servir como um guia de
consulta rápida das informações técnicas do Controlador.
APÊNDICE B - CIRCUITO ELETRÔNICO – Neste apêndice está
presente o circuito eletrônico completo do controlador. O
funcionamento dos circuitos estão discutidos no Capítulo 4.
APÊNDICE C – MEMÓRIA DE CÁLCULO – Na memória de
cálculo está todos os cálculos de dimensionamento das grandezas
elétricas / eletrônicas envolvidas no projeto dos circuitos eletrônicos
do controlador.
APÊNDICE D – VARIÁVEIS NEBULOSAS – As variáveis
nebulosas empregadas na lógica de controle da planta piloto, estão
presentes neste anexo, juntamente com suas respectivas funções
de pertinência.
15
APÊNDICE E – REGRAS DE INFERÊNCIA – Estão contidas neste
apêndice todas as regras de inferência utilizadas no controle da
planta piloto.
APÊNDICE F – CÓDIGO-FONTE – Neste apêndice está à listagem
do código fonte do programa dos microcontroladores empregados
no projeto. Todo o código fonte está comentado. As bibliotecas
utilizadas as quais foram desenvolvidas por terceiros, não estão
com o seu código listado, porém sua origem está discutida no
tópico 3.2.1.1.
APÊNDICE G – PLANTA PILOTO – Os desenhos chave da planta
piloto estão presentes neste apêndice, a título de referência, para
uma melhor compreensão da planta piloto.
APÊNDICE H – PROTOCOLO SPI – A comunicação entre os
cartões exigiu a criação de um protocolo de comunicação. Este
protocolo está definido formalmente neste apêndice.
16
2 FUNDAMENTAÇÃO TEORICA SOBRE CONTROLADORES
2.1 Princípios de um Controlador
Controlar um sistema físico significa dominar um equipamento ou um
processo através da leitura constante de alguns estados - variáveis de entrada. O
controlador, com base nas variáveis de entrada deve ser capaz de tomar algumas
decisões, por meio das variáveis de saída, os quais afetam diretamente o
equipamento ou processo.
Os “controladores” ou sistemas de controle automático, como (NISE,
2009) informa, não existem apenas na criação humana, eles também existem na
natureza. No nosso próprio corpo temos vários sistemas de controle independentes
e dependentes uns dos outros. Por exemplo, temos no cérebro humano um pequeno
segmento responsável pelo posicionamento dos olhos. Os olhos fornecem a visão,
porém são posicionados por um determinado número de músculos, cujas contrações
e distensões são minuciosamente reguladas pelo cérebro. O segmento responsável
pelo posicionamento dos olhos recebe de outra parte do cérebro qual o local que ele
deseja “ver”. Com base nesta informação, este segmento calcula a distância
necessária para que os olhos cheguem ao ponto desejado, e com base nesta
distância ele é capaz de determinar a contração/distensão necessária para que os
músculos movam os olhos para aquele ponto. Veja a Figura 1 para uma melhor
visualização da lógica envolvida neste processo.
Figura 1 - Lógica realizada pelo controle da posição do olho humano.
Fonte: Autor.
Posição desejada
Calcula Δd (posição real - posição
desejada)
Calcula ΔT (diferença entre a tensão
real do musculo e a
tensão necessária,)
com base em Δd
Posição real
MÚSCULO
17
Chamamos Controlador o dispositivo capaz de executar este controle. A
lógica a ser empregada no controle determina o tipo de controlador. Dentre os mais
utilizados no âmbito industrial atualmente temos, os controladores PID e os
controladores Fuzzy.1
Para os controladores PID (Proporcional, Integral e Derivativo), se faz
necessário toda uma modelagem matemática do equipamento/processo. O PID
consegue a partir da função de transferência (obtida pelo modelo matemático do
equipamento/processo) determinar o valor ideal para uma determinada saída. Sua
eficiência é comprovada por toda uma modelagem matemática, porém sua grande
desvantagem esta justamente ai, visto que determinados processos são inviáveis de
serem modelados dada a sua complexidade e extensão. Outro agravante são as
interferências os quais devem ser previstas no modelo matemático para garantir a
eficiência do controlador PID.
Os controladores Fuzzy, trazem a grande vantagem na capacidade de
lidar com imprecisões. Conforme (CAMPOS e SAITO, 2004) a lógica clássica
(verdadeiro – falso) falha em descrever os processos naturais, nos quais entre uma
classe e outra não existe uma mudança brusca, deste principio nasceu os conjuntos
fuzzy que permitem uma passagem entre classes menos brusca e ainda permite que
os valores pertençam a mais de uma classe simultaneamente, seria o mesmo que
dizermos que determinado valor está verdadeiro e falso, ao mesmo tempo. Os
controladores fuzzy, utilizam desta lógica para efetuar suas ações. A lógica fuzzy
será melhor discutida no Capítulo 7.
Na indústria, o controlador comumente é um dispositivo composto de
duas partes essenciais, hardware e software. O hardware é a parte física capaz de
trabalhar com os sinais elétricos, pneumáticos, etc. de forma lógica. O software é a
parte abstrata do controlador, isto é o software é o programa o qual o comandará e
utilizará o hardware conforme suas necessidades. O hardware pode ser descrito
como uma ferramenta do software.
1 Os CLPs - Controladores Lógicos Programáveis, não foram incluídos neste texto, em função de sua
operação se basear numa programação a qual prevê todas as possíveis condições. Os CLPs são análogos aos antigos painéis elétricos, de forma que o equipamento não é capaz de definir o percentual necessário para abrir a válvula para que o nível de um tanque estabilize no menos tempo possível, por exemplo. Vários CLPs permitem este controle por já possuir um controlador PID internamente.
18
3 IMPLEMENTAÇÃO DO CONTROLADOR
A implementação do controlador a fim de estabelecer uma ordem
seqüencial e organizada, foi subdividida em fases. Em cada fase houve um foco de
trabalho, de forma a manter a boa execução do projeto.
Todo o projeto foi divido nas fases conforme a EAP – Estrutura Analítica
de Projeto, da Figura 2.
Figura 2 - EAP do Projeto.
Fonte: Autor.
3.1 FASE I - Projeto
3.1.1 Projeto Básico – Definição de Parâmetros e Arquitetura
Na fase de definições de parâmetros foram definidos quais seriam os
parâmetros essenciais que o controlador deverá atender. Esta fase foi a primeira a
ser executada, visto que todas as outras fases dependem diretamente desta fase.
Nesta fase as principais decisões tomadas foram a quantidade necessária
de entradas e saídas, o processador selecionado, e a arquitetura física do
controlador.
A arquitetura física do controlador foi idealizada mediante a utilização de
cartões. Cada cartão é responsável por uma atividade específica, e todos os cartões
são ligados por meio de um único barramento à placa principal. Esta arquitetura
apresenta as vantagens de ser expansível e modularizável. Esta arquitetura também
permite a utilização de „cartões inteligentes‟ que seriam cartões dotados de uma
19
capacidade de processamento. Estes cartões podem comunicar entre si, para a
tomada de ações mais simples, sem a utilização de tempo do processador principal.
O protocolo de comunicação entre os cartões está formalizado no Apêndice H.
Para este projeto foram desenvolvidos, a placa principal, e dois cartões,
um com as entradas discretas e contínuas e outro cartão com as saídas contínuas.
Na Figura 3, temos a arquitetura do barramento, em formato de blocos.
Está representado nesta Figura, os dois cartões desenvolvidos, bem como um
cartão genérico.
Figura 3 - Arquitetura do Controlador.
Fonte: Autor
Um documento de extrema importância elaborado nesta fase foi a folha
de dados, contendo de forma sintética todos os parâmetros que o controlador deverá
atender, em termos físicos e lógicos. A folha de dados se encontra no Apêndice A.
Sobre a IHM (Interface Homem Máquina), foi decidida nesta fase a
presença de um display LCD para informar ao usuário sobre o status do controlador.
Configurações, ajustes nas variáveis, e visualização do estado da planta estarão
disponíveis apenas pelo sistema supervisório, porém o controlador após
configurado, possuirá autonomia de controle do processo.
3.1.1.1 Projeto Eletrônico
O projeto eletrônico, bem como o leiaute das placas de circuito impresso
foram realizados utilizando o software Eagle versão 5.6, desenvolvido pela empresa
CADSOFT, disponível em: http://www.cadsoftusa.com/. No Capítulo 4, temos uma
descrição mais detalhada dos componentes e circuitos empregados no hardware
20
eletrônico. A justificativa de escolha do microcontrolador está presente no Capítulo
5.
3.1.2 Projeto da Planta Piloto
A planta piloto tem por objetivo demonstrar a funcionalidade do
controlador. Em função da lógica de controle (fuzzy) que foi empregada no
controlador. Esta planta deverá possuir média complexidade de controle a ponto de
inviabilizar o controle desta planta por outras lógicas de controle convencionais.
Foi escolhido um sistema multi-variável composto de três tanques, o qual
a saída de fluido de um tanque está diretamente ligado à entrada do próximo tanque.
Desta forma temos três tanques (TQ-101, TQ-102 e TQ-103) ligados em cascata. A
entrada de fluido no primeiro tanque (TQ-01) vem de um reservatório (TQ-201), cujo
nível é controlado em dois estados (cheio, vazio). Este reservatório quando vazio,
uma bomba (BB-01) é acionada e succionará o fluido de um quinto reservatório (TQ-
202). A saída do terceiro tanque (TQ-103) está ligada ao quinto reservatório (TQ-
202). Este quinto reservatório possui também um dreno de nível alto, para garantir a
quantidade máxima de fluído no sistema.
O circuito de controle da bomba é independente do controlador. O
controle deste circuito é realizado mediante lógica de relês. Este controle não será
discutido neste trabalho.
O controle nesta planta é o nível de cada um dos três tanques (TQ-101,
102, e 103) de forma independente. Desta maneira temos como variáveis de
entrada, a diferença entre o SP - set point e o nível real para cada tanque. As
variáveis de saída representam a abertura necessária nas válvulas de controle, de
maneira a estabilizar o sistema. Na Figura 4 temos a planta de instrumentação da
planta piloto.
21
Figura 4 - Instrumentação da planta piloto.
Fonte: Autor.
TQ-01
TQ-02
TQ-03
TQ-05
TQ-00
BB-01
VC-01
VC-02
VC-03
VC-04
LT
101
LT
102
LT
103
LTH
201
LTL
202
DRENO DE
NÍVEL ALTO
Limite de controle do Controlador Fuzzy
PLANTA PILOTO
INSTRUMENTAÇÃO
22
3.2 FASE II – Implementação
3.2.1 Implementação do Controlador
3.2.1.1 Implementação do Software
A implementação do software do controlador e dos cartões de
entrada/saída, foram realizadas em linguagem C através da IDE Eclipse, juntamente
com a biblioteca AVR-LIBC2. Tanto a IDE quanto a biblioteca são de licença pública
e podem ser obtidas gratuitamente.
O código do software foi divido em blocos para facilitar o
desenvolvimento, a manutenção, aperfeiçoamento e aproveitamento de código. Para
possibilitar um desempenho satisfatório do programa pelo MCU escolhido, foram
impostas várias limitações no código. Estas limitações são em grande parte
facilmente expansíveis, e estão bem comentadas no código-fonte dos MCUs.
3.2.1.1.1 Código do Cartão Principal
A arquitetura lógica do software do controlador pode ser vista na Figura 5.
A arquitetura possui um bloco que merecem especial atenção: Lógica Fuzzy.
Temos a biblioteca AVR-LIBC o qual todos os blocos superiores são
construídos sobre ela. Esta biblioteca efetua a interface entre os comandos de
linguagem C e o hardware do MCU.
Na primeira camada temos um bloco essencial, o HAL. O HAL consiste de
uma camada de abstração de hardware. Sua função é definir nomes e macros para
a operação do hardware. Qualquer modificação no hardware deverá ser atualizada
no HAL. Os drivers operam o hardware por meio do HAL, com exceção do driver SPI
e do driver MODBUS, os quais são capazes de operar o hardware diretamente.
Temos os drivers, que são elementos responsáveis por controlar um
recurso específico do MCU. No caso do software do controlador, temos o driver do
display LCD de feedback, o qual foi obtido no site http://extremeelectronics.co.in/,
sob licença pública de uso geral.
2 A biblioteca AVR-LIBC para o sistema operacional Microsoft Windows é distribuído sobre o nome de
WINAVR.
23
Figura 5 - Estrutura de Blocos do firmware do controlador.
Fonte: Autor.
Para o protocolo MODBUS foi utilizada a biblioteca FreeModBus,
disponível em http://freemodbus.berlios.de/. Esta biblioteca possui o suporte ao
protocolo ModBus, para vários dispositivos e sistemas, dentre eles, os
microcontroladores da família AVR. O protocolo ModBus será discutido no Capitulo
6.
Temos o núcleo do controlador, cuja principal função é organizar o fluxo
de informação entre o hardware e as camadas lógicas (protocolos e bloco Fuzzy). O
núcleo do controlador possui uma estrutura extremamente simples, ela consiste de
na execução de um ciclo de instruções.
O bloco “Lógica Fuzzy” é de fundamental importância, pois é neste bloco
que todo o processamento inerente ao controle da planta será processado. Foi
desenvolvido uma biblioteca capaz de efetuar todo o processamento Fuzzy,
biblioteca esta otimizada para os recursos de hardware disponíveis.
HAL – Camada de Abstração de Hardware (Hardware
Abstraction Layer)
Driver LCDDriver RS-232
Driver SPI
Lógica Fuzzy
Fuzificação
Inferência
Defuzificação
Banco de Dados (Variáveis e regras de
inferência)
Núcleo – Gerenciamento Principal
Aquisição de Dados
(Entradas)
Protocolo
MODBUS
AVR-LIBC (Biblioteca intermediária do código com o MCU)
Protocolo Cartões (Entradas/Saídas)
Atribuição de Dados
(Saídas)
HARDWARE
PLACA PRINCIPAL – CONTROLADOR FUZZYESTRUTURA DE BLOCOS DO FIRMWARE
24
3.2.1.1.2 Código do Cartão de Entradas
A Figura 6 apresenta o diagrama de blocos do código do cartão de
entradas. Os blocos presentes são bastante semelhantes aos do cartão principal.
Figura 6 - Diagrama de blocos do Cartão de Entradas.
Fonte: Autor.
O bloco de nível mais superior possui as rotinas necessárias para realizar
a leitura dos dados das variáveis de entrada. Existem diferenças significativas na
leitura de dados discretos, e dos dados contínuos. Para os dados contínuos é
realizada a conversão Analógica – Digital. A conversão é realizada utilizando
mecanismos de hardware disponíveis no controlador escolhido. Sua abordagem em
nível de software está bem detalhada no código-fonte.
3.2.1.1.3 Código do Cartão de Saídas
Na Figura 7 temos o diagrama de blocos do código do cartão de saídas.
Sua estrutura possui blocos em comum aos cartão de entradas. A diferença está
unicamente no controle das saídas ao invés do controle de entradas.
HAL – Camada de Abstração de Hardware (Hardware
Abstraction Layer)Driver SPI
Núcleo – Gerenciamento Principal
Entradas Discretas
AVR-LIBC (Biblioteca intermediária do código com o MCU)
Entradas Contínuas
HARDWARE
CARTÃO DE ENTRADASESTRUTURA DE BLOCOS DO FIRMWARE
25
Figura 7 - Diagrama de blocos do código do cartão de saídas.
Fonte: Autor.
O cartão de saídas realiza o controle das saídas, em nível PWM. Maiores
informações sobre a lógica PWM estão discutidas no tópico 4.8.
3.2.2 Implementação da Planta Piloto
A planta piloto, em função da sua condição de ferramenta de testes do
controlador, foi construída em escala reduzida, de forma a facilitar o trabalho.
Os tanques foram confeccionados em vidro translúcido com um formato
retangular. O processo de fabricação dos mesmos foi semelhante ao de fabricação
de aquários. O formato retangular dos tanques foi escolhido por permitir uma leitura
do volume de água de forma linear, bem como pelas facilidades de fabricação.
Foram realizados furos para permitir a saída de água na parte inferior, bem como
para o suporte da bóia e do elemento sensor nas laterais dos tanques.
A medição do nível nos tanques foi realizada mediante a confecção de
sensores tipo bóia, o qual o transdutor do sinal é um potenciômetro3 acoplado á
bóia, de forma a permitir a conversão do nível do tanque em sinal elétrico. Os
potenciômetros utilizados foram do tipo rotativo com escala linear. O ângulo de
rotação média dos potenciômetros é de 300°. O ângulo de rotação da bóia é de 90°.
Para que o movimento completo da bóia (tanque vazio até tanque cheio) represente
3 Potenciômetro – elemento elétrico/eletrônico que permite a variação da resistência de forma linear
ou logarítmica. É necessário um deslocamento mecânico para produzir uma variação na sua resistência, este deslocamento pode ser linear ou rotacional.
HAL – Camada de Abstração de Hardware (Hardware
Abstraction Layer)Driver SPI
Núcleo – Gerenciamento Principal
AVR-LIBC (Biblioteca intermediária do código com o MCU)
Saídas Contínuas (driver PWM)
HARDWARE
CARTÃO DE SAÍDASESTRUTURA DE BLOCOS DO FIRMWARE
26
uma completa variação da resistência disponível no potenciômetro, foi utilizado um
jogo de polias redutoras com relação aproximada de 300:90.
As válvulas de controle foram confeccionadas, o corpo foi baseado num
“T” para tubulação de PVC tipo soldável, temos também uma sede usinada em PVC,
um embolo usinado em aço 1020 com revestimento de cromo duro para evitar
efeitos oxidantes, e um carretel para o suporte do solenóide. O carretel suporte do
solenóide é composto de uma peça usinada em PVC para o contato direto com o
fluido, e um carretel usinado em latão, para melhorar o efeito magnético e ajudar no
arefacimento do solenóide. O solenóide confeccionado em fio #26 num total de 1500
espiras, com alimentação de 0V a 12V. Tem-se ainda dentro do suporte do carretel
uma mola comprimida de forma a fechar a válvula.
Figura 8 - Válvula de Controle.
Fonte: Autor.
O funcionamento das válvulas de controle está baseado na geometria
cônica do êmbolo/sede e no equilíbrio das forças provenientes da compressão da
mola e do efeito magnético oriundo do solenóide. A força da mola é constante, já a
força magnética está em função da alimentação do solenóide, de forma que para
variarmos a abertura da válvula, deveremos variar a alimentação no solenóide.
No Apêndice G deste trabalho, existe o desenho técnico de todas as
peças da válvula para efeitos de referência. O equacionamento matemático do
equilíbrio de forças não foi elaborado de forma proposital. Um dos aspectos positivos
da lógica de controle fuzzy, é a possibilidade de controlar um equipamento sem o
conhecimento do seu modelo matemático.
A planta didática conta ainda com uma estrutura metálica com o único
propósito de servir de suporte para todos os elementos da planta. Como a estrutura
27
da planta não estará sujeita a grandes esforços, e por não fazer parte do foco deste
trabalho, o cálculo de resistência da estrutura não foi elaborado.
Figura 9 - Planta Piloto - Finalizada.
Fonte: Autor.
28
4 HARDWARE - ELETRÔNICO
4.1 Introdução
O hardware existe para dar o suporte físico necessário ao software. A
estrutura física do hardware pode ser decomposta nos seguintes itens:
Suporte Físico;
Circuito de Alimentação;
Microcontrolador e circuitos acessórios;
Circuitos de Entrada;
Circuitos de Saída;
Circuitos de Comunicação;
Todo o esquema eletrônico bem como a memória de cálculo estão
disponíveis nos Apêndices B e C respectivamente. Também está disponível no
Apêndice A uma folha de dados técnicos com as principais características físicas e
lógicas do controlador.
4.2 Arquitetura
Arquitetura de um dispositivo pode ser definida como a construção
principal, isto é, a estrutura ou o esqueleto do controlador subdividida em blocos
funcionais. A arquitetura geral do controlador foi representada na Figura 3. Ela é
composta de um módulo principal, fonte de alimentação e cartões acessórios. Esta
arquitetura permite interligar um número limitado de acessórios de forma a conceber
um sistema de baixo custo facilmente expansível.
O controlador utiliza de um barramento de 12 vias representado na Figura
10, para prover a comunicação entre-cartões. O próprio barramento encarrega de
conduzir alimentação a todos os cartões por meio de 4 vias disponíveis no
barramento (a alimentação disponível pelo barramento é disponível apenas para
circuitos de baixa potência), temos ainda no barramento sete vias para dados sobre
o protocolo SPI e uma linha reservada para uso futuro. Os cartões são interligados
de forma paralela, tendo um único barramento em comum a todos.
A alimentação para os cartões é disponibilizada em dois níveis de tensão
+5V e +12V e duas vias de aterramento, uma para sinais discretos e outra para
29
sinais analógicos. As trilhas de alimentação em cada cartão foram dimensionadas
para a capacidade de corrente específica de cada cartão.
A comunicação entre os cartões possui uma tipologia Mestre-Escravo, o
qual utiliza o protocolo SPI4 sendo as três vias necessárias ao protocolo (MISO,
MOSI, e SCK) e ainda quatro vias para seleção de escravo (Slave Select),
denominadas SSn o qual n é o número do escravo. Em cada cartão, com exceção
do principal é necessário um sistema de seleção de qual via de seleção ele estará
utilizando, para este sistema os cartões acessórios foram providos de uma chave do
tipo dip-swtich.
Figura 10 – Barramento de comunicação com chave para seleção de slot.
Fonte: Autor.
4.3 Fonte de Alimentação
Os circuitos de alimentação do controlador consistem basicamente de
fonte de energia elétrica em corrente contínua com um sinal limpo e sem ruídos.
Neste trabalho empregou-se o uso de uma fonte de alimentação
comercial, do tipo chaveada tipologia ATX, com várias tensões de saída. Esta fonte
é comumente utilizada em microcomputadores. A utilização desta fonte se baseia na
comprovada eficiência da mesma, bem como pela ótima filtragem de ruídos
proporcionada pela fonte.
4.4 Microcontrolador e Circuitos Acessórios
4 Protocolo SPI – Este protocolo está descrito em linhas gerais no tópico 5.5.10.
30
Microcontroladores, são circuitos integrados, com alto nível de integração.
MCUs são comumente denominados micro-computadores. Para o perfeito
funcionamento do MCU, ele necessita de alguns componentes externos, seja para
sua própria proteção, seja para prover um sinal contínuo e estável para o clock do
mesmo. O microcontrolador e os circuitos acessórios serão discutidos no Capítulo 5.
4.5 Placa de Circuito Impresso
Todos os componentes são montados em uma placa de fenolite5 com
faces cobreadas. Este componente possui suas faces recobertas por uma fina
camada de cobre, que é trabalhado de forma a permitir a condução de sinal elétrico
apenas em determinadas “trilhas”. A placa de fenolite é furada em posições
estratégicas de forma a permitir a inserção dos terminais dos componentes
eletrônicos. Estes furos possuem a dupla função de permitir a condução elétrica e a
sustentação dos componentes. Na Figura 11 temos uma placa de circuito impresso,
devidamente pronta, já com o desenho das trilhas elaborado, desenhado na placa,
bem como a placa já corroída.
Figura 11 - PCI do cartão de entradas, com as trilhas já formadas (cobre) e placa de fenolite (branco).
Vista superior.
Fonte: Autor.
5 O fenolite é um material resistente à baixas – médias temperaturas, composto basicamente de
papeis aglomerados por resinas fenólicas.
31
A placa de fenolite com o cobre superficial em forma de trilhas e com as
furações para os componentes devidamente elaboradas chamamos de “Placas de
Circuito Impresso” (PCI). Estas placas são indispensáveis para os dispositivos
eletrônicos e existem vários métodos de fabricação. A função básica de uma placa
de circuito impresso é proporcionar o suporte mecânico dos componentes de um
circuito, bem como sua interligação elétrica.
Figura 12 - EAP da Fabricação das PCI.
Fonte: Autor.
A confecção de PCIs segue o procedimento descritos na Figura 12. A
parte de fabricação das PCIs foi realizada por meio do processo fotográfico o qual
será descrito no item 4.5.1. Este trabalho não entrará no detalhamento de cada
etapa envolvida no processo de fabricação das PCIs, em função de não ser o foco
deste trabalho.
4.5.1 Processo Fotográfico
O método empregado proporciona o menor custo em função da
quantidade, além de ser o método mais recomendável para produção em pequena
escala; para produção em grandes escalas o método de fabricação descrito não é o
viável, porém pode ser utilizado. Para métodos de produção de placas de circuito
impresso em larga escala, existem empresas especializadas no segmento.
32
O desenho das trilhas se fez utilizando o processo serigráfico, tipicamente
conhecido como silk-screen. Neste processo uma tela de poliéster ou nylon
extremamente fina e devidamente preparada é utilizada para permitir a passagem de
tinta apenas no desenho das trilhas. A preparação da tela se resume em aplicar uma
camada de emulsão foto-sensível sobre toda a tela. Após sua secagem, a tela deve
ser sensibilizada utilizando uma fonte luminosa rica em raios ultra-violeta (luz negra,
lâmpada halôgena, etc.) e os fotolitos como máscara. Posteriormente a tela deve ser
revelada, operação realizada pelo simples banho da tela com água. Veja na Figura
13 uma tela já revelada. Note a emulsão já sensibilizada na cor roxa. Os pontos
transparentes permitem a passagem de tinta pela tela, ao contrário dos pontos na
cor roxa que a bloqueiam.
Figura 13 - Tela para impressão da máscara de solda.
Fonte: Autor.
O desenho das trilhas é impresso na placa de fenolite ainda virgem (com
o cobre presente em toda a área superficial da mesma). Ao término do processo
temos a placa de fenolite, com o desenho das trilhas em sua superfície coberta por
cobre. A tinta utilizada para fazer este desenho é uma tinta específica resistente ao
ataque de produtos químicos. Esta tinta é comercializada sob o nome de tinta etch-
resist.
A corrosão da placa se fez através da total imersão da placa de fenolite
em uma solução de cloreto férrico III (conforme nomenclatura IUPAC) popularmente
33
conhecido como percloreto de ferro. Ocorre uma reação química entre o cloreto
férrico III é o cobre exposto na placa. Após este processo temos uma placa de
fenolite com as trilhas de cobre fixadas em sua superfície, o traçado segue
exatamente o desenho feito com a tinta etch-resist.
A furação da placa se fez manualmente utilizando brocas de diâmetro
adequado. Existem também perfuradores adequados para esta tarefa, bem como
mini-fresas já adaptadas para este processo.
No acabamento, utilizou-se o mesmo processo serigráfico para “imprimir”
uma camada de verniz com dupla função, proteger o cobre das trilhas contra a ação
da oxidação e permitir a aderência da solda apenas nos locais corretos. Esta
camada é comumente chamada de máscara de solda. O verniz utilizado nesta etapa
e comercialmente conhecido como solder-resist. Também foi utilizado o processo
serigráfico para imprimir a forma, nome e valores dos componentes na camada
oposta ao cobre a fim de facilitar a montagem da placa. A tinta empregada foi uma
tinta comum sem nenhuma característica especial, na coloração preta. Na Figura 14
temos a placa do cartão de saídas com a máscara de solda aplicada, a tela
empregada para a aplicação desta máscara de solda, é a tela da Figura 13.
Figura 14 - PCI com máscara de solda aplicada.
Fonte: Autor.
Após estas quatro etapas a placa está pronta para a colocação dos
componentes nos seus devidos locais, bem como a solda dos mesmos. Figura 15.
34
Figura 15 - Cartão de entradas, com alguns componentes já soldados.
Fonte: Autor.
4.6 Cartão Principal
O cartão principal contém o módulo principal do controlador. Todas as
decisões e cálculos são realizados por este módulo. São atribuições deste módulo:
Prover o controle e a comunicação entre os cartões;
Prover o cálculo fuzzy;
Fazer interface com o meio externo;
Disponibilizar informações por meio do display de feedback;
4.6.1 Arquitetura
A arquitetura básica do cartão principal pode ser observada na Figura 16.
Temos no cartão principal, dois elementos de comunicação externa, três circuitos
acessórios, e um elemento relativo à alimentação, todos externos ao MCU. O
barramento principal parte interno ao MCU.
35
Figura 16 - Arquitetura do Cartão Principal.
Fonte: Autor.
4.6.2 Circuito Eletrônico
Na Figura 17 e na Figura 18 seguem o esquema eletrônico do cartão
principal. Para um melhor entendimento do circuito eletrônico, o mesmo foi sub-
dividido em blocos funcionais, análogos à arquitetura (Figura 16). A descrição do
funcionamento destes blocos estão presentes nos tópicos seguintes.
4.6.3 Microcontrolador
O MCU escolhido para a placa principal foi o AVR ATMEGA32, fabricado
pela ATMEL. Maiores informações sobre este MCU poderão ser obtida no capítulo 5,
e em (ATMEL, 2009b).
36
Figura 17 - Circuito eletrônico do cartão principal. Folha 1 de 2.
Fonte: Autor.
37
Figura 18 - Circuito Eletrônico do Cartão Principal. Folha 2 de 2.
Fonte: Autor.
38
Figura 19 - Placa de Circuito Impresso proposta para o cartão de Principal.
Sem Escala. Fonte: Autor.
4.6.4 Display de FeedBack
O display de feedback, consiste num visor de LCD de 2 linhas por 16
colunas cada linha, ligado diretamente ao MCU ATMEGA32, de forma a exibir
eventuais mensagens, podendo ser mensagens de erro ou do status do controlador.
A ligação elétrica do display LCD pode ser visualizada na Figura 20. O resistor
variável R6 serve apenas para estabelecer o contraste do visor LCD. As linhas com
prefixo LCD_ são ligadas diretamente ao MCU. Maiores informações sobre o display
de feedback poderão ser obtidas no tópico: 6.4.
39
Figura 20 - Ligação elétrica do visor de feedback.
Fonte: Autor.
As linhas LCD_D4, LCD_D5, LCD_D6 e LCD_D7 são destinadas para a
transmissão de dados ao display. Já as linhas LCD_RS, LCD_RW e LCD_E são
destinadas para o controlede estado do LCD. Maiores informações sobre o
funcionamento do display LCD podem ser obtidas no código-fonte do driver para
visor LCD.
4.6.5 RS-232
Para a comunicação RS-232, temos o protocolo contido internamente ao
MCU, e uma camada física responsável pela conversão de tensões entre o padrão
RS-232 e as tensões de trabalho do MCU. A ligação elétrica pode ser visualizada na
Figura 21. Este circuito de comunicação se baseia no circuito integrado MAX-232,
fabricado pela empresa MAXIM. Este CI é responsável pela conversão de tensões
entre o padrão RS-232 e outras tensões de trabalho do MCU. O circuito eletrônico
utilizado é idêntico ao circuito recomendado pelo fabricante do MAX-232 contido no
datasheet (MAXIM INTEGRATED PRODUCTS, 2006). As linhas TXD e RXD são
ligadas diretamente ao MCU.
40
Figura 21 - Ligação elétrica do bloco RS-232, camada física.
Fonte: Autor.
4.6.6 ISP-10
O bloco ISP-10 é apenas um terminal de ligação para gravação do
programa do MCU no circuito físico. Este protocolo utiliza 10 vias, e é capaz de
fornecer alimentação ao MCU. Deve ser utilizado juntamente com qualquer gravador
de MCUs compatível com este padrão. Este padrão foi concebido pela Atmel
(Fabricante dos MCUs AVR) e estão detalhadamente descritos no datasheet do
MCU (ATMEL, 2009b). A alimentação provida pelo conector ISP-10 é direcionada a
um LED indicador, de forma que a alimentação principal do controlador deve ser
estabelecida para que haja a gravação dos MCUs. Veja a Figura 22 para o esquema
elétrico do bloco ISP-10.
Figura 22 - Circuito ISP-10.
Fonte: Autor.
4.6.7 Reset
O bloco de reset é responsável por disponibilizar um meio físico de
reiniciar o MCU em caso de eventuais falhas do mesmo, condição denominada de
41
RESET. Além disso, este bloco também possui um sistema para indicação visual da
condição de RESET, por meio de um LED na cor amarelo. Veja na Figura 23 a
ligação elétrica do bloco de Reset.
Figura 23 - Ligação elétrica do sistema de Reset.
Fonte: Autor.
Conforme informações obtidas do (ATMEL, 2009b) do MCU, a linha de
reset externo do mesmo, deve ser mantido em nível baixo para que ocorra a
condição de RESET. Desta maneira foi projetado um resistor configurado como pull-
up6, e utiliza-se uma chave simples para conectar o ponto de reset (linha
RESET_MCU) diretamente ao nível baixo. No momento desta conexão utiliza-se um
LED para indicar a condição de RESET.
4.6.8 Cristal
O cristal é um componente passivo responsável por estabelecer uma
freqüência de operação do MCU de forma extremamente estável. O cristal nada
mais é do que um cristal de quartzo cortado com procedimentos e tamanhos
precisos. Veja na Figura 24 o esquema elétrico do bloco oscilador de cristal.
As linhas XTAL1 e XTAL2 são conectadas diretamente ao MCU.
Existem dois capacitores conectados ao cristal é ao ponto de 0V, sua
função é garantir a estabilidade do cristal e dos circuitos osciladores, internos ao
6 Pull-Up – configuração o qual é utilizado um resistor para estabelecer um nível lógico alto constante
em determinado ponto, em função de existir corrente elétrica neste momento, o resistor não oferece resistência elétrica de maneira que a diferença de potencial entre o ponto desejado e a fonte de alimentação seja zero. Para existir nível lógico baixo neste ponto, é necessário conectá-lo diretamente ao nível lógico baixo, estabelecendo desta maneira uma corrente elétrica pelo resistor. A partir deste momento, aplica-se a lei de Ohm.
42
MCU. Seus valores foram calculados conforme informações contidas na nota de
aplicação (ATMEL, 2008a) e com base na tabela 8-3 de (ATMEL, 2009b).
Figura 24 - Ligação elétrica do cristal.
Fonte: Autor.
4.7 Cartão de entradas discretas e contínuas
O cartão de entradas possui como função básica possibilitar uma entrada
de dados externos dentro do controlador. As entradas externas devem ser
protegidas, e confiáveis. Protegidas para garantir que algum surto elétrico não
provoque danos ao controlador, e confiáveis para garantir a integridade dos dados.
O cartão de entradas desenvolvido, possui 4 entradas discretas e 4
entradas contínuas.
Os parâmetros elétricos e condições de operação, estão descritas no
Apêndice A.
4.7.1 Arquitetura
A arquitetura do cartão de entradas pode ser visualizada na Figura 25.
Os blocos ISP-10, Reset e Cristal 16MHz, também ditos como “Circuitos
Acessórios do MCU”, já foram comentados nos itens: 4.6.6, 4.6.7 e 4.6.8
respectivamente, itens inerentes à placa principal, cujo funcionamento é exatamente
igual para o cartão de entradas.
43
Figura 25 - Arquitetura do Cartão de Entradas.
Fonte: Autor.
Os circuitos de entrada são responsáveis em prover ao MCU um sinal de
entrada externo com as devidas proteções necessárias para garantir a integridade
do MCU. Estas proteções são fundamentalmente dependentes do tipo de sinal
elétrico específico da entrada.
O sinal de entrada pode ser basicamente um sinal de natureza contínua
(analógica) ou natureza discreta (digital).
Sinais de natureza digital são sinais que possuem apenas dois níveis
lógicos: 0 e 1, falso e verdadeiro, ou baixo e alto. Sinais digitais também podem ser
representados pela ausência ou presença de tensão.
Sinais de natureza analógica são sinais que possuem infinitos níveis, isto
é podem assumir infinitos valores dentro de uma faixa de valores. A quantidade de
valores que eles podem assumir dentro de uma faixa é comumente chamada
resolução do sinal. Esta resolução no cartão de entradas é da ordem de 8 bits7, isto
é, seu valor pode assumir 2568 valores distintos. Estes sinais também podem ser de
duas naturezas distintas, sinal de tensão e sinal de corrente. O controlador
desenvolvido possui quatro entradas para sinal de tensão.
7 Representado conforme as convenções da lógica booleana.
8 O número 256 é o maior número possível de se escrever valores com no máximo 8 bits.
MICROCONTROLADORATMEGA8
Cristal 16MHzGeração de Clock para o MCU
SPIComunicação
do barramento
Entradas
Contínuas4 entradas contínuas
semi-protegidas
Entradas
Discretas4 entradas discretas
protegidas
ResetReset manual do MCU
ISP-10Programação do MCU no circuito
AlimentaçãoAlimentação principal dos circuitos
Barramento Principal
Circuitos de EntradaCircuitos acessórios ao MCU
Limites do Cartão de Entradas
44
4.7.2 Circuito Eletrônico
Na Figura 27, Figura 28 e Figura 29 seguem o esquema eletrônico do
cartão de entradas. Para um melhor entendimento do circuito eletrônico, o mesmo
foi sub-dividido em blocos funcionais, análogos à arquitetura (Figura 25Figura 25). A
descrição do funcionamento destes blocos estão presentes nos tópicos seguintes.
4.7.3 Microcontrolador
O MCU escolhido para este cartão, foi o AVR ATMEGA 8, da mesma linha
do AVR ATMEGA 32, apenas com menos recursos. Veja o Quadro 1 no tópico 5.6
com o comparativo de recursos.
Maiores informações sobre o ATMEGA 8 podem ser obtidas a partir de
seu datasheet (ATMEL, 2009c).
4.7.4 Entradas Discretas
O controlador é provido de quatro entradas discretas. O circuito eletrônico
típico para as quatro entradas está representado na Figura 26.
Figura 26 - Esquema elétrico de uma entrada discreta.
Fonte: Autor.
45
Figura 27 - Circuito Eletrônico do Cartão de Entradas. Folha 1 de 3.
Fonte: Autor.
46
Figura 28 - Circuito Eletrônico do Cartão de Entradas. Folha 2 de 3.
Fonte: Autor.
47
Figura 29 - Circuito Eletrônico do Cartão de Entradas. Folha 3 de 3.
Fonte: Autor.
48
Figura 30 - Placa de Circuito Impresso proposta para o cartão de Entradas.
Sem Escala. Fonte: Autor.
No circuito elétrico da entrada, temos o componente OK1 que é um opto-
isolador. Opto isoladores são úteis para isolar eletricamente dois circuitos, neste
caso ele isola a entrada física do MCU da entrada externa. O opto-isolador utiliza de
um sinal luminoso para prover a conexão dos dois sinais. Sua utilização é justificada
por dois fatores. O primeiro prover a proteção ao microcontrolador. A segunda e
permitir um acoplamento de níveis de tensões diferentes, isto é o microcontrolador
trabalha com uma tensão máxima de 5,5V. Já a entrada digital externa foi projetada
para permitir uma variação de 0V a 24V. (FARCHILD SEMICONDUCTORS, 2004)
O resistor R6 possui a função de limitar a corrente no emissor de luz
(LED) do opto – isolador. O diodo D1 é um diodo de uso geral com a finalidade de
proteger o LED do opto-isolador de uma eventual ligação com polaridade invertida
no borne de ligação.
49
O LED3 possui a função de indicar na placa que aquela entrada está
acionada. Ele trabalha como um feedback na própria placa. O resistor R7 possui a
função de limitar a corrente no LED de feedback.
A linha I_DIG_01 está conectado diretamente ao MCU.
Os valores dos componentes bem como a memória de cálculo dos
resistores está disponível nos anexos deste trabalho.
4.7.5 Entradas Contínuas
O circuito eletrônico típco das entradas de tensão de 0 a 5V segue na
Figura 31.
Figura 31 - Entrada analógica para sinais de tensão 0-5V.
Fonte: Autor.
As entradas analógicas deste controlador possuem apenas proteção
contra picos de sobre-tensões, não possuem nenhuma forma de isolamento entre a
entrada real e o MCU, de forma que estas entradas devem ser tratadas com grande
cautela. A ausência do isolamento elétrico é justificado pelo fator de custo e
disponibilidade comercial de opto-isoladores analógicos.
Os capacitores C4 e C5 possuem a função de filtrar o sinal, contra
eventuais oscilações, de forma a manter o sinal mais estável. Eles também são
capazes de eliminar grande parte dos pequenos ruídos que possam vir a ser
introduzidos no sinal.
O diodo D5 é um diodo de uso geral, com a função de proteger a entrada
contra inversão acidental de polaridade, bem como prover uma proteção contra
sinais alternados.
50
Os diodos D6 e D7 são diodos especiais chamados de diodos Schottky,
cuja principal característica de interesse é a alta velocidade de trabalho. Desta
forma, caso algum pico de alta tensão e duração da ordem de até 4 nano segundos
seja introduzido ao sinal, estes diodos serão capazes de desviar o excesso de
tensão para a fonte de alimentação. (STMICROELECTRONICS, 1999)
O diodo Schottky é um dispositivo que trabalha com baixas tensões e em alta velocidade, segundo um princípio de funcionamento diferente para diodos de junção PN. É fabricado sem a junção PN de costume. Nesse caso, uma barreira fina de metal (de cromo, platina ou tungstênio) é interfaceada com semicondutor do tipo N. Essa forma de confecção propicia, nos terminais, uma tensão de estado ligado muito baixa (cerca de 0,6V) quando há condução. Mais ainda, esse diodo pode desligar muito rapidamente do que o de junção PN, propiciando, portanto, freqüências de chaveamento muito maiores. A corrente de fuga inversa, porém é bem mais alta e a tensão de ruptura inversa é mais baixa, quando comparadas às de um diodo de junção PN. Os diodos Schottky são, portanto empregados como retificadores em aplicações de baixa tensão, em que a eficiência de conversão é muito importante. Eles também são amplamente utilizados em fontes de alimentação chaveadas que operam em freqüências iguais ou maiores do que 20kHz. (AHMED, 2000)
Os diodos Schottky utilizados, foram associados em um circuito chamado
clamping ou ceifador. Neste circuito, são utilizados dois diodos antiparalelos, de
forma a limitar a tensão nos dois sentidos, positivo e negativo. Para utilizar este
circuito são necessários diodos de alta velocidade de condução, proporcionada com
perfeição pelos diodos Schottky. (BRAGA, 2008)
O ponto I_AN_01 está conectado diretamente ao MCU no pino com a
função de conversão analógica-digital.
4.8 Cartão de saídas contínuas
O cartão de saídas contínuas possui como função básica possibilitar uma
saída de dados a partir do MCU. As saídas deste cartão possuem uma natureza
contínua ou em outros termos, analógica. Os circuitos devem garantir que nenhuma
anomalia externa provoque danos ao MCU do cartão, bem como ao MCU do
controlador.
O cartão de saídas desenvolvido, possui 4 saídas contínuas, cujos
parâmetros elétricos estão disponíveis no Apêndice A deste trabalho, na forma de
folha de dados.
51
4.8.1 Arquitetura
A arquitetura básica do cartão de saídas pode ser observada na Figura
32.
Figura 32 - Arquitetura do Cartão de Saídas Contínuas.
Fonte: Autor.
Os blocos ISP-10, Reset e Cristal 16MHz, também ditos como Circuitos
Acessórios do MCU, já foram comentados nos itens: 4.6.6, 4.6.7 e 4.6.8
respectivamente, itens inerentes à placa principal, cujo funcionamento é exatamente
igual para o cartão de entradas e cartão de saídas.
Os circuitos de saída são responsáveis em prover um sinal elétrico
externo, com base no comando do MCU.
Um microcontrolador não é capaz de excitar um motor elétrico, visto que o
motor elétrico necessita de uma elevada corrente de acionamento, além do retorno
de carga indutiva ser capaz de danificar o MCU.
Similarmente aos circuitos de entrada, os circuitos de saída são definíveis
entre saída digital e saída analógica.
Um sinal de saída digital poderá assumir apenas dois valores, tensão, ou
ausência de tensão. Já um sinal de saída analógico, deve ser capaz de representar
uma infinidade de valores dentro de um universo real. Na prática esta infinidade de
valores reais, é limitada. A quantidade de valores num universo real e dita pela
MICROCONTROLADORATTINY2313
Cristal 16MHzGeração de Clock para o MCU
SPIComunicação
do barramento
Saídas
Contínuas4 saídas contínuas
ResetReset manual do MCU
ISP-10Programação do MCU no circuito
AlimentaçãoAlimentação principal dos circuitos
Barramento Principal
Circuitos de SaídaCircuitos acessórios ao MCU
Limites do Cartão de Saídas Contínuas
52
resolução do sinal, o qual é descrita em termos de bits necessários para descrever o
valor propriamente dito.
4.8.2 Circuito Eletrônico
Na Figura 27, Figura 28 e Figura 29 seguem o esquema eletrônico do
cartão de entradas. Para um melhor entendimento do circuito eletrônico, o mesmo
foi sub-dividido em blocos funcionais, análogos à arquitetura (Figura 25Figura 25). A
descrição do funcionamento destes blocos estão presentes nos tópicos seguintes.
4.8.3 Microcontrolador
O MCU escolhido para este cartão foi o AVR ATTINY2313, da linha
tinyAVR da ATMEL. Esta linha se caracteriza por possuir MCUs com grande
capacidade e recursos, com tamanho e curso extremamente reduzidos.
Maiores informações sobre o ATTINY 2313 poderão ser obtidas a partir
de seu datasheet (ATMEL, 2009d).
Figura 33 - Placa de Circuito Impresso proposta para o cartão de saídas.
Sem Escala. Fonte: Autor.
53
Figura 34 - Circuito Eletrônico do Cartão de Saídas. Folha 1 de 2.
Fonte: Autor.
54
Figura 35 - Circuito Eletrônico do Cartão de Saídas. Folha 2 de 2.
Fonte: Autor.
55
4.8.4 Saídas Analógicas
As saídas analógicas típicas do cartão de saídas seguem na Figura 36.
São um total de quatro saídas idênticas.
Figura 36 - Circuito de saída analógica.
Fonte: Autor.
A saída analógica empregada neste cartão baseia seu funcionamento na
lógica PWM – Modulação por Largura de Pulso (Pulse Width Modulation). A lógica
PWM gera um sinal lógico de onda quadrada, cuja duração dos níveis lógicos altos
em relação aos níveis lógicos baixo é controlada pelo MCU. A saída final é a tensão
média deste sinal de onda quadrada.
O controle de um sinal PWM, consiste basicamente em ajustar o ciclo
ativo, o qual é a quantidade de tempo expressa em percentuais que o sinal PWM
fica em nível lógico alto. Quanto maior for o ciclo ativo do sinal, maior será sua
tensão média final. O ciclo inativo, de forma análoga, é o tempo expresso em
percentuais que o sinal permanece em nível lógico baixo. Os ciclos ativos e inativos
são complementares, isto é, sua soma deve ser sempre igual a 100%. A tensão
média final será sempre o mesmo percentual do ciclo ativo, aplicado à diferença de
potencial das tensões de nível alto e baixo.
Por exemplo, considerando que a tensão de nível alto seja 5V; e a tensão
de nível baixo seja 0V. Se o tempo em que o nível lógico baixo for igual ao tempo de
nível lógico alto, então temos um ciclo ativo de 50% do tempo, logo a tensão final
56
será 50% da diferença de tensões do nível lógico alto e do nível lógico baixo, no
caso 2,5V.
Na Figura 37, temos um exemplo mais visual do funcionamento da lógica
PWM. Nesta figura, o primeiro gráfico ilustra um sinal puramente analógico, no
formato de uma senoide, em primeiro plano. No segundo plano, tem as oscilações
do oscilador PWM. No segundo gráfico, temos o sinal equivalente em lógica PWM.
Note que quando o sinal analógico puro está em sua crista de mais alto valor, o sinal
digital está praticamente em nível lógico alto (ciclo ativo próximo a 100%). Já quando
o sinal analógico está em sua crista de mais baixo valor, o sinal digital está com o
ciclo ativo praticamente nulo. Quando o senóide está em seu valor médio em relação
às cristas e vales, o ciclo ativo é 50%.
Figura 37 - Exemplos de onda PWM.
Fonte: http://www.avrfreaks.com.
O componente OK1 mostrado na Figura 36 é um opto – isolador com a
função de proteger e isolar os dois circuitos. (Informações mais detalhadas sobre
opto – isoladores no item 4.7.2).
O resistor R6 possui a função de limitar a corrente no emissor luminoso
do opto – isolador.
Os componentes R8 e Q2 atuam como um driver de corrente. O transistor
Q2 é um transistor tipo Darlington, o qual permite elevadíssimo ganho de corrente, é
está polarizado na configuração de corte/saturação. O transistor escolhido foi
polarizado para trabalhar com uma potência final de 30W, porém o transistor permite
trabalhar com uma potência final de 65W.
57
O LED3 permite um retorno de informação do estado da saída, ele possui
sua corrente limitada por R10.
O diodo D1 é um diodo de uso geral com a função de proteger o transistor
Q2 quando for ligado cargas indutivas na saída. Caso a carga ligada à saída não
seja indutiva, sua presença passa despercebida pelo circuito.
58
5 MICROCONTROLADORES
5.1 Conceito
Microcontrolador (MCU) é um dispositivo lógico (lógica booleana) de alto
nível de integração, isto é, ele integra vários dispositivos e sistemas internamente.
Microcontroladores são também definidos como sendo um computador em escala
reduzida.
O fato interessante nos MCUs são sua capacidade de processar
informações a um custo computacional e financeiro muito baixo. Temos
microcontroladores trabalhando em portões eletrônicos, em central de comando de
veículos eletrônicos, em geladeiras, ar-condicionado, dentre várias outras
aplicações. Temos também os microcontroladores trabalhando no ambiente
industrial, seja nos elementos sensores (transmissores de pressão, de vazão, etc.)
seja nos elementos atuadores (válvulas de controle, etc.), seja nos controladores de
pequeno porte.
Com uma pequena quantidade de componentes externos ao MCU,
podemos realizar grandes feitos
5.2 Características
Cada modelo de MCU possui seus blocos específicos, e cada qual com
suas características específicas. Existem modelos que implementam blocos
complexos, como por exemplo, interface USB, interface wireless, interface ethernet,
dentre vários outros. Porém existem alguns blocos que são essenciais a todo e
qualquer microcontrolador, e também existem aqueles que são encontrados na
grande maioria dos MCUs comerciais.
BLOCOS ESSENCIAIS A UM MCU
Processador (CPU – Unidade de Controle do Processo) contendo
basicamente:
59
o ALU (Unidade de Lógica Aritmética), responsável por todo e
qualquer cálculo aritmético necessário;
o Registro e decodificação de instruções, bloco responsável por
identificar as instruções a serem executadas, bem como a ação
propriamente dita de cada instrução;
o Registradores: são uma memória especial, de altíssima
velocidade e sem capacidade de reter informações na ausência
da alimentação. São utilizados para armazenar informações como
o endereço da memória contendo a última instrução executada;
Memórias:
o EEPROM – Memória não-volátil (capacidade de reter dados sem
a alimentação), e capacidade de escrita/leitura com grande limite
no ciclo de operações. Usualmente utilizada para armazenar
parâmetros do programa;
o FLASH – Memória não-volátil, com capacidade de escrita/leitura
com baixo limite no ciclo de operações, usualmente utilizada para
armazenar o programa principal a ser executado pelo MCU;
o RAM / SRAM – Memória volátil (sem capacidade de reter
informações sem a alimentação do MCU), usualmente utilizado
para armazenar informações como variáveis do programa, em
tempo de execução;
Portas – Blocos responsáveis por prover comunicação com o mundo
exterior ao MCU utilizando entradas e saídas;
BLOCOS COMUMENTE ENCONTRADOS EM MCUS
ADC – Conversor analógico para digital, normalmente associado a uma
porta;
TWI – Interface de comunicação serial a 2 fios. Muito utilizado para
comunicação entre MCUs;
USART – Interface de comunicação serial síncrona/assíncrona utilizada
comumente para comunicação com o mundo exterior, através do padrão
RS-232 ou RS-485, por exemplo;
60
Timers / Contadores – Utilizados para circuitos de tempo, circuitos
PWM, entre várias outras utilidades;
Interrupções – Bloco que provê a interrupção do processamento em
função de um estimulo externo em um pino específico do MCU. Este
bloco, quando ocorre o evento de interrupção, faz com que o
processador mude sua linha de execução para um bloco específico na
memória, para tratar a interrupção. Depois de o processador continua no
local onde parou;
5.3 Arquitetura
Internamente, temos duas arquiteturas bastante diferentes entre si. A
diferença existe na maneira o qual o processador está ligado à memória e ao
barramento principal, além de características construtivas do processador. Temos
atualmente três arquiteturas em desenvolvimento: RISC, CISC e mista (RISC +
CISC) (a arquitetura mista não será abordada em função de sua utilização estar
restrita aos processadores de grande capacidade, o qual foge completamente do
âmbito deste trabalho).
5.3.1 Arquitetura RISC
RISC – Reduced Instruction Set Computer – Computador com Set de
Instruções Reduzidos. O modelo desta arquitetura é antigo, porém apenas
atualmente se tornou viável o desenvolvimento de aplicações nesta arquitetura, visto
que ela requer um hardware avançado para sua execução ser viável. Sua
característica marcante é o fato de possuir em torno de 50 instruções (contra 100 a
300 da arquitetura CISC). Outra característica marcante é o fato das instruções
requerem exatamente o mesmo tempo para serem executadas, desta forma se em
um processador RISC, cada instrução necessita de um ciclo de clock, todas as
instruções disponíveis irão consumir exatos 1 ciclo de clock. Outra característica
marcante de processadores RISC é o elevado número de registradores, de 32 até
500 (contra a média de 4 a 16 da arquitetura CISC).
61
A arquitetura RISC, no passado não era viável, pois as memórias
disponíveis na época eram de baixa velocidade. Na arquitetura RISC as memórias
devem ser de alta velocidade, para que o desempenho geral não seja prejudicado.
A implementação de programas para processadores RISC é mais
complexa, pois não existem instruções prontas para uma só operação, o que não
ocorre em processadores CISC.
A ATMEL atualmente possui em sua linha de fabricação, os
microcontroladores da família AVR, o qual são todos construídos em cima da
arquitetura RISC. Está família de MCUs foi escolhida para o presente projeto,
essencialmente por ser arquitetura RISC, possibilitando assim um excelente
desempenho na função de controlar um processo.
5.3.2 Arquitetura CISC
CISC – Complex Instruction Set Computer – Computador com Set de
Instruções Complexos. O modelo mais utilizado antigamente, em função de não
necessitar de memórias com grande velocidade, para seu ótimo desempenho.
Possui como característica marcante o set de instruções gigantesco, da ordem de
100 a 300 instruções. Nesta arquitetura, em função de suas instruções serem
complexas, o processador CISC, requer um microprograma interno para poder
decodificar estar instruções complexas. As instruções em um processador CISC são
executadas em tempos diferentes, em função da complexidade de cada instrução.
5.4 Microcontrolador Escolhido
O microcontrolador escolhido para este projeto foi o AVR ATMEGA32,
fabricado pela ATMEL. Este microcontrolador possui arquitetura RISC. Esta
característica foi marcante para a escolha. A lógica fuzzy necessita de um
processamento rápido, o volume de dados a serem processados é relativamente
grande, e o processamento propriamente dito é simples perante o processador. A
arquitetura RISC pela sua simplicidade no set de instruções permite a
implementação desta lógica, com eficiência.
62
Figura 38 - Pinagem do ATMEGA32.
(ATMEL, 2009b)
Outro fator marcante na escolha deste MCU são seus periféricos
disponíveis, os quais serão abortados mais detalhadamente no item: 5.5 - Descrição
dos Componentes Internos.
O fator custo financeiro também foi decisivo na escolha deste MCU. Seu
valor de mercado é relativamente baixo, o que faz com que o seu custo-benefício se
torne bastante baixo. Na data de elaboração deste projeto, este MCU, o valor
comercial de varejo estava na faixa de R$ 20,00.
5.5 Descrição dos Componentes Internos
5.5.1 CPU
A CPU (Contol Process Unit – Unidade de Processamento Central) do
ATMEGA 32 é composta na arquitetura RISC, e possui 32 registradores de 8 bits
cada. Sua CPU permite a programação da memória em tempo de execução ( o que
permite a construção de boot-loaders – dispositivos auto-programáveis ). O set de
instruções do ATMEGA32 é composto de 131 instruções, o qual cada uma é
executada durante um único ciclo de clock. Velocidade de processamento máxima
de 16 MIPS (mega instructions per second – mega instruções por segundo) a um
clock de 16MHz.
63
5.5.2 Sistema de Clock
O sistema de clock é necessário para prover ao MCU um sinal estável e
constante, para que a execução das instruções se processe perfeitamente.
O ATMEGA32 permite que o clock seja externo ou interno.
Na modalidade interno, ele trabalha em baixas velocidades da ordem de
1MHz provido por uma rede RC (resistor capacitor) interna e calibrado de fábrica.
Esta modalidade é a modalidade padrão o qual o ATMEGA32 sai de fabrica.
A modalidade externa pode-se ter excitação por cristal, por rede RC, ou
por fonte externa. Na excitação por cristal temos um clock em níveis práticos
perfeito, em função da estabilidade oferecida pelo cristal. Com cristal, o limite de
velocidade do ATMEGA32 é 16MHz. Utilizando redes RC externa é aconselhável
apenas em situações, o qual o consumo de energia seja crítico, e a estabilidade do
MCU não seja crítica. Redes RC são afetadas diretamente por condições externas
como temperatura ambiente. A modalidade de fonte externa é utilizada apenas
quando temos algum oscilador de precisão externo, e quando existe a necessidade
de sincronizar o funcionamento de vários MCUs e/ou memórias externas
simultaneamente.
5.5.3 Memórias
O ATMEGA32 possui:
32k bytes de memória flash, auto-programável (o próprio MCU pode
programá-la) e programável no circuito final (ISP - in-system
programming). Esta memória é não-volátil e seu uso é destinado à
armazenar o programa principal;
1k bytes de memória EEPROM, esta memória é não-volátil e seu uso é
destinado a armazenar valores e parâmetros;
2k bytes de memória SRAM (semelhante à memória RAM). Esta
memória é volátil, e seu uso é destinado à variáveis do programa;
Para as memórias não-voláteis presentes no ATMEGA32, o tempo de
retenção de dados garantido pelo fabricante é de 20 anos a 85º C e de 100 anos a
25º C.
64
O ATMEGA32 também permite trava de software, isto é, uma vez travado,
não é possível apagar ou sobre-escrever o programa existente.
5.5.4 Interface JTAG
Possui interface JTAG para comunicação externa nos moldes na norma
IEEE 1149.1. Esta interface permite controle total do MCU por meio de um
dispositivo externo, bem como realizar debug linha a linha. Esta interface não será
muito comentada neste trabalho, visto que não ocorrerá sua utilização no
controlador.
5.5.5 Módulos de Entrada e Saída
O ATMEGA32 possui no mínimo 32 pinos de entrada/saída configuráveis
via software. Encapsulamentos para soldagem de superfície (SMD) possuem mais
valores de entradas/saídas. Estas 32 entradas e saídas, estão organizadas em 4
portas, a saber: PORTA, PORTB, PORTC e PORTD, com 8 entradas/saídas cada.
Cada pino pode ter uma função específica, que pode ou não ser ativada. Chamamos
estas funções de funções secundárias. Tudo depende do programa em execução.
5.5.6 Conversores Analógicos/Digitais
O ATMEGA32 possui 8 pinos, o quais podem ser configurados como
entradas ADC, isto é como conversores de sinal analógico para digital. A resolução
máxima do ADC do ATMEGA32 é de 10bits por canal. Estas entradas estão
localizadas na PORTA.
5.5.7 Interrupções
O ATMEGA32 possui 21 vetores de interrupção, sendo destes 21, 3
interrupções externas. O restante das interrupções são internas para eventos dos
periféricos, como por exemplo, término de conversão A/D, recebimento de
mensagem pela USART, etc.
65
5.5.8 Timers – PWM
Os timers/contadores, são dispositivos que quando acionados, vão
incrementando um registrador específico a cada ciclo de clock. Pode-se determinar
um valor de comparação, para que ao chegar neste valor, ele gere uma interrupção
específica, ou mesmo acione algum pino específico do MCU. Os timers também
podem ser configurados como PWM.
O ATMEGA32 possui 2 timers de 8 bits e 1 timer de 16 bits. Os timers
disponíveis podem ser configurados como PWM num total de quatro saídas PWM,
de 8 bits cada.
5.5.9 Comunicação serial
O ATMEGA32 possui três módulos de comunicação serial: SPI, TWI e
USART. Os modos SPI e TWI são utilizados como comunicação serial entre MCUs.
A USART é mais robusta e pode perfeitamente ser utilizada para comunicação nos
padrões RS-232 e RS-485, bastando haver uma conversão de tensões entre o MCU
e o meio externo.
5.5.10 SPI – Interface Periférica Serial
A interface SPI – (Serial Peripherical Interface – Interface Periférica Serial)
é uma interface que permite comunicação síncrona de alta velocidade entre
dispositivos. Esta interface foi originalmente concebida para a comunicação dos
processadores com memórias EEPROM, SRAM etc. atualmente, ela pode ser
utilizada para comunicação até mesmo entre MCUs diferentes. (ATMEL, 2009b)
O barramento de comunicação entre a placa principal e os cartões
periféricos do controlador é baseado nesta tecnologia
A interface SPI funciona em modo mestre-escravo, baseada em 3-4 fios.
Temos 2 fios para a transferência de dados propriamente dita, um para recebimento
de dados e outro para o envio de dados. Temos um fio para estabelecer o clock. E
temos um quarto fio para selecionar o escravo. O clock é gerado apenas pelos
66
mestres, e são sempre os mestres que iniciam uma comunicação. Alguns
dispositivos mais modernos, não necessitam do fio de seleção de escravo, porém
isto pode ser implementado via software. (ATMEL, 2009b)
5.6 Quadro Comparativo de Recursos
O Quadro 1 apresenta um comparativo dos principais recursos
disponíveis nos MCUs utilizados neste projeto.
Quadro 1 - Comparativo de recursos de MCUs.
MCU Flash EEPROM SRAM E/S F.
Máx. Vcc A/D Timers ISP PWM SPI TWI UART
ATtiny2313A 2 128 128 18 20 1.8-5.5
-- 3 Sim 4 Sim Sim 1
ATmega32A 32 1024 2048 32 16 2.7-5.5
8 4 Sim 4 1 Sim 1
ATmega8A 8 512 1024 23 16 2.7-5.5
6 4 Sim 3 1 Sim 1
UNIDADES kBytes bytes bytes MHz V
67
6 SISTEMA SUPERVISÓRIO
6.1 Introdução
Sistemas Supervisórios são programas (softwares) utilizados basicamente para a supervisão (o controle e aquisição de dados são realizados pelos CLP's) de processos industriais contínuos, em bateladas ou manufatura discreta. Para tanto, são instalados em microcomputadores conectados a uma rede de comunicação de um ou mais CLP's (controlador lógico programável) ligados a um equipamento, uma máquina ou até mesmo a um processo completo de fabricação. (WIKIPÉDIA, 2010)
Os sistemas supervisórios surgiram para possibilitar um controle maior da
planta/processo. Este controle possibilita um ganho de produtividade, redução de
custos operacionais, controle da qualidade, etc. Os sistemas supervisórios
comumente armazenam os dados do processo em um banco de dados. Este banco
de dados pode ser interligado a vários outros softwares específicos, tais como
softwares CAM, PCP, ERP, etc.
Sistemas supervisórios mais modernos permitem ainda, a supervisão da
planta via INTERNET. Desta maneira, o operador é capaz de tomar conhecimento
do estado da planta bem como decidir por ações a serem tomadas, sem estar
presente no ambiente industrial, apenas acessando a interface do software
supervisório via INTERNET. Vale lembrar que cada empresa adota políticas de
segurança as quais na maioria dos casos não permite ao operador tomar decisões
de forma remota, mas a possibilidade existe.
Na Figura 39, temos a montagem de um sistema automatizado de
controle. Temos inicialmente o processo, e os instrumentos conectados diretamente
ao processo. Os instrumentos são como os “olhos e ouvidos” dos controladores.
Exemplos de instrumentos são os medidores de vazão de temperatura de pressão,
as válvulas de controle, as válvulas solenóides, os atuadores pneumáticos, etc. O
controlador lógico programável – CLP é capaz de obter as informações dos
instrumentos e disponibilizá-las ao nível do supervisório, além de ser capaz de
efetuar o controle automático com base em uma programação já elaborada.
O supervisório comunica-se diretamente ao CLP, e este aos instrumentos.
68
Figura 39 - Estrutura de um sistema automatizado de controle.
Fonte: (VIANNA, BRINGHENTI e MARTINS, 2008)
6.2 Protocolo MODBUS
Modbus é um protocolo de comunicação de dados utilizado em sistemas de automação industrial. Criado na década de 1970 pela Modicon. [...] A Modicon (atualmente parte do grupo Schneider Electric) colocou as especificações e normas que definem o Modbus em domínio público. Por esta razão é utilizado em milhares de equipamentos existentes e é uma das soluções de rede mais baratas a serem utilizadas em Automação Industrial. (WIKIPÉDIA, 2010)
O protocolo MODBUS, em função de sua história, é um dos protocolos de
comunicação industrial mais difundido. Esta foi a principal razão de sua escolha para
o protocolo de comunicação do controlador fuzzy. A maioria dos softwares
supervisórios e CLP‟s comerciais permitem comunicação via protocolo MODBUS, o
que torna o Controlador Fuzzy extremamente flexível.
O protocolo MODBUS possui basicamente duas camadas, a camada de
rede e a camada de aplicação. Para o meio físico, temos três padrões suportados
oficialmente: RS-232, RS-485 e Ethernet.
Os padrões RS-232 e RS-485 são padrões de comunicação serial
síncrona entre dois terminais. Já o padrão ethernet é um padrão de comunicação
69
baseado no envio de pacotes de dados. Dos três o padrão ethernet é o mais robusto
apesar de ser computacionalmente mais caro.
Apesar do protocolo MODBUS e o padrão RS-232 terem sido utilizados
no Controlador Fuzzy, não é o propósito deste trabalho transcorrer em detalhes
ambos padrões. Mais informações sobre o protocolo MODBUS poderão ser obtidas
do site da internet http://www.modbus.org/ o qual é uma organização mantida pelos
fabricantes de equipamentos com o protocolo MODBUS. Para o protocolo RS-232,
existe a norma EIA-RS-232 o qual estabelece o padrão RS-232.
6.3 FreeModBus
A implementação do protocolo MODBUS nos microcontroladores AVR –
ATMEL, foi possível graças à biblioteca FreeModBus. A biblioteca FreeModBus é
uma biblioteca gratuita para o desenvolvimento de equipamentos embarcados com o
protocolo modbus.
A biblioteca é desenvolvida sob licença BSD, o qual estabelece poucas
restrições. A licença BSD permite que o software distribuído sob a licença, seja
incorporado a produtos proprietários.
Maiores informações sobre a biblioteca, bem como sobre a organização
responsável pelo seu desenvolvimento poderão ser obtidas diretamente em
http://freemodbus.berlios.de/ .
6.4 Feedback via LCD
O Controlador possui um display de feedback do tipo visor de LCD. A
função básica deste display na concepção deste controlador é informar ao usuário
sobre o estado geral do controlador. Uma Figura idêntica do display do controlador
pode ser vista na Figura 40.
Exemplos de informações a serem mostradas pelo display de feedback é
sobre a ativação de recursos (protocolo MODBUS, protocolo SPI, etc.), bem como
sobre a disponibilidade de comunicação dos cartões.
70
Figura 40 - Display LCD 16 colunas x 2 linhas.
Fonte: Autor.
Uma diferença básica entre o supervisório e o display de feedback, é que
no supervisório, o usuário poderá interagir com as ações de controle do processo, já
no display de feedback, o usuário somente obterá informações sobre o controlador
propriamente dito. Informações sobre o processo controlado, não serão indicadas no
feedback.
Na programação da placa principal, o envio de informações para o display
é extremamente simples, visto que o programador poderá realizá-la utilizando as
funções de comunicação padrão da linguagem c. (funções printf, fprintf, etc.).
6.5 Supervisório Escolhido
Foi escolhido o supervisório LAquis para os testes. Este supervisório é
desenvolvido pela empresa Leão Consultoria e Desenvolvimento de Sistemas Ltda.
O LAquis, suporta o protocolo MODBUS, possui uma interface totalmente em
português brasileiro. Ele suporta plantas 3D, bem como exporta relatórios para
diversos banco de dados. Veja logotipo do LAquis na Figura 41.
Figura 41 - Logotipo do supervisório LAquis.
Fonte: Software LAquis.
71
6.6 Tela do Supervisório
Para ilustrar o controle da planta piloto, foi desenvolvido uma tela no
supervisório LAquis - Figura 42. Nesta tela, temos basicamente a leitura das
variáveis fornecidas pelo Controlador.
Alterações no set-point de cada tanque podem ser realizadas digitando
diretamente o valor, na caixa de texto SP. O valor real do nível pode ser obtido no
campo PV, em unidades percentuais. O nível na imagens dos tanques acompanha o
nível real dos tanques na planta piloto. A abertura das válvulas está expressa em
termos percentuais.
Figura 42 - Tela no supervisório LAquis para controle da Planta Piloto.
Fonte: Autor.
72
7 LÓGICA NEBULOSA
7.1 Sistemas Inteligentes
O Processo de “pensar” e “decidir” do ser humano apresenta as seguintes características:
Raciocínio – é o processo de inferência a partir de objetivos, fatos e conhecimentos, visando obter possíveis ações. Ele está associado à previsão e ao planejamento.
Decisão – é o processo que, considerando as incertezas e as preferências, escolhe apenas uma ação dentre diversas alternativas, para o problema em questão;
Aprendizagem – é o processo que, a partir dos resultados alcançados por uma decisão, valoriza ou não, no futuro, decisões semelhantes.
Um sistema de inteligência artificial está interessado em modelar e implementar em computadores, programas que possuam uma ou várias dessas características. (CAMPOS e SAITO, 2004)
Os sistemas inteligentes são uma crescente área das tecnologias que
tratam das informações. Os sistemas inteligentes possuem como principal objetivo
“imitar” o comportamento humano de “pensar” e “decidir”. Existem atualmente várias
subdivisões no campo da inteligência artificial, dentre as mais importantes para os
aspectos de controle e automação, temos:
Sistemas Especialistas – Sistemas dotados de um banco de dados de
perguntas e respostas. Conforme o usuário informa as respostas, o sistema
especialista „cerca‟ a possível resposta. O sistema especialista também é capaz de
selecionar as perguntas mais adequadas e mais direcionadas conforme as
respostas são informadas;
Lógica “Fuzzy” (nebulosa) – Sistema que é capaz de avaliar e decidir
qual é a melhor solução com base em valores lingüísticos (quente, frio, morno) ao
invés de valores reais (20°C, 150°C, 45°C), também é famosa pela capacidade de
tratar dados imprecisos;
Redes Neurais – Sistema dotado de várias unidades elementares
(neurônios), que quando em conjunto formam uma rede neural. A idéia de rede
neural vem da analogia com o funcionamento do cérebro;
7.2 Princípios da lógica Fuzzy: Conjuntos Fuzzy
73
Conforme (CAMPOS e SAITO, 2004), os modelos matemáticos de um
processo real, sempre envolvem um número muito grande de incertezas,
decorrentes de duas razões. A primeira decorre da maneira como esses
conhecimentos são extraídos do mundo real, (através de instrumentos, ou mesmo
observação humana), no processo de extração das informações, existem os erros
inerentes ao instrumento, além dos arredondamentos ditos convencionais. A
segunda razão fonte das incertezas está contida na representação do modelo em
uma linguagem matemática e não natural. Na linguagem matemática é necessário
realizar algumas aproximações, alguns sacrifícios em prol da viabilidade de
utilização do modelo.
Partindo da idéia de que a mente humana é capaz de controlar processos
de elevada complexidade sem o conhecimento de seu modelo matemático, nasceu a
lógica “Fuzzy” (Nebulosa). O termo nebuloso advém da capacidade desta lógica em
trabalhar com informações imprecisas, nebulosas. Podemos considerar a lógica
fuzzy como sendo parte da inteligência artificial, visto que ela tenta imitar um
processo da mente humana.
A base desta lógica advém dos trabalhos de (ZADEH, 1965), o qual
estabelece a noção de conjuntos fuzzy, segundo (ZADEH, 1965) [...] um conjunto
fuzzy, [...], é uma “classe” com contínuos graus de pertinência[...] (Tradução do
autor). Isto é, um conjunto fuzzy, é uma classe o qual os elementos estão presentes
com contínuos graus de pertinência dentro de sub-conjuntos. Por exemplo, veja a
Figura 43, temos o conjunto fuzzy temperatura o qual possui os sub-conjuntos: frio,
morno e quente; e os valores estão contidos nestes sub-conjuntos com um grau de
pertinência dentro de cada um deles. Podemos dizer que 20°C pertence aos
subconjuntos FRIO e MORNO com um grau de pertinência de 0,5 em ambos (µfrio =
µmorno = 0,5). Já o valor 35°C possui µmorno = 0,6 e µquente = 0,8. Também pode-se
utilizar de percentagens para expressar os graus de pertinência.
No controlador desenvolvido, o grau de pertinência das variáveis varia de
0 a 255, esta variação tem origem no número de valores possível para um número
de 8 bits, em função das limitações de hardware existentes. A variação mínima entre
graus de pertinência distintos para este controlador é de 3,922 x 10-3. O qual para os
objetivos traçados para este projeto é perfeitamente aceitável.
74
Figura 43 - Conjunto Fuzzy: Temperatura e seus subconjuntos.
Fonte: Autor.
7.3 A lógica de controle fuzzy
Na lógica de controle fuzzy, utilizamos os conceitos dos conjuntos e
subconjuntos fuzzy para estabelecer o controle das variáveis. A lógica de controle
fuzzy, pode ser utilizada tanto em sistemas de malha aberta quanto sistemas de
malha fechada. Temos na Figura 44 o fluxograma da lógica de controle fuzzy.
Existem essencialmente três blocos: Fuzificação, Inferência e defuzificação.
A fuzificação é o processo responsável pela conversão dos valores de
universo real para o universo fuzzy. O bloco de inferência é responsável por analisar
um bloco de regras em sentença lógica, segundo os princípios de trabalho com
conjuntos fuzzy. Na defuzificação temos a conversão do resultado fuzzy para valores
reais.
Note que a lógica de controle fuzzy trabalha com dois universos distintos:
Universo Real e Universo Fuzzy. O universo real, é o universo dos números e
valores exatos, tal qual obtemos dos instrumentos e mesmo da observação humana.
Já o universo fuzzy, é composto pelas variáveis lingüísticas inerentes ao processo
(temperatura quente, fria, etc.). No Universo Fuzzy, existem apenas conjuntos
Fuzzy.
Sub-conjunto
FRIO
Sub-conjunto
MORNO
Sub-conjunto
QUENTE
GR
AU
S D
E P
ER
TIN
ÊN
CIA
VALORES REAIS
°C
Conjunto Fuzzy
TEMPERATURA
0 5 15 20 25 30 35 37 40 50 60
1
0,8
0,6
0,5
0
75
Figura 44 - Lógica de Controle Fuzzy.
Fonte: Autor.
7.3.1 Variáveis Fuzzy
No universo fuzzy, todas as variáveis existentes são ditas variáveis fuzzy,
o qual são nada mais que um conjunto fuzzy, composto de vários subconjuntos
fuzzy. Na Figura 43, temos o exemplo da variável fuzzy Temperatura, ela possui três
sub-conjuntos: frio, morno, e quente.
Para cada subconjunto ou mesmo termo lingüístico fuzzy, temos uma
função matemática o qual retorna o grau de pertinência de um dado valor. Esta
função recebe o nome de função de pertinência. Usualmente as funções mais
utilizadas são a função triângulo e função trapézio, porém e perfeitamente possível
utilizar funções quadráticas. Em cada variável fuzzy, devemos sempre ter uma
função de pertinência para cada termo lingüistíco. No controlador desenvolvido, só
existe a possibilidade de trabalho com funções de pertinência trapezoidais por
razões práticas, a função trapezoidal pode ser expressa em 4 parâmetros, os quais
podem transformá-la numa função triângulo, ou degrau apenas com a modificação
dos parâmetros.
Na Figura 45, temos a função triângulo expressa em parâmetros. Na
Figura 46, temos a função trapézio também expressa em parâmetros. Note que se
Fuzificação
Inferência
Defuzificação
Banco de
Regras
Saída de DadosEntrada de Dados
Un
ive
rso
FU
ZZ
Y
Universo REAL
Regra 01
Regra 02Regra 03Regra ...
76
fizermos os parâmetros b e c iguais na função trapézio, ela se transforma na função
triângulo.
Figura 45 - Função Triângulo.
Fonte: http://www.tede.udesc.br.
Figura 46 - Função Trapézio.
Fonte: http://www.tede.udesc.br.
77
7.3.2 Bloco de Fuzificação
Fuzificação ou nebulização é o bloco funcional dentro da lógica de
controle fuzzy responsável por converter os valores do universo real para o universo
fuzzy. Quando o controlador faz a leitura dos valores na planta, estes estão num
universo de valores reais (0°C, 4,5m³/min, etc.) o bloco de fuzificação, de posse da
função de pertinência dos termos lingüísticos das variáveis, o processo de
fuzificação atribui para cada termo lingüístico fuzzy um grau de pertinência. A
fuzificação se resume na aplicação da função de pertinência para cada termo.
7.3.3 Bloco de Inferência
Após a fuzificação é realizado a inferência, que consistem basicamente
numa série de sentenças lógicas em nível de termos lingüísticos.
As regras de inferência possuem a estrutura SE causa ENTÃO
conseqüência. Tomemos como exemplo a situação da Figura 47. A regra de
inferência diz que se o valor x estiver contido no termo lingüístico A da variável X
então a contribuição da regra será a área AL1 do termo lingüístico C da variável L,
ou em outras palavras, se o grau de pertinência do valor x no termo A for maior que
0, então o grau de pertinência do valor de saída dentro do termo C da variável L
deverá menor ou igual à pertinência do valor x.
Figura 47 - Regra de Inferência 01 – Causa Simples.
Fonte: Autor.
x
Termo A
Variável X
µx
REGRA DE INFERÊNCIA 01:
SE (x ϵ Termo A da variável X) ENTÃO (SAIDA ϵ Termo C Variável L)
Antecedente Consequente
Termo C
Variável L
Área AL1
0 94
Gra
us d
e P
ert
inê
ncia
Valor Universo Real
78
Analisando agora a Figura 48, o qual contém uma regra de inferência com
a estrutura SE causa 1 E causa 2 ENTÃO conseqüência. A regra de inferência
neste formato diz que se o valor y estiver contido no termo lingüístico B da variável Y
e o valor z estiver contido no termo lingüístico C da variável Z então a regra
contribuirá com a área AL2 do termo lingüístico D da variável L. Também pode ser
enunciado: se o grau de pertinência de y no termo lingüístico B for maior que 0 e o
grau de pertinência do valor z do termo lingüístico C for maior que 0 enão o valor de
saída possuirá grau de pertinência inferior ou igual ao menor grau de pertinência
encontrado nas causas, no caso em questão menor ou igual ao grau de pertinência
do valor z.
Figura 48 – Regra de Inferência 02 - Dupla Causa.
Fonte: Autor.
No processo de inferência fuzzy, cada regra sempre retornará uma área,
ou mesmo uma área vazia, justificado pelo fato que não se sabe ainda o valor, se
sabe apenas que o grau de pertinência do valor de saída deve ser menor ou igual a
um determinado valor, logo o valor de saída deverá estar contido em uma área.
Em função das várias regras existentes, poderá haver a sobreposição de
regras, isto é, várias áreas poderão ser unidas para gerar uma única saída. Por está
razão, é mais correto dizer que determinada regra estará contribuindo com uma área
e não definindo um valor de saída. A definição do valor exato de saída é realizada
no processo de defuzificação.
y z
µy
µz
Gra
us d
e P
ert
inê
ncia
Termo B
Variável Y
Termo C
Variável Z
REGRA DE INFERÊNCIA 02:
SE (y ϵ Termo B da variável Y) E (z ϵ Termo C da variável Z) ENTÃO (SAIDA ϵ Termo D Variável L)
ConsequenteAntecedente
Valor Universo Real
Área AL2
Termo D
Variável L
5 149
79
7.3.4 Bloco de Defuzificação
Quando o sistema termina de realizar a inferência, é esperado que o
sistema fuzzy tenha uma localização da localização da melhor saída para o atual
estado do sistema. Esta localização da melhor saída é expressa após a inferência
em termos de área de forma que se faz necessário a operação de defuzificação ou
em outros termos, denebulização.
A defuzificação, se resume em determinar um valor com base numa área.
Existem vários métodos de se obter o valor da melhor saída, dentre os principais e
mais usuais métodos temos, o método dos máximos, o método da média dos
máximos e o método do centróide.
A escolha do melhor método de defuzificação está diretamente
relacionada com a resposta do sistema às variações dos elementos de controle.
7.3.4.1 Método do Máximo (MAX)
O método do Máximo adota o ponto o qual a área resultante da inferência
é máxima. Este método é ineficiente para sistemas sujeitos a possuírem mais de um
máximo no resultado da inferência. Na ocorrência de mais de um máximo, qual o
máximo utilizar?
A vantagem deste método reside no seu custo computacional
extemamente baixo, e na velocidade de processamento mais rápida.
7.3.4.2 Método da Média dos Máximos (MDM)
Adota o valor médio dentre todos os pontos de máximo. Este método
possui um custo computacional relativamente baixo, porém sua desvantagem de
utilização reside na possibilidade de ocorrência de apenas um máximo na área de
resultado. Ocorrendo apenas um máximo, o cálculo da média é falho, nesta situação
o método pode provocar oscilações, tornando o sistema instável.
80
7.3.4.3 Método do centro da área – Centróide (CDA)
Também conhecido, como método do centróide, centro de gravidade ou
de massa. Este método calcula o centro de gravidade da área de resultado da
inferência, através da Equação 01. Suas vantagens residem na grande estabilidade
e menos suscetibilidade a falhas em função do sistema propriamente dito. Estas
razões fizeram com que este método fosse escolhido para o controlador, apesar do
custo computacional.
∑( )
∑ (01)
Onde:
representa o valor da saída no universo real;
representa a pertinência encontrada após a inferência das regras; e
representa o valor da saída, conforme o mapa de saídas.
Considerando um sistema, cujas regras de inferência estejam contidas na
Figura 47 e Figura 48 pode-se ter a defuzificação conforme a Figura 49. O valor de
saída no universo real é o valor q salientado na cor vermelha. A área de saída das
regras de inferência está salientada em vermelho, esta área nada mais é do que a
união das áreas de saída de cada regra individualmente. O método do centróide
localiza o centro de gravidade desta área (salientada em vermelho). Está área é um
exemplo de saída contínua.
Figura 49 - Defuzificação das Regras 01 e 02.
Fonte: Autor.
Valor Universo RealGra
us d
e P
ert
inê
ncia
Termo D
Variável L
4 149
Termo C
Variável L
0 5
Área AL2Área AL1
µzµx
q
DEFUZIFICAÇÃO PELO MÉTODO DO CENTRÓIDE
81
7.3.5 Comparativo entre os métodos de defuzificação
Conforme (GOMIDE e GUDWIN, 1994), no processo de defuzificação,
não existe um procedimento sistemático para a escolha da estratégia de
defuzificação. Cada estratégia possui suas particularidades que são mais ou menos
adequadas a cada processo. Temos na Figura 50 um comparativo do resultado
oferecido pelas três estratégias discutidas neste trabalho. Sendo MAX o método dos
máximos; CDA o método do centróide; e MDM o método da média dos máximos.
Figura 50 - Comparativo de estratégias de defuzificação.
Fonte: (GOMIDE e GUDWIN, 1994)
Os três métodos discutidos apresentam respostas bem próximas, dadas
as mesmas condições no universo fuzzy. A diferença entre uma resposta e outra
muitas vezes é desprezível, a diferença entre os métodos determina principalmente
a estabilidade da resposta do processo de defuzificação, em função do consumo
computacional necessário para o método.
7.4 Utilizações Práticas da Lógica Nebulosa
Os sistemas fuzzy nasceram da idéia de que um operador de uma planta
industrial consegue controlar a mesma sem conhecer o modelo matemático dos
processos inerentes. A mente humana é capaz de associar vários estados a uma
ação de saída. A noção de proporcionalidade também é realizada pela mente
humana de forma quase automática e imperceptível à consciência humana.
82
Em processos o qual o nível de complexidade inviabiliza a modelagem
matemática, é o local ideal para a implementação de sistemas Fuzzy, pela
capacidade desta lógica de trabalhar com sistemas o qual o modelo matemático seja
desconhecido.
Uma das primeiras aplicações de sucesso da lógica fuzzy foi o Metrô de
Sendai no Japão. Em 1987 entrou em operação o metrô de Sendai totalmente
operado através de lógica fuzzy. O controle fuzzy permite ao metrô paradas suaves
no menor tempo levando em consideração a massa variável do metro advinda da
lotação de passageiros. (BAUMKARTEM, ZANDER e ROCHA, 2006)
Um exemplo prático de sucesso da metodologia Fuzzy, é na partida da
plataforma PETROBRAS – XIX (P-19). Sua partida consiste em duas fases. A
primeira utiliza um sistema especialista para o ajuste de válvulas “on-off”. Na
segunda fase, de produção de óleo, foi utilizado um controlador fuzzy multivariável
para controlar as válvulas de controle da plataforma. (CAMPOS e SAITO, 2004).
Uma aplicação da lógica fuzzy proposta por (FO., FO., et al., 2003),
consiste de uma rede nebulosa neural que trabalha em paralelo com um otimizador
determinístico. A rede utilizada é capaz de aprender as decisões numéricas do
otimizador, é funciona como uma espécie de intérprete, traduzindo as decisões
numéricas para uma linguagem mais natural, facilmente compreendida por seres
humanos.
Uma aplicação interessante da lógica fuzzy, distante da lógica de controle
industrial, é o processamento de imagens. O software utiliza da lógica fuzzy para
melhorar o contraste de imagens sem a perda da informação. Temos na Figura 51
uma montagem comparativa, o qual uma mostra a letra A num fundo cuja cor muito
próxima á da letra A, dificultando o entendimento da letra, e a segunda imagem,
mostra a mesma imagem, após o processamento de contraste fuzzy.
Sahai e Waters propõem outra utilização bastante peculiar para a lógica
fuzzy. Eles propõem um sistema de criptografia de dados, baseado em senhas
públicas e privadas. As senhas são geradas com base em elementos biométricos
(impressão digital, íris, etc.). A lógica fuzzy é empregada na geração das senhas a
partir dos dados biométricos. (SAHAI e WATERS, 2005)
83
Imagem sem o processamento de contraste fuzzy.
Imagem com o processamento de contaste fuzzy.
Tentativa 1 do autor em melhorar o contraste com os métodos
convencionais.
Tentativa 2 do autor em melhorar o contraste com os métodos
convencionais.
Figura 51 - Processamento de Imagens com Lógica Fuzzy.
Fonte das imagens: (WOLFRAM RESEARCH, 2010).
Fonte da montagem: Autor.
7.5 Modelagem de Processos em Lógica Nebulosa
7.5.1 Modelagem PID
Na modelagem PID é necessário antes de tudo estabelecer a função de
transferência, o qual consiste de uma função matemática que representa a situação
física de ocorrência na planta. A função de transferência também pode ser entendida
como uma função matemática que expressa uma relação real e aproximada da
variável de entrada com a variável de saída.
De posse da função de transferência, a mesma passa por uma série de
operações matemáticas que extraem a melhor saída com base no valor de entrada.
A grande limitação do controle PID é o aumento exponencial de
complexidade da elaboração da função de transferência, em função do aumento de
complexidade do sistema de controle. O aumento de mais de uma entrada ou mais
de uma saída ou mesmo ambos, também aumenta significativamente à
complexidade de modelagem e de operações na função de transferência.
7.5.2 Modelagem Nebulosa
84
Na modelagem em lógica fuzzy, é necessário estabelecer valores
lingüísticos para cada variável de controle, seja de entrada ou saída. Cada valor real
possui uma pertinência em cada valor lingüístico, de forma que se faz necessário
definir estes graus de pertinência. Também é necessário estabelecer um banco de
regras de inferência o qual são a relação entre os valores lingüísticos das variáveis
de entrada e as de saída. Estas definições determinam diretamente a qualidade do
controle fuzzy, seja pela sua precisão de atuação ou mesmo pelo tempo de
resposta.
Com base nas definições lingüísticas das variáveis e do banco de regras
de inferência, o algoritmo fuzzy pode ser utilizado como uma solução comercial já
existente, como também pode ser implementada uma solução específica para cada
processo.
Conforme (GOMIDE e GUDWIN, 1994) devemos estabelecer
basicamente dois tipos de parâmetros necessários para modelarmos um sistema de
controle fuzzy: parâmetros estruturais e de sintonia. Os parâmetros estruturais
devem ser estabelecidos apenas uma única vez, e deverão ser alterados apenas
com alterações no processo (aumento da produção, pela adição de equipamentos,
por exemplo). Os parâmetros de sintonia devem ser atualizados de tempos em
tempos, bem como é necessário estabelecer um programa de estudo de tais
parâmetros para que o sistema de controle possa sempre estar “sintonizado” no
melhor processo produtivo. Os principais parâmetros estruturais e de sintonia estão
relacionados no Quadro 2.
Quadro 2 - Parâmetros de um sistema de controle fuzzy.
PARÂMETROS ESTRUTURAIS PARÂMETROS DE SINTONIZAÇÃO
Número de variáveis de saída Universo de discurso das variáveis
Número de variáveis de entrada Parâmetros das funções de pertinência, tais como altura, largura ou conjunto suporte
Recursos de operação sobre os dados de entrada (somas, multiplicações, etc)
Ganhos e offset das entradas e saídas
Variáveis lingüísticas
Funções de pertinência parametrizadas
85
Intervalos de discretização e normalização
Estrutura da base de regras
Conjunto básico de regras
Fonte: (GOMIDE e GUDWIN, 1994)
Outro aspecto que deve ser bem comentado é o bloco de regras. As
regras apesar de serem um dos parâmetros estruturais do controlador devem ser
testadas em aspectos de completude, consistência, interação e robustez. As regras
de inferência são responsáveis pela “inteligência” da lógica de controle, de forma
que quanto melhor for a robustez, a interação, a completude, e a eficiência das
regras, mais robusto, e eficiente será o controlador. Gomide e Gudwin propõem a
utilização de ruídos para o teste de robustez das regras, sendo a imunidade a um
certo nível de ruídos uma característica marcante de controladores fuzzy. (GOMIDE
e GUDWIN, 1994)
Conforme as conclusões de (PADILHA, 2001), um sistema fuzzy com os
parâmetros de sintonia pré-configurados, mesmo na presença de algum sistema de
refinamento automático, permite uma redução considerável na quantidade de regras,
bem como uma redução no tempo de busca dos parâmetros de sintonia ideais.
7.5.3 Manutenção de Sistemas de Controle Fuzzy
Após um Sistema de Controle Fuzzy (SCF) estar estruturado e
implementado, deve-se entrar no processo de manutenção do SCF.
A manutenção de um SCF consiste em ajustar o sistema para que o
mesmo possa sempre permitir o melhor desempenho no controle do processo.
Temos na Figura 52 uma EAP proposta para a estabelecer a manutenção de um
SCF.
86
Figura 52 - EAP Manutenção de SCF.
Fonte: Autor.
O ciclo de manutenção de um controlador fuzzy deve ser continuo, para
que o SCF possa se adaptar ao processo e as suas alterações.
Alterações de produtividade no processo como o tempo para realizar uma
tarefa ou mesmo a quantidade de material produzido, podem ser facilmente
alteradas através do ajuste dos parâmetros de sintonia, desde que a planta já
ofereça suporte físico para as alterações.
Alterações física na planta, tais como acréscimo/decréscimo de
equipamentos, torna a manutenção do SCF mais dispendiosa, visto que nestas
situações é necessário ajustar os parâmetros estruturais, as regras e os parâmetros
de sintonia.
Para as alterações mais simples (alterações nos parâmetros de sintonia)
pode-se ser empregado outros sistemas para realizar estes ajustes. Podemos ter,
por exemplo, uma rede neural com algoritmos de aprendizagem, conforme ilustra o
trabalho de Padilha (PADILHA, 2001) o qual mostrou a eficiência da utilização de
uma rede neural capaz de “aprender” ajustando os parâmetros de sintonia.
A eficiência e o desempenho do controlador estão diretamente
condicionados à manutenção oferecida ao mesmo, de forma que estabelecer um
plano de manutenção se torna indispensável para o sucesso do sistema de controle
nebuloso.
87
8 PLANTA PILOTO
8.1 Objetivo da Planta Piloto
A fim de demonstrar funcionalidade do controlador desenvolvido, foi
implementado uma planta piloto. A planta consiste de um sistema composto de três
tanques interligados em cascata, e o objetivo do controle está no nível de forma
individual dos três tanques. Maiores informações sobre a planta poderão ser obtidas
no tópico 3.2.2. Veja Figura 53.
Figura 53 - Planta Piloto.
Fonte: Autor.
RESERVÁTÓRIO
TANQUE
FONTE DE ALIMENTAÇÃO
CONTROLADOR
VÁLVULA DE CONTROLE
88
Para o controlador propriamente dito, foram construidos, um cartão principal,
com o display LCD de retorno, um cartão de entradas e um cartão de saídas. Todas as
placas do controlador foram montadas em uma placa de acrílico, de forma bem visual e
didática. Veja Figura 54.
Figura 54 - Montagem didática do controlador implementado.
Fonte: Autor.
Foi desenvolvido também uma tela de supervisório, para o controle e
extração de dados reais da planta. Maiores informações sobre o supervisório,
poderão ser obtidas no Capítulo 6.
8.2 Aplicações da Planta Piloto
A planta piloto desenvolvida possue carater didático, porém o processo
realizado pela planta pode ser utilizado em vários processos industriais. O sistema
de três tanques em cascata, encontra seus principais exemplos em industrias
químicas.
89
Uma aplicação típica da necessidade do controle do nível num sistema de
tanques semelhante, seria justamente na produção de algum composto, o qual a
concentração de suas matérias primas seja de suma importância para o processo de
forma global. O controle da concentração, pode ser estabelecido pelo controle direto
no nível no tanque. Na produção em nível industrial, podem ser acoplados aos
tanques agitadores, bem como outras entradas (nesta situação, o termo mais
adequado seria reator). Em cada um dos tanques seria acrescido um sub-produto,
de forma que o produto final tenha de circular nos três tanques / reatores.
Outra possível aplicação para o sistema de três tanques interligados em
cascata, seria para tanques de decantação9 e / ou flotação10. Em ambos os
processos ocorrem a separação de fases em misturas. No caso da flotação, o
controle do nível é imprescindivel e a utilização de tanques em cascata permite
utilizar agentes flutuantes cada vez mais concentrados a fim de obter o máximo de
eficiência.
8.3 Experimento Prático
A fim de demonstrar a atuação do controlador, foi realizado um
experimento prático contendo duas interferências simultâneas, de modo a
desestabilizar todo o sistema. O experimento consistiu basicamente do acréscimo
externo de produto no TQ-103, e da alteração abrupta do SETPOINT do TQ-102.
A partir do supervisório, foram extraidos dados necessários para a
montagem dos gráficos. Em função de uma limitação existente no software
supervisório, os dados foram levantados de segundo em segundo. O GRÁFICO 1
apresenta os dados levantados pelo supervisório, perante as perturbações. Estão
representados no gráfico, tanto o nível de cada tanque quanto o SETPOINT de cada
um deles.
9 Decantação: Separação de fases de uma mistura heterogênea por meio da ação da gravidade na
fase mais densa. Processo muito utilizado no tratamento de água e efluentes. 10
Flotação: Separação de elementos numa mistura por meio da adição de um agente flutuante o qual irá criar uma espuma contendo o agente a ser separado. A espuma é separado em células/tanques por meio do transbordamento da espuma. Processo muito utilizado na separação de minério metálico da terra.
90
GRÁFICO 1 - Estado Geral da Planta Piloto mediante Experimentos Práticos.
Fonte: Autor
Para a resposta à alteração do SETPOINT no TQ-102, pode-se notar a
ausência de overshoot justificado pela eficiência da lógica de controle (lógica fuzzy),
a qual recalcula o melhor valor das válvulas de controle, a cada interação. O tempo
de acomodação do nível do TQ-102, é demasiado longo (da ordem de 7-8
segundos), o qual é justificado por uma deficiência física das válvulas de controle,
deficiência esta detectada nestes testes.
A interferência externa analisada, consistiu do acréscimo substancial de
produto no TQ-103, aumento este evidenciado pela ascenção abrupta da curva de
nível do referido tanque. O tempo de acomodação do sistema, mediante esta
interferência, foi demasiado longo, da ordem de 15-16 segundos. O limite de vazão
das válvulas mais uma vez é responsável pelo longo tempo de acomodação.
Um detalhe interessante é a oscilação mais evidente no nível do TQ-101,
após as perturbações. Oscilações estas provenientes dos ajustes no sistema.
20,00%
25,00%
30,00%
35,00%
40,00%
45,00%
50,00%
55,00%
60,00%
65,00%
0 5 10 15 20 25 30
Nív
el (
%)
Tempo (segundos)
Nível-TQ101 SP - TQ101
Nível-TQ102 SP - TQ102
91
9 CONCLUSÃO
9.1 Dificuldades obtidas
No desenvolvimento do controlador, surgiram algumas dificuldades as
quais foram contornadas, segue uma relação dos principais obstáculos bem como
as soluções tomadas:
Controle Fuzzy – a lógica de controle fuzzy, infelizmente não possui
alguma biblioteca que implemente suas funções para microcontroladores. Neste
controlador foi desenvolvido um código simples para efetuar os cálculos fuzzy. O
desenvolvimento desta biblioteca fuzzy, demandou considerável tempo, seja
procurando informações, seja implementando código. Outro aspecto gerador de
grandes dificuldades neste assunto é a escassez de informação técnica a cerca da
lógica fuzzy na linguagem portuguesa.
Microcontroladores Atmel – os microcontroladores da linha AVR da Atmel,
possuem características admiráveis para aplicações deste gênero, porém carecem
de de informações técnicas na língua vernácula. As principais fontes de informações
acerca destes componentes foram obtidas diretamente das folhas de dados, bem
como de algumas notas técnicas do mesmo fabricante. Um aspecto negativo desta
fonte de informações, são justamente os exemplos em linguagem c, os quais são na
sua maioria absoluta implementados para compiladores comerciais da linguagem c,
o que dificulta as vezes até impossibilita o aproveitamento de código em
compiladoes c de domínio público.
9.2 Resultados Obtidos
O projeto do Controlador Fuzzy – Microcontrolador, apesar de trazer
algumas dificuldades, possibilitou a reunião de uma gama de informações técnicas
de várias disciplinas, num só documento. Conhecimentos nas áreas de Elerônica,
Inteligência Artificial, Controle, Programação, dentre várias outras, foram abordadas
ao longo deste trabalho.
A concepção e construção do Controlador Fuzzy, conseguiu seguir um
padrão simples, porém funcional, de forma a constituir um sistema flexível, e
92
dinâmico. Estes atributos fazem deste controlador, uma base de desenvolvimento
interessante, visto que poderão ser desenvolvidos sistemas nebulosos, cartões de
controle, e até mesmo um futuro controlador, com mais recursos e melhor
desempenho.
Este trabalho proporcionou uma nova base para abordagens no tocante
ao controle de sistemas. A lógica nebulosa vem juntamente com os sistemas
clássicos e modernos de controle, formar um conjunto de informações capazes de
controlar os mais variados tipos e naturezas de processos.
Um profissional com o foco em contruir sistemas automatizados deve
possuir conhecimentos nas mais variadas técnicas de controle de sistemas para que
o mesmo possa obter sucesso em qualquer projeto de controle e automação.
9.3 Conclusão Geral
A crescente evolução da tecnologia tem permitido ao homem alçar níveis
de produção tecnológica cada vez mais altos. A lógica fuzzy permite a resolução de
problemas de elevada complexidade, com um custo de desenvolvimento
proporcionalmente desprezível. A lógica fuzzy emprega o mesmo raciocínio utilizado
pelo homem, o raciocínio de resolver um problema sem o conhecer profundamente.
Esta é a característica que permite identificar a lógica fuzzy como uma forma de
inteligência artificial.
As aplicações da lógica fuzzy são inúmeras e talvez incalculáveis. Este
trabalho mostrou uma maneira prática de utilizar a lógica nebulosa para o controle
de máquinas e processos industriais, com recursos de hardware extremamente
simples e limitados, o que proporciona a possibilidade de utilizá-la em grandes
obras, em grandes processos, com uma eficiência garantida.
O controlador desenvolvido permite uma plataforma prática e flexível para
o estudo da lógica nebulosa. Uma plataforma simples e funcional, que poderá servir
de base para futuros estudos, para o desenvolvimento de futuros produtos, entre
outros. O limite da criação está apenas na imaginação.
93
9.4 Idéias Futuras
Durante o processo de pesquisa, implementação e testes do controlador
desenvolvido, surgiram algumas idéias as quais por uma questão de prazos e metas
já estabelecidas, não puderam ser desenvolvidas, porém, ficam presentes estas
idéias para que futuramente elas possam ser desenvolvidas.
9.4.1 Funções de Pertinência das Variáveis Fuzzy
Definir várias funções possíveis de forma paramétrica no software, de
forma que os termos das variáveis fuzzy possam ser armazenados apenas com a
função de pertinência a ser utilizada bem como os parâmetros da mesma.
O hardware do controlador será um grande fator limitante desta idéia, de
forma que o desenvolvimento da mesma deverá acompanhar um estudo do
hardware.
O controlador desenvolvido, implementa apenas uma função trapézio
para variáveis. A função triângulo e a função degrau podem ser expressas pela
função trapézio, de forma que o controlador pode implementar as três funções.
Porém pode-se implementar ainda, com o desenvolvimento desta idéia, funções
quadráticas, a função gaussiana, funções trigonométricas, etc.
A origem desta idéia está contida no tópico 7.3.1.
9.4.2 Plano de Manutenção
Definir um plano de manutenção, manual, semi-automático ou automático
para garantir o sucesso do sistema. Pode-se implementar algoritmos para o controle
dos parâmetros de sintonia, podendo ser de várias abordagens, tais como: utilizando
redes neurais (com ou sem algoritmos de aprendizagem), utilizando algoritmos
genéticos, utilizando outros controladores (fuzzy ou PID), utilizando sistemas
especialistas, etc.
Nesta abordagem do controle dos parâmetros de sintonia, o elemento que
estará controlando os parâmetros, deverá possuir regras-objetivo. Essas regras-
objetivo podem ser, menor tempo possível, menor sobra de material, menor nível de
ruído, menor consumo de corrente elétrica, etc.
94
Pode-se também traçar um sistema de ajuste das regras. O elemento de
controle dos parâmetros de sintonia e das regras deverá estar analisando os dados
do processo, os parâmetros já definidos, e os objetivos (estabelecidos nas regras-
objetivo), e através de uma análise probabilística, estatística ou mista, deverá
estabelecer novas diretrizes para o SCF.
Para a manutenção em nível estrutural, um plano manual é mais
desejado, visto a importância e o impacto dos parâmetros estruturais.
Um outro aspecto da manutenção de um sistema fuzzy, é justamente uma
análise de eficiência dos sensores e atuadores do sistema. Para o perfeito
funcionamento de um sistema fuzzy, os atuadores (traduzem um valor de saída para
uma ação no sistema), devem ter sua eficiência monitorada. Após a realização dos
testes, foi constatado que as válvulas de controle, estão sub-dimensionadas para o
sistema. Para uma eficiência maior, com um tempo de acomodação menor, é
necessário um estudo em torno das válvulas de controle.
A origem destas idéias estão contidas nos tópicos 7.5 e 8.3.
95
10 REFERÊNCIAS
AHMED, A. Eletrônica de Potência. São Paulo: Person Prentice Hall, 2000. ISBN ISBN: 85-87918-03-6.
ATMEL. AVR042: AVR Hardware Considerations. [S.l.]: [s.n.], 2008a.
ATMEL. DATASHEET ATMEGA 32A. [S.l.]. 2009b.
ATMEL. DATASHEET ATMEGA8A. [S.l.]. 2009c.
ATMEL. DATASHEET ATTINY2313A. [S.l.]. 2009d.
BAUMKARTEM, R.; ZANDER, D.; ROCHA, R. Lógica Fuzzy. São Leopoldo: UNISINOS - Universidade do Vale do Rio dos Sinos, 2006.
BRAGA, N. C. Diodos Schottky na proteção contra transientes. Saber Eletrônica, n. 427, Agosto 2008.
CAMPOS, M. M. D.; SAITO, K. Sistemas Inteligentes em Controle e Automação de Processos. Rio de Janeiro: Editora Ciência Moderna Ltda., 2004. ISBN ISBN: 85-7393-308-9.
FARCHILD SEMICONDUCTORS. DATASHEET TIL113. [S.l.]: [s.n.], 2004.
FO., D. S. et al. Interpretação Lingüística da operação ótima de uma usina hidroelétrica através de redes neurais nebulosas adaptáveis. Revista Controle & Automação, 14, Julho, Agosto e Setembro 2003.
GOMIDE, F. A. C.; GUDWIN, R. R. Modelagem, Controle, Sistema e Lógica Fuzzy. SBA Controle e Automação, 4, Setembro-Outubro 1994.
LIMA, M. M. P.; MURARI, C. A. F.; PEREIRA, M. A. Uma nova metodologia para fluxos de carga fuzzy. Revista Controle e Automação, 14, Jan, Fev, e Mar 2003.
MAXIM INTEGRATED PRODUCTS. DATASHEET - MAX220-MAX249. Sunnyvale. 2006.
NISE, N. S. Engenharia de Sistemas de Controle. Tradução de Fernando Ribeiro da Silva. Rio de Janeiro: LTC, 2009.
PADILHA, P. C. C. Desenvolvimento de uma metodologia de sintonia de controladores fuzzy utilizando redes neurais. Aplicações em processos petroquímicos. Rio de Janeiro: Instituto Militar de Engenharia, 2001.
96
SAHAI, A.; WATERS, B. Fuzzy Identy-Based Encryption. [S.l.]: [s.n.], 2005.
STMICROELECTRONICS. DATASHEET BAT 49. 1ª Edição. ed. [S.l.]: [s.n.], 1999.
VIANNA, W. D. S.; BRINGHENTI, P. M.; MARTINS, L. D. S. Sistema SCADA Supervisório. Campos dos Goytacazes - RJ: Instituto Federal Fluminense de Educação Ciência e Tecnologia, 2008.
WIKIPÉDIA. Modbus. Wikipédia, a enciclopédia livre, 2010. Disponivel em: <http://pt.wikipedia.org/wiki/Modbus>. Acesso em: 21 maio 2010.
WIKIPÉDIA. Sistema Supervisório. Wikipédia, 2010. Disponivel em: <http://pt.wikipedia.org/wiki/Sistema_supervisório>. Acesso em: 24 maio 2010.
WOLFRAM RESEARCH. Fuzzy Logic: Example 9: Image Processing. Wolfram Research, 2010. Disponivel em: <http://www.wolfram.com/products/applications/fuzzylogic/examples/processing.html>. Acesso em: 25 maio 2010.
ZADEH, L. A. Fuzzy Sets. University of California. Berkeley - California. 1965.
97
APÊNDICE A - FOLHA DE DADOS TÉCNICOS DO CONTROLADOR
CONTROLADOR FUZZY - MICROCONTROLADO
CLEITON SILVANO GOULART
FOLHA DE DADOS TÉCNICOS
1 CONTROLADOR 1.1 Arquitetura: Cartões com barramento
1.2 Número máximo de cartões: 4
1.3 Alimentação: 5V / 12V (corrente contínua)
1.4 Comunicação com o meio externo: RS-232 diretamente da placa principal
1.5 Protocolo de comunicação disponível MODBUS - Slave
1.6 Identificação do cartão 0xA0 / 0d10
1.7 PROTOCOLO MODBUS
1.7.1 Arquitetura de Comunicação RTU
1.7.2 Meio Físico RS-232
1.7.3 BaudRate 9600
1.7.4 Paridade Even
1.7.5 Nº de Bits 8
1.7.6 Bits de parada 1
1.7.7 Endereço Inicial 1000
2 BARRAMENTO 2.1 Barramento prové alimentação: Sim
2.2 Protocolo do barramento: SPI master/slave
2.3 Qtde. limite de masters: 1
2.4 Qtde. limite de slaves: 4
3 PLACA PRINCIPAL 3.1 Microcontrolador principal: AVR ATMEGA32 - ATMEL
3.2 Qtde de bits do processador: 8 bits
3.3 Feedback: Display LCD 16x2
3.4 Comunicação: RS-232
3.5 Barramento: SPI master
3.6 Aliimentação / Potência 2 W - máx @ 5V
4 CARTÃO ENTRADAS 4.1 Microcontrolador: ATMEGA 8A
4.2 Qtde de bits do processador: 8 bits
4.3 Feedback: Led por entrada discreta
4.4 Barramento: SPI slave
4.5 Qtde. de entradas discretas: 4 entradas
4.6 Qtde. de entradas continuas: 4 entradas
4.7 Alimentação / Potência 1,5 W máx @ 5V
98
CONTROLADOR FUZZY - MICROCONTROLADO
CLEITON SILVANO GOULART
FOLHA DE DADOS TÉCNICOS
4.8 ENTRADAS DISCRETAS
4.8.1 Isolamento optico: Sim
4.8.2 Tensão de Isolamento: 1000V
4.8.3 Impedância: 1k
4.8.4 Tensão máxima: 24V
4.8.5 Proteção contra inversão de polaridade: Sim
4.8.6 Feedback: Sim
4.9 ENTRADAS CONTINUAS
4.9.1 Isolamento optico: Não
4.9.2 Tensão de Isolamento: -
4.9.3 Impedância: -
4.9.4 Range de tensão: 0 - 5V
4.9.5 Range de corrente: não aplicável
4.9.6 Proteção contra inversão de polaridade: Sim
4.9.7 Feedback: Não
5 CARTÃO SAÍDAS 5.1 Microcontrolador: ATMEGA8A
5.2 Qtde de bits do processador: 8 bits
5.3 Feedback: Led por saída contínua
5.4 Barramento: SPI slave
5.5 Qtde. de saídas discretas: 0 saídas
5.6 Qtde. de saídas continuas: 4 saídas
5.7 Alimentação / Potência 2 W máx @ 5V / 140 W máx @ 12V
5.8 SAÍDAS DISCRETAS
5.8.1 Isolamento optico: -
5.8.2 Tensão de Isolamento: -
5.8.3 Impedância: -
5.8.4 Tensão máxima: -
5.8.5 Proteção contra inversão de polaridade: -
5.8.6 Feedback: -
5.9 SAÍDAS CONTINUAS
5.9.1 Isolamento optico: Sim
5.9.2 Tensão de Isolamento: 1000 V
5.9.3 Impedância: -
5.9.4 Range de tensão: 0 - 12V
5.9.5 Range de corrente: 0 - 2 A (corrente contínua)
5.9.6 Proteção contra inversão de polaridade: Sim
5.9.7 Feedback: Sim - Led
5.9.8 Proteção para cargas indutivas: Sim
5.9.9 Corrente de pico: 3A
6 LÓGICA FUZZY 6.1 Nº máximo de variáveis linguisticas
99
CONTROLADOR FUZZY - MICROCONTROLADO
CLEITON SILVANO GOULART
FOLHA DE DADOS TÉCNICOS
6.2 Nº máximo de termos por variável 5
6.3 Nº Máximo de regras de inferência 20
6.4 Funções de pertinência disponíveis Triangulo e Trapézio
6.5 Intervalor de pertinência ([0..1]) 0..255
6.6 Menor valor de pertinência disponível 0,003937008
7 ENDEREÇOS MODBUS
7.1 SLOT - 01 Cartão de Entradas
Descrição Endereço
Tamanho Suporte a escrita
Observação Decimal Hexadecimal
7.1.1 Entrada Digital 0 1000 3E8 16 bits Não
7.1.2 Entrada Digital 1 1001 3E9 16 bits Não
7.1.3 Entrada Digital 2 1002 3EA 16 bits Não
7.1.4 Entrada Digital 3 1003 3EB 16 bits Não
7.1.5 Entrada Analógica 0 1004 3EC 16 bits Não
7.1.6 Entrada Analógica 1 1005 3ED 16 bits Não
7.1.7 Entrada Analógica 2 1006 3EE 16 bits Não
7.1.8 Entrada Analógica 3 1007 3EF 16 bits Não
7.2 SLOT - 02 Cartão de Saídas
Descrição Endereço
Tamanho Suporte a escrita
Observação Decimal Hexadecimal
7.2.1 Saída PWM 0 1008 3F0 16 bits Sim
7.2.2 Saída PWM 1 1009 3F1 16 bits Sim
7.2.3 Saída PWM 2 1010 3F2 16 bits Sim
7.2.4 Saída PWM 3 1011 3F3 16 bits Sim
7.2.5 - reservado - 1012 3F4 16 bits Sim
7.2.6 - reservado - 1013 3F5 16 bits Sim
7.2.7 - reservado - 1014 3F6 16 bits Sim
7.2.8 - reservado - 1015 3F7 16 bits Sim
7.3 SLOT - 03 Slot Vazio
Descrição Endereço
Tamanho Suporte a escrita
Observação Decimal Hexadecimal
7.3.1 - reservado - 1016 3F8 16 bits Não
7.3.2 - reservado - 1017 3F9 16 bits Não
7.3.3 - reservado - 1018 3FA 16 bits Não
7.3.4 - reservado - 1019 3FB 16 bits Não
7.3.5 - reservado - 1020 3FC 16 bits Não
7.3.6 - reservado - 1021 3FD 16 bits Não
7.3.7 - reservado - 1022 3FE 16 bits Não
7.3.8 - reservado - 1023 3FF 16 bits Não
100
CONTROLADOR FUZZY - MICROCONTROLADO
CLEITON SILVANO GOULART
FOLHA DE DADOS TÉCNICOS
7.4 SLOT - 04 Slot Vazio
Descrição Endereço
Tamanho Suporte a escrita
Observação Decimal Hexadecimal
7.4.1 - reservado - 1024 400 16 bits Sim
7.4.2 - reservado - 1025 401 16 bits Sim
7.4.3 - reservado - 1026 402 16 bits Sim
7.4.4 - reservado - 1027 403 16 bits Sim
7.4.5 - reservado - 1028 404 16 bits Sim
7.4.6 - reservado - 1029 405 16 bits Sim
7.4.7 - reservado - 1030 406 16 bits Sim
7.4.8 - reservado - 1031 407 16 bits Sim
7.5 CONFIGURAÇÕES
Descrição Endereço
Tamanho Suporte a escrita
Observação Decimal Hexadecimal
7.5.1 Modo de operação 1032 408 16 bits Sim
0=Controle Fuzzy 1=Controle Manual
101
APÊNDICE B - MEMÓRIA DE CÁLCULO DOS CIRCUITOS ELETRÔNICOS
CONTROLADOR FUZZY – MICROCONTROLADO CLEITON SILVANO GOULART
Memória de cálculo eletrônico do circuito: CIRCUITO DE RESET
Circuito Eletrônico Cálculo
Data: 23/05/2010
CONTROLADOR FUZZY – MICROCONTROLADO CLEITON SILVANO GOULART
Memória de cálculo eletrônico do circuito:
Circuito Oscilador a Cristal
Circuito Eletrônico Cálculo
Data: 23/05/2010
Chave S1 Aberta Fechada
V V5,000 V5,000
R R180,000 R180,000
I (R2) - A0,028
P - W0,139
RESET_MCU V5,000 V0,000
LED2 Apagado Acesso
C1, C2 22pF
C2 22pF
Q1 16MHz Conforme limite do MCU
Conforme tabela 8-3 do datasheet
(ATMEL, 2009b)
102
CONTROLADOR FUZZY – MICROCONTROLADO CLEITON SILVANO GOULART
Memória de cálculo eletrônico do circuito: Entrada Discreta Típica
Circuito Eletrônico
Cálculo
Data: 23/05/2010
ddp (X2-1/X2-2) V5,000 V12,000 V24,000
R6 R1000,000 R1000,000 R1000,000
I (R6) A0,005 A0,012 A0,024
P (R6) W0,025 W0,144 W0,576
V (LED3) V4,300
V (R7) V3,600
R7 R220,000
I (R7) A0,016
P (R7) W0,059
103
CONTROLADOR FUZZY – MICROCONTROLADO CLEITON SILVANO GOULART
Memória de cálculo eletrônico do circuito: Saída Analógica Típica
Circuito Eletrônico
Cálculo
Data: 23/05/2010
V (O_PWM_01) V5,000
V (R6) V4,300
R6 R180,000
I (R6) A0,024
P (R6) W0,103
V (OK1 - Pino 5) V5,000
V (OK1 - Pino 4) V4,300
V (LED 3) V3,600 V (R8) V3,600
V (R10) V3,600 R8 R1500,000
R10 R330,000 I (R8) A0,002
I (R10) A0,011 P (R8) W0,009
P (R10) W0,039 I (Q2 - base) A0,002
I (LED 3) A0,011 beta (Q2) 1000
P (LED 3) W0,039 I (Q2 - coletor) A2,400
V (X2-1) V12,000
V (Q2 - coletor) V12,000
P (Q2 - coletor) W28,800
104
APÊNDICE C - VARIÁVEIS NEBULOSAS
105
106
APÊNDICE D - REGRAS DE INFERÊNCIA
107
APÊNDICE E - CÓDIGOS FONTE DOS MICROCONTROLADORES
1)
108
APÊNDICE F - PLANTA PILOTO – DESENHOS DE REFERÊNCIA
109
110
111
112
APÊNDICE G - PROTOCOLO SPI - COMUNICAÇÃO ENTRE CARTÕES
I. OBJETIVOS:
O objetivo deste protocolo é estabelecer as normas e diretrizes para a
comunicação entre os cartões do Controlador Fuzzy – Microcontrolador;
II. DISPOSIÇÕES INICIAIS
O protocolo de comunicação entre os cartões possui as seguintes
disposições, como premissas iniciais e imutáveis:
Todo o fluxo de informação é gerenciado pelo cartão mestre;
O fluxo de dados inicial ocorre apenas em um sentido: do mestre
para os escravos;
III. ARQUITETURA:
O protocolo de comunicação entre os cartões é baseado nas camadas
conforme ___________.
A primeira camada, a camada física, utiliza como meio o protocolo SPI,
idealizado e fabricado pela ATMEL. A maioria dos microcontroladores
fabricados pela ATMEL possui o protocolo SPI já embarcado. Em alguns
MCUs, o sistema de comunicação é o USI, o qual poderá ser configurado
para comportar como o protocolo SPI.
i. CAMADA 1 – Meio Físico – Protocolo SPI
O protocolo SPI é um protocolo mestre-escravo (master-slave), e full-
duplex. Características que permitem alto desempenho e confiabilidade
na transmissão de dados. Ele necessita de 4 vias de comunicação a
saber:
MISO – Master In Slave Out – Entrada do Mestre e Saída do
Escravo
MOSI – Master Out Slave In – Saída do Mestre e Entrada do Slave
SCK – Source Clock – Clock de sincronização
SS – Slave Select – Seleção de Escravo
113
O funcionamento se baseia no deslocamento de bits, sincronizados pelo
mestre. O mestre disponibiliza uma fonte de clock indiispensável para a
comunicação, linha SCK. Apenas o mestre é capaz de gerar o clock nesta
linha. Os dados são transmitidos pelas linhas MISO e MOSI. A cada sinal
de clock, um bit é transportado do mestre para o escravo através da linha
MOSI, e um bit é transportado do escravo para o mestre pela linha MISO.
A comunicação é totalmente controlada pelo mestre. Ele fornece o sinal
de clock é seleciona qual/quais escravos deverão responder através da
linha SS.
Maiores informações sobre o protocolo SPI poderão ser obtidas
diretamente do datasheet do ATMEGA32 (ATMEL, 2009b).
ii. CAMADA 2 – Driver de dados
A segunda camada do protocolo é composta pelos drivers. Existem
basicamente dois drivers, um para o mestre e um para o escravo.
Ambos os drivers possuem a função SPI_INIT() responsável pela
inicialização do sistema SPI no MCU.
No driver mestre, temos ainda a função SEND_SPI() responsável por
enviar os dados conforme as diretrizes deste protocolo.
No driver escravo, temos a função LER_SPI() responsável por efetuar a
leitura dos dados, e separar as informações em um buffer específico,
disponibilizado pelo driver. O MCU fica responsável por efetuar a leitura
do buffer, bem como o seu processamento.
IV. SISTEMA DE COMANDOS
Toda a comunicação entre os cartões e realizada por meio de comandos
enviados pelo mestre é respondidos pelo escravo. Os comandos
possuem a estrutura descrita conforme em _______
Comando - CMD Parâmetro 1 –
PARAM 1
Parâmetro 2 –
PARAM 2
Fim de linha –
EOL
Tamanho: 1 byte Tamanho: 1 byte Tamanho: 1 byte Tamanho: 1 byte
114
Durante o envio de cada comando, a resposta enviada pelo escravo11 é
desconsiderada. Após o envio de cada comando, o mestre enviará ao
escravo um comando específico para verificar se a resposta está pronta.
O mestre irá realizar esta pergunta um número limitado de vezes.
(limitado pela definição SPI_TEMPO).
No momento da resposta positiva por parte do escravo, o mestre enviará
o comando SPI_VAL_8 para que o escravo saiba que na próxima
comunicação do mestre ele deverá enviar a resposta ao comando.
V. LISTGEM DE COMANDOS
Segue na tabela _____ uma relação com o nome dos comandos
disponíveis, bem como o seu valor hexadecimal e decimal e a sua
descrição.
COMANDO VALOR
DESCRIÇÃO hexadecimal decimal
SPI_EOL A0 160 Definição de Fim de Linha
SPI_BOL AF 175 Definição de Começo de Linha
SPI_SEND_CMD A1 161 Próximo dado é comando
SPI_SEND_P1 A2 162 Próximo dado é Param 1
SPI_SEND_P2 A3 163 Próximo dado é Param 2
SPI_SEND_RES_OK A4 164 Resposta Pronta
SPI_SIM FA 250 SIM
SPI_NAO FB 251 Não
SPI_TIMEOUT FC 252 Fim de Tempo.
SPI_VAL_8 FD 253 Envie valor de 8 bits
SPI_CMD_TEST 10 16 Chamada de teste. Deve retornar a soma de Param1 e Param2.
SPI_R_TEST 09 9 Resposta ao comando de teste.
SPI_CMD_GET_VAR 12 18 Pedido de variável em Param1
SPI_R_GET_VAR 11 17 Resposta de variável Param1 em Param2
SPI_CMD_SET_VAR 20 32 Define uma variável em param1
SPI_R_SET_VAR 21 33 Resposta da variável solicitada em Param1 em param2
11
Deve ser lembrado que a comunicação estabelecida entre os cartões está em regime full-duplex, de modo que cabe a cada unidade interpretar a resposta da outra unidade.
115
VI. CARTÕES ESCRAVOS - VARIÁVEIS DO BUFFER
Os cartões escravos, disponibilizam as informações recebidas do mestre
em um conjunto de variáveis doravante denominados buffer SPI. Este
buffer é composto de algumas variáveis que são processadas mediante a
execução da função LER_().
NOME DA VARIÁVEL TIPO DA
VARIÁVEL DESCRIÇÃO
SPI_BUF_Cmd; unsigned char Comando recebido
SPI_BUF_Param1; unsigned char Parâmetro 1
SPI_BUF_Param2; unsigned char Parâmetro 2
SPI_BUF_Resposta; unsigned char Resposta do comando
SPI_BUF_RespostaPronta; unsigned short int Flag indicador de que existe resposta pronta para ser enviada
SPI_CMD_DISPONIVEL; unsigned short int Flag indicador que existe um comando novo para ser processado.
Apenas quando o flag SPI_CMD_DISPONIVEL estiver verdadeiro (valor =
1) o comando presente no buffer poderá ser processado. Após o
processamento do comando, a resposta a ser enviada deverá ser
colocada no buffer na variável SPI_BUF_Resposta, e o flag
SPI_BUF_RespostaPronta deverá ser colocado como verdadeiro (valor =
1), para que o Driver de comunicação possa considerar o valor presente
no buffer.
O buffer é atualizado mediante a chamada da função LER().