Sisteme cu logica nuanțată, G. Oltean
Aspecte referitoare la
implementarea
sistemelor cu logică fuzzy
cu mai multe intrări (MISO)
Sisteme cu logica nuanțată, G. Oltean
Structura unui sistem cu logică fuzzy MISO
Sisteme cu logica nuanțată, G. Oltean
Exemplificare: Pilot automat auto
❑ Determinarea vitezei optime de deplasare in functie de
vizibilitate si calitatea drumului
❖ Proiectare si implementare bazate pe model
(Model-based design and implementation)
➢ implementare, optimizare si verificare in Matlab – model
➢ analiza modelului Matlab pentru a intelege aspectele
referitoare la implementare
➢ implementarea pentru Arduino, conform modelului
➢ validarea implementarii prin compararea rezultatelor cu
cele furnizate de model
Sisteme cu logica nuanțată, G. Oltean
Model Matlab: schema bloc, operatori
Sisteme cu logica nuanțată, G. Oltean
Baza de
reguli:
Baza de date:
mulțimile fuzzy
RoadQuality
Visibility
Bad Good VGood
Poor VL L Me
Good L Me H
VGood Me H VH
1 2
4 5 6
7 8 9
3
Model Matlab: baza de cunoștințe
Sisteme cu logica nuanțată, G. Oltean
Baza de
reguli
Baza de date:
multimile fuzzy
Model Matlab: baza de cunoștințe
Sisteme cu logica nuanțată, G. Oltean
Model Matlab: flux de calcul
• grad de adevăr premise
simple (pentru fiecare mf)
• grad de adevăr premise
compuse - antecedent
(pentru fiecare regula)
• grad de activare regula
• determinare mf partiala de
iesire pentru regulile
activate
• agregare
• defuzzificare COA
Sisteme cu logica nuanțată, G. Oltean
Model Matlab: suprafata de control
Sisteme cu logica nuanțată, G. Oltean
Implementare Arduino: baza de cunoștinteBaza de date
Sisteme cu logica nuanțată, G. Oltean
Implementare Arduino: baza de cunoștinteBaza de date – cont.
Sisteme cu logica nuanțată, G. Oltean
Implementare Arduino: baza de cunoștinteBaza de reguli
Sisteme cu logica nuanțată, G. Oltean
Implementare Arduino: flux de calcul
Pregatire: calcul grad de adevar premisa simpla pentru
o valoare curenta (transanta – “crisp”) a variabilei de intrare
Sisteme cu logica nuanțată, G. Oltean
Implementare Arduino: flux de calculBiblioteca FuzzyGbr
Header file
Sisteme cu logica nuanțată, G. Oltean
Implementare Arduino: flux de calcul Biblioteca FuzzyGbr
Source file
Sisteme cu logica nuanțată, G. Oltean
Implementare Arduino: flux de calcul
- cont.
Sisteme cu logica nuanțată, G. Oltean
Implementare Arduino: flux de calcul
- cont.
Sisteme cu logica nuanțată, G. Oltean
Implementare Arduino: flux de calcul
- cont.
Sisteme cu logica nuanțată, G. Oltean
Implementare Arduino: flux de calcul
Definire functie care calculeaza gradul de apartanenta
Sisteme cu logica nuanțată, G. Oltean
Implementare Arduino: flux de calcul
▪ Preia valorile curente (transante - crisp) ale variabilelor de
intrare prin intermediul consolei (Serial Monitor)
Sisteme cu logica nuanțată, G. Oltean
Implementare Arduino: flux de calcul ▪ Calculeaza gradele de adevar ale premiselor simple – gradul de
apartenenta la fiecare mf pentru valorile curente (transante - crisp)
ale variabilelor de intrare
Sisteme cu logica nuanțată, G. Oltean
Implemen-
tare
Arduino:
flux de
calcul
▪ Calculeaza
gradele de
adevar ale
regulilor
▪ Selecteaza
doar regulile
active in
vederea
agregarii si
defuzzificarii
Sisteme cu logica nuanțată, G. Oltean 22 /32
Implementare Arduino: flux de calcul ▪ Discretizare variabila de iesire. Inferența, agregare, defuzzificare
Sisteme cu logica nuanțată, G. Oltean
Validare
implementare -1
Arduino Matlab
Sisteme cu logica nuanțată, G. Oltean
Validare
implementare -2
Arduino Matlab
Sisteme cu logica nuanțată, G. Oltean
Validare
implementare - 3
Arduino Matlab
Sisteme cu logica nuanțată, G. Oltean
Validare
implementare - 4
Arduino Matlab
Sisteme cu logica nuanțată, G. Oltean
Validare
implementare -5
Arduino Matlab