Академический Документы
Профессиональный Документы
Культура Документы
BLUMENAU JUNHO/2002
2002/1-27
BANCA EXAMINADORA
ii
SUMRIO
RESUMO .................................................................................................................................VI
ABSTRACT ........................................................................................................................... VII
1 INTRODUO ..................................................................................................................... 1
1.1 OBJETIVOS........................................................................................................................ 2
1.2 ORGANIZAO DO TEXTO........................................................................................... 2
2 LGICA FUZZY .................................................................................................................. 3
2.1 FUNDAMENTOS DA LGICA FUZZY .......................................................................... 4
2.2 OPERAES DOS CONJUNTOS FUZZY ...................................................................... 5
2.2.1 COMPLEMENTO ............................................................................................................ 6
2.2.2 UNIO.............................................................................................................................. 6
2.2.3 INTERSEO.................................................................................................................. 7
2.3 VARIVEIS LINGSTICAS ........................................................................................... 8
2.4 EXPRESSO FUZZY DO CONHECIMENTO ................................................................ 8
2.5 SISTEMA DE CONTROLE FUZZY ................................................................................. 9
2.6 INTERFACE COM O PROCESSO.................................................................................. 10
2.6.1 VARIVEIS DE CONTROLE....................................................................................... 10
2.6.2 MTODOS DE DEFUZZIFICAO............................................................................ 11
2.7 EXEMPLOS DE EMPREGO DE SISTEMAS FUZZY RECENTES.............................. 13
2.8 PERSPECTIVAS DA LGICA FUZZY.......................................................................... 14
3 MICROCONTROLADORES ............................................................................................. 15
3.1 PRINCIPAIS CARACTERSTICAS................................................................................ 15
3.2 DIAGRAMA DE BLOCOS INTERNO DO 80C552 ....................................................... 16
3.3 DIFERENAS COM RELAO AO 8051..................................................................... 18
iii
iv
5 CONCLUSO ..................................................................................................................... 53
5.1 EXTENSES .................................................................................................................... 54
REFERNCIAS BIBLIOGRFICAS ..................................................................................... 55
RESUMO
Este trabalho apresenta a especificao e implementao de um prottipo de hardware
e software, utilizando uma arquitetura de microcontrolador de 8 bits, para implementar o
processo de controle de temperatura de um ambiente, utilizando os conceitos de Lgica
Fuzzy. Todos os dados deste processo sero disponibilizados em um software de superviso.
Como objetivo secundrio apresentado um estudo sobre a arquitetura de hardware utilizada
e os conceitos gerais de Lgica Fuzzy.
vi
ABSTRACT
This work shows the specification and implementation of a hardware and software
prototype, using an 8 bit microcontroller architecture, to implement the temperature control
process of an environment using the Fuzzy Logic concepts. All process data will be avaliable
to a supervisory software. A secondary objective is show a study about the hardware
architecture used and the general Fuzzy Logic concepts.
vii
1 INTRODUO
Controles tradicionais de sistemas, neste caso, controle de temperatura, so em geral
baseados em modelos matemticos que descrevem o sistema de controle usando uma ou mais
equaes diferenciais que definem a resposta do sistema para suas entradas; tais sistemas so
freqentemente implementados pelo chamado controlador "PID" (proporcional-integralderivativo). Tais controladores so produtos de dcadas de desenvolvimento e trabalho terico
e so altamente eficazes.
Se controladores PID e outros sistemas de controle de temperatura tradicionais so to
bem desenvolvidos, por que se preocupar com Lgica Fuzzy. Somente porque em alguns
casos ela tem alguma vantagem: em muitos casos, como por exemplo, sistemas de freio ABS
ou no controle de guindastes para descarga de containers, o modelo matemtico do processo
pode no existir ou pode ser muito "caro" em termos de poder de processamento
computacional e memria - e um sistema baseado em regras empricas pode ser mais efetivo.
Operadores humanos so capazes de controlar processos bastante complexos, baseados
em informaes imprecisas ou aproximadas a respeito desses processos. A estratgia adotada
pelos operadores humanos tambm de natureza imprecisa e geralmente possvel de ser
expressa em termos lingsticos.
A Teoria de Conjuntos Fuzzy (Zadeh, 1965) e os conceitos de Lgica Fuzzy (Zadeh,
1973) podem ser utilizados para traduzir em termos matemticos a informao imprecisa
expressa por um conjunto de regras lingsticas. Se um operador humano for capaz de
articular sua estratgia de ao como um conjunto de regras da forma SE ENTO, um
algoritmo passvel de ser implementado em computador pode ser construdo, conforme
demonstrado em Mamdani (1974).
Baseado na descrio acima, este trabalho visa implementar um controle de
temperatura utilizando o microcontrolador 80C552 da Philips. Segundo Anlauf (1993), o
microcontrolador, tambm chamado de microcomputador em um s chip, rene num nico
chip vrios sistemas independentes, como contadores, unidade central de processamento,
memria para programa e dados, entradas e sadas analgicas, portas seriais, entre outros.
Com isso diminuem o tempo e o custo requeridos para o desenvolvimento do projeto. Tais
2
caractersticas tornam o microcontrolador ideal para o projeto de sistemas dedicados e,
sobretudo compactos.
1.1 OBJETIVOS
O trabalho tem como objetivo principal especificar e implementar um prottipo de
hardware, utilizando uma arquitetura de microcontrolador de 8 bits, para realizar o processo
de controle de temperatura de um ambiente, utilizando os conceitos de Lgica Fuzzy.
Os objetivos especficos do trabalho so:
a) realizar simulaes do comportamento do processo;
b) disponibilizao dos dados do processo em um software de superviso;
c) envio de setpoints ao processo atravs do software de superviso.
2 LGICA FUZZY
Aristteles, filsofo grego (384 - 322 a.C.), foi o fundador da cincia da lgica, e
estabeleceu um conjunto de regras rgidas para que concluses pudessem ser aceitas como
logicamente vlidas. O emprego da lgica de Aristteles levava a uma linha de raciocnio
lgico baseado em premissas e concluses. Como um exemplo: se observado que "todo ser
vivo mortal" (premissa 1), a seguir constatado que "Joo um ser vivo" (premissa 2),
como concluso temos que "Joo mortal".
Desde ento, a lgica Ocidental, assim chamada, tem sido binria, isto , uma
declarao falsa ou verdadeira, no podendo ser ao mesmo tempo parcialmente verdadeira e
parcialmente falsa. A lgica fuzzy viola estas suposies (Tarig, 2001).
A Lgica Fuzzy consiste em aproximar a deciso computacional da deciso humana,
tornando as mquinas mais capacitadas a seu trabalho. Isto feito de forma que a deciso de
uma mquina no se resuma apenas a um "sim" ou um "no", mas tambm tenha decises
"abstratas", do tipo "um pouco mais", "talvez sim", e outras tantas variveis que representem
as decises humanas. um modo de interligar inerentemente processos analgicos que
deslocam-se atravs de uma faixa contnua para um computador digital que podem ver coisas
com valores numricos bem definidos (valores discretos).
O conceito de conjunto Fuzzy foi introduzido, em 1965, por Lotfi A. Zadeh da
Universidade da Califrnia, Berkeley (Zadeh, 1965). No meio da dcada de 60 do sculo XX,
Zadeh observou que os recursos tecnolgicos disponveis eram incapazes de automatizar as
atividades relacionadas a problemas de natureza industrial, biolgica ou qumica, que
compreendessem situaes ambguas, no passveis de processamento atravs da lgica
computacional fundamentada na lgica booleana. Procurando solucionar esses problemas o
Professor Zadeh publicou em 1965 um artigo resumindo os conceitos dos conjuntos Fuzzy,
revolucionando o assunto com a criao de sistemas Fuzzy.
Uma representao grfica convencional de valores na lgica fuzzy ilustrada na
Figura 2.1, em que a altura das pessoas representada na abscissa e trs funes (baixo,
mediano e alto) representam a classificao das pessoas quanto altura.
4
FIGURA 2.1 REPRESENTAO DOS VALORES NA LGICA FUZZY
Uma pessoa medindo 1,65 m de altura considerada baixa, de acordo com o grfico da
Figura 2.1, mas est muito prxima de ser considerada de altura mediana. Entretanto,
possvel observar que uma pessoa totalmente baixa de 1,5 at 1,60 m (a curva baixo
indica valor 1 e as demais valor 0 na faixa de valores indicada). A partir de 1,60 m a reta que
define o valor baixo comea a decrescer, enquanto a reta que define a altura mediana comea
a crescer.
Uma pessoa com 1,75 m considerada de altura mediana e acima de 1,90 m
considerada alta. Essas medidas so totalmente imprecisas, variando de acordo com os
conceitos de cada pessoa, regio, cidade, pas e outros. Em muitas situaes porm, os valores
inexatos so mais importantes e possuem significados mais expressivos do que os valores
exatos.
5
conjuntos fuzzy existe um grau de pertinncia de cada elemento que pode assumir qualquer
valor dentro do intervalo [0,1].
O valor 1 representa completa pertinncia e o valor 0 indica uma completa excluso.
Essa generalizao aumenta significativamente o poder de expresso da funo caracterstica,
onde esta funo, diz o grau de pertinncia A(x) de um elemento x pertencente a um
universo U com respeito a um conjunto A, onde A U. Quando A(x)=0, representa
nenhuma pertinncia e A(x)=1, representa pertinncia total.
Para Rabuske (1995), os conjuntos difusos se contrapem a assim chamada lei da
contradio, onde valores variam simplesmente de verdadeiro para falso, de sim para no,
permitindo assim a manuteno de proposies conflitantes.
6
FIGURA 2.3 REPRESENTAO GRFICA DE UM NMERO FUZZY
2.2.1
COMPLEMENTO
A operao complemento utilizada para definir a funo de pertinncia oposta de um
2.2.2
UNIO
A operao unio utilizada para associar dois subconjuntos, ou seja, a unio do
7
descrita na equao: AB A(x) B(x) = max(A(x), B(x)). A sua representao
grfica ilustrada na Figura 2.5.
FIGURA 2.5 REPRESENTAO GRFICA DA OPERAO UNIO
2.2.3
INTERSEO
A operao interseo utilizada para definir a regio comum entre dois subconjuntos,
9
A idia aqui representar o conhecimento por meio de um conjunto de regras nas
quais as condies so dadas a partir de um conjunto de termos lingsticos associados a
variveis de entrada/sada do processo (as quais so entradas do controlador).
As aes de controle ou as sadas so expressas de modo similar para cada varivel de
controle (sada). Regras do tipo se-ento-seno so freqentemente chamadas de regras de
controle fuzzy.
10
O ncleo do controlador s analisa variveis fuzzy. As informaes tm que ser
transformadas na forma fuzzy ou fuzzificadas (transformadas em conjuntos fuzzy). A
interface de fuzzificao recebe os valores das variveis de entrada (vindo dos sensores),
faz um escalonamento para dimensionar os valores a universos discursos normalizados e
fuzzifica os valores (transformando nmeros em conjuntos fuzzy), para torn-los instncias
de variveis lingsticas (Tarig, 2001). As regras caracterizam as estratgias de controle e seus
objetivos.
O procedimento de inferncia atua sobre os dados fuzzy de entrada, juntamente com as
regras, para inferir as aes de controle fuzzy, usando o operador de implicao fuzzy e as
regras de inferncia da lgica fuzzy. O defuzzificador atua sobre as aes de controle fuzzy
inferidas, transformando-as em aes de controle no fuzzy, efetuando, em seguida, um
escalonamento para compatibilizar os valores normalizados vindos do passo anterior com os
valores dos universos de discursos reais das variveis.
Deve-se determinar uma ao de controle no-fuzzy para ser enviada ao controlador
logo aps se inferir a ao de controle fuzzy. A ao de controle no-fuzzy escolhida deve ser
a que represente melhor a deciso fuzzy. No h nenhum procedimento sistemtico para
escolher a estratgia de defuzzificao.
2.6.1
VARIVEIS DE CONTROLE
Em controladores fuzzy de carter geral como o apresentado aqui, as variveis de
11
A opo por uma sada incremental, ao invs de absoluta, mais condizente com o
raciocnio empregado por operadores humanos e, alm disso, proporciona uma economia em
termos do universo da sada.
Estabelecendo uma ligao com as sees anteriores, as variveis fuzzy erro e variao
do erro so subconjuntos fuzzy em seus respectivos universos.
2.6.2
MTODOS DE DEFUZZIFICAO
Conforme Tarig (2001), a sada do controlador fuzzy um subconjunto fuzzy do
universo da sada. Como o processo requer um sinal no-fuzzy em sua entrada, deve-se fazer
uma interpretao daquele conjunto fuzzy.
Para Ross (1995), a defuzzificao o processo pelo qual um conjunto fuzzy tem a sua
abrangncia representada por um simples nmero. Segundo ele, existem pelo menos sete
mtodos que tem sido pesquisados e popularizados com o decorrer do tempo. Dentre eles
destacam-se o princpio da maior pertinncia, o mtodo centride, ou centro de gravidade, e a
mdia da pertinncia mxima.
O princpio da maior pertinncia, tambm conhecido como mtodo da altura, limita-se
ao pico da funo. A figura 2.8 mostra o comportamento deste mtodo.
FIGURA 2.8 REPRESENTAO GRFICA DO MTODO DE DEFUZZIFICAO DA
MAIOR PERTINNCIA
12
13
14
15
3 MICROCONTROLADORES
Este captulo apresenta os conceitos e demais aspectos da arquitetura dos
microcontroladores da famlia MCS51.
Existem muitas dvidas quanto a diferena entre um microprocessador e um
microcontrolador. Um microcontrolador um componente que tem, num nico chip, alm de
uma CPU, elementos tais como memrias ROM e RAM, temporizadores, contadores, canais
de comunicao e conversores analgico-digitais (Silva Jnior, 1988).
Esta caracterstica diferencia os sistemas baseados em microcontroladores daqueles
baseados em microprocessadores, onde normalmente se utilizam vrios componentes para
implementar essas funes. Com isso, os microcontroladores permitem a implementao de
sistemas mais compactos e baratos do que aqueles baseados em microprocessadores.
A Intel iniciou a produo do 8051 em 1981. Diversos fabricantes produzem
microcontroladores da famlia 8051 (Intel, AMD, Atmel, Dallas, OKI, Matra, Philips,
Siemens, SMC, SSI). Cada empresa procurou melhorar o desempenho do 8051, adicionando
novos recursos ao mesmo, mas a arquitetura bsica continua a mesma.
16
No caso deste trabalho ser utilizado um variante do 8051, o 80C552 produzido pela
Philips. O 80C552 possui as mesmas caractersticas bsicas do 8051, e foi acrescido dos
seguintes componentes:
a) um temporizador / contador de 16 bits adicional;
b) 256 bytes de RAM interna;
c) 8 entradas analgicas multiplexadas de 10 bits de resoluo;
d) 2 sadas de PWM (Pulse Width Modulation), com 8 bits de resoluo;
e) watchdog timer interno;
f) porta de I/O para interface serial do tipo IC;
g) freqncia de clock de 16MHz.
17
A figura 3.2 exibe a pinagem de um microcontrolador 80C552 com encapsulamento
PLCC (Plastic Leaded Chip Carrier).
FIGURA 3.2 PINAGEM DO 80C552
As portas P0 e P2, ficam comprometidas com o uso de memria externa, assim como
os pinos P3.6 e P3.7. O sinal ALE (Address Latch Enable) permite fazer a demultiplexao de
dados e endereos na porta P0. Atravs do sinal PSEN (Program Storage Enable), o
microcontrolador informa o mundo externo se a operao em andamento uma leitura de
instruo (acesso memria de programa) ou um acesso memria de dados. Este sinal
permite que o processador tenha duas regies distintas de memria externa, uma para
armazenar cdigo e outra para dados. Ambas ocupam os endereos de 0 a FFFFH (64 kB),
18
num total de 128 kB. O pino EA um sinal de entrada, atravs do qual o usurio escolhe se
ser utilizada a memria ROM interna ou se todo o programa ser armazenado externamente.
3.3.1
MEMRIA DE PROGRAMAS
O 80C552 possui 8K bytes de memria de programa on-chip que pode ser extendida
at 64K bytes com memrias externas, como mostrado na figura 3.3. O pino EA serve para
informar ao microcontrolador onde buscar o programa a ser executado, seja na memria de
programa interna ou em uma externa. Deve ser aterrado (low) ou ligado ao VCC (high) antes
do reset do microcontrolador. Se durante o reset do microcontrolador, EA estiver em nvel
low, o microcontrolador executar o programa que estiver na memria de programa externa,
caso contrrio executar o programa na memria interna. Os endereos de memria de
programas de 0003H 0073H, so utilizados pelas rotinas de interrupo.
3.3.2
MEMRIA DE DADOS
A memria de dados interna dividida em 3 setores: os 128 bytes mais baixos da
RAM, os 128 bytes mais altos e a rea de 128 bytes dos registradores de funes especiais
(SFRs). Os 128 bytes mais baixos podem ser endereados direta ou indiretamente. J as
posies de RAM de 128 a 255 e os SFRs, compartilham a mesma rea de endereos, mas
so acessados de formas diferentes. Os SFRs somente so diretamente endereveis, j os
128 bytes mais altos de RAM so acessados somente de forma indireta. Todos os outros
aspectos da RAM interna so idnticos ao 8051.
19
FIGURA 3.3 MAPA DE MEMRIA DO 80C552
3.3.3
O WATCHDOG TIMER
Alm dos temporizadores padro o 80C552 tambm incorpora um watchdog timer.
20
3.3.4
INTERFACE SERIAL IC
H aproximadamente 20 anos atrs a Philips, voltada a simplificar a comunicao
digital entre dois dispositivos, desenvolveu um sistema bastante simples designado por IC.
Ele utiliza somente duas linhas de comunicao denominadas por: serial data SDA e serial
clock SCL. As linhas SDA e SCL carregam somente informaes digitais, e portanto operam
dentro dos limites de 0 a 5 volts. Para que este sistema funcione corretamente, alguns
protocolos bem definidos devem ser obedecidos, como por exemplo: o sinal de start (incio da
transmisso), o sinal de stop (final da transmisso), etc. A figura 3.5 ilustra a tpica
configurao de um barramento IC.
A seguir so apresentadas as noes bsicas desta interface.
3.3.4.1
LINHA DE CLOCK
Este sinal que fornece a cadncia para que a transmisso serial seja entendida. Por
transmisso serial entende-se que as informaes sero enviadas uma aps a outra serialmente - atravz da mesma linha digital. Nesta tarefa a linha de clock que identifica
21
quando um dado (um bit) pode ser considerado vlido - esta situao sempre definida
quando a linha de clock est high (nvel lgico 1). Portanto, sempre que a linha de clock SCL
estiver high, sabe-se que a linha SDA possui um dado vlido (nvel lgico 1 ou 0).
FIGURA 3.5 BARRAMENTO IC
3.3.4.2
SINAL DE START
Para dar incio a uma transmisso o seguinte protocolo dever ser reconhecido:
enquanto a linha SCL se mantm em nvel lgico alto, a linha SDA deve passar de nvel alto
para baixo (transio). Esta a Start condition.
3.3.4.3
ENDEREAMENTO
3.3.4.4
SINAL DE STOP
Para finalizar uma transmisso o seguinte protocolo dever ser reconhecido: enquanto
a linha SCL se mantm em nvel lgico alto, a linha SDA deve passar de nvel baixo para alto
(transio). Esta a Stop condition.
22
3.3.4.5
MASTER SLAVE
3.3.4.6
TAXA DE TRANSFERNCIA
3.3.5
SADAS PWM
PWM (pulse width modulation), ou modulao por largura de pulso uma tcnica
23
FIGURA 3.6 REPRESENTAO DE SADAS PWM
24
FIGURA 3.7 DIAGRAMA DAS SADAS DE PWM DO 80C552
3.3.6
CONVERSOR ANALGICO-DIGITAL
O objetivo funcional deste dispositivo o de produzir um nmero binrio proporcional
3.3.6.1
RESOLUO
Tambm quanto resoluo possvel intuir que quanto maior o nmero binrio que a
sada pode produzir, maior ser a resoluo. O circuito de entradas analgicas do 80C552
consiste em 8 entradas analgicas multiplexadas (pode-se ler apenas uma de cada vez), com
uma resoluo de 10 bits (Philips, 1996). Isto faz com que a sada do ADC (analog-digital
converter) do 80C552 possa alcanar o valor de 210 1 = 1023, tendo assim, uma resoluo de
uma parte em 1023.
3.3.6.2
MTODO DE CONVERSO
25
lgica conhecida como SAR (Successive Approximation Register), que utiliza o mesmo
algoritmo de pesagem das balanas do tipo Roberval. Nestas balanas, quando uma massa
desconhecida colocada num dos pratos, o operador comea por colocar no outro prato o
maior peso-referncia de que dispe (Correia, 2001). Pode-se desde j imaginar que os pesosreferncia obedecem a um escalonamento binrio como se indica na figura 3.8.
FIGURA 3.8 PESAGEM COM BALANA ROBERVAL E ESCALA BINRIA DE
REFERNCIAS
Segundo Correia (2001), o operador comea sempre colocando o maior peso da escala
(que por convenincia atribumos o valor p/2) no prato B e decide, observando o fiel, se ele
excessivo (o fiel desvia-se para o lado do prato B) ou se, pelo contrrio, tem de adicionar em
B o peso-referncia seguinte, p/4.
Na primeira hiptese, deve-se retirar p/2 do prato B e atribuir ZERO ao dgito mais
significativo do nmero que est a determinar. Na segunda hiptese o peso p/2 permanece em
B e atribudo UM a esse digito. Em qualquer dos casos o operador prossegue testando o
efeito dos pesos e decidindo, com o mesmo critrio, se o digito seguinte ZERO ou UM.
O operador repete esta operao sucessivamente at chegar ao ltimo peso da escala
binria de que dispe. Se dispuser de N elementos nesta escala o nmero binrio que
construiu tem tambm N dgitos.
O ADC de aproximaes sucessivas, cujos elementos so mostrados na figura 3.9,
contm um conversor digital-analgico (DAC) que converte os valores do registrador de
26
aproximaes sucessivas (SAR) em tenso (VDAC), que comparada ao valor da tenso da
entrada analgica (Vin) (Philips, 1996).
A lgica de controle de aproximaes sucessivas primeiramente seta o bit mais
significativo do SAR e reseta todos os outros (10 0000 0000B). A sada do DAC (50% da
escala) comparada a tenso da entrada analgica (Vin). Se a tenso Vin for maior que
VDAC, o bit permanece setado, seno ele resetado.
Agora a lgica de controle de aproximaes sucessivas seta o prximo bit mais
significativo (11 0000 0000B ou 01 0000 0000B, dependendo do resultado anterior) e VDAC
comparada novamente Vin. Se Vin for maior que VDAC, o bit que est sendo testado
permanece setado, seno o bit resetado. Este processo se repete at que todos os 10 bits
sejam testados, neste ponto o resultado da converso se encontra no SAR.
FIGURA 3.9 ADC DE APROXIMAES SUCESSIVAS
27
4 DESENVOLVIMENTO DO PROTTIPO
Neste capitulo sero apresentados a especificao do prottipo de hardware e software
e as ferramentas utilizadas.
Aps a especificao, a implementao descreve a montagem do hardware do
prottipo, o desenvolvimento do software e sua operacionalidade.
28
menos 1 entrada analgica para a leitura desta temperatura, neste prottipo, e uma sada para
controlar proporcionalmente algum dispositivo capaz de atuar sobre esta temperatura.
4.2.1
Read Only Memory) interna, por este motivo fez-se necessria a utilizao de uma memria
do tipo EPROM (Eraseable Programable Read Only Memory) externa. O tamanho desta
memria foi super dimensionado para este projeto para dar mais versatilidade ao prottipo,
sendo utilizada a memria 27C512 de 64 Kbytes. Pelo mesmo motivo do super
dimensionamento da memria de programa, optou-se tambm por incluir uma memria de
dados (RAM Random Access Memory) externa. Foi utilizado a memria 6264, que
acrescentou 8 Kbytes de memria de dados ao sistema. A figura 4.1 apresenta a esquema
eletrnico das conexes do microcontrolador com as memrias externas:
FIGURA 4.1 CONEXO DO MICROCONTROLADOR E MEMRIAS RAM E EPROM
29
Na figura 4.1 pode-se identificar claramente os 3 barramentos que possibilitam a
interface entre o microcontrolador e as memrias externas:
a) barramento de dados (D0..D7), local por onde trafegam os dados lidos e escritos
nas memrias;
b) barramento de endereos (A0..A15), local onde a memria endereada, ou seja,
no caso de uma escrita a memria, os dados contidos no barramento de dados sero
armazenados no endereo apontado pelo barramento de endereos;
c) barramento de controle (PSEN, ALE, WR, RD), serve para indicar o tipo de
operao (leitura ou escrita) que ser realizada, e para habilitar o chip correto.
Como em toda famlia de microcontroladores MCS-51, o barramento de dados e
endereos multiplexado ( os pinos de dados D0..D7 so usados tambm como A0..A7). Esta
multiplexao controlada pelo pino ALE (Adress Latch Enable) do microcontrolador e
utilizando um latch para separar os sinais de dados dos sinais de endereos. No caso deste
prottipo utilizou-se o chip 74HC373. O 74HC373 um latch octal que possui dois pinos de
controle independentes, o latch enable (C), e o output enable (OC). Neste caso o pino OC est
diretamente ligado ao GND (nvel lgico 0) para que as sadas do chip fiquem sempre
habilitadas, j o pino latch enable (C), est conectado ao pino ALE do microcontrolador. Este
pino em nvel alto, indica que o controlador esta endereando algum perifrico, quando a
entrada latch enable do 74HC373 sente este nvel alto, faz com que o dado contido no pinos
de entrada do latch (1D..7D), sejam transferidos sada (1Q..7Q), como pode ser visto na
figura 4.1, gerando assim, juntamente com os pinos A8..A15, um endereo de 16 bits.
A seleo da memria a ser acessada (RAM ou EPROM) controlada pelo 80C552
atravs do pino PSEN (Program Store Enable) e dos pinos RD (Read) e WR (Write). Nvel
baixo (0 lgico) no pino PSEN indica que o microcontrolador deseja acessar a memria de
programa para buscar instrues. Como a EPROM utilizada possui 64 Kbytes de tamanho, ela
utiliza toda a faixa de endereamento possvel, indo de 0000H at FFFFH.
Para o acesso a RAM so utilizados os pinos de controle RD e WR. Nvel baixo em
RD indica que o controlador ir ler dados da RAM, e nvel baixo em WR, indica uma escrita
na memria de dados. Pode-se notar na figura 4.1, que o pino 20 (enable1) do chip 6264 est
ligado linha de endereo A15, como o enable1 ativo baixo, a faixa de endereos
disponvel para a RAM fica sendo de 0000H at 7FFFH. Foi convencionado, para este
30
prottipo, utilizar a faixa de endereos de 0000H at 1FFFH, tendo em vista que a RAM
possui somente 8 Kbytes.
4.2.2
SISTEMTICA DE RESET
A figura 4.2 ilustra o circuito de reset do microcontrolador utilizando o chip de
31
Como o pino de reset do X25043 ativo baixo, e o 80C552 necessita de um pulso alto
para ser resetado foi necessrio adicionar um pequeno circuito de inverso do sinal do
watchdog.
4.2.3
FONTE DE ALIMENTAO
Este prottipo necessita de uma tenso (VCC) de 5V para seu funcionamento. Para
gerar esta tenso o prottipo deve receber uma tenso de 9 12V em seus bornes de
alimentao. Para transformar esta tenso de entrada em 5V, utilizado um componente
simples e muito comum na eletrnica, o regulador de tenso 7805. Conforme a figura 4.3, a
tenso injetada no pino 1 do 7805 (U7) regulada para 5V e disponibilizada no pino 3. A
figura 4.3 mostra tambm os capacitores C13 e C14, responsveis pela filtragem de possveis
rudos eltricos.
FIGURA 4.3 FONTE DE ALIMENTAO DO PROTTIPO
4.2.4
CRISTAL OSCILADOR
O cristal o componente responsvel pela base de tempo para todos os processos
32
FIGURA 4.4 CRISTAL OSCILADOR CONECTADO AO 80C552
4.2.5
chip, uma destas entradas utilizada no prottipo para realizar a aquisio do valor da
temperatura do ambiente a ser controlado.
Para a leitura desta temperatura foi utilizado um sensor do tipo termoresistncia, ou
tambm conhecido como PT-100. O sensor PT-100 uma resistncia que varia linearmente
com a temperatura a ela aplicada. Para 0 (zero) graus Celsius seu valor de 100 (ohms) e,
para 100 graus Celsius de 138,5 (ohms).
A entrada analgica do microcontrolador desenvolvida para leitura de tenses, no
resistncias, por este motivo necessrio utilizar um conversor de PT-100 para Volts. Neste
prottipo foi utilizado um conversor fabricado pela Multitherm Sistemas e Automao Ltda.
Este dispositivo converte a resistncia equivalente a uma temperatura de 0 100C, em uma
tenso na faixa de 0 2,5V.
A figura 4.5 ilustra o circuito que realiza a leitura da temperatura (depois de convertida
em Volts), mostrando todos os componentes discretos necessrios ao condicionamento do
sinal, bem como a gerao das tenses de referncia do conversor analgico digital.
33
FIGURA 4.5 CIRCUITO DE LEITURA DE TEMPERATURA DO AMBIENTE
4.2.6
INTERFACE SERIAL
Um dos objetivos especficos deste trabalho, conforme visto no item 1.1, a
34
Foi includo no projeto uma interface serial padro RS-232, que, ligada UART
(Universal Assinchronous Receiver Transmiter) do microcontrolador 80C552, que
compatvel ao padro da famlia MCS-51, faz a interface entre o prottipo e o software de
superviso que est rodando em um PC.
A figura 4.6 mostra o circuito da interface serial do prottipo:
FIGURA 4.6 CIRCUITO DA INTERFACE SERIAL DO PROTTIPO
4.2.7
35
FIGURA 4.7 ESQUEMA ELETRNICO COMPLETO DO PROTTIPO
36
4.3.1
4.3.1.1
ESTRUTURA DO SISTEMA
37
4.3.1.2
VARIVEIS DE ENTRADA
A varivel gradiente, por sua vez, poder variar na faixa de 2 2C/s. Valores
negativos indicam que a temperatura est caindo e valores positivos indicam temperatura em
elevao. Os valores lingsticos definidos para gradiente so: caindo rpido, caindo devagar,
estvel, subindo devagar e subindo rpido.
A figura 4.10 ilustra o conjunto fuzzy gerado para a varivel gradiente.
38
FIGURA 4.10 VARIVEL GRADIENTE
4.3.1.3
VARIVEL DE SADA
4.3.1.4
BLOCO DE REGRAS
A lgica fuzzy necessita de regras para definir seu comportamento. Estas regras
definem as condies esperadas durante o processo, e que atitudes sero tomadas para cada
39
condio. Elas substituem as frmulas matemticas normalmente utilizadas. Estas regras
devem cobrir todas as situaes possveis. Por este motivo o bloco de regras desta
implementao possui 25 regras, que cobrem todas as combinaes das 2 entradas.
As atitudes a serem tomadas foram definidas com base na prpria experincia do autor
em controle de processos, sem a necessidade de conhecimento aprofundado, e de um modelo
matemtico do sistema.
A figura 4.12 mostra as regras definidas dentro da ferramenta FuzzyTech.
FIGURA 4.12 BLOCO DE REGRAS
40
4.3.2
EXEMPLO DE FUNCIONAMENTO
Tomando por exemplo, uma situao onde o setpoint do processo 60C e a
temperatura atual seja 55C, isso faria com que a entrada delta_temp assumisse o valor 5.
Supondo tambm que a temperatura est subindo a uma velocidade de 0,6C/s, ou seja,
entrada gradiente igual a 0,6. A figura 4.13 ilustra graficamente a varivel delta_temp.
FIGURA 4.13 VARIVEL DELTA_TEMP COM VALOR IGUAL A 5C
Como se pode notar na figura 4.13, o valor 5C pertence ao conjunto baixa com
uma pertinncia de 0.6 e ao conjunto no setpoint, com uma pertinncia de 0.4.
A figura 4.14 ilustra graficamente a varivel gradiente.
FIGURA 4.14 VARIVEL GRADIENTE COM VALOR IGUAL A 0.6C/S
41
O valor suposto para o exemplo, 0,6C/s, pertence a dois conjuntos, estvel, com
uma pertinncia de 0.4 e ao conjunto subindo devagar com uma pertinncia de 0.6.
Esta situao ativar 4 das 25 regras definidas: 12, 13, 17 e 18. A figura 4.15 mostra
estas regras.
FIGURA 4.15 REGRAS ATIVADAS NA SITUAO DE EXEMPLO
Analisando, inicialmente, a regra 12, tem-se o conjunto baixa com pertinncia 0.6, e
o conjunto estvel com pertinncia 0.4. Lembrando que estes conjuntos esto ligados pela
operao AND, e lembrando tambm das operaes em conjuntos fuzzy, vistas no captulo 3,
a operao AND equivale a uma interseo dos conjuntos. A interseo define que o resultado
da operao deve ser o mnimo valor dos conjuntos, no nosso caso 0.4.
Ento temos como sada da regra 12, uma atuao na varivel sada_pwm de
pertinncia 0.4 no conjunto grande. A figura 4.16 demonstra graficamente este exemplo.
FIGURA 4.16 SADA DA REGRA 12 APLICADA VARIVEL SADA_PWM
42
significa pertencente a qualquer um dos conjuntos. Segundo a teoria das operaes com
conjuntos Fuzzy, cada conjunto ir contribuir com o seu maior valor para formar o Logical
Sum. Por exemplo, duas regras geram sadas para o conjunto grande, uma com pertinncia
0.3 e outra com pertinncia 0.5. Para fins de gerao do Logical Sum ser utilizado o valor
0.5.
A figura 4.17 ilustra a varivel sada_pwm aps todas as regras serem inferidas e
realizar a desfuzzificao.
FIGURA 4.17 VARIVEL SADA_PWM DESFUZZIFICADA
43
4.3.3
SOFTWARE DE SUPERVISO
A funo primordial do software de superviso a aquisio de dados e o envio de
4.3.3.1
O quadro 5.2 ilustra o formato da funo 3 do protocolo Modbus. Esta funo permite
ao master ler registros do prottipo. O bloco formado por 8 bytes, que possuem as seguintes
funes:
a) endereo: identifica qual dos slaves ser acessado. No caso deste projeto fixo em
1 pelo fato de haver apenas um slave;
b) funo: indica a funo a ser executada, neste caso leitura (3);
c) registro inicial (2 bytes): indica o primeiro registro do slave a ser lido;
d) quantidade de registros (2 bytes): quantos registros a partir do registro inicial sero
lidos com este comando;
e) CRC: Cyclical Redundancy Check.
QUADRO 5.2 FORMATO DA FUNO 3
Endereo
Funo
Registro
Inicial
(MSB)
CRC
(MSB)
CRC
(LSB)
44
QUADRO 5.3 FORMATO DA RESPOSTA DA FUNO 3
Endereo Funo
4.3.3.2
CRC
(MSB)
CRC
(LSB)
Funo
N.
Registro
(MSB)
N.
Registro
(LSB)
Dado
(MSB)
Dado
(LSB)
CRC
(MSB)
CRC
(LSB)
45
FIGURA 4.18 FLUXOGRAMA DO PROTOCOLO DE COMUNICAO
4.4 IMPLEMENTAO
Na parte de implementao alguns passos devem ser seguidos. O primeiro passo a
montagem do hardware do prottipo, pois sobre esta plataforma sero realizados os testes do
software. Em seguida ser apresentado o software de superviso, que a interface homemmquina do prottipo, e permite visualizar o processo de controle de temperatura que esta
sendo realizado pelo prottipo.
46
4.4.1
MONTAGEM DO PROTTIPO
O estgio final do desenvolvimento de um hardware a gerao de uma placa com
47
FIGURA 4.19 PLACA DE CIRCUITO IMPRESSO(LADO COMPONENTES)
48
4.4.2
SOFTWARE DO PROTTIPO
Alm da especificao, a implementao de parte do software do prottipo tambm foi
criada utilizando a ferramenta FuzzyTech, uma vez que esta ferramenta possui uma funo de
gerao de cdigo a partir da especificao criada. Sendo assim toda parte de controle
utilizando lgica fuzzy foi implementada automaticamente. A figura 4.21 mostra a interface
da ferramenta FuzzyTech.
FIGURA 4.21 FERRAMENTA FUZZYTECH DA INFORM
Esta ferramenta se mostrou muito eficiente para a criao rpida de rotinas de controle
baseadas em lgica fuzzy. O programa apresenta vrias caractersticas teis. O modo de
debug interativo, que pode ser visto no centro da figura 4.21, foi muito importante na fase de
testes do prottipo, pois permitia comparar os resultados obtidos no prottipo com os gerados
pela ferramenta FuzzyTech, e estes foram sempre os mesmos.
49
J a parte de comunicao do prottipo bem como leitura da entrada analgica e
interpretao dos resultados gerados pelo controle fuzzy foram implementados em linguagem
C utilizando o compilador da Keil Software, o C51. A figura 4.22 mostra a interface deste
compilador.
FIGURA 4.22 COMPILADOR C51 DA KEIL
4.4.3
SOFTWARE DE SUPERVISO
O software de superviso foi implementado no ambiente Delphi 5, e tem por objetivo
50
que oferece no desenvolvimento de aplicaes que utilizam comunicao serial e grficos.
Este software consiste de apenas uma tela onde pode-se destacar os seguintes itens:
a) grfico de tempo e temperatura do tipo linhas, onde so mostradas a temperatura
atual lida no sensor e a temperatura programada (setpoint);
b) grfico do tipo barra, mostrando o status de sada do processo, ou seja, o percentual
de potncia a ser aplicado no elemento de aquecimento;
c) boto de incio de comunicao com o prottipo;
d) boto para o envio de setpoints ao prottipo.
51
lendo as variveis temperatura atual, temperatura programada e potncia de aquecimento. O
programa apenas utiliza a funo 6 (escrita de registros), quando o operador preencher a caixa
de texto ao lado do boto Envia setpoint com um novo valor para a temperatura programada
e pressionar o boto. Este valor ento enviado ao prottipo e imediatamente utilizada nos
clculos de controle do processo.
4.4.4
ambiente da eletrnica, como multmetro e osciloscpio. O objetivo destes testes foi certificar
o funcionamento dos componentes bsicos do prottipo, como, a fonte de alimentao, o
cristal oscilador da CPU, a interface da CPU com as memrias e a interface serial.
O passo seguinte foi testar o funcionamento do software de superviso. Isso se deu
atravs de uma comparao entre os valores de temperatura apresentados na tela do software e
valores conhecidos que foram injetados na entrada analgica do prottipo.
J o funcionamento do sistema de controle Fuzzy que executado no prottipo, foi
validado atravs da comparao entre a sada gerada pelo prottipo com determinados valores
nas entradas, e a sada que gerada pela ferramenta FuzzyTech no modo de debug, se
inseridos os mesmos valores de entrada. A figura 4.24 ilustra este teste:
52
FIGURA 4.24 MODO DE DEBUG DO SOFTWARE FUZZYTECH
53
5 CONCLUSO
Os objetivos do trabalho foram atingidos, os quais eram implementar um prottipo de
hardware baseado no microcontrolador 80C552, implementar um software para este prottipo
que realizasse o controle de temperatura de um ambiente utilizando os conceitos da lgica
fuzzy e disponibilizar estes dados em um software de superviso, para que o processo pudesse
ser visualizado graficamente.
Apesar disto o trabalho possui algumas limitaes, as quais so citadas abaixo.
a) o prottipo esta programado para realizar apenas o aquecimento;
b) a porta de comunicao e baudrate so fixas, obrigando que se utilize a COM1 e
baudrate de 19200;
c) no foi possvel realizar um teste utilizando sensores e elementos de aquecimento
reais, apenas simulaes do comportamento do processo.
Obervou-se durante o trabalho que a lgica fuzzy possui caractersticas fundamentais
para a soluo de determinados tipos de problemas, principalmente aqueles relacionados com
tomada de deciso sobre valores imprecisos, alem de ser bem adaptada para implementaes
de baixo custo baseadas em sensores, conversores A/D e microcontroladores.
Uma das dificuldades encontradas no uso desta tecnologia, foi a quantidade reduzida
de trabalhos mais didticos que utilizam os conceitos de lgica Fuzzy. Praticamente a
pesquisa terica se limitou a publicaes extremamente tcnicas, o que, inicialmente, dificulta
a compreenso do funcionamento da lgica.
Tambm os microcontroladores da famlia MCS51, criados pela Intel a mais de 20
anos, mostram porque ainda so muito utilizados em projetos eletrnicos nas mais diversas
reas. A grande quantidade de instrues, a arquitetura, e sua filosofia de funcionamento
fazem dos microcontroladores desta famlia uma referncia em microcontroladores de 8 bits.
Mais especificamente o derivado da famlia MCS51, 80C552, utilizado neste prottipo
mostrou ser muito eficaz e verstil em projetos de baixo custo e que necessitem de perifricos
como conversores A/D e sadas de PWM.
No que diz respeito ao hardware do prottipo, um dos problemas que surgiu, foi a
dificuldade de se encontrar alguns componentes como o 80C552 e o X5043, em lojas
54
especializadas em componentes eletrnicos da regio. A soluo foi encomenda-los de
distribuidores, que se encontram, em sua maioria, no estado de So Paulo. H tambm o custo
de fabricao da placa de circuito impresso, que deve ser levado em considerao em projetos
nesta rea.
5.1 EXTENSES
As sugestes para extenses e trabalhos futuros nesta rea so:
a) criar mais uma sada no processo responsvel por controlar o resfriamento;
b) implementar em conjunto um controlador PID e comparar suas performances;
c) implementar um controle de temperatura onde a velocidade de aquecimento e
resfriamento possa ser programada (gradiente de C/min) .
55
REFERNCIAS BIBLIOGRFICAS
Carlos.
Conversores
AD
DA.
Coimbra,
2001.
Disponvel
em:
56
MAMDANI, E.H. Application of fuzzy algorithms for control of simple dynamic plant.
Proceedings of the IEEE (Control and Science), Piscataway, v.121, p. 298-316, 1974.
PACHECO, Roberto C. S. Tratamento de impreciso em sistemas especialistas. 1991. 85 f.
Dissertao (Mestrado em Engenharia de Produo) Engenharia de Produo e Sistemas,
UFSC, Florianpolis.
PEREIRA, Cledy Gonalves. Um sistema especialista com tcnicas difusas para os limites
da agncia. 1995. 91 f. Dissertao (Mestrado em Engenharia de Produo) Engenharia de
Produo e Sistemas, UFSC, Florianpolis.
PHILIPS SEMICONDUCTORS. 80C51 Family derivatives: 8XC552/562 overview.
Sunnyvale: Philips, 1996.
RABUSKE, Renato Antnio. Inteligncia artificial. Florianpolis: UFSC, 1995.
ROSS, Timothy J. Fuzzy logic with engineering applications. New York: McGraw-Hill,
1995.
SILVA JNIOR, Vidal Pereira da Silva. Microcontroladores. So Paulo: rica, 1988.
SILVA JNIOR, Vidal Pereira da Silva. Microcontrolador 8051: hardware e software. So
Paulo: rica, 1990.
TARIG, Ali Abdurrahman E. S. Controle de um brao robtico utilizando uma
abordagem de agente inteligente. 2001. 98 f. Dissertao (Mestrado em Informtica)
Coordenao Ps-Graduao em Informtica, Universidade Federal da Paraba, Joo Pessoa.
TOSHINORI, Munakata; JANI, Yashvant. Comunications of the ACM: fuzzy systems, New
York, v.37, p. 69-76, 1994.
WELSTEAD, Stephen T. Neural network and fuzzy logic applications in C/C++. New
York: Wiley, 1994.
ZADEH, Lotfi A. Fuzzy sets. Information and control, San Diego, v. 8, p. 338-353, 1965.
57
ZADEH, Lotfi A. Outline of a new approach to the analysis of complex systems and decision
processes. IEEE Transactions on Systems Man & Cybernetics, Tampa, v.3, p. 28-44,
1973.