Beruflich Dokumente
Kultur Dokumente
controle de processos
Luis Antonio Prado & Yvo Marcelo Chiaradia Masselli
matemticos, jogos, na medicina no diagnostico de doenas,
Abstract - The growing use of hardware platforms for processamento de imagens e na resoluo de muitos outros
low cost has stimulated the development of applications in problemas que so considerados tecnicamente difceis de
diverse areas. This paper presents an example of practical serem resolvidos por meio de sistemas comuns [1]. Neste
application using the Arduino platform and fuzzy logic to trabalho explorada uma tcnica de IA conhecida por lgica
control a conveyor belt. The differences are related to the difusa, ou Fuzzy Logic.
final cost, ease of deployment, flexibility and extensive
documentation available, both software and hardware.
II. TCNICAS DE IA APLICADAS AUTOMAO
Index Terms Arduino, Fuzzy Logic, Artificial
Intelligence. Uma das principais caractersticas da automao a
Resumo A crescente utilizao de plataformas de capacidade de diminuir a interferncia e a dependncia
hardware de baixo custo tem estimulado o humana em um processo ou uma maquina, e assim tornar o
desenvolvimento de aplicaes nas mais diversas reas. sistema mais eficiente, seguro e otimizado. A inteligncia
Este trabalho apresenta um exemplo de aplicao prtica artificial associa-se rea da automao com o propsito de
utilizando a plataforma Arduino e a lgica Fuzzy no tornar mais inteligente o controle de processos e fazer com
controle de uma esteira de transporte. Os diferenciais que as decises resultantes destes sistemas sejam cada vez
esto relacionados ao custo final, facilidade de mais prximas daquelas tomadas por um especialista humano.
implementao, flexibilidade e vasta documentao
disponvel, tanto de software quanto de hardware.
III. LGICA FUZZY
Palavras chave Arduino, Lgica Fuzzy, Lgica
Nebulosa, Conjuntos Difusos, Inteligncia Artificial.
A lgica Fuzzy utilizada para tratar problemas onde a
impreciso e a incerteza so variveis complexas que
I. INTRODUO
dificultam a implementao nos moldes convencionais [2]. O
modo convencional apresenta entradas e sadas de forma
A rea de inteligncia artificial (IA) uma das reas que binria, por exemplo, 0 ou 1, verdadeiro ou falso, e tambm
tem crescido significativamente em funo do nmero de com valores em uma faixa especifica e finita. A lgica Fuzzy
aplicaes prticas em que est presente. Atualmente podemos trabalha com valores que geralmente no so bem definidos
nos deparar com a utilizao de tcnicas de IA em games, numericamente.
mecanismos de busca na Internet, controle de estabilidade em Os valores utilizados na lgica Fuzzy podem ser mostrados
veculos e diversas outras reas. De forma simples e objetiva, por meio de expresses lingsticas conforme cada problema
pode-se entender a rea de inteligncia artificial como aquela que se quer trabalhar, por exemplo, no controle de um ar
que rene um conjunto de tcnicas que buscam esboar condicionado a temperatura pode estar quente para uma pessoa
caractersticas dos seres vivos, como tomar decises, jogar e ao mesmo tempo frio para outra pessoa, assim, o resultado
xadrez e etc. gerado por um sistema Fuzzy pode ser 65% de quente e 35%
A inteligncia artificial possui vrios ramos que so frio [3]. Pode haver tambm resultados classificados em
aplicados em diversos setores para percepo e aprendizado, e verdade, muito verdade, falso, muito falso.
tambm em reas especificas como demonstraes de Para lidar com informaes imprecisas e vagas presentes
e 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
Trabalho de Concluso de Curso apresentado ao Instituto Nacional de
menos restritiva [4]. Ambas, quando associadas, possibilitam o
Telecomunicaes, como parte dos requisitos para a obteno do Certificado
de Ps-Graduao em Engenharia de Sistemas Eletro-Eletrnicos, Automao tratamento de imprecises, inconsistncias e incertezas
e Controle Industrial. Orientador: Prof. Yvo Marcelo Chiaradia Masselli. comuns nas variveis envolvidas em problemas do mundo real.
Trabalho aprovado em 03/2014
A. Variveis lingusticas: Interface de fuzzyficao:
As variveis lingsticas so utilizadas para fazer uma
Esta interface responsvel associar um termo lingustico a
caracterizao aproximada de um fenmeno complexo ou com
cada valor numrico de entrada.
pouca preciso na sua definio. Estas variveis simplificam o
tratamento de problemas e sistemas complexos que demandam
muito processamento para serem tratados de maneira Inferncia:
convencional, utilizando mtodos matemticos [5]. Um
exemplo de varivel lingstica a temperatura, que pode Este bloco realiza o processo inferncia entre as variveis
assumir valores como muito baixa, baixa, mdia, alta e muito lingusticas de entrada e as variveis lingusticas de sada. Isto
alta apresentado na figura [1]. Graficamente estas variveis significa identificar as regras que so ativadas na base de
so representadas por funes de pertinncia. Estas tem por conhecimento.
objetivo identificar a qual termo lingustico um valor numrico
est associado e com qual intensidade. O valor de intensidade Base de Conhecimento:
chamado grau de pertinncia.
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:
IV. ARDUINO
B. Controlador Fuzzy:
Os controladores convencionais utilizam a modelagem O Arduino foi criado em 2005 e uma plataforma open-
matemtica para fazer o controle de seus processos, enquanto source que pode ser facilmente adaptada de acordo com as
que os controladores Fuzzy utilizam-se do conhecimento de necessidades de cada projeto [7]. Sua principal vantagem a
um especialista na rea em questo, representado na forma de facilidade de utilizao e de customizao, pois toda a
regras lgicas, chamadas de regras de produo. Os documentao, incluindo esquema eltrico e arquivos CAD
controladores Fuzzy realizam, basicamente, trs etapas: esto disponveis para download. At mesmo o ambiente de
fuzzyficao, inferncia e defuzzyficao [4][5][6]. Os blocos desenvolvimento possui cdigo fonte aberto para que qualquer
que compe um controlador Fuzzy so apresentados na figura pessoa possa customiz-lo. O ambiente de desenvolvimento
2. 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.
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: Utilizao do
Potencia do
Peso na Esteira Processo de
Indica a porcentagem de utilizao dos equipamentos no Motor
Preparo
processo de preparo da cana-de-acar. Durante este processo Baixa Alta
Leve
ela passar por espalhadores, picadores, desfibradores e
Normal Baixa Alta
niveladores. Esta varivel utilizada na entrada do processo.
Seus possveis valores so: alta, normal, baixa e parado, como Pesado Baixa Normal
pode ser observado na figura 6. Leve Normal Normal
Normal Normal Normal
Pesado Normal Baixa
Leve Alta Normal
Normal Alta Baixa
Pesado Alta Parado
---------- Parado Parado
C. Biblioteca utilizada:
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.
Objeto FuzzyOutput:
Objeto FuzzyRule:
Estes passos devem se repetir at criar todas as regras que Para a implementao do prottipo foram utilizados dois
compe a base de conhecimento do sistema Fuzzy. potencimetros de 1k ohms para simular as variveis de
entrada Peso na Esteira e Utilizao do processo de
A entrada do sistema Fuzzy feita na funo loop, que a Preparo. Quando a resistncia medida no potencimetro for
responsvel em fazer a leitura das portas de entrada e escrever igual a 1k ohm, indicar entrada com valor Mnimo (0V) e
a sada do sistema Fuzzy na porta de sada em intervalos de quanto menor a resistncia medida, maior ser o valor de
tempos em tempos. entrada (prximo a 5V).
A leitura da entrada Peso na Esteira feita pela porta Para simular a varivel de sada Potencia no Motor da
analgica 0 e a leitura da Utilizao do Processo de Preparo Esteira, ser utilizado um LED. Quanto maior o valor da
feita pela porta analgica 2, o prximo cdigo faz a leitura varivel de sada Potncia do Motor, mais o LED vai
das portas analgicas: brilhar. O acionamento do LED ser feito utilizando o PWM
(Pulse Width Modulation) no Arduino.
int pesoEsteira = analogRead(A0);
int utPreparo = analogRead(A2); A modulao por largura de pulso ser utilizada para o
controle da tenso fornecida para o motor que no prottipo
Os valores lidos, estaro na faixa 1~1024 e por este motivo ser simulado por um LED. A placa Duemilanove possui 6
devem ser convertidos para a faixa de valores correspondente sadas que podem ser utilizadas para o PWM.
de cada varivel de entrada. O mesmo processo deve ser feito O conceito de PWM consiste em regular a tenso mdia na
para a varivel de sada que tambm deve possuir valores entre carga por meio de ondas quadradas, com pulsos de largura
0 ~ 1024. varivel. A figura 11 mostra exemplos para tenso na carga de
O valores convertidos so passados para o objeto Fuzzy 0%, 25%, 50%,75% e 100% da tenso total (5v).
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:
Tabela 3 Resultados Obtidos
Peso na Utilizao/
FuzzyTECH* Arduino*
Esteira Preparo
448 74 50 50
600 30 78 75
900 45 57 57
1100 50 50 50
1600 80 0 0
100 15 87 79
1000 20 87 79
1500 25 50 50
550 35 72 71
Figura 11 Modulao por Largura de Pulso 700 50 50 50
1400 50 27 28