Professional Documents
Culture Documents
quinta-feira, 1 de novembro de 12
Motivao
Objetivo
FIS - Fuzzy Inference System
Do MATLAB para C
Integrao com Arduino
Dificuldades
Resultados
quinta-feira, 1 de novembro de 12
Motivao
quinta-feira, 1 de novembro de 12
Lgica Nebulosa
quinta-feira, 1 de novembro de 12
Lgica Nebulosa
Permite criarmos controladores baseados
nas observaes humanas
quinta-feira, 1 de novembro de 12
Lgica Nebulosa
Permite criarmos controladores baseados
nas observaes humanas
quinta-feira, 1 de novembro de 12
quinta-feira, 1 de novembro de 12
Arduino
quinta-feira, 1 de novembro de 12
Arduino
quinta-feira, 1 de novembro de 12
Arduino
quinta-feira, 1 de novembro de 12
Arduino
quinta-feira, 1 de novembro de 12
Arduino
Enorme compatibilidade
com sensores, mdulos e
motores
quinta-feira, 1 de novembro de 12
quinta-feira, 1 de novembro de 12
10
quinta-feira, 1 de novembro de 12
10
quinta-feira, 1 de novembro de 12
10
quinta-feira, 1 de novembro de 12
11
Objetivo
quinta-feira, 1 de novembro de 12
12
Objetivo
Criar uma biblioteca capaz de levar um
quinta-feira, 1 de novembro de 12
13
Objetivo
Criar uma biblioteca capaz de levar um
Biblioteca LabicFuzzyC!
quinta-feira, 1 de novembro de 12
13
quinta-feira, 1 de novembro de 12
14
15
16
O arquivo .FIS
[System]
Name='caminhao'
Type='mamdani'
Version=2.0
NumInputs=2
NumOutputs=1
NumRules=35
AndMethod='min'
OrMethod='max'
ImpMethod='min'
AggMethod='max'
DefuzzMethod='centroid'
[Input1]
Name='Posicao_c'
Range=[0 100]
NumMFs=5
MF1='LE':'trapmf',[0 0 10 35]
MF2='LC':'trimf',[30 40 50]
MF3='CE':'trimf',[45 50 55]
MF4='RC':'trimf',[50 60 70]
MF5='RI':'trapmf',[65 90 100 100]
[Input2]
Name='Angulo_c'
quinta-feira, 1 de novembro de 12
Range=[-105 285]
NumMFs=7
MF1='RB':'trimf',[-105 -45 15]
MF2='RU':'trimf',[-15 30 60]
MF3='RV':'trimf',[45 67 90]
MF4='VE':'trimf',[75 90 105]
MF5='LV':'trimf',[90 112 135]
MF6='LU':'trimf',[120 150 195]
MF7='LB':'trimf',[165 225 285]
[Output1]
Name='Angulo_v'
Range=[-30 30]
NumMFs=7
MF1='NB':'trimf',[-30 -30 -15]
MF2='NM':'trimf',[-25 -15 -5]
MF3='NS':'trimf',[-10 -5 0]
MF4='ZE':'trimf',[-5 0 5]
MF5='PS':'trimf',[0 5 10]
MF6='PM':'trimf',[5 15 25]
MF7='PB':'trimf',[15 30 30]
[Rules]
1 1, 5 (1) : 1
1 2, 4 (1) : 1
17
Do MATLAB para C
quinta-feira, 1 de novembro de 12
18
FIS Parser
quinta-feira, 1 de novembro de 12
19
Integrao com o
Arduino
quinta-feira, 1 de novembro de 12
20
IDE do Arduino
quinta-feira, 1 de novembro de 12
21
Dificuldades
quinta-feira, 1 de novembro de 12
22
Dificuldades
Vrias configuraes de sistemas nebulosos
quinta-feira, 1 de novembro de 12
23
Dificuldades
Vrias configuraes de sistemas nebulosos
Hardware limitado do Arduino
quinta-feira, 1 de novembro de 12
23
Dificuldades
Vrias configuraes de sistemas nebulosos
Hardware limitado do Arduino
Arduino Uno: 2 KB SRAM
quinta-feira, 1 de novembro de 12
23
Dificuldades
Vrias configuraes de sistemas nebulosos
Hardware limitado do Arduino
Arduino Uno: 2 KB SRAM
Arduino Mega: 8 KB SRAM
quinta-feira, 1 de novembro de 12
23
Dificuldades
Vrias configuraes de sistemas nebulosos
Hardware limitado do Arduino
Arduino Uno: 2 KB SRAM
Arduino Mega: 8 KB SRAM
Repensar tipos das variveis para
economizar uso da RAM
quinta-feira, 1 de novembro de 12
23
Resultados
quinta-feira, 1 de novembro de 12
24
Resultados
quinta-feira, 1 de novembro de 12
25
Resultados
Sistema
Tipo
Amostras
Desvio
padro
caminhao
Anfis
390
0,00003
0,00006%
caminhao
Mamdani
390
0,723
1,2%
robo
Mamdani
1.170
0,928
1,5%
Mamdani
8.748
0,540
0,9%
(15 regras)
(35 regras)
(35 regras)
manual
(200 regras)
Margem
de erro
* Desvio padro e margem de erro calculados em relao aos resultados obtidos pela funo evalfis() do MATLAB.
** Margem de erro = (desvio padro)/(intervalo da varivel)
quinta-feira, 1 de novembro de 12
26
Resultados
Sistema
Tipo
Amostras
Desvio
padro
caminhao
Anfis
390
0,00003
0,00006%
caminhao
Mamdani
390
0,723
1,2%
robo
Mamdani
1.170
0,928
1,5%
Mamdani
8.748
0,540
0,9%
(15 regras)
(35 regras)
(35 regras)
manual
(200 regras)
Margem
de erro
* Desvio padro e margem de erro calculados em relao aos resultados obtidos pela funo evalfis() do MATLAB.
** Margem de erro = (desvio padro)/(intervalo da varivel)
quinta-feira, 1 de novembro de 12
26
Resultados
Sistema
Tipo
Amostras
Desvio
padro
caminhao
Anfis
390
0,00003
0,00006%
caminhao
Mamdani
390
0,723
1,2%
robo
Mamdani
1.170
0,928
1,5%
Mamdani
8.748
0,540
0,9%
(15 regras)
(35 regras)
(35 regras)
manual
(200 regras)
Margem
de erro
* Desvio padro e margem de erro calculados em relao aos resultados obtidos pela funo evalfis() do MATLAB.
** Margem de erro = (desvio padro)/(intervalo da varivel)
quinta-feira, 1 de novembro de 12
26
Resultados
Sistema
Tipo
Amostras
Desvio
padro
caminhao
Anfis
390
0,00003
0,00006%
caminhao
Mamdani
390
0,723
1,2%
robo
Mamdani
1.170
0,928
1,5%
Mamdani
8.748
0,540
0,9%
(15 regras)
(35 regras)
(35 regras)
manual
(200 regras)
Margem
de erro
* Desvio padro e margem de erro calculados em relao aos resultados obtidos pela funo evalfis() do MATLAB.
** Margem de erro = (desvio padro)/(intervalo da varivel)
quinta-feira, 1 de novembro de 12
26
Resultados
quinta-feira, 1 de novembro de 12
27
Referncias
quinta-feira, 1 de novembro de 12
28
Obrigado!
quinta-feira, 1 de novembro de 12
29