Upload
internet
View
124
Download
0
Embed Size (px)
Citation preview
Introdução a Sistemas Fuzzy no Matlab e uso do Simulink
Alexandre Arduini da Silva e Oliveira
Jorge Chaves Barbosa
O que é Lógica Fuzzy?
Conceito
A lógica fuzzy é um conceito matemático surgido em 1965 a partir do conceito de Conjuntos Fuzzy, que são conjuntos nebulosos, ou vagos. Diferentemente dos conjuntos clássicos, os conjuntos fuzzy não são rígidos.
O que é Lógica Fuzzy?
Conceito A importância desse conceito matemático
é a relevância relativa da imprecisão, e a eficiência das respostas imprecisas em alguns casos. A lógica fuzzy já está presente em muitos setores produtivos, como indústrias de aviação, eletrodomésticos, agricultura entre outros.
O que é Lógica Fuzzy?
Vantagens:
• Conceitualmente fácil de ser entendida• Flexibilidade• Tolerância a imprecisão de dados• Modelagem não linear de complexidade arbitrária• Construída baseado na experiência dos
especialistas• Misturada a outras técnicas de controle• Baseada em linguagem natural
O que é Lógica Fuzzy?
Conjuntos Fuzzy
No conceito de conjuntos fuzzy, algum elemento pode pertencer parcialmente ao conjunto. Assim, introduziu-se termos relativos e abstratos nos conceitos de conjuntos.
O que é Lógica Fuzzy?
Conjuntos Fuzzy
A função que define o quanto um elemento pertence a um conjunto é a função de pertinência
O que é Lógica Fuzzy?
Função de pertinência
Curva que define como cada ponto de entrada é mapeado em um valor de grau de pertinência entre 0 e 1.
O que é Lógica Fuzzy?
Exemplo: Quando uma pessoa é considerada gorda?
O que é Lógica Fuzzy?
Inferência Fuzzy
A inferência fuzzy é o modo como essa lógica raciocina. O sistema de inferência realiza o processo de formular o mapeamento de uma entrada em uma saída usando a lógica fuzzy. O raciocínio deles é baseado em regras do tipo SE-ENTÃO.
O que é Lógica Fuzzy?
Inferência Fuzzy
O processo de inferência é composto dos seguintes passos:
1. Fuzzyficação das entradas:
Determinação do grau de pertinência de cada entrada em relação a cada conjunto fuzzy
O que é Lógica Fuzzy?
Inferência Fuzzy 2. Aplicar as regras e operadores:• Determinação de um número que represente o resultado
do antecedente daquela regra• Operadores AND e OR
AND – min() ou prod()
OR – max() ou probor() (probor(a,b) = a + b – ab)
O que é Lógica Fuzzy?
Inferência Fuzzy
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()
O que é Lógica Fuzzy?
Inferência Fuzzy
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() - Soma, através da função sum()
O que é Lógica Fuzzy?
O que é Lógica Fuzzy?
Inferência Fuzzy5. Defuzzyficação• Obtém valor numérico que representa a saída
do sistema• Métodos: Centróide, Bisetor, Média dos máximos, Maior dos
máximos, Menor dos máximos
O que é Lógica Fuzzy?
Inferência Fuzzy - Esquema Geral
Lógica Fuzzy no MATLAB
• Fuzzy Logic Toolbox:
Conjunto de funções construídas no ambiente computacional numérico MATLAB. Fornece ferramentas pra criar e editar sistemas de inferência fuzzy
Lógica Fuzzy no MATLAB
• Editor SIF: Edita a função de inferência
Lógica Fuzzy no MATLAB
• Membership Function Editor: Editor de função de pertinência
Lógica Fuzzy no MATLAB
• Rule Editor: Editor de Regras
Lógica Fuzzy no MATLAB
• Rule Viewer: Visualizador de Regras
Lógica Fuzzy no MATLAB
• Surface Viewer: Visualizador de Superfície
Simulink
• Ferramenta auxiliar do Matlab especialmente desenvolvida para simulação de processos.
• Utiliza de modelos gráficos e biblioteca de conjuntos de blocos otimizados que podem ser estendidos para aplicações específicas.
Simulink
• Pode desenhar, simular, implementar, testar controles, entre outras aplicações.
• Apresenta ferramentas específicas de modelagem, desenho das tarefas e geração de código, implementação de algoritmos, teste e verficação.
Simulink
• Criando e Trabalhando
- Com o Simulink você pode rapidamente criar, modelar, montar e detalhar seu sistemas usando um conjunto compreensivo e predefinidos de blocos.
- Fornece ferramentas para modelos hierárquicos, gerenciamento de dados, e customização de subsistemas.
SimulinkJanela das bibliotecas e sub-bibliotecas
Simulink (Exemplo)
Controle de Nível de Água Imagine um tanque com um cano de entrada de água e
um cano de saída de água. Você pode usar a válvula para controlar a entrada de água, mas a saída de água depende do diâmetro do cano e da pressão do tanque.
Simulink (Exemplo)
Controle de Nível de Água Um controlador para o nivel de agua no tanque precisa saber o nivel
atual pra ajustar a valvula. Nosso entrada do controlador será o erro do nivel de agua (nivel desejado menos o atual) e a saída será a taxa com que a válvula será aberta ou fechada. O primeiro passo pra construção do controlador fuzzy será definir o seguinte:
1. If (nível is bom) then (válvula is sem_mudanças) (1)
2. If (nível is baixo) then (válvula is abre_rápido) (1)
3. If (nível is alto) then (válvula is fecha_rápido) (1)
4. If (nível is bom) and (razão is negativa), then (válvula is fecha_devagar) (1)
5. If (nível is bom) and (razão is positiva), then (válvula is abre_devagar) (1)
Simulink (Exemplo)
Simulink (Exemplo)
Controle de Nível de Água sltank ⇒ tank.fis
Simulink (Exemplo)
Controle de Nível de Água sltanktankrule