Matlab Fuzzy Logic Toolbox The Future looks Fuzzy Newsweek, May, 28, 1990. 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 művelet eredménye: a=readfis( TTK_borravalo ) (enter) 20. Írjuk be a Matlab ablakba: a művelet eredménye: showfis (a) (enter) A fenti táblázatban a fuzzy szabályzónk Matlab-Fuzzy Toolbox programcsomag szerinti struktúráját mutattuk be. 6