Documente Academic
Documente Profesional
Documente Cultură
6
Simularea sistemelor cu logică fuzzy în
Matlab: prezentarea Toolbox-ului Fuzzy
Logic
Obiective
- Deprinderea folosirii mediului de simulare Matlab pentru dezvoltarea de aplicaţii
care folosesc sisteme cu logică fuzzy;
- Deprinderea modalităţilor de analiză a funcţionării sistemelor cu logică fuzzy
oferite de mediul de simulare Matlab.
Desfăşurarea lucrării
6.1. Prezentarea Toolbox-ului Fuzzy Logic
Toolbox-ul Fuzzy Logic al mediului de simulare Matlab reprezintă mediul software de
simulare a sistemelor cu logică fuzzy oferit de acest program. Construirea unui sistem cu
logică fuzzy în Matlab este simplă datorită interfeţei grafice prin care utilizatorul poate
comunica cu mediul Matlab (componenta dedicată logicii fuzzy). Această interfaţă
permite construirea şi, în final, analiza grafică a sistemului cu logică fuzzy dorit, folosind
cele 5 instrumente grafice care formează componenta dedicată logicii fuzzy a mediului
Matlab:
- Editorul sistemului cu logică fuzzy, numit FIS Editor (= Fuzzy Inference System
Editor);
- Editorul funcţiilor de apartenenţă adică al mulţimilor fuzzy ce modelează
termenii lingvistici ai variabilelor de intrare şi de ieşire ale sistemului cu logică
fuzzy, pe universurile lor de discurs, numit Membership Function Editor;
- Editorul regulilor fuzzy, care vor forma baza de reguli a sistemului cu logică
fuzzy, numit Rule Editor;
- Fereastra de vizualizare a regulilor, în care se poate observa gradul de activare al
fiecărei reguli şi rezultatul (mulţimea fuzzy de ieşire) dat de fiecare regulă a bazei
de reguli, pentru o anumită configuraţie a valorilor intrărilor stabilită de către
utilizator; această fereastră apare sub numele Rule Viewer;
- Fereastra de vizualizare a suprafeţei ieşire-intrare a sistemului cu logică fuzzy,
care arată grafic dependenţa ieşirii crisp sistemului cu logică fuzzy de intrările
crisp ale acestuia, determinate de funcţionarea sistemului cu logică fuzzy; această
dependenţă este cunoscută in general sub numele de “suprafaţă de control a
sistemului”, iar fereastra apare sub numele Surface Viewer.
49
Tehnici de inteligenţă artificială Îndrumar de laborator
50
Tehnici de inteligenţă artificială Îndrumar de laborator
51
Tehnici de inteligenţă artificială Îndrumar de laborator
52
Tehnici de inteligenţă artificială Îndrumar de laborator
53
Tehnici de inteligenţă artificială Îndrumar de laborator
54
Tehnici de inteligenţă artificială Îndrumar de laborator
Odată stabilit tipul si numărul funcţiilor de apartenenţă pentru variabila selectată (prin
apăsarea tastei OK a ferestrei din figura 6.4), aceste funcţii apar afişate pe ecranul din
partea dreaptă sus a ferestrei editorului. Fiecare funcţie de apartenenţă poate fi selectată
prin apăsarea butonului stâng al mouse-ului.
În momentul când o funcţie de apartenenţă este selectată, ea va apărea desenată cu roşu,
şi simultan în partea dreaptă jos a ferestrei editorului, cu titlul “Current membership
function”, apar afisate: numele, tipul (trimf, trapmf, etc) si parametrii funcţiei de
apartenenţă respective (de exemplu, pentru funcţiile triunghi si trapez, adică, pentru
funcţii liniare pe porţiuni, parametrii sunt valorile crisp ale variabilei corespunzătoare
punctelor de frângere din grafic). In acest moment, putem modifica: numele funcţiei de
apartenenţă; tipul său; parametrii care descriu funcţia de apartenenţă.
Odată definite toate funcţiile de apartenenţă conform dorinţei proiectantului sistemului cu
logică fuzzy, putem edita baza de reguli fuzzy a sistemului. Pentru aceasta, din meniul
ferestrei editorului, se selectează comanda View, urmată de Edit rules.
55
Tehnici de inteligenţă artificială Îndrumar de laborator
56
Tehnici de inteligenţă artificială Îndrumar de laborator
proiecta un sistem cu logică fuzzy având x ca intrare si y ca ieşire, astfel încât între
valoarea estimată a lui y , notată ŷ , şi f (x) există o diferenţă oricât de mică dorim,
yˆ − f ( x) → 0
Exerciţiul 1
Se dau variabilele de intrare:
x ∈ [− 2,2] cu valorile {NE, ZE, PO}definite de funcţiile
NE – trapmf(x,[-2.5, -2, -1, -0.5])
ZE – trapmf(x,[-1, -0.5, 0.5, 1])
PO – trapmf(x,[0.5, 1, 2, 2.5])
dx ∈ [− 1,1] cu valorile {NE, ZE, PO} definite de funcţiile
NE – trapmf(dx,[-1.25, -1, -0.5, -0.25])
ZE – trimf(dx,[-0.5, 0, 0.5])
PO – trapmf(dx,[0.25, 0.5, 1, 1.25])
şi variabila de ieşire
y ∈ [− 1.5,1.5] cu valorile {NE, ZE, PO}definită de funcţiile
NE – trapmf(y,[-2, -1.5, -1.25, -0.75])
ZE – trimf(y,[-1, 0, 1])
PO – trapmf(y,[0.75, 1.25, 1.5, 2])
Setul de reguli este prezentat în următoarea tabelă de inferenţă:
x NE ZE PO
dx
NE
PO ZE ZE
ZE
PO ZE NE
PO
ZE NE NE
57
Tehnici de inteligenţă artificială Îndrumar de laborator
b) x = 1.5 şi dx = −0.5
folosind inferenţa Mamdani şi metoda înălţimii pentru defuzzificare. (Conjuncţia este
realizată cu operatorul min, disjuncţia cu max, implicaţia cu min, agregarea cu max.)
Conţinutul referatului
- programele Matlab ale problemelor rezolvate şi ale problemelor propuse, cu
notarea rezultatelor obţinute.
58