






































Estude fácil! Tem muito documento disponível na Docsity
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Prepare-se para as provas
Estude fácil! Tem muito documento disponível na Docsity
Prepare-se para as provas com trabalhos de outros alunos como você, aqui na Docsity
Encontra documentos específicos para os exames da tua universidade
Prepare-se com as videoaulas e exercícios resolvidos criados a partir da grade da sua Universidade
Responda perguntas de provas passadas e avalie sua preparação.
Ganhe pontos para baixar
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Tutorial para o uso de sistemas Fuzzy por meio de implemantação Matlab
Tipologia: Manuais, Projetos, Pesquisas
1 / 46
Esta página não é visível na pré-visualização
Não perca as partes importantes!







































Resumo: Este manual é o produto de uma revisão do manual disponibilizado em 2004, que além de apresentar com detalhes os comandos básicos para o uso da teoria dos conjuntos fuzzy no ambiente de computação científica MATLAB 6.5, cita referências bibliográficas onde o usuário pode complementar seus estudos teóricos para a interpretação adequada dos resultados do uso desta ferramenta no processo de suporte à decisão de sistemas que, aqui, são os agrícolas ou biológicos.
Versão II, maio de 2005.
Notar que nesta cópia da aquarela de Debret há um erro, descoberto em 1994 somente porque apreciado por um estudante de engenharia mecânica.
O que está por trás de toda essa versatilidade da utilização desta teoria fuzzy é a possibilidade de modelar e manipular matematicamente informações vagas e imprecisas, naturais da linguagem humana e, portanto, as fornecidas pelos especialistas (não matemáticos) ao caracterizar os processos estudados.
Esta manipulação é feita a partir da composição de variáveis escolhidas para modelar matematicamente o processo em questão, quando a implicação das variáveis independentes nas dependentes é estabelecida por um conjunto de regras lingüísticas baseadas no conhecimento de especialistas.
As técnicas da teoria dos conjuntos fuzzy têm alcançado as mais diversas áreas de aplicação. Uma das mais aprofundadas é de controle fuzzy , que tem possibilitado a automação de diversos processos, que vão de tarefas domésticas até o controle de sofisticados processos industriais.
Em produtos de bem de consumo, como máquinas de lavar, televisões, câmeras de filmar, entre outros, o Japão foi o pioneiro a explorar o potencial da lógica fuzzy , ainda na década de 80. De acordo coma literatura, o trabalho pioneiro de aplicação da lógica fuzzy em controle de processos é devido a MAMDANI & ASSILAM (1975), cujos suportes teóricos encontram-se nos artigos de ZADEH (1965). Tal aplicação foi voltada para controlar máquinas a vapor, o que possibilitou a modelagem matemática de “ações” dos operadores (especialistas) das máquinas, tornando suas tarefas automatizáveis. Este trabalho influenciou outros pesquisadores a explorarem controladores fuzzy na teoria de controle, como, por exemplo, o controlador de Sugeno, que não é contemplado neste manual.
Desde então, nas diversas áreas de conhecimento, os pesquisadores vêm desenvolvendo algoritmos específicos para o uso desta teoria para a análise de seus modelos, como pode ser encontrado tanto na literatura internacional - dentre um número enorme de bons livros citamos KLIR & YUAN (1995) e PEDRYCZ & GOMIDE (1998) -, bem como nacional - onde indicamos os trabalhos de doutorado: BARROS (1997), RIBACIONKA (1999) e ORTEGA (2001)-.
Também na área de pesquisa teórica tem tido bastante avanço em tópicos como equações e inclusões diferenciais, equações de diferenças e sistemas dinâmicos gerais, assuntos esses que podem ser encontrados em BARROS et al (2004).
Por outro lado o uso da teoria dos conjuntos fuzzy mostrou-se promissor também em pesquisas aplicadas, como pode ser constatado em várias oportunidades na ocasião do Ciclo de Palestras / 2002 a 2004, realizado na FEAGRI sob nossa coordenação (www.agr.unicamp.br), e do que resultou distintos tipos de projetos de vários níveis (iniciação científica, mestrado, doutorado e pós doutorado), bem como trabalhos apresentados em congressos ou publicados em revistas.
Em geral, estas aplicações são trabalhos de análise de condições de conforto em galpões de criação animal como função da composição de duas variáveis que traduzem o ambiente térmico gerado em galpões. O trabalho pioneiro foi o realizado por AMENDOLA et al (2004), para simular condições de conforto em galpões de criação de frangos de corte a partir da composição das variáveis independentes de temperatura e umidade relativa do ar. Os resultados, que constam do ANEXO 2 , foram tomados como exemplo e incentivaram o desenvolvimento de outros trabalhos de mesma natureza, como por exemplo, ainda para frangos de corte, por MOURA et al (2004) e por AMENDOLA & WATANABE (2005); para suínos como consta em QUEIROZ et al (2004); bem como outros projetos em andamento atualmente sob orientação da Professora Irenilza da FEAGRI.
Além disso, do oferecimento da disciplina AP 182N- Estudo Dirigido em Construções Rurais e Ambiência, resultou um outro projeto para animais em geral como consta em AMENDOLA, MOLLO & CRUZ (2005).
Aplicações em outras áreas da FEAGRI, como da área de Água e Solo para a caracterização de propriedades de solos, seguem com a orientação do Professor Matsura, enquanto que da área de Tecnologia Pós Colheita, referentes à caracterização da qualidade de produtos como função da composição das variáveis que exercem influência na sua preservação para o consumo ainda estão em desenvolvimento.
Por outro lado e enquanto isso, juntamente com o Professor Rodney Bassanezi e alunos de doutorado do IMECC, foram desenvolvidos sistemas fuzzy para descrever modelos teóricos que simulam alguns fenômenos biológicos. Um dos temas estudados foi a Morte Súbita do Citros, doença que tem dado enormes prejuízos aos plantadores de laranja do Estado de São Paulo. Neste tema os sistemas fuzzy desenvolvidos são para descrever a evolução dessa doença. Outros sistemas fuzzy foram desenvolvidos para estudar uma relação do tipo presa - predador para simular o controle biológico do agente causador da morte súbita, além de estudar os efeitos do controle químico usado contra tal agente como consta em PEIXOTO (2005). Ainda em ecologia, há o trabalho sobre a
aproximadas, os denominados métodos numéricos (objeto de estudo da Matemática Aplicada), ou ainda procurar usar pacotes de computação científicos apropriados para a análise requerida.
Em qualquer caso, a obtenção das tais soluções e/ou análises requer muitos cálculos, e sendo assim torna-se necessário o uso de computadores.
Para tanto, a partir da elaboração de um algoritmo associado a um método de resolução ou análise adequadamente selecionado, há que se elaborar um programa de computação científica em uma linguagem eficiente (Pascal, Fortran, C, C++, etc.) que traduza aquele algoritmo; ou usar algum pacote de computação científica (“software”), como, por exemplo, o MATLAB, o Mathematica, o MAPLE, PCC, etc... Nesta etapa, ressalta-se “o perigo” associado ao uso de “caixas pretas” por pesquisadores que não especialistas da área de matemática aplicada e computação científica. Este perigo pode ser compreendido tanto pela inadequada entrada de dados quanto pela interpretação dos resultados que o uso de um programa requer ou gera.
Tendo avançado nas etapas anteriores, para se obter soluções e/ou análises procuradas, revela-se necessária a tarefa de validação do conjunto de etapas acima descritas, o que pode indicar a necessidade de reformulá-las até que se garanta a legitimidade das mesmas.
Finalmente, e de fundamental importância, pode-se efetuar a simulação ou análise daquele processo em estudo, objetivando o seu planejamento, controle ou implementação melhorada.
Como reconhecer os processos/sistemas; identificar as variáveis e parâmetros importantes; classificar o tipo de problema físico; identificar o modelo matemático que pode ser associado; selecionar o método e/ou a ferramenta para a busca da análise do modelo; construir o algoritmo associado; desenvolver ou usar pacotes de computação científica; interpretar resultados; analisar as possíveis fontes de erros; e, se necessário, retomar algumas das etapas anteriores? Estas são as questões que os pesquisadores da área de matemática aplicada e computação científica buscam para atingir sucesso na Simulação Matemática ou Numérica de processos.
2. Como identificar um processo passível da análise segundo a teoria dos conjuntos fuzzy
Antes de iniciar a seqüência de instruções associadas ao uso da teoria dos conjuntos fuzzy no MATLAB, seguem alguns conceitos que devem ser observados porque essenciais para a identificação, pelo usuário especialista, do conjunto de variáveis importantes do processo em estudo que devem ser da classe das denominadas variáveis fuzzy.
O primeiro conceito está associado a definição de conjuntos fuzzy. Um subconjunto A de um conjunto U é considerado subconjunto fuzzy de U se for descrito como um conjunto de pares ordenados segundo o que segue:
onde μ A (^) (x) é uma função de pertinência que determina com que grau x está em A:
(x) 0.
0 (x) 1 ;
(x) 1 ;
A
A
A
xnãopertenceaoconjunto A
x pertenceparcialmenteaoconjuntoA
xpertencetotalmenteaoconjuntoA
=
μ
μ
μ
Sendo assim, a álgebra entre os conjuntos fuzzy não segue a teoria clássica usual, em especial devido ao fato de que as operações de união e de intersecção de um conjunto e seu complementar são diferentes de 1 e vazio respectivamente, e portanto operações específicas entre os conjuntos fuzzy devem ser estabelecidas (detalhes teóricos estão no ANEXO 1).
Outro conceito essencial é o reconhecimento desta caracterização de variáveis da existência do que consiste uma base de regras entre as mesmas. Isto se estabelece a partir do conhecimento do especialista na forma de proposições do tipo “se E1 e/ou E então S1”, onde E1 e E2 referem-se a classificações lingüísticas das variáveis de entrada e S1 a de saída, as quais, a partir do uso desta teoria, se mostra como conseqüência das operações “e/ou” algébricas acima referidas, onde “e” designa união e “ou” intersecção (detalhes práticos estão no ANEXO 2).
Outros conceitos são brevemente explicados à medida que forem requeridos.
A partir disto pode-se fazer distintos usos do MATLAB, dentre eles o uso de vários toolbox , cada um constando de uma coleção de arquivos destinados a tratar certas classes de problemas científicos. Dentre estes, encontra-se o Fuzzy Logical Toolbox , que é o de interesse neste manual, e cujo uso descreve-se no que segue.
3.2 Do que consta o Fuzzy Logical Toolbox
No Fuzzy Logical Toolbox estão disponibilizados arquivos e funções destinados ao uso da teoria de conjuntos fuzzy. Neste caso, recomenda-se o reconhecimento das Palavras-chave associadas ao uso desta teoria, que estão sublinhadas na seqüência de comandos relacionados como segue.
3.2.1 Como entrar no Fuzzy Logical Toolbox
Na Janela de Comando da Figura 1 após >> digitar a palavra fuzzy como:
fuzzy
e, em seguida, pressionar a tecla Enter a partir do que aparecerá a tela inicial deste toolbox como mostra o que aparece na Figura 2a.
Figura 2a : Tela inicial do Fuzzy Logical Toolbox. Como pode ser notada na Figura 2a, a opção referente ao tipo de análise fuzzy está destacada com o nome MAMDANI. Sendo assim, no que segue descreve-se brevemente do que o sistema MAMDANI é constituído.
3.2.2 O sistema de Mamdani
Em geral, um sistema fuzzy faz corresponder a cada entrada fuzzy uma saída fuzzy. No entanto, espera-se que a cada entrada crisp (um número real, ou par de números reais, ou n-upla de números reais) faça corresponder uma saída crisp. Neste caso, um sistema fuzzy é uma função de Rn^ em R, construída de alguma maneira específica. Os módulos que seguem indicam a metodologia para a construção desta função:
1) Módulo de fuzzificação : é o que modela matematicamente a informação das variáveis de entrada por meio de conjuntos f uzzy. É neste módulo que se mostra a grande importância do especialista do processo a ser analisado, pois a cada variável de entrada devem ser atribuídos termos lingüísticos que representam os estados desta variável e, a cada termo lingüístico, deve ser associado um conjunto fuzzy por uma função de pertinência; 2) Módulo da base de regras : é o que constitui o núcleo do sistema. É neste módulo onde “se guardam” as variáveis e suas classificações lingüísticas; 3) Módulo de inferência: é onde se definem quais são os conectivos lógicos usados para estabelecer a relação fuzzy que modela a base de regras. É deste módulo que depende o sucesso do sistema fuzzy já que ele fornecerá a saída (controle) fuzzy a ser adotado pelo controlador a partir de cada entrada fuzzy ; e 4) Módulo de defuzzificação : que traduz o estado da variável de saída fuzzy para um valor numérico.
É importante ressaltar que existem diferentes métodos de inferência fuzzy com diferentes propriedades. O Fuzzy Logic toolbox do MATLAB oferece duas opções: o Método de Mamdani e o Método de Sugeno. Analogamente, existem diversos métodos
com a intuição humana, todo o conteúdo desta apostila foi preparado utilizando-se os seguintes métodos disponibilizados por este toolbox : o Método de Mamdani, na etapa de inferência, e o Método do centro de gravidade ( centroid ), na etapa de defuzzificação. Nota-se que há casos específicos em que se recomenda o uso do método de Sugeno (ver manual do MATLAB).
Para um melhor entendimento destes e de outros métodos de inferência e de defuzzificação , sugere-se a leitura de PEDRYCZ & GOMIDE (1998).
A Figura 2b destaca a configuração básica para o uso do Fuzzy Logic Toolbox , segundo estas especificações, e será mantida como base para todo o desenvolvimento
Figura 3: Destaque das opções selecionadas para a introdução das variáveis de entrada e/ou saída
É importante ressaltar que pode haver diversas variáveis de entrada bem como de saída. Porém, neste manual, será tomado o sistema de duas variáveis de entrada e uma de saída, o que, na literatura é descrito como MISO, posto que em Inglês MISO significa “multiple input and simple output”; outros sistemas são descritos por MIMO (multiple input and multiple output).
3.2.4 Como remover variáveis de entrada e/ou de saída
Para remover “caixas” de variáveis de entrada e/ou de variáveis de saída, pressionar o botão esquerdo do mouse uma vez na “caixa” correspondente à variável que se quer remover, seguindo a opção:
E d i t A d d V a r i a b l e s R e m o v e S e l e c t e d V a r i a b l e
como mostra o que está destacado na Figura 4.
Figura 4: Opção selecionada para a remoção de variáveis de entrada e/ou saída
3.2.5 Como mudar o nome das variáveis de entrada e/ou saída
Nesta etapa serão dados nomes às variáveis de entrada e de saída. Para mudar o nome das “caixas” das variáveis de entrada, e/ou de saída, pressionar o botão esquerdo do mouse em cima da “caixa” que se quer renomear, escrever o nome escolhido no local destacado em vermelho no canto inferior direito como indicado nas Figuras 5a e/ou 5b respectivamente e pressionar a tecla Enter.
Escolher o Nome
Figura 5a : Mudança do nome das variáveis de entrada
Escolher o Nome
Figura 5b: Mudança do nome das variáveis de saída
3.2.7 Funções de pertinência.
De acordo com o que consta na secção 3.2.2, um conjunto fuzzy é caracterizado por uma função de pertinência que assume valores dentro do intervalo [0,1]. Enquanto na teoria de conjuntos clássica, a função de pertinência assume apenas os valores zero- indicando que o elemento não pertence ao conjunto-, ou um- indicando que o elemento pertence ao conjunto-, na teoria de conjuntos fuzzy, os elementos podem estar associados a graus de pertinência entre zero e um indicando que os mesmos podem pertencer parcialmente a um conjunto.
A princípio, qualquer função que associe valores entre zero e um a elementos de um dado conjunto, pode ser tomada como função de pertinência. Entretanto, na escolha de tais funções, deve-se levar em conta o contexto em que estas serão utilizadas na representação das variáveis lingüísticas. Neste sentido, tanto o número quanto o formato das funções de pertinência devem ser escolhidos de acordo com o conhecimento sobre o processo que se quer estudar. Uma breve descrição de funções de pertinência do método de Mamdani pode ser vista no ANEXO 1.
3.2.7.1 Como alterar o número e o formato das funções de pertinência
Para se alterar o número e o formato das funções de pertinência das variáveis de entrada deve-se, a partir do que está indicado na Figura 6a, pressionar o botão esquerdo do mouse nas seguintes opções:
Edit Remove all
MFs
e posteriormente, em:
Edit Remove all
Add MFs
A partir do que aparecerá o que mostra a Figura 7a.
Figura 7 a: Escolha do número e da forma das funções de pertinência para variáveis de entrada
De acordo com as Figuras 7b e 7c, que exibem uma ampliação da região destacada na Figura 7a, deve-se escolher a quantidade e o tipo das funções de pertinência.
Escolhidos o número e o formato das funções de pertinência deve-se pressionar em “OK”. Tal procedimento deve ser repetido para todas as variáveis de entrada.
Para se alterar o número e o formato das funções de pertinência das variáveis de saída deve-se seguir os mesmos procedimentos já descritos para as variáveis de entrada, porém a partir do que está ilustrado na Figura 6b.
Escolha o Número de Funções de Pertinência
Figura 7b : Escolha do número de funções de pertinência para variáveis de entrada.
O que de fato o toolbox aciona é a função:
se x c
se b x c c b
c x
se a x b b a
x a
se x a
A x
μ ( )
Nome da Função de Pertinência
Pontos da Função de Pertinência. ( a= 0.1; b =0.5 e c = 0.9)
Domínio da variável de entrada input 1.
Formato da Função de Pertinência
Figura 9: Funções de pertinência triangular da variável de entrada Input
Para se determinar os valores de a , b e c deve-se, na Figura 7c, escolher a opção trimf. Como exemplo, como mostrado na Figura 9, escolheu-se, para a variável de entrada input1 , três funções de pertinência com formato triangular: mf1 , mf2 e mf3 , sendo a=0,1;b=0.5 e c=0,9 para mf2. Os outros valores de a, b e c devem ser definidos para cada uma das funções de pertinência.
Pressionando-se o botão esquerdo do mouse em cima da função de pertinência que se quer alterar, esta aparecerá destacada em vermelho, como é o caso da função mf que aparece na Figura 9. Nos locais indicados nesta mesma Figura, deve-se selecionar um nome apropriado para cada função de pertinência, e digitar entre os colchetes, separados por um espaço, os valores de a, b, c e pressionar a tecla Enter.
Caso haja interesse pode-se utilizar em uma mesma variável de entrada e/ou saída, funções de pertinência com formatos distintos. Para tanto basta escolher outro formato no local indicado na Figura 9.
3.2.7.2.2 Funções de pertinência Gaussianas (gaussmf)
As funções de pertinência Gaussianas são caracterizadas pela sua média ( μμ ) e seu desvio padrão ( σσ ). Este tipo de função de pertinência tem um decaimento suave e tem valores diferentes de zero para todo domínio da variável estudada. A Figura 10 exibe uma função de pertinência Gaussiana. Nesta figura encontram-se no eixo vertical os valores da função de pertinência e no eixo horizontal os valores da variável que se quer estudar.
Figura 10 : Função de pertinência gaussiana.
Neste caso, a função que o toolbox aciona é:
exp( ( ) )/ 2 )
ν σ
μ x
se xestáforadodomínio A x
Para se escolher o formato Gaussiano para as funções de pertinência de uma variável de entrada e/ou saída, deve-se escolher a opção gauss mf (ver Figura 7c). Como exemplo, observa-se na Figura 11 que se escolheu, para a variável de entrada input1 , três funções de pertinência com formato Gaussiano.