Você está na página 1de 8

Aplicao de lgica Fuzzy e Arduino em controle de processos

Luis Antonio Prado & Yvo Marcelo Chiaradia Masselli


Abstract - The growing use of hardware platforms for low cost has stimulated the development of applications in diverse areas. This paper presents an example of practical application using the Arduino platform and fuzzy logic to control a conveyor belt. The differences are related to the final cost, ease of deployment, flexibility and extensive documentation available, both software and hardware. Index Terms Intelligence. Arduino, Fuzzy Logic, Artificial matemticos, jogos, na medicina no diagnostico de doenas, processamento de imagens e na resoluo de muitos outros problemas que so considerados tecnicamente difceis de serem resolvidos por meio de sistemas comuns [1]. Neste trabalho explorada uma tcnica de IA conhecida por lgica difusa, ou Fuzzy Logic.

II. TCNICAS DE IA APLICADAS AUTOMAO Uma das principais caractersticas da automao a capacidade de diminuir a interferncia e a dependncia humana em um processo ou uma maquina, e assim tornar o sistema mais eficiente, seguro e otimizado. A inteligncia artificial associa-se rea da automao com o propsito de tornar mais inteligente o controle de processos e fazer com que as decises resultantes destes sistemas sejam cada vez mais prximas daquelas tomadas por um especialista humano.

Resumo A crescente utilizao de plataformas de hardware de baixo custo tem estimulado o desenvolvimento de aplicaes nas mais diversas reas. Este trabalho apresenta um exemplo de aplicao prtica utilizando a plataforma Arduino e a lgica Fuzzy no controle de uma esteira de transporte. Os diferenciais esto relacionados ao custo final, facilidade de implementao, flexibilidade e vasta documentao disponvel, tanto de software quanto de hardware. Palavras chave Arduino, Lgica Fuzzy, Lgica Nebulosa, Conjuntos Difusos, Inteligncia Artificial. I. INTRODUO A rea de inteligncia artificial (IA) uma das reas que tem crescido significativamente em funo do nmero de aplicaes prticas em que est presente. Atualmente podemos nos deparar com a utilizao de tcnicas de IA em games, mecanismos de busca na Internet, controle de estabilidade em veculos e diversas outras reas. De forma simples e objetiva, pode-se entender a rea de inteligncia artificial como aquela que rene um conjunto de tcnicas que buscam esboar caractersticas dos seres vivos, como tomar decises, jogar xadrez e etc. A inteligncia artificial possui vrios ramos que so aplicados em diversos setores para percepo e aprendizado, e tambm em reas especificas como demonstraes de e

III. LGICA FUZZY A lgica Fuzzy utilizada para tratar problemas onde a impreciso e a incerteza so variveis complexas que dificultam a implementao nos moldes convencionais [2]. O modo convencional apresenta entradas e sadas de forma binria, por exemplo, 0 ou 1, verdadeiro ou falso, e tambm com valores em uma faixa especifica e finita. A lgica Fuzzy trabalha com valores que geralmente no so bem definidos numericamente. Os valores utilizados na lgica Fuzzy podem ser mostrados por meio de expresses lingsticas conforme cada problema que se quer trabalhar, por exemplo, no controle de um ar condicionado a temperatura pode estar quente para uma pessoa e ao mesmo tempo frio para outra pessoa, assim, o resultado gerado por um sistema Fuzzy pode ser 65% de quente e 35% frio [3]. Pode haver tambm resultados classificados em verdade, muito verdade, falso, muito falso. Para lidar com informaes imprecisas e vagas presentes em alguns problemas, Zadeh, em 1965 desenvolveu a teoria dos conjuntos nebulosos e em 1978, a teoria de possibilidades. Esta pode ser comparada com a teoria de probabilidade, porm menos restritiva [4]. Ambas, quando associadas, possibilitam o tratamento de imprecises, inconsistncias e incertezas comuns nas variveis envolvidas em problemas do mundo real.

Trabalho de Concluso de Curso apresentado ao Instituto Nacional de Telecomunicaes, como parte dos requisitos para a obteno do Certificado de Ps-Graduao em Engenharia de Sistemas Eletro-Eletrnicos, Automao e Controle Industrial. Orientador: Prof. Yvo Marcelo Chiaradia Masselli. Trabalho aprovado em 03/2014

A. Variveis lingusticas: As variveis lingsticas so utilizadas para fazer uma caracterizao aproximada de um fenmeno complexo ou com pouca preciso na sua definio. Estas variveis simplificam o tratamento de problemas e sistemas complexos que demandam muito processamento para serem tratados de maneira convencional, utilizando mtodos matemticos [5]. Um exemplo de varivel lingstica a temperatura, que pode assumir valores como muito baixa, baixa, mdia, alta e muito alta apresentado na figura [1]. Graficamente estas variveis so representadas por funes de pertinncia. Estas tem por objetivo identificar a qual termo lingustico um valor numrico est associado e com qual intensidade. O valor de intensidade chamado grau de pertinncia.

Interface de fuzzyficao: Esta interface responsvel associar um termo lingustico a cada valor numrico de entrada. Inferncia: Este bloco realiza o processo inferncia entre as variveis lingusticas de entrada e as variveis lingusticas de sada. Isto significa identificar as regras que so ativadas na base de conhecimento. Base de Conhecimento: A base de conhecimento formada por uma base de dados e uma base de regras. A base de dados fornece dados numricos e a base de regras caracteriza o funcionamento do sistema. Esta geralmente desenvolvida por um especialista no processo. Interface de defuzzyficao: Esta interface transforma as variveis lingsticas de sada em valores numricos para serem enviados aos atuadores. Os conjuntos nebulosos permitem que seus elementos possuam um grau de pertinncia para que possam representar um universo multivalente e no bivalente (falso ou verdadeiro) como os conjuntos convencionais.

Figura 1 Exemplo de Varivel Lingstica para temperatura

IV. ARDUINO B. Controlador Fuzzy: Os controladores convencionais utilizam a modelagem matemtica para fazer o controle de seus processos, enquanto que os controladores Fuzzy utilizam-se do conhecimento de um especialista na rea em questo, representado na forma de regras lgicas, chamadas de regras de produo. Os controladores Fuzzy realizam, basicamente, trs etapas: fuzzyficao, inferncia e defuzzyficao [4][5][6]. Os blocos que compe um controlador Fuzzy so apresentados na figura 2. O Arduino foi criado em 2005 e uma plataforma opensource que pode ser facilmente adaptada de acordo com as necessidades de cada projeto [7]. Sua principal vantagem a facilidade de utilizao e de customizao, pois toda a documentao, incluindo esquema eltrico e arquivos CAD esto disponveis para download. At mesmo o ambiente de desenvolvimento possui cdigo fonte aberto para que qualquer pessoa possa customiz-lo. O ambiente de desenvolvimento esta disponvel para as plataformas Windows e Linux. A. Arquitetura: O Arduino comercializado em diversas verses que se diferem, basicamente, pela quantidade de entradas e sadas digitais e analgicas. O Arduino utilizado no presente trabalho o Duemilanove [8] apresentado na figura 3.

Figura 2 Controlador Fuzzy

oficial disponibilizado no prprio site do Arduino, existem vrios outros Integrated Development Environment (IDE) como o Atmel Studio e Eclipse e ainda vrios projetos de IDE como o Ardublock [10], S4A-Scratch for Arduino [11] e Minibloq [12]. Toda a documentao e Application Programming Interface (API) da linguagem oficial esta disponvel no site oficial do Arduino. A comunidade Arduino tambm disponibiliza diversos cdigos de exemplo e projetos feitos por outros usurios do Arduino. Tambm possvel programar o Arduino utilizando blocos em linguagem C/C++.

Figura 3 Arduino Duemilanove

V. IMPLEMENTAO LGICA FUZZY E ARDUINO O exemplo selecionado para mostrar a utilizao da lgica Fuzzy em um problema real da automao o controle de esteiras. Em usinas de acar e lcool a matria prima a cana-deacar que chega em caminhes e despejada em esteiras que que as levam aos trituradores, como ilustrado pela figura 4 [14][15].

Esta verso baseada no microcontrolador ATmega328, possui uma memria flash de 32 KB para armazenar o cdigo fonte e disponibiliza 14 pinos de entrada e sada digitais sendo que podem ser utilizados 6 pinos para sada PWM e mais 6 pinos de entradas analgicas. A integrao com outros sistemas como computadores, outros Arduinos e microcontroladores facilitada por meio da comunicao serial. Por se tratar de uma plataforma aberta, a comunidade Arduino muito ativa e participativa desenvolvendo e disponibilizando diversas bibliotecas gratuitas para facilitar o desenvolvimento de software. Entre as diversas bibliotecas, a SoftwareSerial, que possibilita a comunicao serial. As principais caractersticas deste Arduino so apresentadas na Tabela 1 Principais Caractersticas do Arduino Duemilanove:
Tabela 1 Principais Caractersticas do Arduino Duemilanove

Figura 4 Chegada da cana-de-acar

A. Variveis Lingusticas utilizadas: Sero utilizadas trs variveis cuja suas funes de pertinncia, assim como seus valores de entrada, foram escolhidos arbitrariamente uma vez que o objetivo primrio consiste na avaliao dos resultados obtidos pelo controlador Fuzzy executado pelo Arduino. Peso na Esteira: Esta varivel indica a quantidade de cana-de-acar na esteira, seus valores possveis so leve, normal e pesado. O grau de pertinncia para cada estado pode ser visualizado na figura 5. Esta a varivel de entrada do processo.

Microcontrolador Voltagem de operao Voltagem de entrada recomendada Limite de voltagem de entrada Pinos digitais de entrada/sada Entradas Analgicas Corrente DC por I/O Memria flash SRAM EEPROM Clock

ATmega168 5V 7-12V 6-20V 14 (6 podem ser utilizados como PWM) 6 40 mA 32 KB as quais 2 KB so utilizados para o bootloader 2 KB 1 KB 16 MHz

B. Software: A linguagem de programao utilizada no Arduino baseada em um framework open-source de programao para microcontroladores chamado Wiring [9]. Alm do ambiente

Figura 5 Varivel Peso na Esteira

Tabela 2 Base de Regras

Utilizao do Processo de Preparo: Indica a porcentagem de utilizao dos equipamentos no processo de preparo da cana-de-acar. Durante este processo ela passar por espalhadores, picadores, desfibradores e niveladores. Esta varivel utilizada na entrada do processo. Seus possveis valores so: alta, normal, baixa e parado, como pode ser observado na figura 6. Peso na Esteira Leve Normal Pesado Leve Normal Pesado Leve Normal Pesado ----------

Utilizao do Processo de Preparo Baixa Baixa Baixa Normal Normal Normal Alta Alta Alta Parado

Potencia do Motor Alta Alta Normal Normal Normal Baixa Normal Baixa Parado Parado

Estas foram criadas para ilustrar o funcionamento da lgica Fuzzy sendo que para o sistema real, novas regras podem ser criadas. C. Biblioteca utilizada:
Figura 6 Varivel Utilizao do Processo de Preparo

Potncia do Motor da Esteira: Esta a varivel de sada que ser utilizada para o controle da esteira. Indica a potncia que dever estar o motor da esteira para que a velocidade de alimentao do processo de preparo seja a ideal. Os possveis valores so alta, normal, baixa e parado como pode ser visualizado na figura 8.

Para trabalhar com a lgica Fuzzy no Arduino, existe a biblioteca Embedded Fuzzy Logic Library (eFLL) que foi desenvolvida utilizando-se apenas a biblioteca stdlib.h, de forma que a eFLL seja utilizada em qualquer sistema que suporte linguagem C. A eFLL foi criada pelo Robotic Research Group na Universidade Estadual do Piau [16]. Seu motor de inferncia utiliza os mtodos de Max-Min e Mnimo de Mamdani. Para o processo de DeFuzzyficao o mtodo utilizado o Centro de rea. Os principais componentes da biblioteca eFLL so apresentados seguir. Objeto Fuzzy: Este o objeto que engloba todo o sistema Fuzzy, com ele manipulamos os conjuntos Fuzzy, variveis lingsticas de entrada e sada e a base de regras. Objeto FuzzyInput: Este objeto representa uma varivel lingstica de entrada do sistema. As variveis de entrada so modeladas por meio dos FuzzySet.

Figura 4 Varivel Potncia do Motor

B. Base de regras utilizada: As regras utilizadas para a implementao do sistema esto descritas na tabela abaixo.

Objeto FuzzySet: utilizado para a modelagem da funo de pertinncia de uma varivel (Baixo, Alto, Normal), possvel modelar funes triangulares, trapezoidais e singleton. O construtor deste objeto : FuzzySet (float a, float b, float c, float d) Com estes 4 valores de entrada formam-se quatro pontos, (a,0), (b,1), (c,1) e (d,0). Por meio destes pontos defini-se a funo de pertinncia como pode ser observado em Figura 5 Exemplos de funes de pertinncia com FuzzySet.

Na funo setup a varivel de entrada Peso na Esteira criada utilizando o objeto FuzzyInput e seu id (1) deve ser passado como parmetro do construtor FuzzyInput: FuzzyInput* pesoEsteira = new FuzzyInput(1); A modelagem da varivel feita utilizando os objetos FuzzySet. O prximo cdigo faz a modelagem para os estados Leve, Normal e Pesado para a varivel de entrada Peso na Esteira: FuzzySet* leve = new FuzzySet(0, 0, 500, 750); FuzzySet* normal = new FuzzySet(500, 750, 1250, 1500); FuzzySet* pesado = new FuzzySet(1250, 1500, 2000, 2000);
Figura 5 Exemplos de funes de pertinncia com FuzzySet

A funo de pertinncia obtida ao ligar os pontos (a,0), (b,1), (c,1) e (d,0) nesta mesma ordem. Objeto FuzzyOutput: Assim como o FuzzyInput, o objeto FuzzyOutput agrupa vrios FuzzySet, a diferena que os FuzzySet do FuzzyOutput modelaram as variveis de sada. Objeto FuzzyRule: Este objeto representa uma regra que ser adicionada a base de conhecimento do objeto Fuzzy. Ele composto por um FuzzyRuleAntecedent e um FuzzyRuleConsequent. A base de conhecimento deve conter um ou mais objetos FuzzyRule. Objeto FuzzyRuleAntecedent: Guarda a condio de ativao de uma regra. Objeto FuzzyRuleConsequent: Guarda qual ser o resultado se a regra for ativada. D. Codificao: Com a utilizao da biblioteca eFLL, a codificao fica mais simples de ser entendida, tornando a manuteno e tambm a incluso de novas funcionalidades, entradas e sadas uma tarefa mais fcil de ser implementada. O primeiro passo da implementao criar o objeto que armazenar todos os componentes do sistema Fuzzy: Fuzzy* Fuzzy = new Fuzzy(); A funo void setup() ser executada apenas uma vez na inicializao do sistema e esta contm todo o cdigo de setup do sistema Fuzzy e a configurao da porta de sada.

Figura 6 Modelagem FuzzySet

Aps a modelagem, associamos os estados possveis para a varivel FuzzyInput pesoEsteira: pesoEsteira->addFuzzySet(leve); pesoEsteira->addFuzzySet(normal); pesoEsteira->addFuzzySet(pesado); E finalmente deve-se incluir a FuzzyInput no objeto Fuzzy: Fuzzy->addFuzzyInput(pesoEsteira); Estes passos devem ser feitos para todas as variveis de entrada e sada. A nica diferena entre entrada e sada o tipo do objeto que para entrada o FuzzyInput e para a sada o FuzzyOutput: FuzzyOutput* potMotor = new FuzzyOutput(1); Aps cadastrar todas as entradas e sadas do sistema, a hora de incluir a base de regras. Na biblioteca eFLL, a regra formada por uma condio antecedente e por um estado de conseqncia. O primeiro passo fazer a condio antecedente, o cdigo a seguir a implementao da primeira regra que : Se o peso na esteira Leve E a utilizao do processo de preparo Baixa ENTO potencia do motor ser Alta.

Primeiro passo criar a condio de ativao da regra: FuzzyRuleAntecedent* ifLeveEBaixa = new FuzzyRuleAntecedent(); Para fazer a operao E (AND) utilizado a funo joinWithAND passando por parmetro os FuzzySet correspondentes de cada entrada: ifLeveEBaixa->joinWithAND(leve, baixa); O estado de conseqncia a ativao da regra modelado pelo sistema Fuzzy utilizando o FuzzyRuleConsequent: FuzzyRuleConsequent* entaoPotAlta = new FuzzyRuleConsequent(); Para associar o valor de sada, utiliza-se a funo addOutput que adiciona o FuzzySet referente ao estado de sada ao FuzzyRuleConsequent: entaoPotAlta->addOutput(PotAlta); Ao final, criada a prpria regra em si utilizando o objeto FuzzyRule com parmetros de entrada do construtor o id da regra, o FuzzyRuleAntecedent e a FuzzyRuleConsequent, por fim adicionar a FuzzyRule criada, no objeto Fuzzy: FuzzyRule* FuzzyRule01 = new FuzzyRule(1, ifLeveEBaixa, entaoPotAlta); Fuzzy->addFuzzyRule(FuzzyRule01); Estes passos devem se repetir at criar todas as regras que compe a base de conhecimento do sistema Fuzzy. A entrada do sistema Fuzzy feita na funo loop, que a responsvel em fazer a leitura das portas de entrada e escrever a sada do sistema Fuzzy na porta de sada em intervalos de tempos em tempos. A leitura da entrada Peso na Esteira feita pela porta analgica 0 e a leitura da Utilizao do Processo de Preparo feita pela porta analgica 2, o prximo cdigo faz a leitura das portas analgicas: int pesoEsteira = analogRead(A0); int utPreparo = analogRead(A2); Os valores lidos, estaro na faixa 1~1024 e por este motivo devem ser convertidos para a faixa de valores correspondente de cada varivel de entrada. O mesmo processo deve ser feito para a varivel de sada que tambm deve possuir valores entre 0 ~ 1024. O valores convertidos so passados para o objeto Fuzzy utilizando a funo setInput passando como parmetros o id da entrada e o valor numrico da entrada. O id 1 corresponde a varivel criada anteriormente pesoEsteira e o id 2 corresponde a varivel quantPreparo:

Fuzzy->setInput(1, pesoEsteira); Fuzzy->setInput(2, quantPreparo); Para iniciar o processo de Fuzzyficao, utilizada a funo fuzzify(): Fuzzy->fuzzify(); Esta funo faz a inferncia conforme o valor de entrada de cada FuzzyInput. Para fazer a deFuzzyficao, utiliza-se a funo defuzzify passando como parmetro o ID do objeto FuzzyOutput correspondente a varivel de sada Potencia Motor: int output = Fuzzy->defuzzify(1); Finalmente, convertemos o valor da varivel output, que ser entre 0 e 100, para o valor utilizado na sada PWM do Arduino, que entre 0 e 255, para assim controlar a velocidade do motor da esteira. Um passo importante a configurao da porta de sada que ser utilizada como PWM na funo setup: pinMode(3, OUTPUT); A prxima linha de cdigo escreve o valor convertido na porta 3: analogWrite(3, valorConvertido); E. Montagem do Circuito: Para a implementao do prottipo foram utilizados dois potencimetros de 1k ohms para simular as variveis de entrada Peso na Esteira e Utilizao do processo de Preparo. Quando a resistncia medida no potencimetro for igual a 1k ohm, indicar entrada com valor Mnimo (0V) e quanto menor a resistncia medida, maior ser o valor de entrada (prximo a 5V). Para simular a varivel de sada Potencia no Motor da Esteira, ser utilizado um LED. Quanto maior o valor da varivel de sada Potncia do Motor, mais o LED vai brilhar. O acionamento do LED ser feito utilizando o PWM (Pulse Width Modulation) no Arduino. A modulao por largura de pulso ser utilizada para o controle da tenso fornecida para o motor que no prottipo ser simulado por um LED. A placa Duemilanove possui 6 sadas que podem ser utilizadas para o PWM. O conceito de PWM consiste em regular a tenso mdia na carga por meio de ondas quadradas, com pulsos de largura varivel. A figura 11 mostra exemplos para tenso na carga de 0%, 25%, 50%,75% e 100% da tenso total (5v).

Tabela 3 Resultados Obtidos

Peso na Esteira 448 600 900 1100 1600 100 1000 1500 550
Figura 11 Modulao por Largura de Pulso

Utilizao/ Preparo 74 30 45 50 80 15 20 25 35 50 50 70 90

FuzzyTECH* Arduino* 50 78 57 50 0 87 87 50 72 50 27 50 0 50 75 57 50 0 79 79 50 71 50 28 50 0

700 1400 500 1500

VI. CONCLUSES Existem varias tcnicas de Inteligncia Artificial que podem ser utilizadas na automao de modo a diminuir cada vez mais a interferncia humana e tambm aumentar a eficincia do sistema. Este trabalho teve como foco principal a lgica Fuzzy e o Arduino. A lgica Fuzzy se mostrou ser uma tcnica muito simples de ser implementada e apresentou resultados satisfatrios durante os testes. Por aceitar entradas com conceitos lingsticos (Baixo, Alto,..) que so facilmente compreendidos pelo ser humano (o operador), a manuteno do sistemas e superviso do mesmo fica mais fcil. O Arduino por sua vez considerado tambm uma tima escolha para a automao de sistemas que no dependem de grande poder de processamento. O suporte para o desenvolvimento do software e hardware para o Arduino muito bom, pois a comunidade Arduino ativa e colaborativa onde possvel encontrar diversos exemplos de implementaes e bibliotecas para facilitar do processo de codificao. Uma vantagem em utilizar o Arduino o custo do desenvolvimento que baixo. Com a utilizao dos Shields pode-se incrementar as funes da placa Arduino utilizada e assim possibilitar tambm novas funcionalidades como o monitoramento remoto, facilitando assim as tarefas de gerncia e sistemas supervisores. A implementao exemplo, mostrou como fcil a integrao entre a Lgica Fuzzy e o Arduino e os testes e simulaes realizados foram satisfatrios por ter tempo de resposta semelhante a outros sistemas implementados utilizando hardware mais poderosos. Os valores de sada obtidos foram comparados com a simulao deste sistema Fuzzy no software FuzzyTECH e os resultados esto na tabela 3.

* Valor de Sada Fuzzy

Ao analisar as informaes da tabela, percebe-se que as sadas dos dois sistemas possuem baixa variao, apenas dois testes tiveram uma variao de 8%, esta baixa variao uma caracterstica que valida a implementao. A biblioteca utilizada possui a vantagem de tornar mais fcil a implementao, pois o desenvolvedor precisa apenas modelar as entradas e sadas do sistema Fuzzy, no se preocupando com o processo de inferncia e defuzzyficao. Por outro lado essa vantagem pode se tornar uma desvantagem se o desenvolvedor precisar utilizar outro mtodo de inferncia ou defuzzyficao diferente do padro utilizado pela biblioteca. REFERNCIAS
[1] RUSSELL, Stuart, NORVIG, Peter. Inteligncia Artificial. 2. Ed. Rio de Janeiro: Campos, 2004. [2] L. A. Zadeh. Fuzzy sets. Fuzzy Sets, Information and Control, 8:338 353., 1965. [3] V Escola de Redes Neurais, Promoo: Conselho Nacional de Redes Neurais pp. c073-c090, 19 de julho, 1999 - ITA, So Jos dos Campos SP [4] L. A. Zadeh. Fuzzy sets as a basis for a theory of possibility. Fuzzy Sets and Systems, 1:328, 1978. [5] Gomide, Fernando A. C., Gudwin, Ricardo R., Tanscheit, Ricardo, Conceitos Fundamentais da Teoria de Conjuntos Fuzzy, Lgica Fuzzy e Aplicaes. [6] FILHO, Fernando de M. L., GoSMANN, Hugo Leonardo, BAUCHSPIESS, Adolfo, Controle Fuzzy para Sistema de Nvel de Lquidos. XIV Congresso Brasileiro de Automtica, 2 a 5 Setembro 2002, Natal, RN. [7] Arduino - HomePage. Disponvel em: http://arduino.cc/ Acessado em 16 de Agosto 2013. [8] Arduino ArduinoBoardDuemilanove. Disponvel em: http://arduino.cc/en/Main/ArduinoBoardDuemilanove Acessado em 17 de Agosto 2013. [9] Wiring. Disponvel em: http://www.wiring.org.co/ Acessado em 17 de Agosto 2013. [10] Scratch for Arduino S4A. Disponvel em: http://s4a.cat/ Acessado em 17 de Agosto 2013.

[11] Ardublock A GRAPHICAL PROGRAMMING LANGUAGE FOR ARDUINO. Disponvel em: http://blog.ardublock.com Acessado em 17 de Agosto 2013. [12] Minibloq. Disponvel em: http://blog.minibloq.org/ Acessado em 18 de Agosto 2013. [13] MCROBERTS, Michael. Arduino Bsico. 1; Ed. So Paulo: Novatec, 2011. [14] A Usina por Dentro. Disponvel em: http://www.weg.net/acucar-ealcool/usina_por_dentro.html Acessado em 15 de Novembro 2013. [15] Usina Virtual. Disponvel em: http://www.unica.com.br/usinavirtual.php Acessado em 15 de Novembro 2013. [16] eFLL Embedded Fuzzy Logic Library. Disponvel em: http://zerokol.com/post/51e9324ee8 4c55a1f5000007/1/en Acessado em 15 de Novembro 2013.