Príklad na pravidlový fuzzy systém
Ivan Kapustík
Model fuzzy riadenia
FuzifikáciaDefuzifikácia
Fuzzy usudzovanie
Báza fuzzy pravidiel
Riadený systémVstupy Výstupy
Postup vytvárania bázy znalostí
1. Identifikácia a pomenovanie vstupných lingvistických premenných a ich rozsahov
2. Identifikácia a pomenovanie výstupných premenných a ich rozsahov
3. Definovanie funkcie príslušnosti do množiny pre každú vstupnú a výstupnú premennú
4. Vytvorenie matice a z nej bázy pravidiel
Usudzovanie (jeden cyklus)
1. Získajú sa vstupy pre usudzovanie2. Určí sa, ktoré funkcie príslušnosti sa aktivujú a
do akého stupňa – fuzifikácia3. Zistia sa pravidlá, ktoré sú aktivované týmito
vstupmi4. Skombinujú sa hodnoty príslušnosti pre
jednotlivé pravidlá (AND ≈ min)5. Určia sa výstupy zlúčením hodnôt pravidiel s
rovnakým dôsledkom (Alternatíva ≈ max)6. 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:
Vzdialenosť [m]
Rozsah Interval
Ďaleko 2000 ∞
Stredne ďaleko 100 3000
Blízko 5 200
Veľmi blízko 0 10
Na mieste 0 1,5
Rýchlosť [km/h]
Rozsah Interval
Rýchlo 40 200
Stredne rýchlo 10 50
Pomaly 2 15
Veľmi pomaly 0 4
Zastavenie 0 0
Tvorba bázy znalostí
• Krok 2:
Brzda [%]
Rozsah Interval
Plná 80 100
Stredná 25 85
Slabá 5 30
Veľmi slabá 0 7
Žiadna 0 0
Plyn [%]
Rozsah Interval
Plný 80 100
Stredný 25 85
Slabý 5 30
Veľmi slabý 0 7
Žiadny 0 0
Tvorba bázy znalostí
• Krok 3: rýchlosť
0,0
0,2
0,4
0,6
0,8
200
1,0
100 14050251830 22 35 45 70 90 18010
RýchloStredne rýchloPomaly
Veľmi pomalyZastavenie
Tvorba bázy znalostí
• Krok 3: vzdialenosť
0,0
0,2
0,4
0,6
0,8
5000
1,0
20001503030 80 250 400 100010
ĎalekoStredne ďalekoBlízko
Veľmi blízkoNa mieste
Tvorba bázy znalostí
• Krok 3: brzda a plyn
0,0
0,2
0,4
0,6
0,8
100
1,0
8520630 15 25 30 5010
PlnýStrednýSlabý
Veľmi slabýŽiadny
60 724235
Matica kombinácií – krok 4Vzdialenosť
RýchlosťNa mieste Veľmi blízko Blízko
Stredne ďaleko
Ďaleko
ZastaveniePlná brzda
Žiadny plyn
Žiadna brzda
V. slabý plyn
Žiadna brzda
Stredný plynChyba Chyba
Veľmi pomaly
Plná brzda 1
Žiadny plyn
Str. brzda 3
Žiadny plyn
Žiadna brzda
Slabý plyn
Žiadna brzda
Plný plynChyba
PomalyPlná brzda 2
Žiadny plyn
Str. brzda 4
Žiadny plyn
Žiadna brzda
V. slabý plyn
Žiadna brzda
Plný plyn
Žiadna brzda
Plný plyn
Stredne rýchlo
ChybaPlná brzda
Žiadny plyn
Str. brzda
Žiadny plyn
Žiadna brzda
Stredný plyn
Žiadna brzda
Plný plyn
Rýchlo Chyba ChybaPlná brzda
Žiadny plyn
Žiadna brzda
Stredný plyn
Žiadna brzda
Stredný plyn
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úa. Rýchlosť = 2,5 km/h
b. Vzdialenosť = 1 m
Usudzovanie – krok 2
μveľmi pomaly(2,5) = 1,0
μpomaly(2,5) = 0,2
0,00,20,40,60,8
200
1,0
100 14050251830 22 35 45 70 90 18010
RýchloStredne rýchloPomaly
Veľmi pomalyZastavenie
Usudzovanie – krok 2
μveľmi blízko(1) = 0,4
μna mieste(1) = 0,8
0,0
0,2
0,4
0,6
0,8
5000
1,0
20001503030 80 250 400 100010
ĎalekoStredne ďalekoBlízko
Veľmi blízkoNa mieste
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
0,00,20,40,60,8
100
1,0
8520630 15 25 30 5010
PlnáStrednáSlabá
Veľmi slabáŽiadna
60 724235
Ťažisko
65
Výsledok
• Plyn na 0%
• Brzda na 65%
Fuzifikácia – možná realizácia
• 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
0
0 1 2 3 4 5 6
a
b
cd
e
Defuzifikácia – možná realizácia
• 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).
4
0
3
2
1
0 1 2 3 4 5 6 7 8 9 10 11