Metody Sztuznej Inteligenji w Sterowaniu Ćwizenie 4 Logika rozmyta - wprowadzenie Przygotował: mgr inż. Marin Peli Instytut Tehnologii Mehaniznej Politehnika Poznańska Poznań, 2011 1
Logika rozmyta Logika rozmyta jest działem matematyki pozwalająym na formalne zapisanie niepewnośi. Stanowi jedno z rozwiązań logiki wielowartośiowej, w której pomiędzy pełną przynależnośią oraz rakiem przynależnośi do danego zioru istnieje również możliwość przynależnośi w pewnym stopniu. W rozumieniu logiki klasyznej przynależność elementu do zioru należy zapisać następująo: ( ) { Dla zapisu w rozumieniu logiki rozmytej każdy element może należeć do zioru w stopniu innym niż 1 i 0. ( ) { ( ) Przykładem może yć opis temperatury wody w ziorniku który został przedstawiony w taeli 1. Ta. 1. Porównanie opisu temperatury wody w logie dwuwartośiowej i logie rozmytej Logika dwuwartośiowa Logika rozmyta Woda jest gorąa gdy temperatura większa Dla 70 o C woda jest w 100% gorąa, lu równa 50 o C dla 50 o C woda jest w 50% gorąa, (zy 49,9 o C nie jest gorąa, podzas gdy dla 30 o C woda jest w 0% gorąa. 50 o C już jest?) ( ) { ( ) { fałsz prawda fałsz prawda 47 48 49 50 51 52 53 o C 30 40 50 60 70 o C 1 1 0 0 30 50 70 t[ o C] 30 50 70 t[ o C] Spełnienie przesłanki w logie rozmytej może yć reprezentowane przez różne funkje. Przykładowe funkje rozmywająe mająe swoje odpowieniki w dodatku Fuzzy Logi do programu Matla zostały zaprezentowane w taeli 2. 2
Ta. 2. Przykłądowe funkje przynależnośi wykorzystane w dodatku Fuzzy Logi do programu Matla Grafizne przedstawienie funkji Opis funkji Funkja trójkątna Matla: trimf [a ], gdzie a, i to współrzędne punktów a [0 0.5 1] Funkja trapezowa Matla: trapmf [a d], gdzie a,, i d to współrzędne punktów a d [0.05 0.45 0.55 0.95] Funkja dzwonowa Matla: gellmf [a ], gdzie a określa szerokość funkji, nahylenie ramion, to współrzędna środka funkji. a [0.25 3.278 0.5] Funkja gausa Matla: gaussmf [a ], gdzie a określa nahylenie ramion funkji, to współrzędna środka funkji. [0.2123 0.5] Funkja modyfikowana gausa Matla: gauss2mf [a d], gdzie a i to współrzędne punktów, i d określają nahylenie ramion funkji. [0.1295 0.4025 0.1295 0.5975] 3
Funkja sigmoidalna Matla: sigmf [a ], gdzie a określają nahylenie ramienia funkji, środek funkji. [14.41 0.3] d Funkja sigmoidalna różniowa, sigmoidalna ilozynowa Matla: dsigmf [a d], psigmf [a d], gdzie a i określają nahylenie lewego ramienia funkji, i d środek funkji. [14.41 0.25 7.205 0.8599] Funkja typu PI Matla: pimf [a d], gdzie a,, i d współrzędne punktów. a d [0.1 0.4 0.6 0.9] Funkja typu S Matla: pimf [a ], gdzie a i współrzędne punktów. [0.2 0.4] Funkja typu Z Matla: pimf [a ], gdzie a i współrzędne punktów. [0.6 0.9] Dokładny opis matematyzny oraz więej informaji dostępnyh na stronie: http://www.mathworks.om/help/toolox/fuzzy/dsigmf.html 4
Rozmyty system wnioskująy W konwenjonalnym podejśiu do sterowania proesami znajomość modelu pozwala na doór właśiwego regulatora. W tym samym zastosowaniu wykorzystanie teorii ziorów rozmytyh nie wymaga znajomośi ih modelów. Podejśie takie pozwala rozwiązywać prolemy klasyfikaji ez znajomośi gęstośi prawdopodoieństwa poszzególnyh klas. Sterowniki rozmyte są szzególnym przypadkiem rozmytyh systemów wnioskująyh azująyh na regułah typu JEŻELI TO. Ogólny shemat rozmytego systemu wnioskująego został przedstawiony na rysunku 1. Baza reguł _ x Blok rozmywania A X Blok wnioskowania _ B k, k=1,n Blok wyostrzania _ y Rys. 1 Rozmyty system wnioskująy System wnioskująy składa się z następująyh elementów: aza reguł, lok rozmywania, lok wnioskowania, lok wyostrzania. Baza reguł model lingwistyzny stanowią ziór rozmytyh reguł w postai (w zależnośi od łąznika strony poprzedzająej): R (k) : JEŻELI x 1 jest A 1 k I x 2 jest A 2 k I I x n jest A n k TO y 1 jest B 1 k I y 2 jest B 2 k I I y m jest B m k R (k) : JEŻELI x 1 jest A 1 k LUB x 2 jest A 2 k LUB LUB x n jest A n k TO y 1 jest B 1 k I y 2 jest B 2 k I I y m jest B m k gdzie: N to liza rozmytyh reguł, A i k ziory rozmyte A i k X i R, i=1,,n B i k ziory rozmyte B j k X j R, j=1,,m x 1, x 2,,x n zmienne wejśiowe modelu lingwistyznego y 1, y 2,,y m zmienne wyjśiowe modelu lingwistyznego Poszzególne reguły w azie reguł powiązanie są ze soą za pomoą operatora logiznego lu. Przy projektowaniu azy reguł należy zwróić szzególną uwagę zy reguły nie są ze soą sprzezne, zy zahodzą interakje między poszzególnymi regułami oraz zy ih liza jest wystarzająa. Blok rozmywania pozwala systemowi na operowanie na ziorah rozmytyh. Konkretna wartość sygnału wejśiowego jest poddawana operaji rozmywania, w wyniku której zostaje odwzorowana w ziór rozmyty. Ziór ten jest wejśiem do loku wnioskowania. Blok wnioskowania określa rozmyty ziór wyjśiowy na podstawie przyjętyh reguł wnioskowani, oraz przyjętyh norm. 5
Blok wyostrzania odwzorowuje wyjśiowy ziór rozmyty w jedną wartość, która jest sygnałem sterująym do oiektu. Wielkość sygnału wyjśiowego można olizyć następująymi metodami: - enter of avarage - enter of sums - enter of gravity (środek iężkośi) - maksimum funkji przynależnośi Edytor rozmytego systemu wnioskująego w programie Matla Ay wywołać edytor rozmytego systemu wnioskująego należy w oknie Matlaa wpisać poleenie fuzzy. Po wpisaniu poleenia ukaże się okno edytora (rysunek 2) składająe się z 5 zęśi: Konfiguraja wejść modelu, Baza reguł Konfiguraja wyjść modelu Wyór metod Opis aktywnego wejśia / wyjśia Konfiguraja wejść modelu Baza reguł Konfiguraja wyjść modelu Wyór norm, reguł wnioskowania oraz metody wyostrzania Opis aktywnego wejśia / wyjśia Rys. 2. Okno edytora rozmytego systemu wnioskująego w systemie Matla 6
Dodanie nowego wejśia / wyjśia: menu Edit->Add Variale ->Input/Output Usunięie zaznazonego wejśia / wyjśia: menu Edit->Remove Seleted Variale, (Ctrl+X) Zapis systemu do przestrzeni Matlaa / na dysk: menu File->Export->To Workspae /To File, (Ctrl+T) / (Ctrl+S) Wzytanie zapisanego systemu z przestrzeni Matlaa / z dysku: menu File->Import->From Workspae /Ftom File, --- / (Ctrl+S) Konfiguraja wejść / wyjść modelu Poprzez dwukrotne naiśnięie kursorem myszy na oszarze Konfiguraja wejść modelu lu Konfiguraja wyjść modelu, wyraniu opji Memership funtion z menu Edit (Ctrl+2), użytkownik otwiera okno Edytora funkji przynależnośi. Wygląd okna przedstawiono na rysunku 3. Wyór wejśia / wyjśia Okno funkji Opje wejśia / wyjśia Opis najważniejszyh zęśi okna: Rys. 3. Edytor funkji przynależnośi w programie Matla Opje wejśia / wyjśia Range zakres danyh wejśiowyh dla wejśia / wyjśia Display Range zakres wyświetlany w oknie wykresów Opje funkji wejśia / wyjśia Opje funkji wejśia / wyjśia Name Nazwa lingwistyzna funkji np. zimno, wysoki, długi zas 7
Type typ funkji Params parametry funkji Próz zmiany parametrów funkji numeryznie poprzez wpisanie odpowiednih wartośi w Input Params, można funkje również zmieniać ręznie poprzez złapanie krzywej ądź punktu krzywej kursorem i przesunięie jej z naiśniętym lewym przyiskiem myszy. Baza reguł modelu Po dwukrotnym naiśnięiu na oszar azy reguł w głównym edytorze rozmytego systemu wnioskująego lu po wyraniu opji Rules z menu Edit (Ctrl+3) pokazuje się okno przedstawione na rysunku 4. Okno składa się z panelu dodanyh reguł, gdzie znajdują się dodane reguły oraz zęśi w której można dodać, zmodyfikować oraz usunąć zaznazoną regułę. Panel dodanyh reguł Wyór wartośi wejść Waga reguły Wyór wartośi wyjść Rys. 4. Widok okna edyji azy reguł dodatku Fuzzy Logi do programu Matla Opis najważniejszyh zęśi okna: Connetion łąznik pomiędzy kolejnymi wyrazami reguły (and ilozyn rozmyty, or suma rozmyta) Delete rule usuń zaznazoną regułę Add rule dodaj regułę Change rule zmień zaznazoną regułę 8
Reprezentaja wyników Ustaweienie systemu może zostać skontrolowane w dwojaki sposó: Zmiany nastaw wejść (numeryznie poprzez wpisanie wartośi wejść w polu Input lu poprzez przesuwanie zerwonyh linie pod wykresami reprezentująymi wejśia) i oserwowanie wyjśia oraz spełnienia przesłanek w regułah w oknie Rule Viever wywoływanym z menu View poprzez wyór opji Rules (Ctrl+5). Wygląd okna został przedstawiony na rysunku 5. Sprawdzenie krzywej lu powierzhni powstałej w wyniku symulaji wyjśia systemu dla odpowiednih wartosći jego wejść. Okno Surfae Viewer otwierane jest poprzez wywołanie z menu View opji Surfae (Ctrl+6). Wygląd okna został przedstawiony na rysunku 6. Rys. 5. Widok okna testowania działąnia modelu w dodatku Fuzzy Logi do programu Matla Rys. 6. Widok okna wynikowej powierzhni sterowania w dodatku Fuzzy Logi do programu Matla 9