Príklad na pravidlový fuzzy systém Ivan Kapustík
Model fuzzy riadenia Vstupy Riadený systém Výstupy Báza fuzzy pravidiel Fuzifikácia Defuzifikácia Fuzzy usudzovanie
Postup vytvárania bázy znalostí Identifikácia a pomenovanie vstupných lingvistických premenných a ich rozsahov Identifikácia a pomenovanie výstupných premenných a ich rozsahov Definovanie funkcie príslušnosti do množiny pre každú vstupnú a výstupnú premennú Vytvorenie matice a z nej bázy pravidiel
Usudzovanie (jeden cyklus) Získajú sa vstupy pre usudzovanie Určí sa, ktoré funkcie príslušnosti sa aktivujú a do akého stupňa – fuzifikácia Zistia sa pravidlá, ktoré sú aktivované týmito vstupmi Skombinujú sa hodnoty príslušnosti pre jednotlivé pravidlá (AND ≈ min) Určia sa výstupy zlúčením hodnôt pravidiel s rovnakým dôsledkom (Alternatíva ≈ max) Defuzifikácia – výpočet ťažiska výslednej plochy funkcie príslušnosti
Príklad Riadenie rýchlosti vlaku Úlohou je plynulé zastavenie vlaku, ktorý ide rýchlosťou do 200km/h a je v ľubovoľnej vzdialenosti od stanice
Tvorba bázy znalostí Krok 1: Rýchlosť [km/h] Rozsah Interval Rýchlo 40 200 Stredne rýchlo 10 50 Pomaly 2 15 Veľmi pomaly 4 Zastavenie Vzdialenosť [m] Rozsah Interval Ďaleko 2000 ∞ Stredne ďaleko 100 3000 Blízko 5 200 Veľmi blízko 10 Na mieste 1,5
Tvorba bázy znalostí Krok 2: Plyn [%] Rozsah Interval Plný 80 100 Stredný 25 85 Slabý 5 30 Veľmi slabý 7 Žiadny Brzda [%] Rozsah Interval Plná 80 100 Stredná 25 85 Slabá 5 30 Veľmi slabá 7 Žiadna
Tvorba bázy znalostí Krok 3: rýchlosť Zastavenie Veľmi pomaly Pomaly Stredne rýchlo 1,0 0,8 0,6 0,4 0,2 0,0 3 10 18 22 25 35 45 50 70 90 100 140 180 200
Tvorba bázy znalostí Krok 3: vzdialenosť Na mieste Veľmi blízko Blízko Stredne ďaleko Ďaleko 1,0 0,8 0,6 0,4 0,2 0,0 3 10 30 80 150 250 400 1000 2000 5000
Tvorba bázy znalostí Krok 3: brzda a plyn Žiadny Veľmi slabý Slabý Stredný Plný 1,0 0,8 0,6 0,4 0,2 0,0 3 6 10 15 20 25 30 35 42 50 60 72 85 100
Matica kombinácií – krok 4 Vzdialenosť Rýchlosť Na mieste Veľmi blízko Blízko Stredne ďaleko Ďaleko Zastavenie Plná brzda Žiadny plyn Žiadna brzda V. slabý plyn Stredný plyn Chyba Veľmi pomaly Plná brzda 1 Str. brzda 3 Slabý plyn Plný plyn Pomaly Plná brzda 2 Str. brzda 4 Stredne rýchlo Str. brzda Rýchlo
Vyjadrenie pravidla Pravidlo označené ako 1: IF Rýchlosť = Veľmi pomaly AND Vzdialenosť = Na mieste THEN Plná brzda Žiadny plyn
Usudzovanie – krok 1 Vstupné hodnoty sú Rýchlosť = 2,5 km/h Vzdialenosť = 1 m
Usudzovanie – krok 2 μveľmi pomaly(2,5) = 1,0 μpomaly(2,5) = 0,2 Zastavenie Veľmi pomaly Pomaly Stredne rýchlo Rýchlo 1,0 0,8 0,6 0,4 0,2 0,0 3 10 18 22 25 35 45 50 70 90 100 140 180 200 μveľmi pomaly(2,5) = 1,0 μpomaly(2,5) = 0,2
Usudzovanie – krok 2 μveľmi blízko(1) = 0,4 μna mieste(1) = 0,8 Stredne ďaleko Ďaleko 1,0 0,8 0,6 0,4 0,2 0,0 3 10 30 80 150 250 400 1000 2000 5000 μveľmi blízko(1) = 0,4 μna mieste(1) = 0,8
Usudzovanie – krok 3 Zadané vstupy ovplyvňujú riadky Pomaly a Veľmi pomaly a stĺpce Na mieste a Veľmi blízko To aktivuje pravidlá označené ako 1, 2, 3 a 4
Usudzovanie – kroky 4 a 5 P1: μveľmi pomaly AND μna mieste ≈ min{1,0; 0,8} = 0,8 P2: μpomaly AND μna mieste ≈ min{0,2; 0,8} = 0,2 P3: μveľmi pomaly AND μveľmi blízko ≈ min{1,0; 0,4} = 0,4 P4: μpomaly AND μveľmi blízko ≈ min{0,2; 0,4} = 0,2 Krok 5: Všetky pravidlá nastavujú Plyn na Žiadny P1 a P2 nastavujú Brzdu na Plná ≈ max{0,8; 0,2} = 0,8 P3 a P4 nastavujú Brzdu na Stred. ≈ max{0,4; 0,2} = 0,4
Usudzovanie – krok 6 Získanými hodnotami sa prenásobia zodpovedajúce funkcie príslušnosti a pre vzniknutý objekt sa vypočíta ťažisko Žiadna Veľmi slabá Slabá Stredná Plná 1,0 0,8 0,6 0,4 Ťažisko 0,2 0,0 3 6 10 15 20 25 30 35 42 50 60 72 85 100 65
Výsledok Plyn na 0% Brzda na 65% Je dobré si overiť, či využívame plný dostupný interval, v našom prípade od nula do 100%, prípadne či typické riešenie je ekonomické – napríklad plyn je pri rovnomernej plnej rýchlosti okolo 70% a či riešenie okolo takéhoto vyrovnaného stavu príliš neosciluje.
Fuzifikácia – možná realizácia b e a c d 1 2 3 4 5 6 Pre šikmé úsečky akceptujeme výslednú hodnotu v intervale <0;1>, pre vodorovné zistíme, či sa nachádza medzi jej krajnými bodmi a: <0,0; 2,1> ≈ 0.5x 0.5*4 = 2 nevyhovuje b: <2,1; 5,1> 4 <2,5> výsledok 1 c: <5,1; 6,0> ≈ -x + 6 -4 + 6 = 2 nevyhovuje d: <3,0; 6,1> ≈ 0.33x – 1 0.33*4 - 1 = 0.33 výsledok 0.33 e: <6,1; 10,1> 4 <6,10> nevyhovuje Vstupná hodnota 4 má teda príslušnosti μprvá = 1 a μdruhá = 0.33 Rovnicu priamky cx + d z dvoch bodov A(Ax,Ay) a B(Bx,By) dostaneme: c = (By - Ay)/(Bx - Ax), d = By – c*Bx alebo d = Ay – c*Ax
Defuzifikácia – možná realizácia 4 3 2 1 1 2 3 4 5 6 7 8 9 10 11 Hľadáme ťažisko objektu – súčet momentov pre zvolené súradnice predelíme celou váhou objektu (v rovnakých „jednotkách“) Napríklad nám stačí ísť len po celých číslach Moment = 2*2+3*2+4*2+5*2+6*2+7*4+8*4+9*4+10*4 = 176 Váha = 2+2+2+2+2+4+4+4+4 = 26 Poloha ťažiska = 176/26 = 6,8 Zjemnením delenia môžeme dostať presnejšiu polohu, ale treba si uvedomiť, že je zbytočná príliš vysoká presnosť, lebo aj použitý model je sám o sebe len priblížením (aproximuje riešenie).