Introdução a Sistemas Fuzzy no Matlab e uso do Simulink Alexandre Arduini da Silva e Oliveira...

31
Introdução a Sistemas Fuzzy no Matlab e uso do Simulink Alexandre Arduini da Silva e Oliveira Jorge Chaves Barbosa

Transcript of Introdução a Sistemas Fuzzy no Matlab e uso do Simulink Alexandre Arduini da Silva e Oliveira...

Page 1: Introdução a Sistemas Fuzzy no Matlab e uso do Simulink Alexandre Arduini da Silva e Oliveira Jorge Chaves Barbosa.

Introdução a Sistemas Fuzzy no Matlab e uso do Simulink

Alexandre Arduini da Silva e Oliveira

Jorge Chaves Barbosa

Page 2: 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.

Page 3: 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 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.

Page 4: 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?

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

Page 5: 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?

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.

Page 6: 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?

Conjuntos Fuzzy

A função que define o quanto um elemento pertence a um conjunto é a função de pertinência

Page 7: 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?

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.

Page 8: 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?

Exemplo: Quando uma pessoa é considerada gorda?

Page 9: 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?

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.

Page 10: 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?

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

Page 11: 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?

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)

Page 12: 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?

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()

Page 13: 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?

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()

Page 14: 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?

Page 15: 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?

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

Page 16: 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?

Inferência Fuzzy - Esquema Geral

Page 17: Introdução a Sistemas Fuzzy no Matlab e uso do Simulink Alexandre Arduini da Silva e Oliveira Jorge Chaves Barbosa.

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

Page 18: Introdução a Sistemas Fuzzy no Matlab e uso do Simulink Alexandre Arduini da Silva e Oliveira Jorge Chaves Barbosa.

Lógica Fuzzy no MATLAB

• Editor SIF: Edita a função de inferência

Page 19: Introdução a Sistemas Fuzzy no Matlab e uso do Simulink Alexandre Arduini da Silva e Oliveira Jorge Chaves Barbosa.

Lógica Fuzzy no MATLAB

• Membership Function Editor: Editor de função de pertinência

Page 20: Introdução a Sistemas Fuzzy no Matlab e uso do Simulink Alexandre Arduini da Silva e Oliveira Jorge Chaves Barbosa.

Lógica Fuzzy no MATLAB

• Rule Editor: Editor de Regras

Page 21: Introdução a Sistemas Fuzzy no Matlab e uso do Simulink Alexandre Arduini da Silva e Oliveira Jorge Chaves Barbosa.

Lógica Fuzzy no MATLAB

• Rule Viewer: Visualizador de Regras

Page 22: Introdução a Sistemas Fuzzy no Matlab e uso do Simulink Alexandre Arduini da Silva e Oliveira Jorge Chaves Barbosa.

Lógica Fuzzy no MATLAB

• Surface Viewer: Visualizador de Superfície

Page 23: Introdução a Sistemas Fuzzy no Matlab e uso do Simulink Alexandre Arduini da Silva e Oliveira Jorge Chaves Barbosa.

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.

Page 24: Introdução a Sistemas Fuzzy no Matlab e uso do Simulink Alexandre Arduini da Silva e Oliveira Jorge Chaves Barbosa.

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.

Page 25: Introdução a Sistemas Fuzzy no Matlab e uso do Simulink Alexandre Arduini da Silva e Oliveira Jorge Chaves Barbosa.

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.

Page 26: Introdução a Sistemas Fuzzy no Matlab e uso do Simulink Alexandre Arduini da Silva e Oliveira Jorge Chaves Barbosa.

SimulinkJanela das bibliotecas e sub-bibliotecas

Page 27: Introdução a Sistemas Fuzzy no Matlab e uso do Simulink Alexandre Arduini da Silva e Oliveira Jorge Chaves Barbosa.

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.

Page 28: Introdução a Sistemas Fuzzy no Matlab e uso do Simulink Alexandre Arduini da Silva e Oliveira Jorge Chaves Barbosa.

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)

Page 29: Introdução a Sistemas Fuzzy no Matlab e uso do Simulink Alexandre Arduini da Silva e Oliveira Jorge Chaves Barbosa.

Simulink (Exemplo)

Page 30: Introdução a Sistemas Fuzzy no Matlab e uso do Simulink Alexandre Arduini da Silva e Oliveira Jorge Chaves Barbosa.

Simulink (Exemplo)

Controle de Nível de Água sltank ⇒ tank.fis

Page 31: Introdução a Sistemas Fuzzy no Matlab e uso do Simulink Alexandre Arduini da Silva e Oliveira Jorge Chaves Barbosa.

Simulink (Exemplo)

Controle de Nível de Água sltanktankrule