“The Future looks Fuzzy” Newsweek, May, 28, 1990.
Matlab Fuzzy Logic Toolbox A fuzzy irányítási rendszerek vizsgálatára Windows alatt futó Matlab programcsomag szimulációs eszközeit és a Matlab-ra ráépülő Fuzzy Logic Toolbox és Simulink szimulációs programok szolgáltatásait használjuk. A többi fuzzy logikai alkalmazásokat támogató programrendszerhez hasonlóan a Matlab Fuzzy Logic Toolbox is programozható. Azok számára akik nem szeretnének programozni, számukra egy interaktív kommunikációs ablakokkal dolgozó grafikus fejlesztő környezet áll rendelkezésre. A Fuzzy Logic Toolbox grafikus, interaktív fejlesztő rendszernek az a célja, hogy mélyebb programozási ismeretek nélkül is képes legyen egy a számítástechnikában átlagosan tájékozott fuzzy irányítási rendszert létrehozni és tesztelni. A keret öt ablakot és azokban további menüket és beállításokat tartalmaz. Az ablakok – az általános megnyitási sorrendben – a következők: 1. FIS (Fuzzy Inference System ) Editor – Fuzzy következtető rendszerszerkesztő. 2. Membership function Editor – Tagsági függvényszerkesztő. 3. Rule Editor – Szabályszerkesztő. 4. Rule viewer – Szabálynéző 5. Surface viewer – Felület néző Az egyes ablakok menüjében található opciók: 1. File, a szokásos WINDOWS utasításokkal: új rendszer szerkesztése, elmentett rendszer megnyitása, rendszer mentése, kilépés. 2. Edit (ablakonként különböző szerkesztő – beszúrás, törlés – utasításokkal). 3. View (az ablakok közötti váltások illetve mozgás lehetőségek). 4. Options (csak a Rule viewer és Surface viewer esetén jelenik meg)
Borravaló meghatározás - példa A gyakorlat megvalósításához szükséges programcsomag, eszköztárak: Matlab és Fuzzy Logic Toolbox. A borravaló példa megoldása a következő lépésekből áll: 1. Indítsuk el a Matlab-ot. 2. Indítsuk el a Fuzzy Logic Toolbox-ot. A «Matlab Command Windows»-ba beírni: fuzzy (enter) így belépünk a «FIS Editor»-ba, vagyis a Fuzzy következtető rendszerszerkesztőjébe. A bal oldali blokk séma elem az aktív («input1»)! Mamdani következtetési algoritmust alkalmazunk.
3. Az «input1»-et, a jobb oldali ablakban nevezzük át «kiszolgalas»-nak, (enter).
1
4. Aktíváljuk a jobb oldali blokk séma elemet az «output1»-et, a jobb oldali ablakban nevezzük át «borravalo»-nak, (enter).
5. A «File/Export/To Workspace» és «To Disk» - adjuk meg az új állomány nevét (pl. TTK_ borravalo), mentés (Save) és ablakzárás. A «FIS Editor» neve TTK_borravalo-ra változik.
Tagsági függvényszerkesztő – «Membership Function Editor» 6. Az «Edit/Membership Functions» választással belépünk a Tagsági függvényszerkesztőbe – «Membership Function Editor» (aktiv a «kiszolgalas» elem).
Az «Edit/Remove All MFs» választással töröljük a felajánlott tagsági függvényeket. 7. Az «Edit/Add MFS» választás után az előugró ablakban válasszunk ki 3 drb. «gaussmf» típusú tagsági függvényt (OK, ablakzárás).
8. A skálázást «Range» beállítani 1-10-re (enter), a «Display Range» automatikusan beáll 1-10-re. 9. Kattintsunk rá a bal oldali tagsági függvényre (mf1), nevezzük át «pocsek» névre és állítsuk be a paramétereit: [1.5 0].
2
10. Kattintsunk rá a középső tagsági függvényre (mf2), nevezzük át «jo» névre és állítsuk be a paramétereit: [1.5 5].
11. Kattintsunk rá a jobb oldali tagsági függvényre (mf3), nevezzük át «kituno» névre és állítsuk be a paramétereit: [1.5 10].
12. Aktiváljuk a borravalo elemet és elfogadjuk az előugró ablakban felajánlott 3 drb. «trimf» típusú háromszög alakú tagsági függvényeket. A skálázást «Range» beállítani: 0-30-ra (enter), a «Display Range» is automatikusan beáll 0-30-ra.
13. Kattintsunk rá a bal oldali tagsági függvényre (mf1), nevezzük át «keves» névre és állítsuk be a paramétereit: [0 5 10]. 3
14. Kattintsunk rá a középső tagsági függvényre (mf2), nevezzük át «kozepes» névre és állítsuk be a paramétereit: [10 15 20].
15. Kattintsunk rá a jobb oldali tagsági függvényre (mf3), nevezzük át «nagy» névre és állítsuk be a paramétereit: [20 25 30].
4
Szabályszerkesztő «Rule Editor» Az «Edit/Rules» választással belépünk a Szabályszerkesztő ablakba – «Rule Editor», amely könnyűszerrel lehetővé teszi a fuzzy szabályok szerkesztését az «Add rule» gomb segítségével. Az ábrán látható rádiógombok segítségével kiválasztjuk az or vagy and műveleteket. A «Delete rule» gombbal törölhető a már bevitt fuzzy szabály, a «Change rule» gombbal pedig megváltoztatható.
16. A fuzzy szabályszerkesztőbe vigyük be a következő ábrán látható 3 szabályt és zárjuk be a szabályszerkesztőt (close):
Szabálynéző Rule viewer 17. A «Fis Editor»-ban a «View/Rules» választás után a szabálynézőben megtekinthetjük a bevitt szabályokat.
18. «Fis Editor»-ban a «View/Surface» választás után a felületnézőben a bemenet és kimenet közötti kapcsolatot a teljes szabályozási tartományra összefüggően mutatja be egy ún. szabályozási (control) felület megadásával. 5
19. Írjuk be a Matlab ablakba: a=readfis(´TTK_borravalo´)
(enter)
a művelet eredménye:
20. Írjuk be a Matlab ablakba: showfis (a)
(enter)
a művelet eredménye:
A fenti táblázatban a fuzzy szabályzónk Matlab-Fuzzy Toolbox programcsomag szerinti struktúráját mutattuk be.
6