Temat: Model SUGENO Instrukcja do ćwiczeń przedmiotu INŻYNIERIA WIEDZY I SYSTEMY EKSPERTOWE Dr inż. Barbara Mrzygłód KISiM, WIMiIP, AGH mrzyglod@ agh.edu.pl
1 Wprowadzenie Pierwszym rodzajem modelowania rozmytego zastosowanego w praktyce było tworzenie modeli rozmytych na bazie wiedzy eksperta. Oparte jest ono o wiedzę i doświadczenie eksperta znającego system i wszystkie jego zachowania. Model werbalny tworzony na bazie wiedzy eksperta pozwala stworzyć tylko model Mamdaniego. Systemy rozmyte modelują procesy, które trudno opisać metodami klasycznymi (np. równaniami różniczkowymi) Słabości klasycznych układów rozmytych: nie ma standardowej metody do przekształcenia wiedzy eksperckiej na reguły wnioskowania rozmytego potrzebna jest efektywna metoda dostrajania funkcji przynależności (MF), tak by minimalizować błędy wnioskowania 2 Model Taki-Sugeno Sugeno i współpracownicy zaproponowali alternatywny system wnioskowania oparty na bazie reguł specjalnego formatu, który odznacza się następnikami typu funkcyjnego. We wnioskach reguł występują nie zbiory rozmyte ale funkcje zmiennych wejściowych, przy czym są to najczęściej funkcje liniowe, więc każda reguła modelu opisuje jeden płaski (liniowy) segment powierzchni modelu. If x is A1 and y is B1 then z = f(x, y) Model Sugeno (opisywany skrótami: TS Takagi-Sugeno lub TKS Takagi-Sugeno-Kanga) R1: JEŻELI (x jest A1) TO (y = -x+3) R2: JEŻELI (x jest A2) TO (y = (4x-10)/3) R3: JEŻELI (x jest A3) TO (y = (-x+24)/3) W bazie reguł w konkluzjach stosowana jest zależność funkcyjna, co powoduje, że w strukturze Takagi-Sugeno nie występują jawnie wyjściowe funkcje przynależności oraz wyostrzanie.
Na wyjściu otrzymujemy średnią otrzymaną ze wszystkich uruchamianych reguł, ważoną stopniami stosowalności tych reguł. 3 Zaprojektowanie zraszacza przy wykorzystaniu wnioskowania rozmytego typu Mamdani i Sugeno porównanie wyników. 3.1 modelowanie MAMDANI Zaprojektować sterownik rozmyty do automatyzacji podlewania ogrodu w lecie. Chodzi tu o to, by intensywność podlewania była odpowiednia w stosunku do stopnia wilgotności i temperatury powietrza. Orientacyjny schemat systemu automatyzacji podlewania pokazany jest na rys. 1. Jest to system bez sprzężenia zwrotnego. Rysunek 1 Schemat układu W zależności od wskazań czujnika temperatury i wilgotności powietrza sterownik wysyła sygnał wyjściowy, który reguluje zawór wodny ustalając intensywność podlewania, zgodnie z opracowanymi przez eksperta regułami rozmytymi (uwzględniając rodzaj gleby, uprawy itp.). Załóżmy, że termy zmiennych wejściowych i zmiennej wyjściowej (singletony) są ustalone jak na rysunkach rys. 2-4, natomiast określone przez eksperta reguły są przedstawione na rys. 5 w postaci tablicy relacji. Rozdzielczość jeśli chodzi o zmiany temperatury przyjęto na poziomie 0.5 [ o C], rozdzielczość wilgotności przyjęto co 1 [%]. Rozdzielczość zbioru wyjściowego określającego intensywność podlewania przyjęto również co 1 [%].
Rysunek 2 Zbiór termów odpowiadający zmiennej lingwistycznej temperatura Rysunek 3 Zbiór termów odpowiadający zmiennej lingwistycznej wilgotność. Rysunek 4 Zbiór termów odpowiadający zmiennej lingwistycznej intensywność podlewania jego realizacja następuje poprzez określenie wartości dla poszczególnych zbiorów rozmytych zgodnie z tabelą 1 Tabela 1 NAZWA ZBIORU TYP FUNKCJI A B C ZERO trimpf 0 0 0 MAŁA trimpf 25 25 25 SREDNIA trimpf 50 50 50 DUZA trimpf 75 75 75 MAX trimpf 100 100 100 Do bazy wiedzy systemu wprowadź zestaw reguł rozmytych zgodnych z tabelą 2.
Tabela 2 mala srednia duza ZIMNO SREDNIA MALA ZERO LENIO DUZA MALA ZERO CIEPLO DUZA SREDNIA MALA GORACO MAX DUZA SREDNIA W zależności od przyjętej metody wyostrzania (defuzyfikacji) dokonaj analizy wynikowej funkcji przynależności. Zestaw wyników zestawiono w Tabela 3. Centroid Tabela 3 Bisector Mom (Mean of Max) SoM (Smallest of Max) 3.1.1 Modelowanie SUGENO Zaprojektować omówiony we wcześniejszym punkcie układ podlewania wykorzystując wnioskowanie typu SUGENO. Zmienne wejściowe i reguły pozostają takie same. Zmianie natomiast ulegnie sposób formułowania wynikowej zmiennej INTENSYWNOŚĆ PODLEWANIA. Zamiast wprowadzenia 5 trójkątnych zbiorów rozmytych należy zastosować 5 funkcji stałych, zgodnie z listingiem poniżej: [Output1] Name='INTENSYWNOSC-PODLEWANIA' Range=[0 100] NumMFs=5 MF1='ZERO':'constant',[0] MF2='MALA':'constant',[25] MF3='SREDNIA':'constant',[50] MF4='SDUZA':'constant',[75] MF5='MAX':'constant',[100]
Analiza wynikowej funkcji przedstawionej na rysunku 5. Rysunek 5
4 Implementacje modeli rozmytych typu Sugeno (w MATLAB-ie) 4.1 Sugeno 0-rzędu IF x= small THEN y=0,1x+6,4 IF x= medium THEN y= -0,5x+4 IF x= large THEN y=x-2 a) b) 4.2 Sugeno 1-rzędu If X is small and Y is small then z = -x + y + 1. If X is small and Y is large then z = -y + 3. If X is large and Y is small then z = -x + 3. If X is large and Y is large then z = x + y + 2.
5 Zadania obliczeniowe 5.1 Zad.1 Dany jest model rozmyty typu Sugeno zapisany dwiema regułami w postaci: R(1) IF (x1 jest DUŻEE AND x2 jest SREDNIE) THEN y1 = 2 + 7x1-3x2 R(2) IF (x1 jest MAŁE AND x2 jest MAŁE) THEN y2= -2x1 +5x2 Funkcje przynależności dla zmiennych lingwistycznych x1 i x2: Tabela 4 Reprezentacja zmiennych lingwistycznych x1 oraz x2 Zmienna x1 Zmienna x2 Range [0 100] MAŁE = trójkątna/trimf [0 0 70] DUŻE = trójkątna/trimf [ 0 100 100] Range [0 150] MAŁE = trapezowa/trampf [0 0 15 60] ŚREDNIE = trójkątna/trimf [ 40 70 100] DUŻE = trapezowa/trampf [80 100 150 150] Zilustruj zmienne lingwistyczne x1 oraz x2 Wyznacz sygnał wyjściowy modelu y = dla wejściowych wartości ostrych: a) x1 x2 b) x1 x2 dla dwóch metod realizacji operatora AND zawartego w regułach, tj. MIN, PROD Zapisz wyniki końcowe w tabeli: a) x1 x2 MIN PROD b) x1 x2
5.2 Zad.2. W zależności od wskazań czujnika temperatury [Input 1] i wilgotności powietrza [Input 2] sterownik wysyła sygnał wyjściowy, który reguluje zawór wodny ustalając intensywność podlewania [Output 1], zgodnie z opracowanymi przez eksperta regułami rozmytymi [Rules]. W tabeli 1 przedstawiono model wnioskowania, który reprezentuje niniejszy problem. Analizując zapis źródłowy, wygenerowany przez Matlaba, oraz uwzględniając zadane wartości wejść, oblicz dla każdego scenariusza wynik wnioskowania. [System] Name='zraszacz' Type='sugeno' NumInputs=2 NumOutputs=1 NumRules=3 AndMethod='prod' OrMethod='max' ImpMethod='prod' AggMethod='sum' DefuzzMethod='wtaver' [Input1] Name='temp' Range=[0 35] NumMFs=4 MF1='Zimno':'trapmf',[0 0 5 15] MF2='Cieplo':'trimf',[15 25 35] MF3='Letnio':'trimf',[5 15 25] MF4='Goraco':'trimf',[25 35 35] Tabela 5 [Input2] Name='wilgotnosc' Range=[0 100] NumMFs=3 MF1='Mala':'trapmf',[-2 0 25 50] MF2='Srednia':'trimf',[25 50 100] MF3='Duza':'trimf',[50 100 120] [Output1] Name='podlej' Range=[0 100] NumMFs=5 MF1='Zero':'constant',[0] MF2='Mala':'constant',[25] MF3='Srednia':'constant',[50] MF4='Duza':'constant',[75] MF5='MaX':'constant',[100] [Rules] 1 1, 3 (1) : 1 1 2, 2 (1) : 1 1 3, 1 (1) : 1 a) [Input 1] = 10; [Input 2]=40 b) [Input 1] = 11; [Input 2]=70