Lógica Fuzzy
com Matlab
®
INTRODUÇÃO
◆
Lógica Fuzzy
A lógica fuzzy, também denominada lógica nebulosa ou difusa, é uma teoria
que incorpora a experiência, a intuição, o conhecimento especialista e a
natureza imprecisa do processo decisório humano através de um conjunto
INTRODUÇÃO
Teorias como a teoria clássica dos conjuntos e a teoria das probabilidades,
embora úteis, nem sempre conseguem captar a riqueza da informação
fornecida por seres humanos.
A lógica fuzzy tem como base a capacidade de raciocínio aproximado
mostrando-se muito mais eficiente para uma grande variedade de
problemas para os quais é difícil precisar informações.
INTRODUÇÃO
Em 1965 Lotfi A. Zadeh (1965), engenheiro eletrônico, professor de Teoria dos Sistemas na
Universidade da Califórnia – Berkeley, publicou o primeiro artigo sobre a teoria dos conjuntos
nebulosos para tratar as incertezas não probabilísticas, o que foi denominado Fuzzy Sets.
Este trabalho contribuiu para o desenvolvimento da Lógica Fuzzy que, diferentemente da
lógica tradicional, supera a ideia de um elemento pertencer ou não a um determinado
conjunto, permitindo que um elemento pertença a um conjunto com certo grau de
pertinência.
Ele tinha como objetivo fornecer ferramentas matemáticas capazes de lidar com o raciocínio
lógico que contemplassem aspectos imprecisos e ambíguos, tipo de raciocínio não passível de
INTRODUÇÃO
A teoria de Zadeh por ser menos restritiva, pode ser considerada mais adequada para
o tratamento de informações fornecidas por seres humanos do que a teoria de
probabilidades.
Tais teorias têm sido cada vez mais usadas em sistemas que utilizam
informações fornecidas por seres humanos para automatização de processos.
Os primeiros trabalhos responsáveis pelo surgimento da lógica fuzzy tinham como
objetivo tornar as máquinas capazes de “pensar”, ou tomar decisões e raciocinar sob
INTRODUÇÃO
Os sistemas que exigem altíssimos níveis de precisão e exatidão consomem muito tempo e
tem alto custo.
Além do mais, sistemas muito complexos são de caracterização imprecisas e inexatas.
Muitos problemas, para um aperfeiçoamento do trabalho, é necessário que se aceite
informações imprecisas em certo nível.
A teoria da lógica fuzzy oferece então, subsídios para sistemas convencionais cuja
INTRODUÇÃO
Soluções preliminares e aproximadas são rápidas e muitas vezes estão dentro do esperado, o
que justifica a preferência por tal técnica, que trata de forma mais simples os sistemas de
modelagem extremamente difícil por apresentarem características não lineares.
São dois os tipos de sistemas em que a lógica fuzzy pode ser aplicada:
➢ Problemas muito complexos com comportamentos difíceis de serem compreendidos e
➢ problemas onde resultados aproximados são aceitáveis.
Nas aplicações da lógica fuzzy destacam-se o controle de processos, a aproximação funcional,
INTRODUÇÃO
Em aplicações complexas, a tradução de informação imprecisa utilizando a teoria tradicional
é inviabilizada em razão da complexidade matemática que poderia resultar.
Entretanto, a teoria dos conjuntos fuzzy proporciona grande facilidade para descrever e
processar esse tipo de informação através de variáveis linguísticas e de uma base de
conhecimento fuzzy representada por um conjunto de regras.
Dentre as vantagens da utilização da lógica fuzzy tem-se o mecanismo de raciocínio similar ao
do ser humano, por meio do uso de termos linguísticos, além do baixo custo de
INTRODUÇÃO
As limitações estão relacionadas à geração das regras fuzzy e à definição das funções de
pertinência; ambas, baseadas em uma avaliação subjetiva do conhecimento do
especialista. Adiciona-se a isso a inexistência de técnicas de aprendizado.
As primeiras aplicações industriais utilizando a lógica fuzzy começaram na década de
1970.
Em 1980 apareceram as primeiras aplicações em engenharia de controle por algumas
INTRODUÇÃO
◆
Lógica Fuzzy
•
Maneira conveniente de mapear um espaço de entradas em um espaço de saídas
•
Exemplo:
• dado o serviço de um restaurante, qual a gorjeta ideal ?
caixa
preta
Espaço de entrada
(todas as classificações de serviço possíveis)
Espaço de saída (todas as gorjetas possíveis)
classificação do
serviço de hoje gorjeta de hoje
Para aplicação da teoria da lógica fuzzy, tem-se os seguintes conceitos:
INTRODUÇÃO
◆
Vantagens da Lógica Fuzzy
•
Conceitualmente fácil de ser entendida
•
Flexibilidade
•
Tolerância a imprecisão de dados
•
Modelamento não-linear de complexidade arbitrária
•
Construída baseado na experiência dos especialistas
•
Misturada a outras técnicas de controle
BASES DA LÓGICA FUZZY
◆
Conjunto Fuzzy
•
Conjunto sem fronteiras rígidas e bem definidas
•Ex.: dias do fim de semana
Dias do fim de semana
◆
Possibilidade de valores de respostas
“contínuas”
•
Representação de
“verdadeiro”(1
) e
“falso”(0
) ultrapassada
•Valores entre 0 e 1 agora são possíveis
• Diversos valores ao invés de somente dois
Sábado Domingo
BASES DA LÓGICA FUZZY
Dom. 2ª Fim -d e -s e ma n a5ª 6ª Sáb. Dom. 2ª
•
Ex.: dias do fim-de-semana
Não-Fuzzy
5ª 6ª Sáb.
0 1 0 1 Fuzzy 0 1 Fim -d e -s e ma n a 0 1
5ª 6ª Sáb. Dom. 2ª 5ª 6ª Sáb. Dom. 2ª
BASES DA LÓGICA FUZZY
Variáveis linguísticas
Define-se uma variável linguística como uma entidade utilizada para representar de modo
impreciso, através da linguagem cotidiana, um conceito ou uma variável de um dado
problema.
A altura de uma pessoa é um exemplo de variável linguística. Desta forma, esta variável
pode ser expressa através de números obtidos de uma medição com uma trena ou de
valores subjetivos não precisos, tais como “baixo”, “mediano”, “alto”, por exemplo.
Esta variável é composta pelo nome (no caso do exemplo, a altura); pelos valores
linguísticos (“baixo”, “mediano” e “alto”), que são os conjuntos nebulosos; pelo universo
de discurso; e pelas funções de pertinência que associa um grau de pertinência a cada
BASES DA LÓGICA FUZZY
Um exemplo de aplicação da lógica fuzzy, a classificação da altura de uma pessoa, é
mostrado na Figura.
Observa-se nesta figura a relação de altura (eixo horizontal) com o grau de pertinência
(eixo vertical).
Com este exemplo podemos concluir
que uma pessoa com 1,70m é
classificada como de altura média
com grau de pertinência 1, e uma
pessoa com 1,65m aproximadamente
seria classificada como altura média
BASES DA LÓGICA FUZZY
FUZIFICAÇÃO
Fuzificação é a codificação das entradas em graus de pertinência , para cada conjunto
fuzzy. Essa codificação é baseada no conhecimento do especialista.
Tomando-se o exemplo, onde a variável fuzzy é a altura de uma pessoa e chamando
A1=baixo, A2=mediano, A3=alto, desta figura, tem-se:
µ(x=A1)=0,7; µ(x=A2)=0,2; µ(x=A3)=0
Variável Fuzzy, altura de
uma pessoa e seus
conjuntos
BASES DA LÓGICA FUZZY
REGRAS FUZZY
As regras fuzzy fornecem uma descrição qualitativa do sistema em estudo.
O conhecimento em um Sistema de Inferência Fuzzy (SIF) é armazenado em geral na forma
de regras composta pelos termos “antecedente” e o “consequente”.
SE <antecedente> ENTÃO<consequente> e também das operações nebulosas, como União,
Interseção, entre outras.
O antecedente é composto por um conjunto de condições envolvendo variáveis fuzzy e
expressões linguísticas que, quando satisfeitas, mesmo que parcialmente, determinam o
processamento da parte consequente da regra através de um mecanismo de inferência
BASES DA LÓGICA FUZZY
O consequente é composto por um conjunto de ações que são geradas com o disparo da
regra.
Os consequentes de todas as regras disparadas são processados em conjunto, para gerar
uma resposta determinística para cada variável de saída do Sistema de Inferência Fuzzy.
No SIF é importante que existam tantas regras quantas forem necessárias para mapear
totalmente as combinações dos termos das variáveis, formando uma base de regras
completa.
As regras de controle são baseadas no conhecimento e expectativa do projetista sendo que
cada uma delas demanda uma ação de controle.
A ordem em que são dispostas as regras, não afeta o resultado, pois elas são declarativas e
BASES DA LÓGICA FUZZY
O número total de regras em um sistema de controle difuso depende do número de
entradas do controlador e do número de conjuntos difuso de cada entrada.
Se em um controlador tem-se “p” entradas com a mesma quantidade de conjuntos
difusos “n”, o número total de regras, “R” é dado por:
R = n
p
Portanto, se um sistema tem quatro variáveis de entrada e cada uma delas tem três
conjuntos difusos, a quantidade de combinações de entrada é de oitenta e uma regras de
BASES DA LÓGICA FUZZY
A literatura classifica os controladores fuzzy considerando as características do método de
tomada de decisão que eles empregam.
Apesar dos muitos métodos citados e apresentados na literatura, Sugeno (1985) os
separa em dois grandes grupos:
Os chamados controladores do tipo MAMDANI e os controladores do tipo SUGENO
BASES DA LÓGICA FUZZY
Os controladores do tipo MAMDANI são frutos do trabalho publicado em 1973 por
Mamdani onde é definido o algoritmo destes sistemas.
Esses controladores convertem os valores quantitativos em qualitativos (fuzzy) e após
isso, através de inferência, em outros valores ainda qualitativos, sendo necessário o
papel do defuzificador para a resposta final quantitativa.
De fácil modelagem por basear-se na intuição, os controladores MAMDANI (MAMDANI,
1973) são bons quando um controle grosseiro é aceitável.
Para controle mais fino, o controlador SUGENO apresenta desempenho superior, porém
BASES DA LÓGICA FUZZY
Nos controladores SUGENO, o resultado da inferência de suas regras é dado por um valor
numérico através de funções das variáveis linguísticas de entrada, isto é, cada regra conduz
a consequências que são funções das variáveis nebulosas de entrada, em forma
matemática tem-se:
Se x é B, então y é C => tipo Mamdani
Se x é B, então y é f(x) => tipo Sugeno
A resposta de um controlador do tipo SUGENO é dada pela média ponderada das
BASES DA LÓGICA FUZZY
Estruturas básicas para um controlador fuzzy
A estrutura básica para um controlador fuzzy pode ser visualizada pelo diagrama de
BASES DA LÓGICA FUZZY
Observa-se que o controlador fuzzy consiste de quatro principais
unidades:
• Fuzificador que converte uma entrada crisp em um conjunto termos Fuzzy;
• Regras fuzzy (base de dados) baseadas na execução do sistema;
• Inferências fuzzy que executam aproximadamente raciocínio associado as
variáveis de entrada com regras fuzzy;
• Defuzificador o qual converte as saídas do controlador fuzzy para um valor
BASES DA LÓGICA FUZZY
◆
Funções de Pertinência (
Membership Functions
)
•
Curva que define como cada ponto da entrada é mapeado
em um valor ou grau de pertinência entre 0 e 1
•
Ex.: quando uma pessoa é considerada gorda ?
• Funções de pertinência descontínua e contínua
0
1 1
Peso(Kg) Grau de
Pertinência (µ)
Gordo (µ = 1.0)
Não é gordo (µ = 0.0) 0
Peso(Kg)
Definitivamente gordo (µ = 0.87)
BASES DA LÓGICA FUZZY
◆
Tipos de funções de pertinência do
“Fuzz
y
Toolbox”
1 1
0 0
trimf trapmf
0 1
0 1
gaussmf gauss2mf 0
1
BASES DA LÓGICA FUZZY
0 0
1
zmf pimf 0
1
smf
◆
Tipos de funções de pertinência do
“Fuzz
y
Toolbox”
1 1 1
0 0
sigmf dsigmf
1
0
BASES DA LÓGICA FUZZY
◆
Operações Lógicas
•
A AND B = min(A,B)
•
A OR B = max(A,B)
BASES DA LÓGICA FUZZY
0 1 1 0 0 1 1 0 0 1 0 0 1 1 1 0 Lógica de dois valores Lógica de vários valores AND min(A,B) OR max(A,B) NOTBASES DA LÓGICA FUZZY
◆
Regras "se-então"
•
Usadas para formular as expressões condicionais que
englobam a lógica fuzzy.
•
O antecedente representa uma interpretação que retorna um número entre 0 e 1
•
O conseqüente é a designação de todo um conjunto fuzzy
B
para a variável de saída
y
•
Ex.: Se o serviço é bom, a gorjeta é média
• “serviço é bom” representa um número entre 0 e 1
• média é representada por um conjunto fuzzy
Se x é igual a A, então y é B
BASES DA LÓGICA FUZZY
◆
Regras "se-então"
•
A entrada para uma regra é o valor da variável de entrada
•
A saída é todo um conjunto fuzzy
•
Interpretação das regras "se-então
”
envolve as seguintes
partes:
• Avaliação do antecedente
• Fuzzyficação da entrada
• Aplicação de operadores fuzzy, se necessário • Gera o grau de pertinência para a regra
• Aplicação do resultado ao consequente, ou implicação
BASES DA LÓGICA FUZZY
Fuzzificação das entradas
Se o serviço é excelente ou a comida é deliciosa, então a gorjeta é generosa
serviço (fixo)
µ = 0.1 excelente
comida (fixo)
BASES DA LÓGICA FUZZY
Fuzzificação das entradas
Se o serviço é excelente ou a comida é deliciosa, então a gorjeta é generosa
serviço (fixo)
µ = 0.1 excelente
comida (fixo)
µ = 0.8 deliciosa
Se ( 0.1 ou 0.8 ), então a gorjeta é generosa
Aplicar operador fuzzy OR (max)
0.1
0.8
MAX() 0.8
BASES DA LÓGICA FUZZY
Fuzzificação das entradas
Se o serviço é excelente ou a comida é deliciosa, então a gorjeta é generosa
serviço (fixo)
µ = 0.1 excelente
comida (fixo)
µ = 0.8 deliciosa
Se ( 0.1 ou 0.8 ), então a gorjeta é generosa
Aplicar operador fuzzy OR (max)
0.1
0.8
MAX() 0.8
Grau de pertinência
Aplicar operador de implicação OR (max)
Se ( 0.8 ), então a gorjeta é generosa
BASES DA LÓGICA FUZZY
◆
Regras "se-então"
•
Avaliação do antecedente
• Fácil em lógica de dois valores
• Usando vários valores
• Se o antecedente é verdadeiro em algum grau de pertinência, o
conseqüente também é verdadeiro no mesmo grau
• Número de 0 a 1 é gerado (grau de pertinência)
•
Aplicação do resultado ao conseqüente
• Conjunto fuzzy de saída modificado pela função de implicação • Modificação influenciada pelo grau de pertinência
• Maneiras mais comuns
• Truncamento, usando a função min()
SISTEMAS DE INFERÊNCIA FUZZY - SIF
◆
Mapeamento dos valores de entrada usando lógica fuzzy
◆
Ex.: gorjeta ideal
Entrada 1
serviço (0-10)
Entrada 2
comida (0-10)
Regra 3
Se o serviço é excelente ou a comida é deliciosa, então a gorjeta é generosa
Regra 1
Se o serviço é ruim ou a comida é péssima, então a gorjeta é baixa
Regra 2
Se o serviço é bom, então a
gorjeta é média
Σ
gorjeta (5-15%)SaídaEntradas são números (não-fuzzy) dentro de uma faixa
Regras são processadas em paralelo
Resultado das regras é agregado edefuzzyficado
SISTEMAS DE INFERÊNCIA FUZZY - SIF
◆
Passo 3
–
Aplicar operador de implicação
•
Aplicação de pesos no resultado do antecedente
•
Remodelamento do conseqüente em função do valor do
antecedente
•
Métodos usados
• Truncamento, através da função min()
• Dimensionamento, através da função prod()
0.1
comida = 8
0.8
então gorjeta é generosa serviço é excelente ou comida é deliciosa
generosa generosa
Resultado da implicação serviço = 6
SISTEMAS DE INFERÊNCIA FUZZY - SIF
◆
Passo 4
–
Agregar todas as saídas
•
Combinação das saídas (fuzzy) em um único conjunto fuzzy
• Entradas são as funções retornadas pela implicação
• Saída é um conjunto fuzzy para cada variável de saída
•
Métodos
• Máximo, através da função max()
• OR probabilístico, através da função probor()
serviço = 6 comida = 8
SISTEMAS DE INFERÊNCIA FUZZY - SIF
péssima
baixa ruim
baixa
5 15%
serviço = 6 comida = 8 péssima
baixa ruim
baixa
5 15%
serviçoé ruim ou comida é péssima então gorjetaé baixa
média média
bom
5 15%
serviçoé bom então gorjeta é média
serviço = 6 comida = 8 péssima baixa ruim baixa 5 15%
serviçoé ruim ou comida é péssima então gorjetaé baixa
média média
bom
5 15%
serviçoé bom então gorjeta é média
deliciosa
generosa generosa
excelente
5 15%
serviçoé excelente ou comida édeliciosa então gorjetaé generosa
serviço = 6 comida = 8 péssima
baixa ruim
baixa
serviçoé ruim ou comida é péssima então gorjetaé baixa
média média
bom
serviçoé bom então gorjeta é médiamédia
deliciosa
generosa ge erosanerosa
excelente
serviçoé excelente ou comida édeliciosa então gorjetaé generosagenerosa
5 15% Resultado da agregação (soma) média 5 15% generosa 5 15% baixa baixa 5 15% é baixa
◆
Passo 5
–
Defuzzyficação
•
Obtém valor numérico que representa a saída do sistema
• Entrada é o conjunto fuzzy gerado na agregação
• Saída é um número dentro da faixa estipulada
•
Métodos
• Centróide
• Bisetor
• Média dos máximos
• Maior dos máximos
• Menor dos máximos
5 15%
gorjeta = 13,5%
Resultado da defuzzyficação
serviçoé bom então gorjeta é média
serviçoé excelente ou comida édeliciosa então gorjetaé generosa serviçoé ruim ou comida é péssima então gorjetaé baixa
serviço = 6 comida = 8 bom
deliciosa excelente
péssima ruim
1–Fuzzyficação das entradas
serviçoé bom então gorjeta é média
serviçoé excelente ou comida édeliciosa então gorjetaé generosa serviçoé ruim ou comida é péssima então gorjetaé baixa
serviço = 6 comida = 8 bom
deliciosa excelente
péssima ruim
1–Fuzzyficação das entradas 2–Aplicação do operador fuzzy
serviçoé bom então gorjeta é média
serviçoé excelente ou comida édeliciosa então gorjetaé generosa serviçoé ruim ou comida é péssima então gorjetaé baixa
serviço = 6 comida = 8 bom
deliciosa excelente
péssima ruim
1–Fuzzyficação das entradas 2–Aplicação do operador fuzzy
média média 5 15% generosa generosa 5 15% baixa baixa 5 15%
serviçoé bom então gorjeta é média
serviçoé excelente ou comida édeliciosa então gorjetaé generosa serviçoé ruim ou comida é péssima então gorjetaé baixa
serviço = 6 comida = 8 bom
deliciosa excelente
péssima ruim
1–Fuzzyficação das entradas 2–Aplicação do operador fuzzy
média média 5 15% generosa generosa 5 15% baixa baixa 5 15%
3–Aplicação de operador de implicação
4 -Agre ga ç ão 5 15%
serviçoé bom então gorjeta é média
serviçoé excelente ou comida édeliciosa então gorjetaé generosa serviçoé ruim ou comida é péssima então gorjetaé baixa
serviço = 6 comida = 8 bom
deliciosa excelente
péssima ruim
1–Fuzzyficação das entradas 2–Aplicação do operador fuzzy
média média 5 15% generosa generosa 5 15% baixa baixa 5 15%
3–Aplicação de operador de implicação
4 -Agre ga ç ão
gorjeta = 13,5% 5 -Defuzzyficação
5 15%
Sistema de Inferência
Fuzzy
Editor de Funções de Pertinência
Visualizador de superfície Visualizador
de regras
Editor de Regras
Editor SIF
Matlab
®Matlab
®Fuzzy Toolbox
Matlab
®Matlab
®Fuzzy Toolbox
◆
Editor SIF (Sistema de Inferência Fuzzy - Mamdani)
Matlab
®Fuzzy Toolbox
Matlab
®Fuzzy Toolbox
Matlab
®Fuzzy Toolbox
Matlab
®Fuzzy Toolbox
Matlab
®Fuzzy Toolbox
◆
Editor SIF (Sistema de Inferência Fuzzy)
Matlab
®Fuzzy Toolbox
◆
Editor SIF (Sistema de Inferência Fuzzy)
Duplo clique no ícone da variável de entrada para abrir o Editor de Funções de Pertinência
Matlab
®Fuzzy Toolbox
◆
Editor SIF (Sistema de Inferência Fuzzy)
Duplo clique no ícone da variável de entrada para abrir o Editor de Funções de Pertinência
Nome do sistema é mostrado aqui. Pode ser mudado salvando o sistema
Matlab
®Fuzzy Toolbox
◆
Editor SIF (Sistema de Inferência Fuzzy)
Duplo clique no ícone da variável de entrada para abrir o Editor de Funções de Pertinência
Nome do sistema é mostrado aqui. Pode ser mudado salvando o sistema
Menu para seleção das funções fuzzy
Matlab
®Fuzzy Toolbox
◆
Editor SIF (Sistema de Inferência Fuzzy)
Duplo clique no ícone da variável de entrada para abrir o Editor de Funções de Pertinência
Nome do sistema é mostrado aqui. Pode ser mudado salvando o sistema
Menu para seleção das funções fuzzy
Duplo clique no diagra-ma do sistediagra-ma para abrir Editor de Regras
Matlab
®Fuzzy Toolbox
◆
Editor SIF (Sistema de Inferência Fuzzy)
Duplo clique no ícone da variável de entrada para abrir o Editor de Funções de Pertinência
Menu para seleção das funções fuzzy
Duplo clique no ícone da variável de saída para abrir o Editor de Funções de Pertinência Nome do sistema é
mostrado aqui. Pode ser mudado salvando o sistema
Duplo clique no diagra-ma do sistediagra-ma para abrir Editor de Regras
Matlab
®Fuzzy Toolbox
◆
Editor SIF (Sistema de Inferência Fuzzy)
Duplo clique no ícone da variável de entrada para abrir o Editor de Funções de Pertinência
Duplo clique no ícone da variável de saída para abrir o Editor de Funções de Pertinência Nome do sistema é
mostrado aqui. Pode ser mudado salvando o sistema
Menu para seleção das funções fuzzy
Duplo clique no diagra-ma do sistediagra-ma para abrir Editor de Regras
Campo de edição para nomear e editar os nomes das variáveis de entrada e saída
Matlab
®Fuzzy Toolbox
Matlab
®Fuzzy Toolbox
Matlab
®Fuzzy Toolbox
◆
Construindo o
“gorjetador”
Nome da variável de entrada alterado para
Matlab
®Fuzzy Toolbox
◆
Construindo o
“gorjetador”
Nome da variável de entrada alterado para
Matlab
®Fuzzy Toolbox
◆
Construindo o
“gorjetador”
Nome da variável de entrada alterado para
Matlab
®Fuzzy Toolbox
◆
Construindo o
“gorjetador”
Nome da variável de entrada alterado para
Matlab
®Fuzzy Toolbox
◆
Construindo o
“gorjetador”
Nome da variável de entrada alterado para
“serviço
Nome da variável de entrada alterado para
Matlab
®Fuzzy Toolbox
◆
Construindo o
“gorjetador”
Nome da variável de entrada alterado para
“serviço
Nome da variável de entrada alterado para
“comida”
Nome da variável de saída alterado para
Matlab
®Fuzzy Toolbox
Matlab
®Fuzzy Toolbox
Matlab
®Fuzzy Toolbox
Matlab
®Fuzzy Toolbox
Matlab
®Fuzzy Toolbox
Matlab
®Fuzzy Toolbox
◆
Editor de Funções de Pertinência
Área da“Palheta de
Matlab
®Fuzzy Toolbox
◆
Editor de Funções de Pertinência
Área da“Palheta de
Variáveis”. Clique na variável para editar suas funções
Matlab
®Fuzzy Toolbox
◆
Editor de Funções de Pertinência
Área da“Palheta de
Variáveis”. Clique na variável para editar suas funções
Nome, tipo da variável, alcance e o alcance mostrado são exibidos ou alterados aqui
Matlab
®Fuzzy Toolbox
◆
Editor de Funções de Pertinência
Gráfico mostra todas as funções de perti-nência da variável
Área da“Palheta de
Variáveis”. Clique na variável para editar suas funções
Nome, tipo da variável, alcance e o alcance mostrado são exibidos ou alterados aqui
Matlab
®Fuzzy Toolbox
◆
Editor de Funções de Pertinência
Área da“Palheta de
Variáveis”. Clique na variável para editar suas funções
Nome, tipo da variável, alcance e o alcance mostrado são exibidos ou alterados aqui
Gráfico mostra todas as funções de perti-nência da variável
Clique em uma curva para selecioná-la e alterar seus atributos, incluindo nome, tipo e parâmetros numéricos. Arraste omousepara mover a curva ou alterar seu formato
Matlab
®Fuzzy Toolbox
◆
Editor de Funções de Pertinência
Área da“Palheta de
Variáveis”. Clique na variável para editar suas funções
Nome, tipo da variável, alcance e o alcance mostrado são exibidos ou alterados aqui
Gráfico mostra todas as funções de perti-nência da variável
Clique em uma curva para selecioná-la e alterar seus atributos, incluindo nome, tipo e parâmetros numéricos. Arraste omousepara mover a curva ou alterar seu formato
Nome, tipo e
parâmetros numéricos da função são exibidos ou alterados aqui
Matlab
®Fuzzy Toolbox
Matlab
®Fuzzy Toolbox
◆
Construindo o
“gorjetador”
Matlab
®Fuzzy Toolbox
◆
Construindo o
“gorjetador”
Matlab
®Fuzzy Toolbox
◆
Construindo o
“gorjetador”
Matlab
®Fuzzy Toolbox
◆
Construindo o
“gorjetador”
Matlab
®Fuzzy Toolbox
◆
Construindo o
“gorjetador”
Matlab
®Fuzzy Toolbox
◆
Construindo o
“gorjetador”
Matlab
®Fuzzy Toolbox
◆
Construindo o
“gorjetador”
Matlab
®Fuzzy Toolbox
◆
Construindo o
“gorjetador”
Matlab
®Fuzzy Toolbox
◆
Construindo o
“gorjetador”
Alcance e alcance mostrado alterados para o intervalo [0 10]
Matlab
®Fuzzy Toolbox
◆
Construindo o
“gorjetador”
Alcance e alcance mostrado alterados para o intervalo [0 10]
Matlab
®Fuzzy Toolbox
◆
Construindo o
“gorjetador”
Alcance e alcance mostrado alterados para o intervalo [0 10]
Matlab
®Fuzzy Toolbox
◆
Construindo o
“gorjetador”
Alcance e alcance mostrado alterados para o intervalo [0 10]
Matlab
®Fuzzy Toolbox
◆
Construindo o
“gorjetador”
Alcance e alcance mostrado alterados para o intervalo [0 10]
Matlab
®Fuzzy Toolbox
Como alterar o domínio e o nome das funções de pertinência
Os valores associados à máxima pertinência, onde a função de pertinência é igual a um, e
os valores associados à mínima pertinência, onde o valor da função de pertinência é igual a
zero.
Tal procedimento é diferente para os distintos formatos de funções de pertinência
disponíveis no Fuzzy Logical Toolbox.
Os formatos mais comumente utilizados para funções de pertinência são os triangulares
(trimf), os trapezoidais (trapmf) e os gaussianos (gaussmf).
Por esta razão, apenas para estes formatos serão indicados quais procedimentos devem ser
Matlab
®Fuzzy Toolbox
Funções de pertinência triangulares (trimf)
As funções de pertinência triangulares são caracterizadas por uma terna ( a, b, c),
onde a e c determinam o intervalo dentro do qual a função de pertinência assume valores
diferentes de zero, e b é o ponto onde a função de pertinência é máxima.
Figura exibe uma função de pertinência triangular onde são destacados a, b e c. 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.
Matlab
®Fuzzy Toolbox
Matlab
®Fuzzy Toolbox
Para se determinar os valores de a, b e c deve-se, escolher a opção trimf.
Como exemplo, como mostrado na Figura, 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
Matlab
®Fuzzy Toolbox
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 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.
Matlab
®Matlab
®Fuzzy Toolbox
A média (µ) e o desvio padrão (σ) devem ser definidos para cada uma das funções de
pertinência.
Clicando-se uma vez em cima da função de pertinência que se quer alterar, esta
aparecerá destacada em vermelho, como é o caso da função mf2 que aparece na
Figura.
Nos locais indicados nesta mesma Figura, deve-se selecionar um nome apropriado
para cada função de pertinência, e digitar entre colchetes, separados por um
Matlab
®Fuzzy Toolbox
Funções de pertinência trapezoidal (trapmf)
As funções de pertinência trapezoidais são caracterizadas por um conjunto de quatro
valores de a, b, c e d.
onde “a” e “d” determinam o intervalo dentro do qual a função de pertinência assume
valores diferentes de zero, e “b” e “c” determinam o intervalo dentro do qual a função de
pertinência é máxima e igual a 1.
A Figura exibe uma função de pertinência trapezoidal onde podem são destacados os
pontos a, b, c e d.
Nesta Figura encontram-se no eixo vertical os valores da função de pertinência e no eixo
Matlab
®Matlab
®Fuzzy Toolbox
Para se determinar, dentro do Fuzzy Logical Toolbox os valores de a, b, c e d, deve-se
escolher a opção trapmf (ver na Figura).
Como exemplo, como se pode observar na Figura, escolheu-se, para a variável de entrada
input1, três funções de pertinência com formato trapezoidal.
Pressionando-se uma vez em cima da função de pertinência que se quer alterar, esta
aparecerá destacada em vermelho, como é o caso da função mf2 que aparece na Figura.
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
Matlab
®Fuzzy Toolbox
Matlab
®Fuzzy Toolbox
Matlab
®Fuzzy Toolbox
Matlab
®Fuzzy Toolbox
Matlab
®Fuzzy Toolbox
Matlab
®Fuzzy Toolbox
Matlab
®Fuzzy Toolbox
◆
Editor de Regras
Matlab
®Fuzzy Toolbox
◆
Editor de Regras
Regras são colocadas automaticamente usando as ferramentas gráficas
Matlab
®Fuzzy Toolbox
◆
Editor de Regras
Regras são colocadas automaticamente usando as ferramentas gráficas
Escolha do operador fuzzy usado em cada regra
Matlab
®Fuzzy Toolbox
◆
Editor de Regras
Regras são colocadas automaticamente usando as ferramentas gráficas
Escolha do operador fuzzy usado em cada regra
Barra de status mostra as operações mais recentes
Matlab
®Fuzzy Toolbox
◆
Editor de Regras
Regras são colocadas automaticamente usando as ferramentas gráficas
Negação das variáveis de entrada e/ou saída Escolha do operador
fuzzy usado em cada regra
Barra de status mostra as operações mais recentes
Matlab
®Fuzzy Toolbox
◆
Editor de Regras
Regras são colocadas automaticamente usando as ferramentas gráficas
Escolha do operador fuzzy usado em cada regra
Barra de status mostra as operações mais recentes
Negação das variáveis de entrada e/ou saída Aqui estão os botões para deletar, criar ou modificar uma regra. Além disso, ainda é possível especificar o peso que cada regra tem no resultado final Menu de seleção das
Matlab
®Fuzzy Toolbox
Matlab
®Fuzzy Toolbox
Matlab
®Fuzzy Toolbox
Matlab
®Fuzzy Toolbox
Matlab
®Fuzzy Toolbox
Matlab
®Fuzzy Toolbox
Matlab
®Fuzzy Toolbox
◆
Visualizador de Regras
Matlab
®Fuzzy Toolbox
◆
Visualizador de Regras
Cada linha representa uma regra. Clique no número da regra para mostrá-la na barra de status
Matlab
®Fuzzy Toolbox
◆
Visualizador de Regras
Cada linha representa uma regra. Clique no número da regra para mostrá-la na barra de status
Arraste a linha para mudar os valores de entrada e gerar outro valor de saída
Matlab
®Fuzzy Toolbox
◆
Visualizador de Regras
Cada linha representa uma regra. Clique no número da regra para mostrá-la na barra de status
Arraste a linha para mudar os valores de entrada e gerar outro valor de saída
Matlab
®Fuzzy Toolbox
◆
Visualizador de Regras
Cada linha representa uma regra. Clique no número da regra para mostrá-la na barra de status
Arraste a linha para mudar os valores de entrada e gerar outro valor de saída
Esse campo permite alterar os valores de entrada explicitamente Barra de status mostra as operações mais recentes
Matlab
®Fuzzy Toolbox
◆
Visualizador de Regras
Cada linha representa uma regra. Clique no número da regra para mostrá-la na barra de status
Arraste a linha para mudar os valores de entrada e gerar outro valor de saída
Essa caixa mostra a agregação das saídas individuais de cada regra. A linha vermelha mostra o valordefuzzyficado
Esse campo permite alterar os valores de entrada explicitamente Barra de status mostra as operações mais recentes
Matlab
®Fuzzy Toolbox
◆
Visualizador de Regras
Cada linha representa uma regra. Clique no número da regra para mostrá-la na barra de status
Arraste a linha para mudar os valores de entrada e gerar outro valor de saída
Esse campo permite alterar os valores de entrada explicitamente
Essa caixa mostra a agregação das saídas individuais de cada regra. A linha vermelha mostra o valordefuzzyficado
Esses botões tem a funcionalidade de mover os gráficos Barra de status mostra
as operações mais recentes
Matlab
®Fuzzy Toolbox
Matlab
®Fuzzy Toolbox
◆
Visualizador de Superfície
Matlab
®Fuzzy Toolbox
◆
Visualizador de Superfície
Use o mouse para rotacionar o gráfico
C o p y r i g h t © 2 0 0 3 R a f a e l P . L a u f e r . T o d o s o s d i
Matlab
®Fuzzy Toolbox
◆
Visualizador de Superfície
Use o mouse para rotacionar o gráfico
Esse campo permite alterar a densidade da grelha do espaço de entrada
Matlab
®Fuzzy Toolbox
◆
Visualizador de Superfície
Use o mouse para rotacionar o gráfico
Esse campo permite alterar a densidade da grelha do espaço de entrada
Esse campo permite alterar a entrada explicitamente para entradas não especif. na superfície
Matlab
®Fuzzy Toolbox
◆
Visualizador de Superfície
Use o mouse para rotacionar o gráfico
Esse campo permite alterar a densidade da grelha do espaço de entrada
Aperte este botão quando estiver pronto para calcular e plotar Esse campo permite
alterar a entrada explicitamente para entradas não especif. na superfície
Matlab
®Fuzzy Toolbox
◆
Visualizador de Superfície
Use o mouse para rotacionar o gráfico
Esse campo permite alterar a densidade da grelha do espaço de entrada
Aperte esse botão quando estiver pronto para calcular e plotar Esse campo permite
alterar a entrada explicitamente para entradas não especif. na superfície
Barra de status mostra as operações mais recentes
Matlab
®Fuzzy Toolbox
◆
Editor SIF (Sistema de Inferência Fuzzy - SUGENO)
Matlab
®Matlab
®Matlab
®Matlab
®Matlab
®Fuzzy Toolbox
Matlab
®Matlab
®Matlab
®Fuzzy Toolbox
Parametro:
[0 0 0.4]
Relativo ao eixo X onde: • Primeiro valor => inicio
da curva de pertinência no eixo Y.
• Segundo valor => Maior valor alcançado no eixo Y.
Matlab
®Fuzzy Toolbox
Parametro:
[0.1 0.5 0.9] Relativo ao eixo X onde: • Primeiro valor => inicio
da curva de pertinência no eixo Y.
• Segundo valor => Maior valor alcançado no eixo Y.
Matlab
®Matlab
®Matlab
®Matlab
®Matlab
®Matlab
®Matlab
®Matlab
®Matlab
®Matlab
®Matlab
®REFERÊNCIA
◆
The MathWorks, Inc.;
Fuzzy Logic Toolbox
User’s
Guide
, version 2,
Janeiro de 1999.
◆
Laufer, Rafael P., Sistemas Fuzzy com Matlab®, Departamento de
Engenharia Eletrônica e de Computação, Escola Politécnica, UFRJ.
◆
RaphaelMTutorial.; Tutorial Lógica Fuzzy Matlab - Parte 1,
Acessado internet em 27/10/2018.
https://www.youtube.com/watch?v=BptosN9sePc
◆
RaphaelMTutorial.; Tutorial Lógica Fuzzy Matlab - Pate 2, Acessado
internet em 27/10/2018.
REFERÊNCIA
◆
Nogueira, Maycon Mariano.; Aplicando Lógica Fuzzy no Controle de
Robôs Móveis usando
Dispositivos Lógicos Programáveis e a
Linguagem VHDL. Dissertação de mestrado, Faculdade de
Engenharia
–
UNESP, Ilha Solteira, 2013.
◆