UNIVERSIDADE FEDERAL DE MINAS GERAIS
Programa de P´os-Gradua¸c˜ao em Engenharia El´etrica
Implementa¸c˜
ao de
Controladores Fuzzy em Hardware
Aluno: Wilian Soares Lacerda
Professor: Walmir Matos Caminhas - DELT/UFMG
Sum´
ario
1 Introdu¸c˜ao 4
2 Hardware/software codesign 5
3 Alternativas de implementa¸c˜ao 8
3.1 Solu¸c˜oes de prop´osito geral . . . 9
3.2 Processadores de prop´osito geral com suporte fuzzy . . . 9
3.3 Coprocessadores de prop´osito especial . . . 11
3.4 ASIC’s dedicados . . . 11
4 Inferˆencia fuzzy 13
5 Ferramentas para implementa¸c˜ao 19
6 Implementa¸c˜ao anal´ogica de sistema fuzzy 21
7 Implementa¸c˜ao digital de sistema fuzzy em FPGA 35
Lista de Figuras
2.1 Metodologia codesign . . . 6
3.1 Conjunto de instru¸c˜oes RISC com suporte fuzzy . . . 10
4.1 Taxonomia de sistemas de inferˆencia fuzzy . . . 13
4.2 Diagramas de blocos de arquitetura fuzzy . . . 14
4.3 Diagramas de blocos de implementa¸c˜ao de fun¸c˜ao em tabela . . . 15
4.4 Arim´etica MFC . . . 15
4.5 Diagramas de blocos para diferentes m´etodos de desfuzzifica¸c˜ao . . . 16
4.6 Desfuzzificador multifuncional . . . 16
4.7 Ambiente de trabalho de um chip fuzzy program´avel . . . 17
5.1 Metodologia de projeto e ferramentas dispon´ıveis . . . 20
6.1 Opera¸c˜ao de soma usando modo de corrente . . . 21
6.2 Arquitetura de m´aquina de inferˆencia fuzzy proposto por Yamakawa . . . 22
6.3 Arquitetura de m´aquina de inferˆencia fuzzy proposto por Baturone . . . 23
6.4 Arquitetura de m´aquina de inferˆencia fuzzy proposto por Huertas . . . 23
6.5 MFC proposto por Huertas: a) esquema b) parˆametros ajust´aveis para fun¸c˜ao trapez´oide . . . 24
6.7 Circuito max utilizando transistor bipolar . . . 26
6.8 Circuito min utilizando CMOS . . . 27
6.9 Circuito max utilizando CMOS . . . 28
6.10 Circuito max utilizando componentes discretos: a) com diodos b) com diodos e amplificadores operacionais . . . 28
6.11 Circuito MFC . . . 29
6.12 Fun¸c˜oes de pertinˆencia . . . 30
6.13 Porta de truncagem . . . 31
6.14 Vetor max . . . 32
6.15 Circuito desfuzzificador de Yamakawa . . . 33
6.16 Circuito em modo de corrente utilizando conversor A/D para implementar a divis˜ao 34 7.1 Arquitetura de uma FPGA . . . 36
7.2 M´etodos de reconfigura¸c˜ao de uma FPGA . . . 36
7.3 Arquitetura digital de inferˆencia fuzzy proposta por Hung . . . 37
7.4 Arquitetura digital de inferˆencia fuzzy proposta por Himavathi . . . 38
7.5 Algoritmo da divis˜ao, calcula a/b onde a < b . . . . 39
7.6 Algoritmo da fun¸c˜ao de pertinˆencia, calcula r = 2−x quando 0 < x < n e x = w 1+ w2 39 7.7 Algoritmo de normaliza¸c˜ao, calcula nr do vetor de pesos r . . . 40
7.8 Arquitetura digital de inferˆencia fuzzy proposta por Masmoudi . . . 42
7.9 Algoritmo de divis˜ao proposto por Masmoudi e implementado em FPGA . . . 43
7.10 Mecanismo de inferˆencia fuzzy de Sugeno ordem zero . . . 44
7.11 Arquitetura de controlador fuzzy proposta por Kim com reconfigura¸c˜ao da FPGA em tempo de execu¸c˜ao . . . 45
Cap´ıtulo 1
Introdu¸c˜
ao
Este compˆendio apresenta os aspectos tecnol´ogicos da implementa¸c˜ao de sistemas de inferˆencia fuzzy, ou controladores fuzzy.
Algumas t´ecnicas de projeto de sistemas fuzzy s˜ao apresentadas, evidenciando a metodologia integrada de alto n´ıvel utilizada no projeto de tais sistemas. Ferramentas que facilitam o trabalho do projetista tamb´em s˜ao apresentadas.
Para classificar os tipos de implementa¸c˜oes e alternativas de projeto de sistemas fuzzy, as principais caracteristicas desejadas dos controladores fuzzy s˜ao exploradas, bem como as op¸c˜oes de projeto.
S˜ao apresentados exemplos de implementa¸c˜oes digital e anal´ogica encontrados na literatura, e as dificuldades tecnol´ogicas de implementa¸c˜ao. Diversas solu¸c˜oes s˜ao propostas para contornar os problemas de implementa¸c˜ao.
Finalmente, podemos concluir que h´a muito ainda para desenvolver e pesquisar na ´area de l´ogica fuzzy, inclusive no aspecto de implementa¸c˜ao em hardware.
Cap´ıtulo 2
Hardware/software codesign
Duas alternativas podem ser consideradas quando explorando o projeto de um sistema eletrˆonico complexo. Um deles ´e usando componentes padr˜oes os quais podem ter sua funcionalidade de-finida por programa¸c˜ao. O outro modo ´e a implementa¸c˜ao desta funcionalidade via circuito microeletrˆonico especialmente feito para aquela aplica¸c˜ao [7].
A alternativa por software providencia solu¸c˜oes que apresentam grande flexibilidade mas com necessidade de grande ´area de sil´ıcio e longos tempos de execu¸c˜ao, enquanto que a segunda op¸c˜ao (alternativa de hardware) otimiza o tamanho e a velocidade, mas limita a flexibilidade da solu¸c˜ao. O meio termo entre ambos, a t´ecnica de hardware/software codesign tenta obter um apropriado compromisso entre as vantagens e desvantagens destas duas abordagens.
Em processos de sistemas codesign, todas as tarefas que o sistema deve realizar devem ser analizados, avaliando o impacto que as op¸c˜oes da poss´ıvel implementa¸c˜ao pode ter nos fatores que definem a funcionalidade do sistema e seu custo. Os principais parˆametros para considerar na avalia¸c˜ao s˜ao a velocidade de execu¸c˜ao e a ´area necess´aria pela implementa¸c˜ao em hardware. Baseado nestes resultados, um processo de particionamento ´e obtido, o qual consiste em decidir qual tarefa deva ser executada por software e qual deve ser implementada por hardware.
H´a diferentes abordagens para aplica¸c˜oes de t´ecnicas codesign no desenvolvimento de sistemas de controle baseados em l´ogica fuzzy. Eles s˜ao distintos pelo modo no qual o partcionamento HW/SW ´e realizado. Um deles analisa a influˆencia do conjunto de instru¸c˜oes do processador na implementa¸c˜ao do sistema de inferˆencia fuzzy, reprojetando ele de tal modo que ele suporte aquelas opera¸c˜oes as quais melhor contribuem ao incremento da velocidade de inferˆencia. Neste caso o processo de particionamento ´e obtido no n´ıvel de instru¸c˜oes do processador.
Uma outra alternativa consiste na implementa¸c˜ao do sistema de inferˆencia, totalmente ou par-cialmente, por meio de hardware dedicado com arquitetura espec´ıfica, o que contribui significan-temente ao incremento da velocidade do controlador.
As diferentes fases da metodologia de codesign para implementa¸c˜ao de controladores fuzzy s˜ao mostradas na Figura 2.1 e detalhadas a seguir.
Figure 2.1: Metodologia codesign
1. Fase de descri¸c˜ao
A descri¸c˜ao do sistema de inferˆencia fuzzy definindo a estrat´egia de opera¸c˜ao do controlador ´e obtida durante esta fase usando a linguagem de especifica¸c˜ao de sistema fuzzy (XFL). 2. Fase de simula¸c˜ao
Uma simula¸c˜ao off-line do ambiente do sistema de inferˆencia fuzzy na planta a ser contro-lada ´e obtida nesta fase. O principal objetivo desta fase ´e obter um ajuste preliminar dos parˆametros de controle.
3. Fase de verifica¸c˜ao on-line
A principal caracter´ıstica desta fase ´e a inclus˜ao da planta real no loop de controle, com objetivo de obter o ajuste ´otimo da base de conhecimento do controlador fuzzy.
4. Fase de particionamento
Embora as tarefas espec´ıficas que o controlador fuzzy deve obter depender´a da aplica¸c˜ao do controle, elas s˜ao usualmente relatadas para seguir as seguintes a¸c˜oes gerais:
• Sistema de inicializa¸c˜ao • Determina¸c˜ao do objetivo • Sistema de leitura dos sensores • Pr´e-processamento de entrada • Inferˆencia fuzzy
• Sa´ıda p´os-processamento
• Generaliza¸c˜ao dos sinais de controle
Uma vez que as tarefas as quais necessitam ser executadas tem sido identificadas, o pro-cesso de particionamento HW/SW pode ser realizado. O sistema de inferˆencia deve ser implementado em hardware e as tarefas restantes devem ser avaliadas com objetivo de obter o melhor compromisso velocidade x flexibilidade. O c´alculo da inferˆencia fuzzy pode ser associado a um controlador de prop´osito espec´ıfico constru´ıdo em uma FPGA, enquanto os algoritmos de pr´e e p´os-processamento, e as demais tarefas, podem ser programadas em microcontrolador.
5. Fase de implementa¸c˜ao em hardware
Para o desenvolvimento desta fase ´e necess´aria uma ferramenta CAD permitindo a transla¸c˜ao da especifica¸c˜ao do sistema de inferˆencia fuzzy para um formato o qual a arquitetura des-crita pode ser sintetizada (uma linguagem de descri¸c˜ao de hardware). O uso de FPGA’s ´e especialmente adequada para obter um primeiro prot´otipo do sistema.
6. Fase de desenvolvimento de software
Durante esta fase, diferentes rotinas s˜ao desenvolvidas as quais suportam as tarefas que ser˜ao implementadas pelo software.
7. Fase de valida¸c˜ao
A integra¸c˜ao de implementa¸c˜oes em hardware e software no desenvolvimento do sistema e o ajuste definitivo dos parˆametros do controlador s˜ao obtidos nesta fase. Desde que as tarefas do microcontrolador e os parˆametros de inferˆencia podem ser facilmente modificados, diferentes vers˜oes do controlador podem ser validados com o objetivo de obter um com a melhor performance [7].
Cap´ıtulo 3
Alternativas de implementa¸c˜
ao
Uma base de regras fuzzy ´e caracterizado por um conjunto de parˆametros que identificam sua complexidade computacional, a saber:
• N´umero de entradas exatas e entradas fuzzy. • N´umero de sa´ıdas exatas e sa´ıdas fuzzy.
• N´umero e forma das fun¸c˜oes de pertinˆencia por entrada/sa´ıda. • N´umero de regras.
• N´umero de antecedentes/consequentes por regra.
• Precis˜ao: n´umero de bits para discretiza¸c˜ao das fun¸c˜oes de pertinˆencia.
• Variˆancia do algoritmo: m´etodo de computa¸c˜ao das fun¸c˜oes de pertinˆencia, m´etodo de regras
de inferˆencia, m´etodo de desfuzzifica¸c˜ao.
Como uma taxonomia, podemos identificar quatro classes entre as diferentes alternativas de implementa¸c˜ao:
1. Solu¸c˜oes de software e hardware com componentes de prop´osito geral. 2. Processadores de prop´osito geral com instru¸c˜oes para c´alculos especiais. 3. Coprocessadores fuzzy dedicados.
3.1
Solu¸c˜
oes de prop´
osito geral
Implementa¸c˜oes em software de algoritmos fuzzy em microcontroladores padr˜oes s˜ao hoje as t´ecnicas mais largamente utilizadas. As seguintes vantagens e desvantagens esta abordagem pos-sui:
• flexibilidade completa
• suporte a processamento n˜ao fuzzy
• avaliabilidade de sistemas de desenvolvimento
• avaliabilidade de ferramentas de sistemas de suporte • baixa velocidade
Uma abordagem alternativa que requer apenas componentes padr˜oes ´e representada por imple-menta¸c˜ao em tabelas (look-up tables). Nesta abordagem, os valores de sa´ıda s˜ao pr´e-computados para muitos valores de entrada e armazenados em RAM. Neste caso a velocidade de inferˆencia ´e muito alta, mas h´a crescimento exponencial da mem´oria requerida se o n´umero de vari´aveis de entrada e sa´ıda, ou a resolu¸c˜ao, incrementam. Usualmente esta t´ecnica ´e limitada para aplica¸c˜oes com 2 a 3 entradas e 1 a 2 sa´ıdas, com baixa resolu¸c˜ao.
3.2
Processadores de prop´
osito geral com suporte fuzzy
Uma abordagem alternativa que ainda mant´em capacidade de computa¸c˜ao de prop´osito geral emprega o uso de processadores de prop´osito geral com a adi¸c˜ao de pequenas instru¸c˜oes especia-lizadas para acelerar tarefas fuzzy. As vantagens e desvantagens desta abordagem s˜ao:
• flexibilidade completa
• alta velocidade comparada aos microcontroladores padr˜oes • simples extens˜ao do n´ucleo existente
• suporte autom´atico de computa¸c˜ao n˜ao fuzzy
• alto custo comparado aos microcontroladores padr˜oes devido ao pequeno volume de produ¸c˜ao • performance limitada para aplica¸c˜oes
N´os podemos distinguir duas t´ecnicas alternativas que correspondem as diferentes filosofias de projeto do n´ucleo do microcontrolador:
• Para conjunto de instru¸c˜oes complexas (arquitetura CISC) ´e poss´ıvel adicionar firmware
dedicado ao suporte de l´ogica fuzzy, modificando apropriadamente o microprograma do controlador.
• Para processadores de instru¸c˜oes reduzidas (arquitetura RISC), uma possibilidade
interes-sante ´e somar poucas instru¸c˜oes dedicadas para um conjunto de instru¸c˜oes de prop´osito geral que permitem ao compilador otimizar aplica¸c˜oes fuzzy. Na Figura 3.1 encontra-se um exemplo.
3.3
Coprocessadores de prop´
osito especial
Muitos processadores fuzzy dedicados s˜ao desta classe. Existem processadores de prop´osito especial dedicados a computa¸c˜ao fuzzy que n˜ao podem implementar sozinhos sistema de controle devido a falta de capacidade computacional do prop´osito geral, mas ainda providenciam alguma flexibilidade e configurabilidade. S˜ao as seguintes vantagens e desvantagens desta abordagem:
• alta velocidade • modularidade • alguma flexibilidade
• regras e faixa de fun¸c˜oes de pertinˆencia limitadas • alto custo
• necessidade de processador de prop´osito geral para suportar partes n˜ao fuzzy
Estes coprocessadores de prop´osito especial usualmente adotam fun¸c˜oes de pertinˆencia triangu-lares, formato de regras flex´ıveis (n´umero de antecedentes e consequentes), m´etodo de inferˆencia max-min, 8 bits de precis˜ao, e m´etodo de desfuzzifica¸c˜ao centr´oide.
3.4
ASIC’s dedicados
A ´ultima solu¸c˜ao para aumentar a performance em aplica¸c˜oes fuzzy ´e o desenvolvimento de uma arquitetura dedicada. Devido a natureza particular dos processos de inferˆencia fuzzy, ´e poss´ıvel implementar diretamente um algoritmo fuzzy com estrutura de hardware dedicado de modo a maximizar a velocidade e minimizar a ´area de sil´ıcio, usando t´ecnicas de alto n´ıvel. O resultado da solu¸c˜ao ´e obvialmente para uma aplica¸c˜ao simples, e os parˆametros de configura¸c˜ao s˜ao reduzidos a um conjunto m´ınimo, o que n˜ao compromete a ´area e a velocidade. S˜ao as seguintes as vantagens e desvantagens desta abordagem:
• processamento muito r´apido, direcionado a aplica¸c˜ao • projeto r´apido (s´ıntese autom´atica)
• baixo custo em termos de ´area de sil´ıcio (5 a 10 mil portas)
• dispon´ıvel como um bloco em um sistema de controle de chip ´unico • implement´avel em FPGA para prototipa¸c˜ao
• efetivo custo para alto volume de produ¸c˜ao • sem flexibilidade (a aplica¸c˜ao ´e fixa)
• complexidade limitada
• apenas para sistemas baseados em ASIC
• necessidade de microprocessador para suportar partes n˜ao fuzzy
Enfim, solu¸c˜oes por software providenciam flexibilidade para definir a base do conhecimento fuzzy, para selecionar os operadores fuzzy, e para escolher os algoritmos de inferˆencia. Entretanto, eles se tornam inadequados para problemas que demandam alta velocidade de inferˆencia. Neste caso, solu¸c˜oes de hardware devem ser adotadas [16].
Cap´ıtulo 4
Inferˆ
encia fuzzy
O termo inferˆencia fuzzy indica o processo que computa um valor de sa´ıda de um valor de entrada por meio de aplica¸c˜ao de regras lingu´ısticas.
Taxonomias distintas podem ser utilizadas para sistemas de inferˆencia fuzzy de acordo com diferentes crit´erios. Entretanto, com objetivo de comparar as implementa¸c˜oes em hardware, ´e prefer´ıvel introduzir uma classifica¸c˜ao dependendo do tipo de informa¸c˜ao que eles manipulam na entrada do sistema e a descri¸c˜ao das regras consequentes. Neste sentido, na literatura [20] s˜ao encontradas uma das trˆes categorias mostradas na Figura 4.1.
Figure 4.1: Taxonomia de sistemas de inferˆencia fuzzy
Em sistemas de inferˆencia fuzzy convencionais, a regra base ´e descrita por r´otulos lingu´ısticos representados por conjuntos fuzzy. Em aplica¸c˜oes de decis˜ao e problemas de controle complexos, as entradas de sistemas de inferˆencia fuzzy s˜ao descritos por uma distribui¸c˜ao de possibilidades representada tamb´em por um conjunto fuzzy (FIFC). Em muitas outras aplica¸c˜oes, ao contr´ario, a entrada vem de sensores os quais d˜ao valores exatos que podem ser associados a singleton fuzzy (SIFC). Neste caso, o c´alculo do n´ıvel de ativa¸c˜ao de cada regra ´e reduzido para combinar cada grau de pertinˆencia antecedente por meio de um operador. Em outras aplica¸c˜oes, o controlador deve dar um valor de sa´ıda concreto, o que imp˜oe a introdu¸c˜ao de um est´agio desfuzzificador (SISC).
Em um sistema de inferˆencia fuzzy, o valor da sa´ıda ´e calculada da estima¸c˜ao das regras base, levando em conta a contribui¸c˜ao de regras simples, atrav´es de trˆes principais passos [22], mostrados na Figura 4.2:
Figure 4.2: Diagramas de blocos de arquitetura fuzzy 1. Fuzzifica¸c˜ao
Esta opera¸c˜ao translada um valor de dado exato em uma vari´avel lingu´ıstica para um grau de pertinˆencia. H´a duas estrat´egias b´asicas para a estima¸c˜ao do grau de pertinˆencia:
• Abordagem orientada a mem´oria: o grau de pertinˆencia de cada entrada e sa´ıda s˜ao
estimados off-line e armazenados em mem´oria como valores discretos. Se for necess´ario alta resolu¸c˜ao de discretiza¸c˜ao, a mem´oria ocupada ser´a muito grande. Esta alternativa permite-nos definir conjuntos fuzzy de formas irrestritas. O circuito de microeletrˆonica dispon´ıvel para implementa¸c˜ao desta t´ecnica s˜ao mem´orias padr˜oes e PLD’s (Program-mable Logic Devices). A Figura 4.3 mostra o diagrama em blocos deste tipo de CI, assumindo que entradas e sa´ıdas s˜ao anal´ogicas. Uma vantagem deste tipo de realiza¸c˜ao ´e que o tempo de resposta ´e muito curto porque a ´unica opera¸c˜ao a ser feita ´e o acesso do dado da mem´oria que pode ser feita em poucos nanosegundos. Em contrapartida, a implementa¸c˜ao em tabela ´e pr´atica apenas quando o n´umero de entradas e seu grau de quantifica¸c˜ao s˜ao baixos, sen˜ao o n´umero total de bits para armazenar ´e muito grande [5].
• Abordagem orientada a computa¸c˜ao: o grau de pertinˆencia ´e calculado on-line, e
deve-mos armazenar apenas os parˆametros necess´arios para calcular o grau de pertinˆencia. O tempo de execu¸c˜ao depende da forma da fun¸c˜ao de pertinˆencia. Quando o baixo custo em termo de ´area de sil´ıcio ´e o objetivo, esta abordagem tr´as melhores resultados [21].
Um conjunto de circuitos de fun¸c˜oes de pertinˆencia (MFC), tal como mostrado na Figura 4.4 pode ser considerado para manter o tamanho e velocidade de opera¸c˜ao do est´agio fuzzificador de acordo com outras partes do controlador fuzzy.
Figure 4.3: Diagramas de blocos de implementa¸c˜ao de fun¸c˜ao em tabela
2. Inferˆencia fuzzy ´
E a opera¸c˜ao que usa a regra base e o grau de pertinˆencia para deduzir a sa´ıda fuzzy. Os m´etodos mais cl´assicos de inferˆencia s˜ao os m´etodos max-min e o max-produto.
3. Desfuzzifica¸c˜ao ´
E o passo que translada a sa´ıda fuzzy para uma resposta precisa. O m´etodo mais comum ´e o m´etodo de centro de gravidade. Por exemplo, se n´os decidirmos usar o m´etodo centr´oide ou centro de gravidade, n´os necessitamos executar um n´umero de multiplica¸c˜oes que ´e proporcional ao n´umero de regras. Neste caso, a complexidade ´e logar´ıtmica com respeito ao n´umero de regras. As Figuras 4.5 e 4.6 apresentam diagramas de blocos de circuitos implementando m´etodos de desfuzzifica¸c˜ao.
Figure 4.5: Diagramas de blocos para diferentes m´etodos de desfuzzifica¸c˜ao
Uma vantagem significativa do chip fuzzy program´avel ´e a sua capacidade de resolver o controle para diferentes problemas. Ele pode ser adaptado para providenciar uma superf´ıcie de controle est´atica ou pode ser ajustado dinamicamente em aplica¸c˜oes as quais requerem superf´ıcies de controle variantes no tempo [2]. Neste caso, um dos seguintes mecanismos de sintoniza¸c˜ao dos parˆametros fuzzy podem ser empregados (veja Figura 4.7):
• Ajuste manual off-chip.
• Ajuste autom´atico off-chip, comandado por computador padr˜ao. • Ajuste autom´atico on-chip.
Figure 4.7: Ambiente de trabalho de um chip fuzzy program´avel Quando projetamos um controlador fuzzy, devemos conhecer os seguinte itens [23]:
• Quais s˜ao os atuadores (motor, aquecedor, altofalante)? Quais s˜ao as vari´aveis nas regras
fuzzy consequentes?
• O que poderia ser medido para controlar o sistema? Quais s˜ao as vari´aveis nas regras fuzzy
antecedentes?
• Qual a faixa de valores dos atuadores e sensores? Quais s˜ao os valores m´ınimos e m´aximos
• Qual a precis˜ao que o sistema deve ser descrito?
• Qual a forma das fun¸c˜oes de pertinˆencia para descrever a intui¸c˜ao de um especialista? • Qual ´e o conjunto de regras fuzzy e suas combina¸c˜oes?
Portanto, um sistema de inferˆencia fuzzy deve ser muito bem planejado e estudado antes de se iniciar o processo de implementa¸c˜ao.
Cap´ıtulo 5
Ferramentas para implementa¸c˜
ao
Muitos circuitos conhecidos como coprocessadores fuzzy s˜ao dispon´ıveis no mercado de mi-croeletrˆonica. Eles s˜ao dispositivos de prop´osito geral que trabalham junto com processadores padr˜oes para aumentar a velocidade de opera¸c˜oes t´ıpicas de sistemas de inferˆencia baseados em l´ogica fuzzy. O problema ´e que este tipo de circuito n˜ao ´e eficiente o bastante em termos de ´area de sil´ıcio, consumo de potˆencia e velocidade quando considerando sua aplica¸c˜ao para setores in-dustriais relacionados a telecomunica¸c˜oes e automotivo ou produtos de cosumidores. Uma solu¸c˜ao mais vantajosa, como acontece em muitas outras ´areas de microeletrˆonica, ´e o uso de hardware dedicado adaptado para o problema particular. Viabilidade desta abordagem ´e grandemente in-crementada pelo uso de metodologias de projeto, t´ecnicas de circuito e ferramentas CAD, que facilitam a realiza¸c˜ao do sistema, ent˜ao reduzindo o tempo para mercado [1].
Os principais passos para projeto de controlador fuzzy com a respectiva ferramenta CAD dis-pon´ıvel ´e mostrado na Figura 5.1.
O ponto inicial ´e a especifica¸c˜ao da funcionalidade do controlador. Para este prop´osito, o ambi-ente de projeto providencia uma linguagem flex´ıvel de alto n´ıvel chamada XFL, que permite uma descri¸c˜ao unificada de sistema fuzzy que ajuda todo o processo de projeto. Uma especifica¸c˜ao XFL define o mecanismo de inferˆencia, o m´etodo de desfuzzifica¸c˜ao e a base de conhecimento selecionado (a regra base e fun¸c˜oes antecedentes e consequentes). Uma especifica¸c˜ao consiste de um tipo de defini¸c˜ao de m´odulo que descreve as fun¸c˜oes de pertinˆencia, e as regras respectiva-mente. XFL suporta um conjunto de classes de fun¸c˜oes de pertinˆencia t˜ao bem como um m´etodo para definir fun¸c˜oes gen´ericas lineares por partes. Ela tamb´em suporta o uso de regras de base hier´arquicas empregando operadores de composi¸c˜ao serial e paralelo.
Tendo feito estas sele¸c˜oes, o usu´ario tem dois modos para verificar a funcionalidade do sistema. Um deles ´e simulando o ambiente do sistema com simulador fuzzy (XFSIM), o qual est´a inclu´ıdo no ambiente de desenvolvimento.
Figure 5.1: Metodologia de projeto e ferramentas dispon´ıveis
do hardware no loop). Para este prop´osito, o ambiente de desenvolvimento providencia o utilit´ario XFLAB o qual basicamente consiste de uma interface de aquisi¸c˜ao de dados e drivers para ler e escrever dados.
Uma vez que as especifica¸c˜oes do controlador tem sido validadas, inicia-se a fase de imple-menta¸c˜ao. Uma ferramenta autom´atica de s´ıntese, chamada XFVHDL, pode ser usada para transladar a especifica¸c˜ao XFL em descri¸c˜ao VHDL capaz de ser implementada em circuitos de microeletrˆonica. Em [10] ´e proposto um pacote em VHDL para descri¸c˜ao de controladores de l´ogica fuzzy. Uma vantagem da linguagem padr˜ao VHDL ´e que permite a simula¸c˜ao do circuito em v´arios simuladores comerciais.
Duas t´ecnicas gen´ericas de implementa¸c˜ao podem ser seguidas. A primeira utiliza FPGA (Field Programmable Gate Array). Esta abordagem ´e ´util para prop´osito de prototipa¸c˜ao por causa da capacidade para mudar a funcionalidade por programa¸c˜ao. A segunda abordagem ´e para projeto em ASIC (Application Specific Integrated Circuit) usando um ambiente de projeto e uma biblioteca de tecnologia de sil´ıcio [1].
Cap´ıtulo 6
Implementa¸c˜
ao anal´
ogica de sistema
fuzzy
A implementa¸c˜ao em hardware de controlador fuzzy ´e realizada em modo anal´ogico ou digital. Chips fuzzy digitais possuem boa programabilidade, projeto f´acil, boa compatibilidade com siste-mas digitais. Chips fuzzy anal´ogicos tem caracter´ısticas distintas, tais como alta velocidade, boa compatibilidade com sensores, facilidade de implementa¸c˜ao [4] (veja opera¸c˜ao de soma na Figura 6.1). A solu¸c˜ao anal´ogica pode enfocar uma abordagem em tens˜ao ou corrente, ou ambas. A ado¸c˜ao de um modo ou outro deve ser feito de acordo com as circunstˆancias.
Figure 6.1: Opera¸c˜ao de soma usando modo de corrente
Yamakawa, em seu pioneiro trabalho [23], prop˜oe um sistema de inferˆencia fuzzy anal´ogico. Estes circuitos s˜ao diferentes dos tradicionais circuitos anal´ogicos tais como amplificadores ope-racionais, um multiplicador/divisor e seus derivados. Os circuitos empregados em m´aquinas de inferˆencia s˜ao n˜ao lineares e s˜ao diferentes nos seguintes aspectos:
• Desde que a fun¸c˜ao de pertinˆencia manipula valores entre 0 e 1 e uma resolu¸c˜ao de 10%
´e bastante, o projetista n˜ao precisa de se preocupar com a precis˜ao, al´em da linearidade, baixo desvio t´ermico, baixo offset, etc.
• Um circuito fuzzy deve ser projetado em uma arquitetura simples (com poucos dispositivos)
para ativar alta velocidade de processamento.
As caracter´ısticas de entrada-sa´ıda de circuitos intrinsecamente fuzzy s˜ao n˜ao lineares, tais que um circuito fuzzy pode ser chamado circuito n˜ao linear anal´ogico.
O circuito proposto por Yamakawa ´e mostrado na Figura 6.2, que ser´a detalhado mais a frente por cada bloco.
Figure 6.2: Arquitetura de m´aquina de inferˆencia fuzzy proposto por Yamakawa
Uma outra alternativa de implementa¸c˜ao anal´ogica mais simplificada ´e proposto por Baturone [3] [12] e mostrada na Figura 6.3. Nota-se o divisor no est´agio final.
Huertas [13] tamb´em prop˜oe melhoria na arquitetura original de Yamakawa, e define um ciclo de opera¸c˜ao cuja dura¸c˜ao depende da precis˜ao desejada. Cada regra ´e implementada em uma RAM digital com conversores digital/anal´ogico em corrente (veja Figura 6.4). O n´ucleo desta arquitetura ´e um MFC (Figura 6.5) h´abil para gerar um grande n´umero de fun¸c˜oes de pertinˆencia que permite algum tipo de reconfigurabilidade eletrˆonica.
Figure 6.3: Arquitetura de m´aquina de inferˆencia fuzzy proposto por Baturone
Figure 6.5: MFC proposto por Huertas: a) esquema b) parˆametros ajust´aveis para fun¸c˜ao trapez´oide
A seguir ser´a detalhado cada bloco da arquitetura proposta por Yamakawa.
1. Fun¸c˜ao de pertinˆencia
O primeiro est´agio de uma m´aquina de inferˆencia fuzzy ´e um circuito de fun¸c˜ao de per-tinˆencia (MFC). As caracter´ısticas de entrada-sa´ıda de um MFC exibe a forma da fun¸c˜ao de pertinˆencia, a qual pode ser associada externamente.
2. Circuito min
O segundo est´agio ´e um circuito min o qual aceita mais do que um sinal de entrada e produz o menor valor deles no terminal de sa´ıda. Este circuito ativa uma fun¸c˜ao AND no antecedente das regras if-then. Se vari´aveis no antecedente s˜ao conectadas com OR, o circuito min deve ser substitu´ıdo por um circuito max. A sa´ıda destes circuitos representam o grau de concordˆancia entre o antecedente e a entrada e ent˜ao alimenta o pr´oximo est´agio para pesar a fun¸c˜ao de pertinˆencia consequente.
Os circuitos min e max podem ser implementados empregando transistores bipolares como mostram as Figuras 6.6 e 6.7. O compensador (seguidor de emissor) compensa o desloca-mento de tens˜ao de 0,7V para produzir a tens˜ao de sa´ıda igual a m´ınima ou m´axima tens˜ao de entrada.
Outras alternativas de circuitos min e max utilizando tecnologia CMOS [19] e dispositivos discretos [4] s˜ao mostradas nas Figuras 6.9, 6.8, e 6.10.
Figure 6.6: Circuito min utilizando transistor bipolar
A exce¸c˜ao do est´agio de desfuzzifica¸c˜ao, o n´ucleo da computa¸c˜ao da m´aquina fuzzy pode todo ser implementado usando operadores elementares de min e max, da´ı a importˆancia destes circuitos para implementa¸c˜ao em hardware dedicado [8]. Circuitos max e min podem ser implementados com espelhos de corrente, transistores MOS conectados como diodos e conex˜oes.
3. Circuito MFC
Fun¸c˜oes de pertinˆencia de vari´aveis no antecedente s˜ao implementadas por um MFC. Um circuito de fun¸c˜ao de pertinˆencia ´e o qual as caracter´ısticas de entrada/sa´ıda podem ser associadas a sinais externos ou dispositivos. A Figura 6.11 mostra a configura¸c˜ao do circuito de um MFC o qual pode realizar cinco fun¸c˜oes: Z, S, trapezoidal, triangular, e NA (n˜ao importa) como mostra a Figura 6.12. XIN e FX s˜ao os terminais de entrada e sa´ıda. AS ´e um chave anal´ogica controlado pelo sinal externo P.
4. Gerador de fun¸c˜ao de pertinˆencia
Uma fun¸c˜ao de pertinˆencia do consequente ´e amostrado para valores discretos como mostra a Figura 6.2. A forma e o r´otulo da fun¸c˜ao de pertinˆencia podem ser mudadas.
5. Porta de truncagem
Uma porta de truncagem recebe um vetor de sinal fuzzy B e um sinal fuzzy escalar “a”, e produz um vetor de sinal fuzzy B’ truncado pelo sinal fuzzy escalar de entrada. Isto pode
Figure 6.7: Circuito max utilizando transistor bipolar
ser constru´ıdo por arranjando circuitos min em um vetor, como mostra a Figura 6.13. 6. Vetor de max
As portas de sa´ıda de uma m´aquina de inferˆencia fuzzy devem ser usualmente alimentadas a um vetor max para agregar todas as conclus˜oes individuais antes da desfuzzifica¸c˜ao, como mostra a Figura 6.14. Uma m´aquina de inferˆencia fuzzy com estrutura de coletor aberto e um desfuzzificador envolvendo fonte de corrente no terminal de entrada facilita a sua implementa¸c˜ao.
7. Desfuzzificador
Para obter um valor determin´ıstico de uma fun¸c˜ao de pertinˆencia da conclus˜ao final da inferˆencia fuzzy, a desfuzzifica¸c˜ao deve ser ativada. A Figura 6.15 mostra um desfuzzificador proposto por Yamakawa.
Sistemas fuzzy t´ıpicos como Mandani ou Takagi-Sugeno inferem uma sa´ıda exata (n˜ao fuzzy) agregando todas as respostas das regras e realizando uma divis˜ao. Um dos principais pro-blemas que aparecem quando implementando um sistema fuzzy em hardware ´e a sele¸c˜ao do circuito de divis˜ao adequado. O divisor ´e o circuito que limita a velocidade, precis˜ao e capacidade de interfaceamento do bloco de sa´ıda do chip fuzzy. Circuitos multiplicado-res/divisores podem ser empregados com combina¸c˜oes de conversores A/D e D/A.
Figure 6.9: Circuito max utilizando CMOS
Figure 6.10: Circuito max utilizando componentes discretos: a) com diodos b) com diodos e amplificadores operacionais
em modo de corrente. A entrada do conversor A/D ´e o numerador em forma de corrente, enquanto o valor do denominador ´e usado como referˆencia da corrente no conversor, conforme mostra a Figura 6.16. A sa´ıda digital representa a divis˜ao, da´ı a necessidade de um conversor D/A.
Figure 6.16: Circuito em modo de corrente utilizando conversor A/D para implementar a divis˜ao T´ecnicas convencionais log-antilog ou bipolar translinear tem sido empregadas em chips fuzzy anal´ogicos. Estas estruturas podem ser realizadas com tecnologia CMOS usando transistores MOS trabalhando na regi˜ao abaixo da limiar. Entretanto, a baixa corrente que eles tem que operar fazem o circuito ficar lento. Baixa velocidade ´e tamb´em a limita¸c˜ao de multiplicadores e divisores baseados na t´ecnica de divis˜ao de tempo.
O princ´ıpio translinear MOS ´e outra abordagem. Neste caso, a principal limita¸c˜ao ´e a baixa resolu¸c˜ao por causa da performance dos circuitos resultantes que ´e sens´ıvel ao desvio da lei quadr´atica do modelo dos transistores em satura¸c˜ao. Outra t´ecnica amplamente empregada ´e para inverter o ambiente do multiplicador por usando realimenta¸c˜ao local ou por inserindo ele no caminho de realimenta¸c˜ao de um amplificador inversor. A precis˜ao ´e limitada pelos offsets associados com entrada e sa´ıda das vari´aveis.
Outra alternativa ´e a t´ecnica de aproxima¸c˜ao sucessiva que emprega dois acumuladores. Enfim, existem na literatura v´arias propostas de arquiteturas de implementa¸c˜ao de sistemas fuzzy anal´ogicos, cada uma propondo uma solu¸c˜ao diferente, parcialmente ou totalmente.
Cap´ıtulo 7
Implementa¸c˜
ao digital de sistema fuzzy
em FPGA
FPGA’s (Field Programmable Gate Arrays) s˜ao circuitos integrados que combinam as carac-ter´ısticas dos dispositivos l´ogicos program´aveis (PLD’s) - tempo de projeto curto, program´avel pelo usu´ario, produtos padronizados - e arranjos de portas - alta densidade, arquitetura flex´ıvel e software avan¸cados. A flexibilidade e r´apida prototipa¸c˜ao caracter´ısticos da FPGA permitem verifica¸c˜ao r´apida do projeto em hardware. T´ecnicas de implementa¸c˜ao de controladores fuzzy em FPGA s˜ao descritas na literatura [17].
A arquitetura da FPGA consiste de um programa de armazenamento da configura¸c˜ao e trˆes tipos de elementos configur´aveis: blocos de entrada/sa´ıda, um n´ucleo de blocos l´ogicos configur´aveis (CLB’s), e ´areas de conex˜ao. Veja a Figura 7.1.
Recursos de interconex˜ao configur´aveis ocupam os canais entre as linhas e colunas dos blocos l´ogicos, e entre os blocos l´ogicos e os blocos de entrada/sa´ıda. Os blocos l´ogicos de configura¸c˜ao, blocos de entrada/sa´ıda, e suas interconex˜oes s˜ao controladas por um programa de configura¸c˜ao armazenado em uma mem´oria on-chip. O programa de configura¸c˜ao ´e carregado automaticamente de uma mem´oria PROM externa, na inicializa¸c˜ao do sistema. Ferramentas de projetos em FPGA de alto n´ıvel s˜ao dispon´ıveis no mercado.
Uma desvantagem de usar sistema baseado em FPGA para implementa¸c˜ao em hardware ´e a sua limita¸c˜ao da capacidade dispon´ıvel de c´elulas digitais, o que pode n˜ao permitir que o sistema fuzzy caiba em um ´unico chip FPGA. Pode-se contornar este problema de dois modos. Um modo seria a utiliza¸c˜ao de m´ultiplos chips FPGA, onde o sistema ´e dividido em subsistemas independentes e cada um ´e implementado em um chip FPGA separado. Uma outra alternativa seria utilizar o m´etodo de reconfigura¸c˜ao da FPGA em tempo de execu¸c˜ao, onde a tarefa do sistema ´e separada em v´arias subtarefas independentes no tempo e cada tarefa ´e configurada em uma mesma FPGA, uma de cada vez [15]. Na Figura 7.2 s˜ao mostradas as t´ecnicas de reconfigura¸c˜ao de FPGA.
Figure 7.1: Arquitetura de uma FPGA
Na implementa¸c˜ao de sistemas de inferˆencia fuzzy em FPGA, duas abordagens s˜ao poss´ıveis. A primeira op¸c˜ao ´e baseada na s´ıntese l´ogica de equa¸c˜oes booleanas descrevendo as rela¸c˜oes de entrada/sa´ıda do controlador. A segunda abordagem utiliza hardware dedicado para implementar os algoritmos fuzzy de acordo com a arquitetura espec´ıfica baseada em biblioteca de c´elulas em VHDL [16].
O diagrama em blocos da Figura 7.3 ilustra o caminho de dados de uma m´aquina de inferˆencia fuzzy utilizando tecnologia digital em FPGA proposta por Hung [14].
Figure 7.3: Arquitetura digital de inferˆencia fuzzy proposta por Hung
As seis entradas das SRAM’s, o m´odulo min, m´odulo max, m´odulo produto e m´odulo somat´orio al´em de registradores e l´ogica de controle s˜ao implementados em uma FPGA. Apenas a parte da divis˜ao do desfuzzificador ´e implementado usando um EPROM externa. A arquitetura completa-mente paralela e elimina¸c˜ao de multiplicador e divisor garantem incremento na performance com rela¸c˜ao a velocidade.
Utilizando o m´etodo de centro de gravidade (COG) para desfuzzifica¸c˜ao, uma tabela que arma-zena os resultados da opera¸c˜ao de divis˜ao ´e implementada em um EPROM com ambos numerador e denominador como linhas de endere¸co. A EPROM oferece velocidade mais r´apida que algorit-mos de divis˜ao iterativos respons´avel pelo gargalo da performance do sistema, e ´e independente do resto da m´aquina fuzzy de inferˆencia [14] tais como o n´umero de entradas, a escolha das fun¸c˜oes de pertinˆencia e regras de inferˆencia. A EPROM armazena todos os poss´ıveis valores da desfuzzifica¸c˜ao.
Himavathi [11] prop˜oe em seu trabalho um acelerador de computa¸c˜ao fuzzy (FCA) implemen-tado em FPGA. O FCA reduz a carga do processador realizando as opera¸c˜oes complexas de divis˜ao, pertinˆencia e normaliza¸c˜ao, e ent˜ao ajudando a aumentar a velocidade computacional. A estrutura b´asica do FCA ´e apresentada na Figura 7.4, que ´e compat´ıvel com os processadores de 16 bits da Intel.
Os blocos de divis˜ao, pertinˆencia e normaliza¸c˜ao da Figura 7.4 implementam os algoritmos mostrados nas Figuras 7.5, 7.6 e 7.7.
Figure 7.5: Algoritmo da divis˜ao, calcula a/b onde a < b
Figure 7.6: Algoritmo da fun¸c˜ao de pertinˆencia, calcula r = 2−x quando 0 < x < n e x = w 1+w2
Masmoudi em seu trabalho [18] prop˜oe uma solu¸c˜ao de implementa¸c˜ao em FPGA de sistema fuzzy semelhante a Himavathi, como pode ser visualizado na Figura 7.8. O algoritmo de divis˜ao utilizado por Masmoudi ´e apresentado na Figura 7.9.
O FCA proposto por Himavathi utiliza o m´etodo de inferˆencia de Sugeno, de ordem zero, e fun¸c˜oes de pertinˆencia de potˆencias negativas de dois, o que simplifica a implementa¸c˜ao em hardware. Na Figura 7.10 ´e mostrado o mecanismo de inferˆencia para duas entradas e trˆes regras, cujas etapas de processamento s˜ao:
1. Camada 1: As entradas s˜ao adquiridas.
2. Camada 2: O valor das entradas s˜ao fuzzificadas.
3. Camada 3: As regras s˜ao computadas usando o operador de produto. 4. Camada 4: ´E realizada a normaliza¸c˜ao das regras.
5. Camada 5: Determina-se fi = wi.ci
6. Camada 6: Obtem-se a sa´ıda.
Na arquitetura do controlador fuzzy proposto por Kim [15] utilizando FPGA, o controlador ´e particionado em m´odulos independentes temporais, e cada m´odulo ´e implementado individu-almente no sistema a cada momento. Para isto, cada m´odulo ´e armazenado em um sistema de carregamento em hardware que ´e respons´avel pela reconfigura¸c˜ao da FPGA com um m´odulo de cada vez. O particionamento e sincronismo do carregamento dos m´odulos ´e mostrado na Figura 7.11.
A velocidade de inferˆencia de um sistema fuzzy implementado com FPGA ´e limitada pelo atraso de propaga¸c˜ao nos circuitos de conex˜ao interna da FPGA. A opera¸c˜ao do controlador implementado em FPGA ´e baixa quando uma arquitetura espec´ıfica ´e usada porque muitos ciclos de clock s˜ao necess´arios para calcular uma inferˆencia. Um compromisso entre custo, precis˜ao e velocidade devem ser considerados no projeto de um controlador fuzzy. A t´ecnica de consulta em tabela (look-up table) ´e a melhor escolha em termos de precis˜ao e velocidade, mas o custo torna impratic´avel a solu¸c˜ao quando a resolu¸c˜ao cresce. T´ecnicas baseadas em hardware espec´ıfico s˜ao mais adequadas para controladores de alta resolu¸c˜ao. Arquiteturas particulares usando aritm´etica MFC podem ser usadas para construir controladores de alta resolu¸c˜ao [16].
Figure 7.11: Arquitetura de controlador fuzzy proposta por Kim com reconfigura¸c˜ao da FPGA em tempo de execu¸c˜ao
Cap´ıtulo 8
Conclus˜
ao
Ap´os abordar os tipos mais comuns de tecnologia de implementa¸c˜ao de controladores fuzzy, podemos concluir alguns pontos.
Existem v´arias alternativas de implementa¸c˜ao em hardware de controladores fuzzy: hardware ou software, digital ou anal´ogica, transistor ou CMOS, consulta em tabela ou fun¸c˜ao booleana, reconfigur´avel ou fixa. Ou seja, h´a v´arias solu¸c˜oes de implementa¸c˜ao de um controlador fuzzy e para se determinar a melhor alternativa devemos levar em conta os aspectos de custo, velocidade de execu¸c˜ao e flexibilidade. Estes aspectos devem ser balanceados para se ter o menor custo, com maior velocidade e flexibilidade. E, ainda, para cada aplica¸c˜ao de um sistema de inferˆencia fuzzy podem existir v´arias alternativas ´otimas diferentes.
A medida que a tecnologia eletrˆonica evolue, novas propostas de implementa¸c˜ao surgem, au-mentando as alternativas de implementa¸c˜ao de modo a melhorar a performance dos sistemas, e tornando a aplica¸c˜ao dos controladores fuzzy mais vi´aveis no nosso cotidiano.
Referˆ
encias Bibliogr´
aficas
[1] A. Barriga, R. Senhadji, C. J. Jim´enez, I. Baturone, S. S´anchez-Solano. A Design Methodology for Application Specific Fuzzy Integrated Circuits. Proc. 5th IEEE Int. Conf. on Electronics, Circuits and Systems, Vol. 1, pp. 431-434, Lisboa, Sep. 1998.
[2] I. Baturone, S. S´anchez-Solano, J. L. Huertas. CMOS Fuzzy Controllers Implemented as Mixed-Signal ICs. IEEE International Symposium on Circuits and Systems (ISCAS’96), vol. 3, pp. 422-425, Atlanta, May 12-15, 1996. Dispon´ıvel em citeseer.nj.nec.com/139630.html, acesso em setembro de 2002.
[3] I. Baturone, S. S´anchez-Solano, J. L Huertas. Current-Mode Singleton Fuzzy Controller. Proc. 3rd. Int. Conf. on Fuzzy Logic, Neural Networks and Soft Computing, pp. 647-648, Iizuka, Aug, 1994.
[4] I. Baturone and S. Sanchez-Solano and A. Barriga and J. Huertas. Implementation of CMOS Fuzzy Controllers as Mixed-Signal Integrated Circuits. Circuits, Trans. Fuzzy Systems, vol. 5, no. 1, Feb. 1997, pp. 1-19. Dispon´ıvel em citeseer.nj.nec.com/baturone97implementation.html, acesso em setembro de 2002.
[5] I. Baturone, G. Hern´andez, S. S´anchez-Solano. VLSI Design of Universal Approximator tems. Proc. Information Processing and Management of Uncertainty in Knowledge-based Sys-tems, Vol. 1, pp. 36-43, Madrid, July 2000.
[6] I. Baturone, S. S´anchez Solano, J. L. Huertas. CMOS Design of a Current-Mode Multi-plier/Divider Circuit with Applications to Fuzzy Controllers. Analog Integrated Circuits and Signal Processing, Kluwer Academic publishers, Vol. 23, N. 3, pp. 199-210, June 2000.
[7] Cabrera, A.; Sanchez-Solano, S.; Senhadji, R.; Barriga, A.; Jimenez, C.J. Hardware/software codesign methodology for fuzzy controller implementation. Proceedings of the IEEE Interna-tional Conference on Fuzzy Systems, Volume 1, 2002, pp. 464-469.
[8] Catania, V.; Russo, M. Design of basic hardware gates for efficient fuzzy computing. Micro-electronics for Neural Networks and Fuzzy Systems, Proceedings of the Fourth International Conference on, 1994, pp. 100-109.
[9] Costa, A.; De Gloria, A.; Faraboschi, P.; Pagni, A.; Rizzotto, G. Hardware solutions for fuzzy control. Proceedings of the IEEE , Volume 83, Issue 3, March 1995, pp. 422-434.
[10] D. Gal´an and C. J. Jim´enez and A. Barriga and S. S´anchez Solano. VHDL Package For Description Of Fuzzy Logic Controllers. European Design Automation Conference (EURO-VHDL’95), pp. 528-533, Great-Britain, September 18-22, 1995.
[11] Himavahi, S.; Umamaheswari, B. FPGA based fuzzy computation accelerator. Proceedings of the 2002 IEEE International Conference on Fuzzy Systems, 2002, Volume 1, pp. 352-357. [12] J. L. Huertas, S. S´anchez-Solano, I. Baturone, A. Barriga. Integrated Circuit Implementation
of Fuzzy Controllers. IEEE Journal of Solid-State Circuits, vol. 31, no. 7, July 1996, pp. 1051-1058. Dispon´ıvel em citeseer.nj.nec.com/huertas96integrated.html, acesso em setembro de 2002.
[13] J. L. Huertas, S. S´anchez-Solano, A. Barriga, I. Baturone. Serial Architecture for Fuzzy Controllers: Hardware Implementation Using Analog/Digital VLSI Techniques. Proc. 2nd. Int. Conf. on Fuzzy Logic and Neural Networks, pp. 535-538, Iizuka, Jul. 1992.
[14] Hung, D.; Zajac, W. Implementing a fuzzy inference engine using FPGA. ASIC Conference and Exhibit, Proceedings Sixth Annual IEEE International, Sept. 1993, pp. 349-352.
[15] Daijin Kim. An implementation of fuzzy logic controller on the reconfigurable FPGA system. IEEE Transactions on Industrial Electronics, Volume 47, Issue 3, June, 2000, pp. 703-715. [16] E. Lago, M. A. Hinojosa, C. J. Jim´enez, A. Barriga, S. S´anchez-Solano. FPGA
Implementa-tion of Fuzzy Controllers. Proc. XII Conf. on Design of Circuits and Integrated Systems, pp. 715-720, Sevilla, Nov. 1997.
[17] Manzoul, M.A.; Jayabharathi, D. Fuzzy controller on FPGA chip. IEEE International Con-ference on Fuzzy Systems, 1992, pp. 1309-1316.
[18] Masmoudi, N.; Hachicha, M.; Kamoun, L. Hardware design of programmable fuzzy control-ler on FPGA. Fuzzy Systems Conference Proceedings, FUZZ-IEEE ’99, IEEE International, Volume 3, 1999, pp. 1675-1679.
[19] Yakout, M.A.; El-Masry, E.I.; Abdel-Fattah, A.I. Hardware realization of analog CMOS current-mode minimum circuit. Radio Science Conference, 1998. NRSC ’98. Proceedings of the Fifteenth National, 1998, pp. D8/1-D8/7.
[20] C. J. Jim´enez, A. Barriga, S. S´anchez-Solano. Digital Implementation of SISC Fuzzy Control-lers. Proc. 3rd. Int. Conf. on Fuzzy Logic, Neural Networks and Soft Computing, pp. 651-652, Iizuka, Aug, 1994.
[21] C. J. Jim´enez, S. S´anchez-Solano, A. Barriga. Hardware Implementation of a General Purpuse Fuzzy Controller. Proc. 6th International Fuzzy Systems Association World Congress, vol. 2, pp. 185-188 , Sao Paulo, Jul, 1995.
[22] S. S´anchez-Solano, A. Barriga, C. J. Jim´enez, J. L. Huertas. Design and Application of Digital Fuzzy Controllers. Proc. 6th IEEE Int. Conf. on Fuzzy Systems, vol. 2, pp. 869-874, Barcelona, Jul., 1997.
[23] Yamakawa, T. A fuzzy inference engine in nonlinear analog mode and its application to a fuzzy logic control. IEEE Transactions on Neural Networks, Volume 4, Issue 3, May 1993, pp. 496-522.