CONTROLADOR FUZZY OTIMIZADO COM ALGORITMO DE … · Figura 5.1 - Gráfico da Saída em Malha...
Transcript of CONTROLADOR FUZZY OTIMIZADO COM ALGORITMO DE … · Figura 5.1 - Gráfico da Saída em Malha...
UNIVERSIDADE FEDERAL DO PARANÁ
SETOR DE TECNOLOGIA
DEPARTAMENTO DE ENGENHARIA ELÉTRICA
CONTROLADOR FUZZY OTIMIZADO COM
ALGORITMO DE COLÔNIA DE ABELHAS ARTIFICIAIS
Curitiba
2010
ii
FILIPE MASSAO NODA
CONTROLADOR FUZZY OTIMIZADO COM
ALGORITMO DE COLÔNIA DE ABELHAS ARTIFICIAIS
Curitiba
2010
Projeto Final apresentado para
obtenção do título de Engenheiro Eletricista no
Curso de graduação em Engenharia Elétrica
pela UFPR - Universidade Federal do Paraná.
Orientador: Prof. Leandro dos Santos
Coelho
iii
AGRADECIMENTOS
Agradeço ao orientador Prof. Leandro dos Santos Coelho pela motivação,
confiança e auxílio durante a execução deste trabalho.
Agradecimento especial ao Eterno Deus, aos pais e aos colegas de turma do
Curso de Engenharia Elétrica, pelos momentos de convivência e apoio.
iv
SUMÁRIO
AGRADECIMENTOS ..................................................................................................III
LISTA DE FIGURAS ................................................................................................. VI
LISTA DE TABELAS ................................................................................................ VII
LISTA DE SIGLAS .................................................................................................. VIII
RESUMO ...................................................................................................................... IX
ABSTRACT ................................................................................................................... X
1 INTRODUÇÃO ...................................................................................................1
2 CONTROLADOR FUZZY..................................................................................4
2.1 INTRODUÇÃO......................................................................................................4
2.2 HISTÓRICO..........................................................................................................5
2.3 DEFINIÇÃO DE VARIÁVEIS ..............................................................................7
2.3.1 Variável Não-Fuzzy.......................................................................................7
2.3.2 Variável Fuzzy ...............................................................................................8
2.4 FORMAÇÃO DE CONJUNTOS FUZZY ...............................................................9
2.5 HEDGES .............................................................................................................10
2.6 LÓGICA FUZZY .................................................................................................10
2.6.1 O que é Lógica Fuzzy? ...............................................................................10
2.6.2 Variáveis Linguísticas.................................................................................11
2.6.3 Sistemas Fuzzy ...........................................................................................12
2.7 CONTROLADORES LÓGICOS FUZZY.............................................................12
2.7.1 Tipos de Controladores Lógicos Fuzzy ....................................................14
2.7.2 Estrutura de um Controlador Lógico Fuzzy ...........................................17
2.7.3 Aplicação de Controladores Lógicos Fuzzy ............................................20
3 ALGORITMO DE COLÔNIA DE ABELHAS ARTIFICIAIS....................27
3.1 INTRODUÇÃO....................................................................................................27
3.2 ALGORITMOS DE COLÔNIA DE ABELHAS....................................................29
3.3 ALGORITMO DE COLÔNIA DE ABELHAS ARTIFICIAIS ..............................31
4 MODELO PROPOSTO ........................... ERRO! INDICADOR NÃO DEFINIDO.
5 RESULTADOS OBTIDOS E CONCLUSÃO ................................................39
6 REFERÊNCIAS ................................................................................................46
7 ANEXOS ............................................................................................................50
v
7.1 ANEXO I – MODELOS DO SIMULINK .....................................................51
vi
LISTA DE FIGURAS
Figura 3.1 - Fluxograma do ABC...............................................................................33
Figura 4.1 - Controladfor Fuzzy PD Incremental .......................................................36
Figura 4.2 - Processo Não-linear SISO .....................................................................38
Figura 4.3 - Estrutura do Processo não-linear...........................................................38
Figura 5.1 - Gráfico da Saída em Malha Fechada do Processo Não-Linear
Controlado pelo Controlador Fuzzy...........................................................................40
Figura 7.1 - Modelo do Controlador com o processo não-linear................................51
Figura 7.2 - Regras do Controlador Fuzzy ................................................................52
Figura 7.3 - Processo de defuzificação .....................................................................53
Figura 7.4 - Processo não linear ...............................................................................54
vii
LISTA DE TABELAS
Tabela 2.1 - Base de Regras.....................................................................................19
Tabela 2.2 - Escorregamento para diversas condições de estrada...........................25
Tabela 4.1 - Base de Regras do Controlador Fuzzy .................................................37
Tabela 5.1 - Resultados das simulações efetuadas ..................................................39
viii
LISTA DE SIGLAS
ABC – Artificial Bee Colony (Colônia de Abelhas Artificiais)
ABS – Anti-locking braking system (Sistema anti-travamento de frenagem)
AE – Algoritmo Evolutivo
FCR – Fuel Consumption Ratio (taxa de consumo de combustível)
PD – Proportional-Derivative (Proporcional Derivativo)
PID – Proportional-Integral-Derivative (Proporcional Integral Derivativo)
ix
RESUMO
O controle de processos é uma tradicional área em Engenharia, muito devido a seu sucesso e abrangência nas mais distintas aplicações. A mais utilizada e enraizada nas aplicações é o controle PID. Este controle, entretanto, enfrenta uma infinidade de limitações quando realizadas tentativas de exceder seu âmbito clássico de aplicação. Neste âmbito, surgiram técnicas modernas de controle baseadas em abordagens metaheurísticas e de inteligência computacional, tais como algoritmos de inteligência artificial, controladores fuzzy e, sua combinação híbrida. O presente trabalho tem como objetivo avaliar o desempenho de um controlador fuzzy otimizado por um algoritmo de inteligência de enxames, o algoritmo de colônia de abelhas artificias.
Nos últimos anos, pesquisadores de várias áreas têm desenvolvido suas pesquisas em algoritmos de Inteligência de Enxames. Os modelos clássicos de enxames são: enxames de abelhas ao redor da colméia, colônia de formigas, grupo de pássaros e o sistema imunológico, que é um “enxame” de células e uma multidão que é um “enxame” de pessoas. Karaboga (2005) apresentou um algoritmo de enxames de abelhas denominado Algoritmo de Colônia de Abelhas Artificiais (Artificial Bee Colony - ABC) para optimizar problemas numéricos. Basturk e Karaboga (2006 e 2007) compararam o desempenho do ABC com outros algoritmos bem conceituados baseados em populações.
A lógica fuzzy provou ser capaz de aproximar complexos sistemas não-lineares, com regras baseada em termos imprecisos. Modelos baseados em lógica fuzzy têm as seguintes características: podem trabalhar com entradas contendo informações imprecisas; tratam processos complexos, com características de comportamento não-linear, elevada ordem, atraso de transporte e sistema “mal” definidos; possibilitam a implementação do conhecimento e experiência de especialistas utilizando regras lingüísticas; são mais fáceis de construir, entender, manter e testar; podem ser prototipados em menos tempo e são mais robustos e conseguem trabalhar com falta de regras.
x
ABSTRACT
The process control is a traditional area in Engineering, mostly due its success
and coverage in many different applications. The most used and known is the PID controller. However, this controller deals with many limitations when is tried to exceed the classical applications. Therefore, many modern techniques based in metaheuristics and computational intelligence has been developed, as artificial intelligence algorithms, fuzzy controllers and, also, both combined. In this work is intended to evaluate the performance of a fuzzy controller optimized by a swarm intelligence algorithm, the artificial bee colony algorithm.
Recently, researchers of several areas have been developing their research in Swarm Intelligence. The classical models of swarm are: bee swarm around their hive, ant colony, band of birds and the immunological system, which is a swarm of cells and a crowd that is a swarm of people. Karaboga (2005) introduced a bee swarm algorithm called Artificial Bee Colony (ABC) designed to optimize numerical problems. Basturk and Karaboga (2006 and 2007) compared the performance of the ABC with other well-known population based algorithms.
The fuzzy logic proved to be capable of aproximate complex nonlinear systems, with rules based in inaccurate terms. Fuzzy logic based models have the following caracteriscs: they use rules that express the specialists imprecise and aproximated decisions; easier to set up, understand; maintain and test; can be prototyped faster; they are more robust and can work with lack of rules; can work with innaccurate informations; can obtain conclusions ina parallel way and accumulate evidences against and for prepositions.
1
1 INTRODUÇÃO
O controle de processos é uma tradicional área em Engenharia, muito
devido a seu sucesso e abrangência nas mais distintas aplicações. Que, por muitas
vezes, a priori, não demonstram similaridades às aplicações tradicionais, mas, às
luzes de olhos mais treinados, se encaixam perfeitamente em estruturas de
processos já bem conhecidas e com estratégias de controle bem desenvolvidas e
diversificadas.
Contudo, dentro desta área, de controle de processos, apesar de uma ampla
gama de técnicas e algoritmos de controle desenvolvidos durante as últimas
décadas; a mais utilizada e enraizada nas aplicações é o controle PID (proporcional-
integral-derivativo), vista a simplicidade concentual desta técnica. Porém este
controle PID enfrenta uma infinidade de limitações quando realizadas tentativas de
exceder seu âmbito clássico de aplicação.
Tais limitações, que podem ser desde a impossibilidade de implementação
física até mesmo, o que é mais comum, a ineficiência de controle do processo. Na
maioria das vezes, isto deve-se ao fato de que características do processo em si
impedem o funcionamento esperado. Mas é importante deixar claro que, não são os
processos que reagem à aplicação do controle PID, mas sim, o controle PID mal
sintonizado, num ambiente o qual não se propunha a trabalhar. É conhecido que
existem apenas pouquíssimos sistemas de controle avançados em aplicações
práticas de controle de processos, operando em plantas com comportamento
complexo ou de dinâmica instável.
Uma dessas características, das mais comuns, presentes em processos são
as nãolinearidades. Como Hangos et al. (2004) declara:
É amplamente conhecido que, em engenharia de processos e
sistemas, quase todos os processos são não-lineares por
natureza.
Portanto, assim, havendo a necessidade do desenvolvimento de estratégias
e técnicas de controle avançadas, dados estes processos não-lineares.
É de cunho explícito que a teoria de controle de sistemas lineares é
completa, com amplos estudos e teorias sobre o assunto. Não obstante, ao encontro
do que foi discutido anteriormente, as aplicações práticas trabalham frequentemente
2
com modelos lineares ou linearizados dos processos, somente lidando com não-
linearidades quando esta é inevitável.
É simples de entender os motivos que levam a este cenário, a teoria de
controle nãolinear requer, de princípio, um embasamento teórico-matemático,
usualmente ausente em cursos de graduação em Engenharia, somente para
começar a compreendê-la, exigindo ainda mais disto quanto ao projeto de
controladores não-lineares. Outro motivo, é que a aplicação destas técnicas é
computacionalmente difícil de desenvolver. Sendo que, muitas vezes, os modelos
simples somente são factíveis para sistemas não-lineares em pequena escala.
Neste âmbito, surgiram técnicas modernas de controle baseadas em
abordagens metaheurísticas e de inteligência computacional, tais como algoritmos
de inteligência artificial, controladores fuzzy e, sua combinação híbrida. Sendo estas
adotadas, em um relativo curto período de tempo desde a publicação de suas bases,
pelo meio industrial.
Tal sucesso se deve ao fato de, principalmente o controle fuzzy,
apresentarem conceitos, que regem suas leis de controle, mais intuitivos até mesmo
para um profissional não especializado na área. Além disso, ainda em relação ao
controle fuzzy, este toma proveito do conhecimento, já bem treinado, de
controladores humanos, frequentemente utilizados para o controle deste tipo de
processos com considerável eficiência; para a constituição de controladores com
eficiência comprovada quando aplicados a processos não-lineares.
Dessa modo, tornando, também, seu projeto mais lúdico e, muitas vezes;
factível, de que o das técnicas de controle não-linear clássicas, estas abordadas por
Henson e Seborg (1997).
Tornando, em consequência disto e de outras vantagens, o controle fuzzy de
vastas importância e aplicabilidade prática em engenharia de controle de processos.
Por esses motivos, tanto o estudo teórico e aplicação prática do controle fuzzy em
processos nãolineares; quanto sua comparação com outros métodos vêm à tona
como temas de interesse nesta área da engenharia.
Como dito anteriormente, uma das técnicas modernas de controle de
processos não-lineares é combinação de controladores fuzzy com algoritmos de
inteligência artificial.
Nos últimos anos, pesquisadores de várias áreas têm desenvolvido suas
pesquisas em algoritmos de Inteligência de Enxames (Swarm intelligence). A
3
inteligência de enxames pode ser definida como qualquer tentativa de desenvolver
algoritmos inspirados no comportamento coletivo de insetos ou outros grupos de
animais que agem coletivamente. Os modelos clássicos de enxames são: enxames
de abelhas ao redor da colméia, colônia de formigas, grupo de pássaros e o sistema
imunológico, que é um “enxame” de células e uma multidão que é um “enxame” de
pessoas. Karaboga (2005) apresentou um algoritmo de enxames de abelhas
denominado Algoritmo de Colônia de Abelhas Artificiais (Artificial Bee Colony - ABC)
para optimizar problemas numéricos. Basturk e Karaboga (2006 e 2007)
compararam o desempenho do ABC com outros algoritmos baseados em
populações bem conceituados.
No presente trabalho, será avaliado o desempenho de um controlador fuzzy
otimizado pelo algoritmo de colônia de abelhas artificiais. Este desempenho será
avaliado através da simulação do controle de um processo não-linear.
4
2 CONTROLADOR FUZZY
2.1 INTRODUÇÃO
Seres humanos são capazes de lidar com processos bastante complexos,
baseados em informações imprecisas ou aproximadas. A estratégia adotada pelos
operadores humanos é também de natureza imprecisa e geralmente possível de ser
expressa em termos linguísticos. A teoria de conjuntos fuzzy e os conceitos de lógica
fuzzy podem ser utilizados para traduzir em termos matemáticos a informação
imprecisa expressa por um conjunto de regras linguísticas. Se um operador humano
for capaz de articular sua estratégia de ação como um conjunto de regras da forma
SE ... ENTÃO, um algoritmo passível de ser implementado em computador pode ser
construído. O resultado é um sistema de inferência baseado em regras, no qual a
teoria de conjuntos fuzzy e lógica fuzzy fornecem o ferramental matemático para se
lidar com as tais regras linguísticas.
As primeiras aplicações bem sucedidas situaram-se na área de Controle,
mas, desde então, tem-se verificado uma utilização crescente de sistemas fuzzy em
outros campos, como, por exemplo, classificação, previsão de séries, mineração de
dados, planejamento e otimização. O uso conjunto da lógica fuzzy e de outros
sistemas classificados como inteligentes – redes neurais e programação evolutiva,
por exemplo – tem propiciado a construção de sistemas híbridos, cuja capacidade de
aprendizado tem ampliado o campo de aplicações.
A teoria de conjuntos fuzzy foi concebida por L.A. Zadeh (1965) com o
objetivo de fornecer um ferramental matemático para o tratamento de informações
de caráter impreciso ou vago. A lógica fuzzy, baseada nessa teoria, foi inicialmente
construída a partir dos conceitos já estabelecidos de lógica clássica; operadores
foram definidos à semelhança dos tradicionalmente utilizados e outros foram
introduzidos ao longo do tempo, muitas vezes por necessidades de caráter
eminentemente prático.
Nas seções seguintes serão apresentados os conceitos fundamentais de
conjuntos fuzzy e de lógica fuzzy, assim como algumas definições e operações que
permitem abordar os mecanismos de inferência que servem de base para o que se
convencionou chamar de raciocínio aproximado.
5
2.2 HISTÓRICO
Neste século muitas mudanças de paradigmas aconteceram na ciência e na
matemática, e uma delas diz respeito ao conceito de incerteza. A ciência, que na
visão tradicional considerava a incerteza como uma teoria indesejável, gradualmente
foi passando por transições. A visão moderna da ciência, não só desconsidera a
teoria da incerteza como uma praga, mas a considera essencial e de grande
utilidade.
A transição iniciou-se no final do século dezenove quando a teoria da
incerteza foi usada, na física, em processos à nível molecular, apesar de que os
mecanismos Newtonianos precisos serviam ao estudo destes processos. Este fato
motivou o desenvolvimento de métodos estatísticos, não só aplicável ao estudo de
processos moleculares, mas também em outras áreas como, por exemplo, projeto
de grandes centrais telefônicas.
Os cálculos que eram executados pelos mecanismos Newtonianos, sem o
envolvimento de nenhuma incerteza, são substituídos por mecanismos estatísticos
com o propósito de tratar um certo tipo de incerteza. Enquanto métodos analíticos se
aplicam em processos que envolvem poucas variáveis que são relacionadas de um
modo previsível, os métodos estatísticos requerem um número muito grande de
variáveis e um grau muito alto de incerteza, cuja demanda computacional
esbarravam na capacidade dos computadores existentes. Em um famoso artigo
publicado em 1948, Warren Weaver se refere a eles como problemas de
simplicidade organizada e complexidade desorganizada e que a maioria dos
problemas está em algum lugar entre dois extremos: eles envolvem sistemas não-
lineares com um número grande de componentes e rica interação entre eles, que
normalmente são não-determinísticas, não como resultado de incerteza, mas que
poderia render médias estatísticas significantes. Weaver os chama de problemas de
complexidade organizada típicos da vida como ciências cognitivas, sociais e
ambientais como também nos campos da tecnologia moderna e na medicina.
Com o avanço da tecnologia do computador depois da segunda guerra
mundial e sua rápida ascensão na segunda metade deste século, tornou possível
lidar com problemas complexos que se assemelhavam à noção de complexidade
organizada com a convicção dos cientistas de que o nível de complexidade que
poderia ser tratada dependia, tão somente, da capacidade computacional à
disposição. Mas, no início dos anos sessenta esta convicção foi substituída por uma
6
perspectiva mais realista quando, baseado na teoria de quantum, Hans Bremermann
(1962), fez entender que existiam limites. O limite de Bremermann era expresso pela
seguinte proposição: “Nenhum sistema de processamento de dados, artificial ou não,
pode processar mais que 2 x 1047 bits por segundo por grama de sua massa.” Ao
invés de desencorajar, o que pareceu de princípio, este fato fez emergir, ainda nos
anos sessenta, o estudo extensivo destes problemas dentro de uma área chamada
de teoria da complexidade computacional como um ramo da teoria geral de
algoritmos.
Apesar dos limites computacionais insuperáveis, sempre existiu o desafio de
lidar com problemas complexos com a construção de modelos para entender os
fenômenos, conectado com a relação entre as três características chaves de todo
modelo de sistema: complexidade, credibilidade e incerteza. Esta relação ainda não
era de todo entendida. Sabia-se, apenas, que a incerteza era o pivô de qualquer
esforço para maximizar a utilidade destes modelos.
O reconhecimento deste papel importante da incerteza por alguns
pesquisadores ficou explícito na literatura, em meados dos anos sessenta, onde
começou a segunda fase da transição da visão tradicional para a visão moderna de
incerteza. É uma fase caracterizada pelo aparecimento de várias teorias novas de
incerteza, distintas da teoria da probabilidade.
E nesta fase importante de evolução, Lotfi A. Zadeh publicou um artigo com
um moderno conceito de incerteza - Conjuntos Fuzzy (Fuzzy Sets) – são conjuntos
com limites que não são precisos, ou seja, a qualificação dos elementos em um
conjunto fuzzy não é uma questão de afirmação ou negação, mas sim uma questão
de grau.
Em seu artigo Zadeh não só desafiou a teoria da probabilidade, mas também
as fundamentações nas quais a teoria da probabilidade é baseada: a lógica
Aristoteliana dos dois valores onde um evento, ou é verdadeiro ou é falso.
Zadeh afirma que “quando A é um conjunto fuzzy e x é elemento pertinente,
a proposição x é associada com um valor de grau de pertinência em A” e não é,
necessariamente, verdadeiro ou falso, conforme a lógica dos dois valores, mas pode
ser até certo ponto verdade, o grau para o qual x é de fato um elemento de A. É
muito comum, porém não necessário, expressar graus para os elementos dos
conjuntos fuzzy como também graus de verdade para as proposições associadas
por números num intervalo fechado [0, 1]. Os valores extremos neste intervalo, 0 e 1,
7
representam, respectivamente, a negação e a afirmação total da associação em um
determinado conjunto fuzzy, como também a falsidade e a verdade da proposição
associada. A capacidade dos conjuntos fuzzy para expressar transições graduais de
associação de elementos, e vice versa, é de grande utilidade. Não só proporciona
uma representação poderosa de medidas de incerteza, mas também como uma
representação significante de conceitos vagos expressada em linguagem natural.
As pesquisas com conjuntos fuzzy têm crescido continuamente desde os
meados dos anos sessenta. O volume de conceitos pertencentes à teoria é,
atualmente, bastante expressivo e os resultados obtidos em pesquisas numa larga
variedade de aplicações são impressionantes e tende a se alargar cada vez mais.
2.3 DEFINIÇÃO DE VARIÁVEIS
Como palavras, em geral, são menos precisas que números, o conceito de
variável linguística se propõe a dar os meios para a caracterização aproximada de
fenômenos complexos ou mal definidos para serem amenos na descrição em termos
quantitativos convencionais. Mais especificamente, os conjuntos fuzzy que
representam a restrição associada aos valores de uma variável lingüística, podem
ser vistos como resumo de várias subdivisões de classe de elementos em um
universo de discurso. Isto, claro, é análogo ao papel representado por palavras e
orações em um idioma natural.
São denominadas variáveis linguísticas, aquelas cujos valores são palavras
ou orações usadas no cotidiano em um idioma natural para quantificar ou qualificar
eventos ou situações do ambiente. A motivação para o uso de variáveis linguísticas,
em geral, é determinada pela caracterização menos rígida e específica que a
caracterização numérica.
2.3.1 Variável Não-Fuzzy
Embora o conceito de uma variável não fuzzy seja elementar por natureza, é
de modo algum trivial. Para nossos propósitos, a formalização do conceito de uma
variável não fuzzy, provê uma base conveniente para novas extensões.
Definição 1: Uma variável é caracterizada por uma tripla (X, U, R(X; u), em
que X é o nome da variável; U é o universo de discurso (conjunto finito ou infinito); u
é o nome genérico para os elementos de U; e R(X; u) é um subconjunto de U o qual
representa a restrição dos valores de u impostos por X. Por conveniência,
8
geralmente abrevia-se R(X; u) para R(X) ou R(u) ou R(x), quando x denota o nome
genérico para os valores de X, e quer se referir à R(X) simplesmente como a
restrição sobre u ou a restrição imposta por X.
Além de que, a variável é associada com a equação
o qual representa a designação do valor u para x sujeito à restrição R(X).
Deste modo, a equação é satisfeita se, e somente se, u R(X).
Exemplo: Suponha-se a medição de pressão na descarga de uma bomba
onde a pressão deva ser controlada em torno de 5 Kgf/cm² e que X1 denote alarme
de pressão alta, X2 denote o bloqueio da bomba por pressão alta, e U1 = U2 = {1, 2,
3, .. , 10}. Suponha-se também que o alarme deva ocorrer com 6Kgf/cm² e o
bloqueio da bomba deva ocorrer com Kgf/cm² acima da situação de alarme, ou seja,
x2 ≥ x1 + 1 (x1 e x2 são os nomes genéricos para os valores de X1 e X2). Então R(X1,
X2) pode ser definido por
2.3.2 Variável Fuzzy
Uma variável fuzzy X difere de uma variável não fuzzy na sua associação
com uma restrição R(X), a qual é um subconjunto fuzzy do universo de discurso.
Definição 2: Um subconjunto fuzzy A no universo de discurso U é
caracterizado por uma função de pertinência µA : U � [0, 1] a qual é associada com
cada elemento u de U, um número µA(u) no intervalo [0, 1], com µA(u)
representando o grau de pertinência de u em A.
Exemplo: Considerando o problema do exemplo 1, no qual a pressão de
descarga da bomba deve ser controlada em torno de 5 kgf/cm² e que a pressão é
considerada normal no intervalo de 4,5 a 5,5 Kgf/cm², pode ser representado como
A = 0.1 / 4.5 + 0.3 / 4.6 + 0.5 / 4.7 + 0.7 / 4.8 + 0.9 / 4.9 + 1 / 5.0 + 0.9 / 5.1 +
0.7 / 5.2 + 0.5 / 5.3 + 0.3 / 5.4 + 0.1 / 5.5.
Pode-se observar que em 5 kgf/cm² o grau de pertinência é 1, significando
uma pertinência total ao conjunto A. Os valores abaixo de 4.5 kgf/cm² e acima de 5.5
kgf/cm² não pertencem ao conjunto A e o grau de pertinência é 0, sendo que para os
demais valores existe uma pertinência parcial.
9
2.4 FORMAÇÃO DE CONJUNTOS FUZZY
Para representar um conjunto fuzzy é necessário definir suas funções de
pertinência. Como exemplo pode-se definir que uma faixa de temperatura entre 10 e
100°C seja considerado um conjunto fuzzy para representar temperaturas altas. Mas
a questão se resume em quanto é alta uma determinada temperatura para diferentes
indivíduos e para diferentes fins. Depois de saber para qual fim um range de
temperaturas é adequado, é possível calcular a média simples para produzir um
conjunto fuzzy de temperaturas altas. Pode-se, então, usar uma função para
designar uma convicção (ou grau de pertinência) de que um determinado valor de
temperatura pertence ao conjunto fuzzy de temperaturas altas.
Trabalhar sem funções de pertinência pode ser comparado com lidar com a
teoria da probabilidade em cálculos sem funções de densidade e ninguém usando
este teorema pode arbitrariamente escolher as funções de densidade. Nestas
situações as provas estatísticas são sem sentido.
Considere-se, então, o universo de discurso temperatura ambiente, e a
definição de um conjunto fuzzy rotulado quente no universo considerado. Pode-se
questionar, também, o quanto é quente para alguns ou não é para outros. Para
resolver esta indefinição outras descrições para temperatura ambiente como
confortável ou fria podem ser utilizadas. Desta maneira obtêm-se outros conjuntos
fuzzy que refletem as várias opiniões para cada uma destas classificações. Quando
são definidos múltiplos conjuntos fuzzy no mesmo universo de discurso, a literatura
se refere frequentemente a eles como subconjuntos fuzzy.
Formando conjuntos fuzzy para vários termos vagos, pode-se designar um
valor de pertinência de um determinado objeto a cada conjunto.
Na teoria clássica dos conjuntos, um elemento pertence ou não a um
conjunto. Na teoria dos conjuntos fuzzy existe um grau de pertinência de cada
elemento a um determinado conjunto. Este valor define o quanto algo é verdadeiro
ou falso em relação a um conjunto.
Um conjunto fuzzy é caracterizado por uma função de pertinência que
mapeia os elementos no intervalo [0, 1] com graus de pertinência (ou de
possibilidade) de que estes elementos pertençam a este conjunto.
10
2.5 HEDGES
Em conversações normais, humanos podem adicionar incerteza à uma
determinada declaração usando advérbios como muito, ligeiramente ou um pouco.
Um advérbio é uma palavra que modifica um verbo, um adjetivo, outro advérbio, ou
uma sentença inteira.
Na frase a temperatura é muito quente um advérbio está modificando um
adjetivo. Neste caso, poderia ser necessário outro conjunto fuzzy rotulado muito
quente para representar este outro termo vago. Porém, os hedges são técnicas
disponíveis para tratar estes impactos das variáveis linguísticas.
Um hedge modifica matematicamente um conjunto fuzzy existente para
considerar algumas adições adverbiais ou outros impactos em sentenças.
2.6 LÓGICA FUZZY
A Lógica Fuzzy evoluiu da necessidade para modelar sistemas vagos ou
mal-definidos que são difíceis de tratar usando a lógica binária convencional, mas a
própria metodologia é fundamentada em teoria matemática.
Algumas proposições representam tipos de problemas que não possuem
uma estrutura na matemática clássica, nem na teoria das probabilidades, para serem
resolvidos; são tipos de problemas que os humanos são capazes de resolver através
do uso do chamado raciocínio aproximado ou fuzzy, baseado na teoria dos
conjuntos fuzzy em geral, e na lógica fuzzy em particular.
2.6.1 O que é Lógica Fuzzy?
Definição: Lógica Fuzzy é um ramo da lógica que usa graus de pertinência
em conjuntos em lugar de uma pertinência estritamente verdadeira ou falsa.
A familiaridade com a lógica binária e a teoria dos conjuntos tradicional em
que um elemento pertence a um conjunto (no universo de discurso) e dado qualquer
subconjunto específico, pode-se dizer precisamente se aquele é ou não é um
elemento do subconjunto. Por exemplo, uma pessoa pertence ao conjunto dos seres
humanos, e determinado um subconjunto específico, como todos os homens, pode-
se dizer se cada pessoa pertence ou não a este subconjunto. É fácil definir com os
argumentos coletados sobre muitos elementos de determinados conjuntos que
permitem descrever muitos eventos com poucas regras. Por exemplo, a simples
declaração SE a pessoa é homem E é pai ENTÃO a pessoa é um pai, aplica-se à
11
milhares de pessoas com precisão. As regras são formadas usando os operadores,
neste caso o operador de interseção E, os quais manipulam os conjuntos.
Entretanto, nem tudo pode ser descrito pela lógica binária. Retornando ao
exemplo das pessoas, é fácil classificar toda pessoa como sendo homem ou mulher,
porém é muito mais problemático as classificar como sendo alta ou não alta, velha
ou jovem.
A lógica fuzzy consiste em uma técnica que tem sido largamente utilizada
em vários tipos de processamento de informação, entre outras, nas áreas de
sistemas de controle estáticos, sistemas de controle adaptativos, modelagem de
processos, estimação de sinal, previsão do tempo e tomadas de decisão.
2.6.2 Variáveis Linguísticas
Definição: Termo usado em nossa linguagem natural para descrever algum
conceito que usualmente tem valores vagos ou fuzzy.
Todo valor da variável linguística de um objeto pode ser considerado como
um conjunto fuzzy no conjunto de todos os reais valores do objeto. Assim, todo real
valor do objeto pertence a um valor da variável linguística com um certo grau.
Por ausência de precisão e de modo a dominar a complexidade, é natural
explorar o uso do que poderia ser chamado variáveis linguísticas, isto é, variáveis
cujos valores não são números mas palavras ou sentenças em um idioma natural ou
artificial. A motivação para o uso de palavras ou sentenças em lugar de números são
que aquelas caracterizações linguísticas são, em geral, menos específicas que
números.
Em lógica fuzzy a principal preocupação é com a quantificação e raciocínio
sobre os termos vagos ou fuzzy da nossa linguagem natural. Estes termos são
referidos como variáveis linguísticas também chamadas de variáveis fuzzy.
Por exemplo, na afirmação João é jovem está implícita a variável linguística
idade com o valor linguístico jovem.
Em sistemas especialistas baseados em lógica fuzzy, variáveis linguísticas
são usadas em regras fuzzy. Uma regra fuzzy deduz informação sobre uma variável
linguística contida em sua conclusão, da informação de outra variável contida em
sua premissa. Por exemplo:
Regra 1
Se velocidade é lenta
12
Então faça a aceleração alta
Regra 2
Se temperatura é baixa
E Pressão é média
Então faça a velocidade muito baixa
É chamado de range os possíveis valores que uma variável linguística pode
assumir no universo de discurso. Por exemplo, pode-se dar à variável velocidade
usada na regra 1 um range de 0 a 1000 rpm. A frase velocidade é baixa ocupa uma
seção das variáveis no universo de discurso.
2.6.3 Sistemas Fuzzy
Um sistema fuzzy é aquele que tem um componente do sistema que usa a
lógica Fuzzy para sua representação do conhecimento.
Embora seja possível dois sistemas fuzzy comunicarem-se com informações
usando conjuntos fuzzy, a maioria das aplicações tem um único sistema fuzzy que
se comunica com sistemas convencionais através de valores determinísticos.
A teoria de controle moderna permite o projeto de controladores que
fornecem ótimo desempenho em malhas fechadas de controle com respeito a uma
medida de desempenho particular; projetar controladores robustos dentro de certas
regiões operacionais de incerteza paramétrica e perturbações adicionais de
processo; e fazer predições de estabilidade e desempenho para um processo
particular em um ponto operacional.
É comum em um processo de produção contínuo, a existência de vários
sistemas de monitoração e controle. Desde o início da revolução industrial, os
processos industriais vêm sendo controlados pelos controladores clássicos PID.
Atualmente, entre outras, uma alternativa que vem ganhando credibilidade, pela
simplicidade e robustez, são os controladores lógicos fuzzy.
2.7 CONTROLADORES LÓGICOS FUZZY
A idéia básica por detrás de um controlador lógico fuzzy é incorporar a
experiência do operador humano de processo de forma a permitir a configuração de
projetos de controle com desempenho satisfatório. Controlador fuzzy resulta no
projeto de sistemas de controle não-lineares. Assim, é uma tarefa difícil examinar a
influência de cada parâmetro no desempenho e robustez do projeto. A partir de um
13
conjunto de regras linguísticas que descrevem as estratégias operacionais de
controle, um algoritmo é construído onde as palavras são definidas como conjuntos
fuzzy. O procedimento de projeto adotado para um controlador fuzzy baseado em
regras é sintetizado pelos seguintes passos: (i) selecionar as entradas e saídas de
controle; (ii) definir as funções de pertinência das entradas e saídas; (iii) especificar
regras de controle; (iv) selecionar o método de inferência relacionado aos me´todos
de controle; (v) selecionar o método de fuzificação (do inglês, fuzzification) e
defuzificação (defuzzification); e (vi) avaliar o controlador. Entre as principais
vantagens dos controladores fuzzy sobre os controladores convencionais têm-se:
podem trabalhar com entradas contendo informações imprecisas; tratam processos
complexos, com características de comportamento não-linear, elevada ordem, atraso
de transporte e sistema “mal” definidos; possibilitam a implementação do
conhecimento e experiência de especialistas utilizando regras lingüísticas; são mais
fáceis de construir, entender, manter e testar; podem ser prototipados em menos
tempo e são mais robustos e conseguem trabalhar com falta de regras.
O projeto de um controlador fuzzy ou caracteriza-se pelo tratamento do
conhecimento a priori sobre o processo (caso haja) ou é sintetizado através de
algoritmos de otimização. Existem diversos métodos para o projeto de um
controlador fuzzy, tais como: modelagem de conhecimento do engenheiro de
controle, modelagem das ações de controle e experiência dos operadores humanos,
e identificação do processo a ser controlado.
O resultado de um controlador fuzzy baseado em regras apresenta uma
superfície de controle codificada em uma base de conhecimento, sob forma de um
conjunto de regras, termos linguísticos e fatores de escala, sendo estas executadas
por um controlador dedicado, interpretador ou compilador. O projeto dos
controladores fuzzy apresenta um fluxo de dados que passa pelas fases de: (i)
fuzificação; (ii) análise e execução de regras; e (iii) defuzificação.
A base de conhecimento abrange a base de regras e a base de dados do
controlador fuzzy. A base de regras é projetada pela seleção das variáveis de
entrada, variáveis de saída e regras de controle. A base de dados é dependente da
definição do universo de discurso de cada variável de estado, que está relacionada à
seleção das funções de pertinência e dos parâmetros que as regem.
A fase de fuzificação converte as variáveis numéricas em variáveis
lingüísticas, ou seja, transforma os dados crisp em um conjunto fuzzy
14
correspondente. As fases de execução de regras são responsáveis pela avaliação
das regras de controle do tipo SE <condição> ENTÃO <ação>. Quando uma regra é
ativada efetua-se um procedimento de cálculo baseado nos valores dos
antecedentes e, então, é obtida a saída da regra. A fase de defuzificação transforma
os valores de saída do controlador em valores crisp.
2.7.1 Tipos de Controladores Lógicos Fuzzy
Em geral, o controlador fuzzy é um tipo de estrutura de controle não-linear, e
deste modo possui o potencial de configurar um sistema de controle com
desempenho equivalente ou superior às estratégias de controle linear.
Zimmermann (1996) explica que quando controladores fuzzy são projetados,
várias decisões relativas à estrutura e metodologia têm que ser tomadas. Porém, a
classificação de controladores fuzzy é o resultado de uma sucessão de decisões
pelo projetista. Muitas modificações do controlador original de Mamdami foram
propostas desde a publicação do seu artigo em 1975 e uma importante modificação,
e frequentemente usada, foi introduzida por Takagi-Sugeno (1985).
Sob o enfoque estrutural, estes controladores fuzzy diferem principalmente
quanto ao consequente das regras de controle. Os controladores Mamdami utilizam
conjuntos fuzzy como consequentes, enquanto os controladores de Takagi-Sugeno
empregam funções lineares como consequentes. Devido a esta diferença, as regras
de controle de Mamdami são significativamente mais intuitivas linguisticamente,
enquanto as regras de Takagi-Sugeno parecem apresentar mais poder de
interpolação com um número reduzido de regras de controle. Ambos tipos de
controladores têm sido aplicados eficientemente na resolução de problemas práticos
de controle.
2.7.1.1 Controlador Mandami
Segundo Zimmermann, a idéia principal do controlador Mamdami é
descrever os estados do processo por meio de variáveis linguísticas e usar estas
variáveis como entradas para as regras de controle. A variável básica é uma variável
de entrada que pode ser um sinal medido ou uma variável de saída de outro
controlador.
Formalmente, as condições de cada variável lingüística são descritas na
forma LV1, ... , LVn pelas suas funções de pertinência µji(x), onde i indica a variável
15
lingüística, i = 1, ... , n; j indica as condições da variável linguística i, j = 1, ... , m(i), e
m(i) é o número de condições da variável linguística i. O número de variáveis
linguísticas e o número de relações entre elas determina o número de possíveis
regras. Na maioria das aplicações, podem ser negligenciados certos estados ou
porque eles são impossíveis ou porque uma determinada ação de controle não seria
útil. É então suficiente escrever regras que cubram somente as condições
necessárias.
As regras conectam as variáveis de entrada com as variáveis de saída e são
baseadas na descrição do estado fuzzy que é obtido pela definição das variáveis
linguísticas. Formalmente, as regras podem ser escritas como
Regra r: Se xi é Aj11 E x2 é Aj2
2 E ... E xn é Ajnn
Então u é Aj
onde Ajii é o j-ésimo termo da variável linguística i que corresponde à função
de pertinência µjii(xi) e Aj corresponde à função de pertinência µj(u) representando o
termo da variável de ação de controle. Uma regra para um sistema de controle
hipotético de pressão poderia ser da forma:
Se pressão é baixa E variação é muito negativa
Então ação_da_válvula é fechar
A base de regras de sistemas com n entradas e uma saída pode ser
visualizada por uma tabela de regras onde são divididas as linhas e colunas de
acordo com as condições das variáveis de entrada e as entradas são as
consequentes das regras.
A definição de variáveis linguísticas e regras são os passos principais de
projeto quando se quer implementar um controlador Mamdami. Antes de elaborar o
último passo do projeto que é a escolha do procedimento de defuzificação
apropriado, é definido como os valores de entrada ativam a computação da ação de
controle. A essência computacional pode ser descrita como um processo de três
passos que consiste de
1 - Determinação do grau de pertinência da entrada dos antecedentes das
regras,
2 - Computação dos consequentes das regras, e
3 - Agregação dos consequentes das regras para o conjunto fuzzy ação de
controle.
16
O primeiro passo é computar o grau de pertinência dos valores de entrada
dos antecedentes das regras. Empregando o operador de mínimo E como padrão, é
computado o ponto de partida ou a regra r como
r = mini=1, ... , n {µjii (xi
entrada)}
Este conceito permite obter a validação dos consequentes das regras.
Assumindo que regras com um baixo grau de pertinência no antecedente tenham
pouca validade, consequentemente há um corte no consequente dos conjuntos
fuzzy na altura do grau de pertinência do antecedente. Formalmente,
µrconseq (u) = mim { αr,µ
j(u)}
O resultado deste processo de avaliação é obtido por agregação de todas as
consequentes que usam o operador de máximo e é computado o conjunto fuzzy da
ação de controle:
µconseq (u) = max, {µrconseq (u)}
É importante notar que método de Mamdami leva em conta todas as regras
em um único estágio e que nenhum encadeamento ocorre. Assim o processo de
inferência em controle fuzzy é muito mais simples que na maioria dos sistemas
especialistas.
2.7.1.2 Controlador Takagi-Sugeno
Conforme já frisado anteriormente, uma modificação freqüentemente usada
do controlador Mamdami foi apresentada por Takagi e Sugeno em 1985. A idéia é
escrever regras que têm antecedentes fuzzy, equivalente ao controlador Mamdami,
e consequentes crisp que são funções das variáveis de entrada. Os resultados das
regras são agregados como somas de pesos das ações de controle
correspondentes a cada regra. O peso de cada regra é o grau de pertinência do
antecedente do valor de entrada da regra como computadas no controlador
Mamdami. E o procedimento de defuzificação é, então, desnecessário. Uma regra
pode ser escrita formalmente como
Regra r: Se x1 é Aj11 E x2 é Aj2
2 E ... E xn é Ajnn
Então u é fr (x1, x2, ..., xn)
onde as variáveis são definidas como no controlador Mamdami. A função do
conseqüente que depende das variáveis de entrada é normalmente linear, mas
podem ser usados outros tipos. Uma regra para o controlador Takagi-Sugeno
poderia ser escrita na forma
17
Se temperatura é baixa E troca_de_temperatura é pouco negativa
Então aquecimento = 400 – 120
A definição de uma relação funcional não é direta, mas permite a
identificação de valores do parâmetro no consequente da função.
A ação de controle é computada com ajuda dos graus de pertinência que
são avaliados exatamente como no controlador Mamdami. E obtém-se por
É possível ver o controlador Takagi-Sugeno como um controlador linear que
é válido ao redor de um ponto operacional definido. O algoritmo de controle no ponto
operacional é perfeitamente válido e perde validade com grau de pertinência
decrescente que é computada com ajuda dos antecedentes das regras. Assim a
estratégia de controle é uma combinação de várias estratégias lineares definidas a
pontos diferentes nas condições do espaço.
2.7.2 Estrutura de um Controlador Lógico Fuzzy
Um controlador fuzzy recebe em sua entrada valores crisp baseados na
intuição e experiência de especialistas humanos através de sentenças condicionais
de decisão, chamadas de variáveis linguísticas, que devem ser transformadas em
conjuntos fuzzy representativos do seu conhecimento.
A forma de raciocínio fuzzy é bastante útil em muitos problemas práticos,
particularmente, em aplicações de sistemas de controle onde os sistemas físicos
precisam de valores reais em suas entradas em lugar de valores de variáveis
lingüísticas ou descrições verbais. Por exemplo, ao se desejar aplicar o método de
raciocínio fuzzy para dirigir um carro, um operador humano pode descrever o seu
conhecimento na forma de declarações condicionais. Este conhecimento posto no
computador serve como uma máquina operadora do carro. Então, no real processo
motriz, as informações de entrada para a máquina operadora serão sempre reais
valores de algumas variáveis, como X é a, e as saídas exigidas também serão reais
valores de alguma variável como Y é b.
Este conhecimento expresso em variáveis linguísticas, então, deverá ser
qualificado de modo a representar a informação vaga e subjetiva em níveis de
quantificação com a definição de funções de pertinência dos conjuntos fuzzy.
18
Em DOMBI (1988) podem ser encontradas algumas propriedades
recomendadas para a definição de funções de pertinência, tais como: sejam
contínuas, sejam mapeadas no intervalo [a, b] a [0, 1], sejam monótonas e
crescentes ou decrescentes, sejam convexas ou côncavas, que as funções de
pertinência monótonas crescentes devam ser tais que µ(a) = 0 e µ(b) = 1, que as
funções monótonas decrescentes devam ser tais que µ(a) = 1 e µ(b) = 0 e que a
função deva ser linear ou linearizável.
Uma base de regras opera em variáveis linguísticas e um módulo de
fuzificação gera as condições como funções dos valores de entrada crisp. A máquina
de inferência fuzzy gera as condições das variáveis de saída, processadas em uma
unidade computacional, em função das condições de entrada e das regras da base
de regras. Como o processo controlado deve ser alimentado por um sinal crisp, o
resultado de saída da máquina de inferência fuzzy é transformado em um valor crisp
pelo módulo de defuzzificação.
Para demonstração, Zimmermann emprega o seguinte exemplo: considere
um sistema de aquecimento em um compartimento. Se a temperatura é ligeiramente
baixa, provavelmente se queira aumentar um pouco o aquecimento. Agora, as
condições ligeiramente baixa e aumentar um pouco são interpretadas como
variáveis linguísticas com as quais é possível escrever regras que unem estas
variáveis, por exemplo
Se temperatura = ligeiramente baixa
Então aquecimento = aumentar um pouco
Para este sistema, possíveis variáveis básicas são temperatura do
compartimento, mudança de temperatura do compartimento, número de janelas
abertas, temperatura do ar ambiente, aquecimento, etc. As relações das variáveis
linguísticas são conjuntos fuzzy com uma certa forma. Funções trapezoidais ou
triangulares podem ser usadas para os conjuntos fuzzy devido à eficiência
computacional, mas outras formas são possíveis. A variável linguística temperatura
pode, por exemplo, consistir de qualificadores como muito baixa (MB), baixa (B),
confortável (C), alta (A), e muito alta (MA).
Uma regra razoável para o exemplo do sistema de aquecimento proposto
por Zimmermann é a seguinte:
Se temperatura é baixa E troca_de_calor é pouco negativa
Então aquecimento é médio
19
Assumindo a definição de cinco qualificadores para uma variável rotulada de
troca_de_temperatura: muito negativo (MN), pouco negativo (PN), zero (Z), pouco
positivo (PP), muito positivo (MP), e três condições de ação de controle para o
aquecimento: pequeno (P), médio (M) e grande (G). Uma possível base de regras é
visualizada na Tabela 2.1, com duas entradas e uma saída onde são divididas as
linhas e colunas de acordo com as condições das variáveis de entrada e as entradas
são as consequentes das regras.
Tabela 2.1 - Base de regras possível para um sistem a hipotético de aquecimento
Temp/troca_temp MN PN Z PP MP MB G G M M B G M M P C M P P A P P P MA M P P
A primeira entrada vazia (MB, MN) na Tabela 2.1 se refere a um estado
onde a temperatura é muito baixa e caindo rapidamente. Considerando que o
sistema de aquecimento tem energia limitada, a máxima energia não conduziria a
uma temperatura confortável. Uma regra que cobre esta situação é então supérflua.
Porém, deveria ser definido um valor default que é usado como saída do controlador
se nenhuma das regras disparasse.
Assumindo que a temperatura atual é 22°C e que a troca_de_temperatura
está em -0.6°C/min. Nestas condições, a temperatura é confortável com grau 0.4 e
alta com grau 0.3. Uma definição similar pode ser notada da variável linguísticas
troca_de_temperatura, onde pouco negativo aparece com grau 0.6 e zero com grau
0.2. Através da Tabela 2.1, verifica-se que quatro regras têm um grau de partida
maior que zero:
r10: Se temperatura = confortável E troca_de_temperatura = pouco negativa
Então aquecimento = médio
r11: Se temperatura = confortável E troca_de_temperatura = zero
Então aquecimento = baixo
r13: Se temperatura = alta E troca_de_temperatura = pouco negativa
Então aquecimento = baixo
r14: Se temperatura = alta E troca_de_temperatura = zero
Então aquecimento = baixo
20
2.7.3 Aplicação de Controladores Lógicos Fuzzy
As principais potencialidades que tornam os controladores fuzzy relevantes
podem ser enumeradas: (i) habilidade de controlar processos não-lineares:
característica relevante à aplicação em identificação e controle de sistemas
dinâmicos complexos, com características não-lineares e alta ordem; (ii) utiliza~ção
de termos e expressões utilizados na linguagem natural; (iii) controle de processos
quando o modelo matemático não é avaliado ou complexo à aplicação de
metodologias da teoria de controle clássico; e (iv) possibilidade de implementação
do conhecimento, aspectos intuitivos e experiência de especialista em controle
utilizando-se regras linguísticas (conhecimento qualitativo e estruturado) e entradas
imprecisas (ao contrário das redes neurais onde o conhecimento é configurado de
forma não-estruturada e quantitativa).
Contudo, os controladores fuzzy apresentam algumas limitações: (i) alguns
autores têm discutido que os controladores fuzzy são adequados onde o modelo
matemático preciso do processo a ser controlado não é avaliado, mas é difícil
projetar um controlador em que não necessita-se fazer considerações sobre seu
ambiente; (ii) grande quantidade de parâmetros a ser configurado pelo usuário, tais
como: número de subconjuntos de cada variável, número de regras, seleção do
método para a realização das operações lógicas, método de defuzificação e
parâmetros das funções de pertinência; e (iii) dificuldade da análise de aspectos de
otimalidade, estabilidade e robustez dos controladores fuzzy.
Segundo Moore e Harris as pesquisas mais precoces sobre controladores de
lógica fuzzy foram levadas a cabo por Mamdami e seus estudantes do Queen Mary
College, Londres em meados de 1970. Mamdami e Assilian em 1975 aplicaram o
primeiro controlador de lógica fuzzy para uma máquina à vapor. Isto foi seguido por
Kickert e van Nauta Lenke em 1976 que conceberam um controlador de lógica fuzzy
num processo de aquecimento de água em chão de fábrica.
A primeira aplicação industrial de um controlador fuzzy foi o controle de um
forno para produção de cimento pela Smidth Co. Ltda. em Copenhague, Dinamarca.
A metodologia baseada em controle fuzzy, neste caso, visou a aquisição da
experiência operacional dos operadores e engenheiros de controle no controle
manual do processo industrial. Após este trabalho pioneiro, as vantagens e
simplicidade do projeto dos controladores fuzzy motivaram o emergente
desenvolvimento acadêmico e comercial de ambientes e ferramentas de software e
21
hardware com a utilização da tecnologia dos sistemas fuzzy.as mais variadas áreas
do conhecimento, principalmente no Japão (país pioneiro na utilização em larga
escala destes produtos) e mais recentemente nos EUA e Europa, utilizam esta
tecnologia.
Atualmente, uma grande variedade de produtos industriais e comerciais,
baseados em lógica fuzzy é disponível. Exemplos típicos incluem produtos de
consumo direto tais como máquinas de lavar roupas (Sanyo), máquinas de lavar
louças (Hitachi), geladeiras (Sharp), ar condicionados (Mitsubichi), fornos de micro-
ondas (Sanyo), câmeras de vídeo (Canon, Panasonic), aspiradores de pó
(Matsushita), etc. Na indústria automotiva destaca-se, transmissão automática
(Nissan, Lexus), injeção eletrônica, suspensão ativa, veículos autoguiados e robôs
móveis (NASA, IBM), etc. Na linha de automação predial pode-se citar o controle de
grupos de elevadores (Hitachi, Toshiba), controle de motores (Hitachi), sistema de
ventilação de túneis urbanos (Toshiba), controle de tráfego urbano e controle de
partida e parada de trens urbanos e metrôs (Sendai, Tóquio), etc.
Em termos de equipamentos manufaturados para controle e automação
industrial, o primeiro controlador lógico programável ? (PLC, do inglês Programable
Logic Controler) a incorporar a lógica fuzzy foi o ES100 projetado pela OMRON. O
controlador fuzzy no ES100 apresenta-se combinado com um controlador PID de
forma que o controlador fuzzy resultante é não-linear, autoajustável e apresenta
desempenho superior ao controlador PID convencional linear, frente as não-
linearidades inerentes ao processo controlado. O PLC ES100 é completamente
programável, monitorado por software e todas as funções básicas são disponíveis a
partir do painel frontal do equipamento. O ES100 vem com rotinas internas que
implementam algoritmos do tipo rampa, permite a adição de módulos de expansão
de entradas e saídas ao sistema e são equipados com portas de comunicação para
conexão em rede industrial.
Outros fabricantes de PLCs já incorporaram a capacidade de controle fuzzy
em seus controladores industriais entre estes pode-se citar a série C1, M1, M2, M3,
M4 e M5 da ASCON que são mini-PLCs programados e monitorados por software
em ambiente Windows. Outro exempo é o controlador fuzzyPLC da Kroner Moeller.
Este PLC é equipado com entradas e saídas digitais e analógicas configuráveis e
são capazes de monitorar mais de 100 pontos de entrada e saída através de
módulos de expansão. Uma importante característica do fuzzyPLC corresponde a
22
sua capacidade de ser programado e monitorado através do software fuzzyTECH
que executa em um ambiente Windows e programa uma série de microcontroladores
e controladores de processos.
A Siemens, líder mundial no emprego de soluções ecológicas de regulação
de processos para a indústria de materiais básicos e de transformação, define bem,
em suas publicações, a sua posição com relação à pesquisa de controladores de
lógica fuzzy. Especialmente em processos complexos, como os da fabricação do
papel, o emprego da lógica fuzzy permite surpreendente economia no consumo de
matéria-prima e energia. Graças à lógica fuzzy, a fábrica de celulose sediada em
Constância, Portugal, conseguiu uma redução de 14% do consumo habitual de
energia e poupar 80% do volume de água anteriormente consumido. No processo de
cozimento da celulose, este modelo inteligente permitiu, ainda, reduzir em 30% as
variações de qualidade.
Em ZIMMERMANN (1996), algumas aplicações importantes e interessantes
de controladores de lógica fuzzy podem ser observadas. Uma delas diz respeito ao
controle de guindastes que são usados em sistemas de montagens industriais onde
cargas pesadas têm que ser transportadas. Hoje, os guindaste modernos alcançam
uma velocidade de, aproximadamente, 160 m/min à uma aceleração de até 2 m/s2.
Um dos problemas principais no controle deste equipamento é quando a
carga começa a balançar. Isto é evitado com ajuda de telescópios e controle
eletrônico. Porém, estes métodos são caros e a construção depende do guindaste
em consideração. Foi observado que um operador experiente pode controlar um
guindaste satisfatoriamente sem tais dispositivos avançados. Esta foi a motivação
para o projeto de um sistema com controladores de lógica fuzzy. O controle de
guindaste depende do modo de operação: uma pessoa distingue entre uma
operação manual, onde um operador controla o guindaste e o objetivo do
controlador fuzzy é evitar balançar, e uma operação automática onde uma certa
posição tem que ser alcançada. Os controladores foram implementados em um
processador fuzzy para controle do guindaste em tempo real.
Outra aplicação descrita em ZIMMERMANN (1996) é o controle de um
modelo de carro onde afirma que um dos processos mais difíceis de controlar com
métodos de controle convencionais é um carro, por que modelos matemáticos são
grandes e não lineares, e os controladores simples como controladores PID não
rendem resultados satisfatórios. A maioria das pessoas, porém, dirige um carro sem
23
qualquer modelo matemático, e está claro que eles usam o seu conhecimento para
tal. Diz que Sugeno e Nishida em 1985 foram os primeiros a implementar um modelo
de carro fuzzy-controlado. As regras do controlador foram derivadas das ações de
um perito. Quatro variáveis de entrada foram usadas: distância até a esquina,
distância da parede interna, direção (ângulo) do carro e distância da parede externa.
Estas quatro variáveis de entrada são usadas como entradas para um
controlador Sugeno com 20 regras. Os resultados foram muito encorajadores. A
vantagem é que todas as regras foram derivadas das ações de controle de um
motorista experiente com um procedimento de identificação.
Enquanto que o estudo de Sugeno e Nishida tratou de problemas estáticos,
van Altrock (1992) considerou o controle de um modelo de carro, com motor elétrico
potente e alta aceleração, em situações extremas e inerentemente dinâmicas como
deslizamentos e derrapagens. Além disso adicionou características como suspensão
de roda individual, discos de freio, diferencial e absorção de choque. Três sensores
de direção foram usados para orientação (frente, esquerda, e direita), e sensores
infra-vermelhos foram montados em cada roda para medir a velocidade individual.
Outra modificação introduzida foi a determinação de pesos para as regras
que são usadas para descrever a plausibilidade de cada regra. O carro deveria
alcançar o objetivo, tão rápido quanto possível, sem bater nas paredes ou qualquer
obstáculo. A maioria dos resultados eram muito encorajadores. Porém, em algumas
situações o carro perdeu sua orientação devido às informações limitadas obtida dos
sensores. Isto só poderia ser evitado se algum tipo de memória fosse usada para
computar a orientação corrente.
Uma outra aplicação em ZIMMERMANN (1996) trata do controle de um
motor marítimo a diesel por controlador de lógica fuzzy, projetado por Murayama em
l985. O objetivo era minimizar a taxa de consumo de combustível (FCR). A máquina
era controlada através da taxa de fluxo de combustível (Q), medição de injeção de
combustível (U), duração da injeção de combustível (T), e pressão da linha de
combustível (P). Especial atenção foi prestada na influência direta da medição de
injeção de combustível na taxa de consumo de combustível (FCR).
Devido a ruídos nos dados, não podiam ser empregados diretamente
métodos de gradiente. Então os autores usaram um método adaptável para verificar
os resultados obtidos pela procura de gradiente. São empregados, então, números
24
fuzzy e um método de ajuste que usa um conjunto fuzzy para avaliar a credibilidade
dos resultados computados.
Nenhuma regra foi usada para calcular a saída de controle como nos
controladores Mamdami e Sugeno. Este método pode ser considerado como uma
aplicação de análise de dados fuzzy para um problema de controle. Os resultados
obtidos com este método simples foram, porém, também muito encorajadores.
A empresa alemã AEG, fez uso do software FuzzyTECH e NeuroFuzzy para
a construção de uma máquina de lavar roupas. Usando sensores, a máquina pôde
obter informações sobre o volume de roupa e seu tipo e à partir disto escolher uma
programação otimizada, economizando 20% de água e energia.
“... usando somente sensores iguais aos de máquinas do mesmo nível
construídas pela concorrência, foi possível para a AEG descobrir o volume de
roupas na máquina criada”;
“... uma vez que não existe um modelo matemático definido para o
problema, a AEG decidiu usar uma solução baseada em lógica fuzzy e o
conhecimento de seus especialistas em lavagem”.
Infelizmente este primeiro teste não apresentou grande sucesso exatamente
porque o conhecimento dos especialistas não tinha sido o suficiente. Uma nova
abordagem foi feita usando como ponto de partida a mesma base de conhecimento
e o software NeuroFuzzy para a aquisição dos demais dados. Após vários
treinamentos foi criado um sistema de lógica fuzzy com 159 regras. Este sistema é
capaz de estimar o consumo de água requisitado com uma diferença máxima de
aproximadamente 350 mililitros do valor considerado como ideal. Além disso, todo
este sistema, capaz de economizar 20% de água e energia elétrica, foi
implementado em um controlador de 8 bits.
Em 1947, a Boeing Co. desenvolveu uma solução para os freios de seus
aviões para obter melhor frenagem. Hoje o sistema ABS é bastante conhecido e
usado em carros de muitos países do mundo. O sistema é bastante simples.
“... sensores eletrônicos são usados para medir a velocidade do carro em
cada uma das rodas. À partir desta informação, microcontroladores são usados para
controlar os cilindros de frenagem”.
O modelo matemático é bastante simples, e com este modelo seria possível
obter-se sempre a melhor freada possível, mas para que o tempo de acionamento
dos freios seja o menor possível, é necessário que este cálculo seja muito rápido - o
25
que seria impossível de ser implementado a um baixo custo. Decidiu-se então que o
escorregamento máximo usado seria igual a 0.1 para qualquer caso nos sistemas
ABS convencionais.
Até o momento este era o sistema de freios usados pelas maiores
companhias automobilísticas do mundo como Honda, Madza, Hyundai, BMW,
Mercedes-Benz, Bosh, Peugeot, entre outras.
Como é possível notar, o uso da lógica fuzzy também pode ser aplicada
aqui, pois mesmo existindo um modelo matemático, ele não é aplicado como deveria
por sistemas computacionais. Num segundo momento, uma empresa Japonesa
chamada Nippondenso começou uma pesquisa sobre como melhorar o sistema ABS
partindo do princípio que cada tipo de estrada deveria ter um escorregamento ideal.
Foram examinados diversos escorregamentos para diversas condições de estradas
como mostra a Tabela 2.2.
Tabela 2.2 - Escorregamento para diversas condições de estrada
Condição da Estrada Escorregamento Ideal
Estrada Seca 0,20
Asfalto ou úmido 0,12
Gelo ou neve 0,05
O problema era descobrir, sem usar microcontroladores adicionais, o tipo de
estrada, para então poder aplicar o escorregamento ideal, pois o custo de usar
sensores capazes de fazer tal trabalho era proibitivo ao projeto. A idéia de ter um
botão para o motorista pressionar de acordo com as condições da estrada para
executar um determinado escorregamento na hora da frenagem foi abandonada.
A solução a que os técnicos chegaram foi muito simples: imagine-se
dirigindo um carro equipado com freios ABS padrão a uma determinada velocidade.
Após um determinado período de tempo pisa-se no freio, então o ABS começa a
funcionar. Mesmo que a condição da estrada não seja conhecida até o momento,
seria possível fazer uma boa estimativa, observando somente a reação do carro.
Foi exatamente o que a Nippondenso fez: num primeiro momento o carro é
freado e o sistema ABS usa um escorregamento igual a 0,1. De acordo com a
reação do carro outros escorregamentos mais adequados são usados.
Experimentos com o primeiro protótipo que usava somente seis regras
mostraram já grande vantagem de performance sobre o sistema ABS comum. Um
26
dos testes alternava pistas em diferentes condições na hora da frenagem como
molhado e neve. Neste teste o sistema de lógica fuzzy mostrou-se muito superior,
sendo capaz de detectar as diferentes pistas mesmo durante a freada.
Atualmente os carros da Nissan e Mitsubishi são equipados com freios ABS
com lógica fuzzy. Todas as outras companhias já citadas como Honda, Madza,
Hyundai, BMW, Merecedez-Benz, Bosh e Peugeot estão atualmente trabalhando em
soluções similares.
Zimmermann enfatiza que com a popularidade ascendente dos
controladores de lógica fuzzy, mais engenheiros serão treinados nesta área no
futuro. Este treinamento conduzirá a mais aplicações de sistemas de controladores
de lógica fuzzy e a um campo ascendente de experiência dos engenheiros
envolvidos. E conclui: controlador lógico fuzzy é uma parte integrante da teoria de
controle moderna e não substitui métodos convencionais, mas os complementa
bastante.
27
3 ALGORITMO DE COLÔNIA DE ABELHAS ARTIFICIAIS
3.1 INTRODUÇÃO
Não-linearidades e interações complexas entre variáveis de projeto (x) e
variáveis operacionais (g(x) ≤ 0, h(x) = 0) em problemas de engenharia (f) formam
um espaço de busca (S) que pode conter várias soluções ótimas (x* | f(x*) < f(x),
∀ x ∈ S ⊂ ℜn), como no caso de um problema de minimização. Por causa da
possibilidade de encontrar mínimos locais ou soluções subótimas, os métodos
baseados em gradiente podem não ser bons candidatos como algoritmos de
otimização eficientes quando aplicados a uma ampla gama de projetos de
engenharia e de problemas operacionais.
Por outro lado, muitos problemas de engenharia também não podem ser
tratados através de métodos analíticos, seja por causa da dificuldade de formulação
da modelagem ou do esforço matemático exigido na solução, principalmente quando
estão envolvidas funções não-diferenciáveis ou descontínuas.
Neste sentido, nos últimos tempos, algoritmos bioinspirados baseados em
populações e metaheurísticas vêm sendo usados para resolver problemas de busca
e otimização em vários domínios de problemas para os quais soluções robustas são
difíceis ou impossíveis de encontrar usando abordagens tradicionais como a
programação matemática. O princípio fundamental desses algoritmos utiliza um
método construtivo para a obtenção da população inicial (soluções factíveis iniciais)
e uma técnica de busca local para melhorar a solução da população, considerando
que os indivíduos (soluções) dessa população são evoluídos de acordo com regras
especificadas que consideram o intercâmbio de informações entre os indivíduos.
Esse processo conduz a população em direção à obtenção de uma solução ótima.
Tais algoritmos são conhecidos como algoritmos de computação evolutiva.
Duas abordagens evolutivas baseadas em populações têm se destacado:
algoritmos evolutivos e algoritmos de enxames. Os Algoritmos Evolutivos (AE)
tradicionalmente incluem Algoritmos Genéticos (AG) (Goldberg, 1989), Programação
Evolutiva (PE), Estratégias Evolutivas (EE) (De Jong, 2006) e Programação
Genética (PG) (Koza, 2003). Algoritmos mais recentemente desenvolvidos como
28
Algoritmos de Estimação de Distribuição (AED) (Pelikan, 2006) e Algoritmos
Genéticos Competentes (Goldberg, 2002) também são AE.
Os AEs têm sido intensamente estudados e amplamente aplicados para
resolver vários problemas científicos e de engenharia, tais como projeto de robô,
despacho econômico de sistemas de energia e problemas de identificação de dobra
de proteína, só para mencionar alguns. Estes algoritmos têm desfrutado de sucesso
nas aplicações devido à sua simplicidade, robustez e flexibilidade. Os AEs atuam
sobre uma população de possíveis soluções aplicando o princípio de diversidade de
indivíduos e da sobrevivência de indivíduos mais fortes e bem adaptados ao
ambiente, que se reproduzematravés de operadores que imitam os conceitos
genéticos, criando descendentes mais fortes que se aproximam da solução do
problema.
A Inteligência de Enxames, também referenciada como Inteligência de
Colônias ou Inteligência Coletiva, é um conjunto de técnicas baseadas no
comportamento coletivo de sistemas auto-organizados, distribuídos, autônomos,
flexíveis e dinâmicos. Estes sistemas são formados por uma população de agentes
computacionais simples que possuem a capacidade de perceber e modificar o seu
ambiente de maneira local. Esta capacidade torna possível a comunicação entre os
agentes, que captam as mudanças no ambiente geradas pelo comportamento de
seus congêneres. Embora não exista uma estrutura centralizada de controle que
estabelece como os agentes devem se comportar, e mesmo não havendo um
modelo explícito do ambiente, as interações locais entre os agentes geralmente
levam ao surgimento de um comportamento global que se aproxima da solução do
problema.
As propriedades principais de um sistema de inteligência de enxame são
(Millonas, 1994):
• Proximidade – os agentes devem ser capazes de interagir;
• Qualidade – os agentes devem ser capazes de avaliar seus
comportamentos;
• Diversidade – permite ao sistema reagir a situações inesperadas;
• Estabilidade – nem todas as variações ambientais devem afetar o
comportamento de um agente;
• Adaptabilidade – capacidade de adequação a variações ambientais.
29
Duas principais linhas de pesquisa que emergem dessas propriedades
podem ser observadas na inteligência de enxames: trabalhos inspirados no estudo
do comportamento de insetos sociais, como formigas, abelhas, cupins e vespas; e
trabalhos inspirados na habilidade das sociedades humanas em processar
conhecimento.
As técnicas mais conhecidos de Inteligência de Enxames são a otimização
por colônia de formigas, otimização por enxame de partículas, algoritmo shuffled
frog-leaping, algoritmos de coleta de alimentos por bactérias e algoritmos de colônia
de abelhas.
A Inteligência de Enxames também é considerada um ramo da abordagem
computacional conhecida como Computação Natural. Tal abordagem é a versão
computacional do processo de extrair ideias da natureza para desenvolver sistemas
computacionais. Uma visão abrangente de conceitos, algoritmos e aplicações da
computação natural pode ser encontrada em DE CASTRO (2006).
3.2 ALGORITMOS DE COLÔNIA DE ABELHAS
A auto-organização das abelhas está baseada em poucas regras simples do
comportamento individual do inseto. Um exemplo é a coleta e o processamento do
néctar, práticas altamente organizadas, que incluem mecanismos de comunicação e
compartilhamento de informações eficientes. Entre as abelhas melíferas (produtoras
de mel), a comunicação pode ser feita por meio de sons, substâncias químicas, tato,
danças ou estímulos eletromagnéticos. A transferência de alimento parece ser uma
das maneiras mais importantes de comunicação. A dança é outro importante meio
de comunicação; por meio dela as operárias podem informar a distância e a
localização exata de uma fonte de alimento.
As abelhas são dotadas de processo de orientação excepcional, que é
baseado principalmente na posição do sol, isto é, o ângulo entre sua própria rota de
vôo e uma linha horizontal da colmeia, na direção do sol (bússola solar), registrando
uma posição de que jamais se esquecem. Trata-se de uma espécie de memória
geográfica. Além disso, elas podem se guiar também pela cor e odor das flores.
Uma colônia de abelhas deve acumular comida suficiente no verão e
consumi-la durante o inverno, quando as fontes de alimento tornam-se escassas. A
coleta de alimentos é feita pelas abelhas campeiras ou operárias. A colônia de
abelhas coordena sua atividade de coleta de uma maneira eficiente, enviando as
30
abelhas em múltiplas direções simultaneamente para explorar uma grande área de
busca. A colônia de abelhas concentra, então, a busca nas fontes de néctar mais
proveitosas dentre todas da florada.
Depois que colhe o néctar, a abelha volta à colmeia, mas se lembra do odor,
cor e forma das flores. Dentro do favo e, portanto, longe da luz solar, a abelha
campeira baila de maneiras distintas conforme a distância da florada. Cada colmeia
tem uma assim chamada área de pista de dança na qual as abelhas que
descobriram fontes de néctar dançam, de modo a tentar convencer suas
companheiras a segui-las. Cada abelha seguidora decide atingir a fonte de néctar ou
pólem seguindo uma abelha dançarina que já descobriu uma florada. Durante o vôo,
a abelha campeira pega uma carga de néctar e retorna à colmeia transferindo o
néctar para uma abelha operária que armazena-o. Depois de ceder o alimento, a
abelha pode: (a) abandonar a fonte de alimento e tornar-se novamente uma
exploradora, (b) continuar a coleta na fonte de alimento sem recrutar as
companheiras, ou (c) dançar e assim recrutar as companheiras antes de retornar
para a fonte de alimento. As abelhas optam por uma das alternativas acima com
uma certa probabilidade. Dentro da área de dança, a abelha dança ‘anunciando’
diferentes áreas de néctar. Durante a dança, a abelha campeira indica a direção da
fonte de alimento em relação à posição da colmeia e do sol. A campeira pode
interromper sua dança a curtos intervalos e oferecer às abelhas seguidoras que
estão observando-a, uma gota do néctar que coletou. Assim, ela informa o odor do
néctar e da flor e as demais operárias partem em busca desta fonte. O recrutamento
aumenta com a vivacidade e a duração da dança. O tipo de dança que a abelha
realiza depende da distância da colmeia à florada. A distância da colméia até a fonte
de néctar é informada pelo número de vibrações realizadas e pela intensidade do
som emitido durante a dança. Quanto menor a distância entre a fonte e a colmeia,
maior o número de vibrações. Portanto, as danças indicam que há uma fonte
abundante de alimento, os movimentos indicam a distância e a orientação, e o
néctar ou pólem passado para as recrutas ajudam a reconhecer a fonte pelo odor do
alimento.
Os mecanismos pelos quais a abelha decide seguir uma dançarina
específica não são bem conhecidos, mas considera-se que o recrutamento entre as
abelhas é sempre uma função da qualidade da fonte de alimento. Sabe-se também
que nem todas as abelhas começam a buscar alimento simultaneamente.
31
Embora um número bastante significativo de algoritmos de abelhas utilize
esta abordagem como modelo, apenas um será descrito neste trabalho. O algoritmo
escolhido é o Artificial Bee Colony (ABC).
Nesse algoritmo a posição de uma fonte de alimento representa uma
solução possível do problema de otimização e a quantidade de néctar corresponde à
qualidade ou medida de aptidão da solução associada (equivalente ao valor da
função objetivo). A colônia de abelhas artificiais consiste de três grupos de abelhas
operárias: campeiras (employed bee), seguidoras (onlooker bee) e escudeiras (scout
bee). As abelhas campeiras estão associadas com uma fonte de alimento particular,
a qual estão explorando. Elas carregam a informação sobre essa fonte particular e
compartilham essa informação com uma certa probabilidade pela dança. A abelha
seguidora espera na pista de dança para tomar a decisão de qual fonte de alimento
escolher para explorar. Quando a quantidade de néctar de uma fonte de alimento
aumenta, o valor da probabilidade com o qual a fonte de alimento é preferida pelas
seguidoras também aumenta. A primeira metade da colônia consiste de abelhas
campeiras e a segunda metade de seguidoras. Para toda fonte de alimento existe
uma abelha campeira, ou seja, o número de abelhas campeiras é igual ao número
de fontes de alimento em torno da colmeia. A abelha campeira – cuja fonte de
alimento foi exaurida pelas abelhas – torna-se uma abelha escudeira, cujo papel é
explorar o ambiente, sem nenhuma direção, para descobrir novas fontes de
alimento. Como resultado desse comportamento, as escudeiras são caracterizadas
por baixos custos de busca e baixa média na qualidade da fonte de alimento.
Ocasionalmente, as abelhas escudeiras podem acidentalmente descobrir ricas
fontes de alimento inteiramente desconhecidas.
3.3 ALGORITMO DE COLÔNIA DE ABELHAS ARTIFICIAIS
Em 2005, Karaboga apresentou um algoritmo de enxames de abelhas
denominado Algoritmo de Colônia de Abelhas Artificiais (Artificial Bee Colony - ABC)
para optimizar problemas numéricos. Basturk e Karaboga compararam a
performance do ABC com outros algoritmos baseados em populações bem
conceituados.
O fluxograma do ABC é apresentado na Figura 3.1. Cada ciclo do processo
de busca consiste em três passos após o estágio de inicialização: locar as abelhas
campeiras nas fontes de alimento e calcular a quantidade de néctar; locar as
32
abelhas seguidoras nas fontes de alimento e calcular a quantidade de néctar;
determinar as abelhas escudeiras e locá-las em fontes de alimento aleatórias. No
estágio de inicialização, um grupo de fonte de alimentos é posicionado
aleatóriamente e os valores dos parâmetros de controle são definidos. No ABC, as
fontes de alimento representam possíveis soluções para o problema. A quantidade
de néctar de uma fonte de alimento corresponde à qualidade da solução
representada pela fonte. Assim, a quantidade de néctar das fontes de alimento
existentes no início são determinadas, ou seja, a qualidade das soluções iniciais é
calculada. Cada abelha campeira é movida na área de sua fonte de alimento para
determinar uma nova fonte vizinha à antiga. O néctar da nova fonte é avaliado. Se a
quantidade de néctar da nova fonte de alimento for maior que da fonte anterior, a
abelha esquece a anterior e memoriza a nova fonte. Após as abelhas campeiras
completarem sua busca, elas voltam à colméia e compartilham as informações
relativas ao néctar de suas fontes de alimento com as abelhas seguidoras que
aguardam ná área de dança. As seguidoras determinam as fontes de alimento que
explorarão a partir de uma probabilidade baseada na quantidade de néctas, ou seja,
se uma fonte de alimento possui muito mais néctar que outra, a probabilidade de ser
escolhida pelas seguidoras será maior e assim, mais abelhas seguidoras a
escolherão. Este processo é similar a ao processo de seleção natural em algoritmos
evolutivos. Cada seguidora determinará uma fonte de alimento na vizinhança da
fonte escolhida e avaliará a quantidade de néctar.
33
Figura 3.1 - Fluxograma do ABC
Uma colméia possue abelhas escudeiras, suas exploradoras que não
necessitam de nenhuma orientação enquanto procuram fontes de alimentos. Elas
tem o objetivo principal de encontrar qualquer fonte de alimento. Por se
comportarem assim, as escudeiras caracterizam-se por buscas a baixo custo e com
baixa qualidade nas fontes de alimento encontradas. Ás vezes uma escudeira pode
encontrar uma fonte rica em néctar, completamente desconhecida até então. No
caso das abelhas artificiais, as escudeiras artificiais tem como função encontrar
rapidamente grupos de soluções. No ABC, a cada ciclo, pelo menos uma abelha
campeira é escolhida e classificada como escudeira. Se uma solução representada
34
por uma determinada fonte de alimento não pode ser melhorada após um
determinado número de tentativas, significa que esta fonte de alimento foi esgotada
pelas abelhas e a sua respectiva abelha campeira transforma-se em uma abelha
escudeira. O número de tentativas que determina quando uma fonte será
considerada esgotada é igual ao valor do parâmetro de controle limite. Estes três
passos repentem-se até que o critério de finalização do algoritmo seja atendido.
Como outros grupos de animais que vivem de extração, as abelhas
procuram por alimento a fim de maximizar a relação E/T (onde E é a energia obtida e
T o tempo gasto extraindo o alimento). No caso de enxames de abelhas, E é
proporcional à quantidade de néctar das fontes descobertas pelas abelhas e o
enxame trabalha para maximizar o mel dentro da colméia. Em um problema de
maximização, o objetivo é maximizar a função objetivo F(θ), .
Assumindo que θi é a posição da i-ésima fonte de alimento (i-ésima solução
para o problema);F(θi) representa a quantidade de néctar da fonte de alimento
localizada em θi e é proporcional à E(θi). Sendo P(c)={θi(c)|i=1,2 …,s} representa a
população de fontes de alimento sendo visitadas pelas abelhas, onde c é o ciclo e s
é o número de fontes de alimento ao redor da colméia. Como dito anteriormente, a
preferência de uma abelha seguidora por uma fonte de alimento depende da
quantidade de néctar F(θ) daquela fonte. Enquanto a quantidade de néctar de uma
fonte aumentar, a probabilidade da fonte ser escolhida pelas seguidoras aumenta
proporcionamente. A probabilidade da fonte de alimento localizada em θi ser
escolhida por uma seguidora pode ser descrita por
Onde s é o número de fontes de alimento e é igual ao número de abelhas
campeiras na colônia. A abelha seguidora escolhe uma fonte de alimento a partir de
sua probabilidade e, em seguida, determina uma fonte vizinha à fonte selecionada.
Por exemplo, no processo de seleção para a primeira seguidora, um número
aleatório no intervalo [0,1] é produzido e este número é menor p1, a primeira fonte de
alimento é selecionada pela seguidora. Caso contrário, o número produzido é
comparado com p2 e se for menor, a segunda fonte de alimento é selecionada. Caso
contrário, a probabilidade da terceira é verificada e assim sucessivamente até que
todas as abelhas seguidoras estejam designadas a uma fonte de alimento. Desta
forma, a maioria das abelhas seguidoras serão recrutadas pelas fontes com maior
35
quantidade de néctar determinadas pelas campeiras. Assumindo que a fonte de
alimento selecionada pela seguidora foi θi. A fonte de alimento vizinha à θi é
calculada por
Onde é um número aleatório produzido no intervalo [-1, +1] a fim de
encontrar uma fonte de alimento ao redor de θi(c) com mais néctar e k é um índice
aleatório produzido com valor diferente de i.
O Algoritmo ABC possui três parâmetros de controle : tamanho da colônia
(colony size – número de abelhas campeiras e seguidoras), número máximo de
iterações e o valor limite, que determina o número de tentativas de melhorar uma
fonte antes de abandoná-la.
36
4 ABORDAGEM DE PROJETO AVALIADA
No presente projeto foi realizada uma simulação de um controlador de lógica
fuzzy otimizado por um Algoritmo de Colônia de Abelhas Artificiais. A simulação foi
ambientada em ambiente MATLAB®, software desenvolvida pela The MathWorksTM.
Abaixo são apresentados mais detalhes do modelo e dos resultados obtidos.
O Controlador utilizado nesta simulação é um controlador fuzzy PD
(proporcional derivativo) incremental baseado no modelo de Takagi-Sugeno,
conforme apresentado no Figura 4.1.
Figura 4.1 - Controladfor Fuzzy PD Incremental
O controlador possui duas entradas e uma saída. A primeira entrada é o erro
e a segunda a derivada no tempo do erro. Os sinais crisp de entrada são definidos
em 5 conjuntos fuzzy para cada entrada. As funções de pertinência dos conjuntos
são definidas por triângulos isósceles com seus picos em [-1; -0,5; 0; 0,5 ; 1] e com
uma largura de base de amplitude 1, para ambas entradas. A esses conjuntos fuzzy
foram atribuídos os nomes Muito Negativo, Negativo, Zero, Positivo e Muito Positivo.
Por ser um controlador incremental, o controlador fornece em sua saída a
variação δU(t) do sinal de controle. O sinal de controle, portanto, é dado por
O controlador possui uma base de 25 regras que atuam conforme a
apresentado na Tabela 4.1. Na referida tabela, MN, N, Z, P, MP referem-se
respectivamente à Muito Negativo, Negativo, Zero, Positivo, Muito Positivo.
37
Tabela 4.1 - Base de Regras do Controlador Fuzzy
Erro\ derivada do erro MN N Z P MP
MN MN MN MN Z P
N MN N N Z P
Z N Z Z Z P
P N Z P P MP
MP N Z MP MP MP
A saída z do controlador é calculada por
Onde i =1:5 e j=1:5 (representando as 25 regras) e wij é o peso de disparo
para a regra ij (Que é o mínimo entre o grau de pertinência da entrada erro e o grau
de pertinência da entrada derivada do erro).
O controlador fuzzy possui ainda três ganhos que auxiliam na ação de
controle: o ganho proporcional Kp, o ganho derivativo Kd e o ganho da saída do
controlador Ko. Estes três ganhos foram otimizados utilizando o Algortimo de
Colônia de Abelhas Artificiais.
Para a simulação realizada foi determinado uma colônia de abelhas artificiais
de tamanho NP igual a 20, sendo NP/2 o número de abelhas campeiras e, portanto,
o número de fontes de alimento, representado no algoritmo pela variável
FoodNumber. O parâmetro limite que determina a quantidade de tentativas para se
melhorar uma fonte de alimento foi definido como 20 e número máximo de iterações,
variável maxCycle, foi definido como 100.
Nesta simulação, a função escolhida para avaliar o desempenho do
controlador fuzzy foi o ITAE (integral do tempo multiplicado pelo valor absoluto do
erro, do inglês, integral of time and absolute error). Quanto menor o ITAE, melhor o
desempenho do controlador. Portanto, quanto menor o ITAE, maior a quantidade de
néctar de uma fonte de alimento, ou seja, o algoritmo ABC trabalha para minimizar o
ITAE. Foi escolhido o ITAE, pois este é dependente do tempo, e o objetivo é
controlar o processo o mais rápido possível.
Os modelos do Simulink® estão apresentados no Anexo I.
Foi utilizado para a simulação um processo não-linear conforme apresentado
nas Figura 4.2 e 4.3.
38
Figura 4.2 - Processo Não-linear SISO (uma entrada e uma saída, do inglês Single input,
single output )
Figura 4.3 - Estrutura do Processo não-linear
39
5 RESULTADOS OBTIDOS E CONCLUSÃO
A simulação foi efetuada 30 vezes para obter-se um resultado mais robusto.
A Tabela 5.1, a seguir, apresenta os resultados obtidos das simulações.
Tabela 5.1 - Resultados das simulações efetuadas
Simulação Kp Kd Ko ITAE
01 20 0,0704 0,7075 5,3189E+6
02 -20 -0,0639 -1,7117 5,6352E+6
03 20 0,0303 1,3328 3,4929E+6
04 20 0,0108 1,6635 3,4601E+6
05 20 0,0744 1,5329 6,5772E+6
06 -20 -0,0538 -0,1527 2,9828E+6
07 -20 -0,0295 -0,3139 2,3344E+6
08 5,4949 0,0854 0,2084 6,9545E+6
09 -18,4297 -0,0805 -1,1184 6,7545E+6
10 -19,9895 -0,0799 -0,1084 4,0847E+6
11 20 0,0067 1,2137 3,4752E+6
12 19,7544 0,0138 1,2526 3,0817E+6
13 20 0,1971 3,6595 2,4391E+7
14 -20 -0,0333 -0,3252 2,3297E+6
15 -20 -0,0060 -1,2788 3,7182E+6
16 20 0,0062 1,4663 3,5538E+6
17 -20 -0,0650 -9,0652 9,1786E+6
18 -20 -0,0595 -0,2045 3,0785E+6
19 -20 -0,1002 -1,5518 9,3596E+6
20 20 0,0461 1,0995 4,0319E+6
21 -20 -0,0185 -1,1426 2,9743E+6
22 20 0,0164 1,5224 3,3724E+6
23 -20 -0,1132 -0,1075 6,8209E+6
24 -20 -0,0577 -0,1800 2,9573E+6
25 -19,9246 -0,4092 -9,1095 2,0590E+7
26 20 0,0318 0,2594 2,3848E+6
27 -19,7897 -0,0260 -0,5531 2,4280E+6
28 11,6725 0,0350 18,8622 1,2159E+7
29 20 0,0119 0,8865 2,7499E+6
40
30 -20 -0,1982 -17,0652 1,3569E+7
O melhor resultado foi obtido na simulação 14, com a função custo ITAE
resultando em 2,3297E+6. O gráfico em malha fechada resultante dessa simulação
é apresentado na Figura 5.1. A Figura 5.2 apresenta uma ampliação do gráfico no
período inicial da simulação para uma observação mais adequada do
comportamento do sinal de saída em malha fechada do processo não linear
controlado pelo controlador fuzzy.
Figura 5.1 - Gráfico da saída em malha fechada do p rocesso não-linear controlado pelo
controlador fuzzy
41
Figura 5.2 - Gráfico apliado da saída em malha fech ado do processo não-linear
controlado pelo controlador fuzzy
Nos gráficos apresentados, o eixo horizontal representa o tempo decorrido e
o eixo vertical a amplitude do sinal. O sinal em verde, constante na amplitude 10 é o
sinal de referência, enquanto que o sinal em azul é o sinal da saída em malha
fechada do sistema. A partir de gráfico observamos que o sinal estabiliza-se
rapidamente.
O erro do sinal de saída comparado com a referência obtido foi baixo, com
valor médio de 0,0313. O sinal do erro é apresentado nas figuras 5.3 e 5.4.
42
Figura 5.3 – Gráfico do sinal do erro entre o valor de saída e o valor de referência
Figura 5.4 - Gráfico ampliado do erro entre o valor de saída e o sinal de referência
O sinal de saída do controlador, em média, foi de -29,7985 e é apresentado
nas figuras 5.5 e 5.6.
43
Figura 5.5 - Gráfico da ação de controle
Figura 5.6 - Gráfico ampliado da ação de controle
Os resultados obtidos foram satisfatórios, mostrando a eficácia da
otimização dos parâmetros do controlador fuzzy utilizando-se do algoritmo ABC.
44
Notou-se ainda que diversos valores finais para o ganho proporcional Kp saturaram
nos limites superiores e inferiores definidos para a simulação (20 e -20
respectivamente).
45
46
6 REFERÊNCIAS
[1]. ABNT. Normas para Apresentação de Documento Científicos , Vol.2 –
Teses, dissertações, monografias e trabalhos acadêmicos, UFPR, 2002.
[2]. KARABOGA, D.; BASTURK, B. A powerful and efficient algorithm for
numerical function optimization: artificial bee col ony (ABC) algorithm.
Springer Science+Business Media B.V.,Dordrecht, Holanda, publicado online
em 13 de abril de 2007.
[3]. KARABOGA, D.; BASTURK, B. On the performance of artificial bee colony
(ABC) algorithm. Applied Soft Computing, v.8, n.1, p. 687-697. 2008.
[4]. KARABOGA, N. A new design method based on artificial bee colony
algorithm for digital IIR filters. Journal of Franklin Institute, v. 346, n. 4, p.
328-328. 2009.
[5]. SERAPIAO, A. B. de S. Fundamentos de otimização por inteligência de
enxames: uma visão geral . Sba Controle & Automação [online]. 2009, vol.20,
n.3, pp. 271-304.
[6]. SOUZA, M. A. T. de, Otimização de controladores nebulosos de Takagi-
Sugeno utilizando algoritmos geneticos . Disponível em:
<http://libdigi.unicamp.br/document/?code=vtls000212357>.2007. Acesso em:
28 de maio de 2010.
[7]. ALCALÁ, R.; CASILLAS, J.; CORDÓN, O.; GONZÁLEZ, A.; HERRERA, F. A
genetic rule weighting and selection process for fuzzy control of heating,
ventilating, and air conditioning systems . Engineering Applications of
Artificial Intelligence, v. 18, n. 3, p.279-296. 2005.
[8]. GHOSHAL, S.P. Application of GA/GA-AS based fuzzy automatic
generation control of a multi-area thermal generati ng system . Electric
Power Systems Research, v. 70, n.2, p. 115-127. 2004.
47
[9]. ACOSTA, G.; TODOROVICH, E. Genetic algorithms and fuzzy control: a
practical synergism for industrial applications . Computers in Industry, v.
52, n. 2, p.183-195. 2003.
[10]. CHIOU, J.S.; LIU, M.T. Numerical simulation for Fuzzy -PID controllers and
helping EP reproduction with PSO hybrid algorithm. Modelling Practice and
Theory, v.17, n. 10, p. 1555-1565. 2009.
[11]. CHANG, W.D.; SHIH, S.P. PID controller design of n onlinear systems
using an improved particle swarm optimization appro ach . Elsevier B.V.,
Holanda, publicado online em 6 de janeiro de 2010.
[12]. HASSAN, M. Y.; SHARIF, W.F. Design of FPGA based PID-like Fuzzy
Controller for industrial applications . Disponível em: <
http://www.scipub.org/fulltext/jcs/jcs410799-806.pdf>.2007. Acesso em: 8 de
maio de 2010.
[13]. KHAN, S.; ABDULAZEEZ, S. F.; ADETUNJI, L. W.; ALAM, A. Z.; SALAMI, M.
J. E.; HAMEED, S. A.; ABDALLA, A. H.; ISLAM, M. R. Design and
implementation of an oprtical fuzzy logic controller using genetic
algorithm . Disponível em: <
http://www.iaeng.org/IJCS/issues_v34/issue_2/IJCS_34_2_05.pdf>.2008.
Acesso em: 8 de maio de 2010.
[14]. KHALED, N. Sugeno-Takagi-like fuzzy controller . Disponível em: <
http://www.mathworks.com/matlabcentral/fileexchange/26166-sugeno-takagi-
like-fuzzy-controller>.2009. Acesso em: 8 de março de 2010.
[15]. KARABOGA, D.; AKAY, B. A comparative study of Artificial Bee Colony
algorithm. Science Direct. Applied Mathematics and Computation, V. 214, n.
1, 1 de agosto de 2009, p.108-132.
[16]. KARABOGA, D.; OZTURK, C. A novel clustering approach: Artificial Bee
Colony (ABC) algorithm. Science Direct. Applied Soft Computing, In Press,
Corrected Proof, disponível online 22 de dezembro de 2009.
48
[17]. Artificial Bee Colony (ABC) Algorithm Homepage . Disponível em:
<http://mf.erciyes.edu.tr/abc/>. Acesso em: 8 de março de 2010.
[18]. ARAUJO FILHO, J. E. de, Entendendo a lógica fuzzy aplicada a controle
de processos e a sistemas de decisão . 4° Congresso Internacional de
Automação, Sistemas e instrumentação. São José dos Campos, SP, BRA.
Sociedade de Instrumentação, Sistemas e Automação. 2004.
[19]. SOUZA, N. de, Controles lógicos fuzzy : uma alternativa para o controle
de processos industriais críticos . Universidade Federal de Santa Catarina.
Florianópolis. Dissertação de Mestrado. 2000.
[20]. COELHO, L. S.; ALMEIDA, O. M.; COELHO, A. A., Projeto e estudo de caso
de implementação de um sistema nebuloso . Revista Controle e Automação.
v. 14, n. 1, p. 20-29, 2003.
[21]. HANGOS, K.; BOKOR, J.; SZEDERKÉNYI, G., Analysis anc control of
nonlinear process systems . Nova Iorque, NY, EUA. Springer, 2004. 308 p.
[22]. NAVARRO, J. L.; ALBERTOS, P., Fuzzy logic implementation of industrial
controllers . 13th IFAC World Congress. São Francisco, CA, EUA. IFAC Press,
1996. p. 409-414.
[23]. HENSON, M. A.; SEBORG, D. E. Nonlinear Process Control. Upper Sddle
River, NJ, EUA. Prentice-Hall, Inc. 1997.
[24]. ENGELBRECHT, A. P. Fundamentals of Computational Swarm
Intelligence. Wiley, Nova Iorque. 2006.
[25]. ZADEH, L.A. Fuzzy sets. Information and Control. v. 8, p. 338-353. 1965.
[26]. ZADEH, L.A. The concept of a linguistic variable and its applic ations.
Information Sciences, n.8. 1975.
[27]. DOMBI, J. Membership function as an evaluation. Fuzzy sets and Systems,
n.35. 1990.
49
[28]. DURKIN, J. Expert Systems: Design and Development . Prentice-Hall,Nova
Jersey, EUA. 1994.
[29]. MOORE, C. G.; HARRIS, C. J. Advances in Intelligent Control: Aspects of
Fuzzy Control Estimation . 1ed. Taylor & Francis, Bristol, EUA. 1994.
[30]. TCHOLAKIAN, A. B. Modelagem Linguística: Alternativa na Análise de
Processos Complexos. Universidade Federal de Santa Catarina.
Florianópolis. Dissertação de Mestrado. 1992.
[31]. CAO, Z.; KANDELL, A.; LI, L. A new model of Fuzzy Reasoning . Fuzzy sets
and Systems, n.36. 1990.
[32]. KICKERT, W.J.; MANDAMI, E. H. Analysis of a Fuzzy Logic Controller .
Fuzzy sets and Systems, n.1. 1978.
[33]. ZIMMERMANN, H.J. Fuzzy set Theory and its Applications, 3ed., Kluwer
Academic Publishers, Massachusetts. 1996.
[34]. WEAVER, W. Science and Complexity, American Scientist, n.36, p. 536.
1948.
[35]. BREMERMANN, H. J., Optimization through evolution and recombination,
Self-Organizing Systems, Spartan Books, Washington, DC, EUA. p. 93-106.
1962.
50
7 ANEXOS
51
7.1 ANEXO I – MODELOS DO SIMULINK
Figura 7.1 - Modelo do Controlador com o processo n ão-linear
52
Figura 7.2 - Regras do Controlador Fuzzy
53
Figura 7.3 - Processo de defuzificação
54
Figura 7.4 - Processo não linear