www.imio.polsl.pl
M ME ET TO OD D Y Y H HE EU UR RY YS ST TY YC CZ ZN NE E – – s st tu ud d ia i a n n ie i es st ta ac c jo j on n a a rn r n e e
ĆWICZENIE 5: Systemy rozmyte
opracował: dr hab. inż. Witold Beluch witold.beluch@polsl.pl
Gliwice 2016
Cel ćwiczenia
Wykonując ćwiczenie zapoznasz się z działaniem symulatorów sterowników rozmytych. W tym celu wykorzystasz oprogramowanie realizujące to zagadnienie. Prześledzisz działanie symulacji sterowania rozmytego żurawiem portowym i sprawdzisz wpływ wprowadzonych modyfikacji na skuteczność sterowania. Ponadto zaprojektujesz własny sterownik rozmyty do sterowania klimaty- zacją i przetestujesz jego działanie.
Systemy rozmyte i program FuzzyTECH
Stworzenie sterownika opartego o klasyczne metody sterowania wymaga znajomości częstokroć skomplikowanego modelu matematycznego sterowanego układu. Sterownik rozmyty nie wymaga takiego modelu, a jedynie odpowiednio dobranych reguł. Jak pamiętasz z wykładu, sterowniki oparte o logikę rozmytą pozwalają na sterowanie skomplikowanymi procesami w oparciu o zbiór rozmytych reguł jeżeli-to, które w uproszczeniu można zapisać w postaci:
IF (stan układu) THEN (działanie) Sterownik rozmyty składa się z następujących elementów (Rys. 1):
blok rozmywania – jego zadaniem jest odwzorowanie wartości „ostrych”, zazwyczaj pochodzą- cych z różnego rodzaju czujników, w wartości funkcji przynależności do poszczególnych zbiorów rozmytych;
baza reguł – zbiór rozmytych reguł w postaci jeżeli-to;
blok wnioskowania – na jego wyjściu pojawia się 1 lub wiele zbiorów rozmytych, będących wynikiem wnioskowania na podstawie przesłanek (rozmytych wartości pochodzących z bloku rozmywania) z zastosowaniem reguł rozmytych (z bazy reguł);
blok wyostrzania – jego zadaniem jest przekształcenie zbiorów rozmytych w jedną wartość wyjściową (odpowiedź sterownika rozmytego na dane wejściowe).
BLOK ROZMYWANIA
BLOK
WNIOSKOWANIA
BLOK WYOSTRZANIA BAZA
REGUŁ
x
BLOK A X' B'y
ROZMYWANIA
BLOK
WNIOSKOWANIA
BLOK WYOSTRZANIA BAZA
REGUŁ
x
A X' B'y
Rys. 1. Schemat blokowy sterownika rozmytego
W ramach niniejszego ćwiczenia wykorzystasz oprogramowanie realizujące sterowanie rozmyte.
Użyjesz je do zapoznania się z jednym z załączonych przykładów oraz do stworzenia własnego sterownika rozmytego. W tym celu skorzystasz z programu FuzzyTECH, umożliwiającego symulację działania sterowników rozmytych. Jego wersję demonstracyjną1 można pobrać ze strony www.fuzzytech.com.
Zadanie 1 - sterowanie żurawiem portowym
Żurawie kontenerowe są używane do przenoszenia kontenerów pomiędzy statkiem a nabrze- żem. Dużym praktycznym problemem jest odchylanie się ładunku zawieszonego na linie od pionu podczas ruchu kontenera, gdyż przed opuszczeniem ładunku wychylenie takie musi zostać zniwe-
1 Wersja demonstracyjna programu nie umożliwia zapisywania własnych projektów, jednak możliwe jest ich tworze- nie. Ponadto daje dostęp do kilkunastu gotowych projektów sterowania rozmytego wraz z animowanymi symulacjami.
lowane. Istnieją dwa bardzo proste rozwiązania problemu. Jedno rozwiązanie sprowadza się do umieszczenia głowicy dźwigu dokładnie nad miejscem, gdzie ma zostać opuszczony ładunek i po- czekanie, aż wychylenie liny zmniejszy się do akceptowalnego poziomu. Takie podejście jest zazwy- czaj czasochłonne a w dodatku jego skuteczność maleje przy wiejącym wietrze. Inne rozwiązanie bazuje na dodatkowych linach stabilizujących, jednakże jest stosunkowo kosztowne i rzadko spoty- kane. W praktyce zazwyczaj żurawie są sterowane przez człowieka (operatora), od którego wyma- gane są pewne umiejętności i doświadczenie, przy czym nie dysponuje on szczegółową wiedzą o własnościach układu.
Innym rozwiązaniem jest zastosowanie odpowiedniego sterownika. Konwencjonalne regulatory PID1 zawodzą z powodu silnej nieliniowości problemu (np. minimalizacja wychylenia liny jest zwykle istotna tylko wówczas, gdy ładunek zbliża się do celu). Sterowanie w oparciu o model matematycz- ny układu jest kłopotliwe, gdyż prowadzi do konieczności rozwiązywania równań różniczkowych 5-go rzędu. Co więcej, w praktyce zastosowanie modelu matematycznego jest w zasadzie niemożli- we, m.in. ze względu na fakt, iż model ten musiałby uwzględniać nieznaną masę kontenera. Dobrym rozwiązaniem wydaje się więc być zastosowanie sterowania rozmytego.
Strukturę sterownika rozmytego w rozważanym przypadku przedstawia Rys. 2.
Rys. 2. Struktura sterownika rozmytego dla zadania 1
Bieżąca sytuacja jest określana na podstawie obserwacji dwóch wielkości charakteryzujących stan ładunku: odległości od celu (distance) oraz kąta wychylenia od położenia pionowego (angle).
Na wyjściu sterownika otrzymujemy moc (power) dostarczaną do suwnicy żurawia.
Do wykonania – zadanie 1
Uruchom program symulacyjny wybierając Start->fuzzyTECHxxx->Examples->Simulations ->Container Crane (plik wykonywalny znajduje się w katalogu YYY\Samples\Control\Crane); gdzie:
xxx-numer wersji programu, YYY – katalog programu FuzzyTECH. Pojawi się okno jak na Rys. 3.
1. Pomoc do symulacji. Przejdź do pomocy naciskając Help. Zapoznaj się z pomocą, a w szczególno- ści z punktami:
Fuzzy Logic in Crane Control;
Buttons in the Crane Control Simulation.
2. Uruchomienie symulacji w trybie ręcznym. Naciśnij przycisk Manual. Spróbuj, korzystając z kla- wiatury, ustawić ładunek nad miejscem docelowym (zielona platforma) tak, by zarówno odległość od celu jak i kąt wyniosły zero. Możesz zanotować czas, jaki jest Ci potrzebny na wykonanie zada- nia...
1 za Wikipedią: Regulator PID (regulator proporcjonalno-całkująco-różniczkujący, ang. proportional-integral-deriva- tive controller) składa się z trzech członów: proporcjonalnego, całkującego i różniczkującego. Zwykle jego celem jest utrzymanie wartości wyjściowej na określonym poziomie (zwanym wartością zadaną).
kąt angle odległość
distance STEROWNIK ROZMYTY (rozmyte reguły)
moc power
Rys. 3. Okno symulacji sterowania żurawiem portowym
3. Sterowanie rozmyte z ustawieniami domyślnymi. Naciśnij przycisk Reset a następnie Fuzzy.
Załaduje się program FuzzyTECH wraz z właściwym modułem. Zamknij ewentualnie pojawiające się okna z informacjami o programie. Ustaw okna tak, by widzieć jednocześnie symulację i program FuzzyTECH.
Zauważ, że elementy w oknie Project Editor można przesuwać oraz otwierać ich zawartość poprzez podwójne kliknięcie. Rozpoznaj zmienne wejściowe i wyjściowe.
Otwórz blok reguł (Rule block) i zapoznaj się z regułami wnioskowania rozmytego w rozważanym przypadku. Zamknij blok reguł.
Otwórz zmienną lingwistyczną Angle. Zaobserwuj zbiory rozmyte związane z tą zmienną, Zrób to samo dla zmiennych Distance i Power. Nie zamykaj powstałych okien.
Ustaw okna zmiennych: Angle, Distance i Power tak, by wszystkie były widoczne.
Wybierz interaktywny tryb debuggowania z menu Debug. Pojawi się okno Watch z informacjami o wartościach wejściowych i wyjściowych zmiennych lingwistycznych (można również to okno uaktywnić korzystając z menu Window).
Przejdź do programu symulacji żurawia. Naciśnij Fuzzy i zaraz potem Step. Naciskając Step zaob- serwuj zmiany w oknach Angle, Distance i Power. Zwróć uwagę na strzałki pod wykresami funkcji przynależności. Zauważ, że w oknach ze zmiennymi zmieniają się wartości funkcji przynależności do poszczególnych zbiorów rozmytych (pole Term, liczby w zakresie 0-100%).
Uaktywnij okno wykresu 3D - 3D Plot (poszukaj odpowiedniej opcji/ikony w programie). Wciśnij w oknie wykresu 3D ikonę (Trace), jeśli nie jest wciśnięta. Zresetuj układ i uruchom symula- cję by obserwować okno wykresu 3D. Zapoznaj się z funkcjami/ikonami związanymi z tym oknem.
Uaktywnij okno wykresu zmian wartości zmiennych w czasie – Time Plot (poszukaj odpowiedniej opcji/ikony w programie). Wciśnij ikonę (Configuration). Zresetuj układ i uruchom symulację by obserwować okno wykresu. Zapoznaj się z funkcjami/ikonami związanymi z tym oknem.
4. Sterowanie rozmyte z modyfikacją ustawień. Zresetuj układ. Dokonaj modyfikacji tylko tych dwóch zbiorów rozmytych, które związane są z Twoim stanowiskiem komputerowym (patrz: Tabela 1). Możesz modyfikować zbiory rozmyte osobno lub równocześnie.
Zanotuj modyfikacje i związane z nimi spostrzeżenia w Tab. 1 na karcie pomiarowej. Modyfikuj zbiory rozmyte i notuj wyniki aż do wypełnienia całej tabeli.
Tabela 1. Lista zmiennych lingwistycznych i zbiorów rozmytych do modyfikacji
Nr komputera Zmienne lingwistyczne Zbiory rozmyte do modyfikacji
1, 13 Distance far
Angle neg_big
2, 14 Distance medium
Power pos_medium
3, 15 Power pos_high
Angle neg_small
4, 16 Distance far
Power neg_medium
5, 17 Distance medium
Angle pos_small
6, 18 Distance close
Power pos_high
7, 19 Distance far
Angle zero
8, 20 Power pos_medium
Angle neg_big
9, 21 Distance close
Angle neg_small
10, 22 Power neg_medium
Angle pos_small
11, 23 Distance medium
Power pos_medium
12, 24 Power pos_high
Angle neg_big
Zadanie 2 - sterowanie klimatyzacją
Twoim zadaniem jest zamodelowanie i przetestowanie prostego sterownika rozmytego, który będzie sterował klimatyzacją w pomieszczeniu (moc wyjściowa klimatyzatora) na podstawie pomia- rów dwóch parametrów: temperatury powietrza w pomieszczeniu oraz wilgotności powietrza. Baza reguł jest przedstawiona w Tab. 2.
Pamiętaj – rób częste zrzuty ekranów1, które będziesz mógł zamieścić w sprawozdaniu - wersja programu, na której pracujesz, nie umożliwia zapisywania projektów...
Tabela 2. Baza reguł do sterowania klimatyzacją – moc w zależności od temperatury i wilgotności TEMPERATURA
WILGOTNOŚĆ ciepło gorąco b_gorąco
sucho niska niska średnia
wilgotno niska średnia wysoka
b_wilgotno średnia wysoka wysoka
Zamknij poprzedni projekt w programie FuzzyTECH. Pojawi się nowy, pusty projekt (możesz zmienić jago nazwę np. na klimatyzacja). Możesz też zamknąć program symulacji żurawia.
Dodaj 2 zmienne typu wejściowego i 1 zmienną typu wyjściowego korzystając z menu Edit->New Variable lub klikając ikonę zgodnie z Rys. 4.
1 Kombinacja klawiszy Alt+Print Screen jest przydatna w przypadku, gdy chcesz zrobić zrzut tylko aktywnego okna.
a)
b)
c)
Rys. 4. Dane wstępne dla zmiennych lingwistycznych a) temperatura, b) wilgotność, c) moc
Przyjmij ustawienia zbiorów rozmytych dla zmiennych lingwistycznych na przykład tak, jak na Rys. 5. Zauważ, że klikając na nazwie zbioru rozmytego wchodzisz w tryb edycji własności da- nego zbioru rozmytego. Z kolei kształt (aktywnego) zbioru rozmytego można modyfikować np.
poprzez zaznaczenie danego węzła i wpisanie wartości w lewym dolnym rogu.
a) b)
c)
Rys. 5. Przykładowe zbiory rozmyte dla a) temperatury, b) wilgotności, c) mocy
Dodaj bazę reguł korzystając z menu Edit->New Rule Block lub klikając ikonę . Kliknij pra- wym klawiszem myszy na bazie reguł i wprowadź jako wejścia (Inputs) zmienne wejściowe a zmienną moc jako wyjście (Outputs).
Wprowadź reguły rozmyte zgodnie z Tabelą 2. W tym celu kliknij ikonę w prawym dolnym rogu okna a następnie kliknij 2 razy w odpowiednią komórkę tabeli. Powinieneś uzyskać wi- dok podobny do przedstawionego na Rys. 6. Zatwierdź reguły przyciskiem OK.
Rys. 6. Widok edytora reguł z wpisanymi regułami
Prześledź działanie klimatyzacji w trybie debuggowania dla różnych wartości zmiennych wej- ściowych (patrz: Rys. 7). Wartości wejściowe zmieniaj bądź w oknie Watch, bądź też przesu- wając strzałki pod wykresami funkcji przynależności. Wyniki i obserwacje zanotuj w protokole.
Rys. 7. Widok projektu w trybie debuggowania
Sprawozdanie
Sprawozdanie ma być dostarczone wyłącznie w formie elektronicznej.
Nazwa pliku wg wzorca: MH_cw5_Jan_Kowalski.doc/pdf.
Strona pierwsza to strona tytułowa.
W sprawozdaniu należy zamieścić:
1. Cel ćwiczenia.
2. Opisy zadań.
3. Opisy modyfikacji zbiorów rozmytych w zadaniu 1.
4. Zrzuty ekranów dotyczące tworzenia sterownika rozmytego w zadaniu 2.
5. Skan/fotografię protokołu.
6. Wnioski z ćwiczenia z podziałem na wnioski dotyczące zadania 1 i zadania 2.
Literatura i źródła
[1] L. Rutkowski: Metody i techniki sztucznej inteligencji. PWN, Warszawa, 2006.
[2] J. Kacprzyk: Wieloetapowe sterowanie rozmyte. WNT, Warszawa, 2001.
[3] FuzzyTECH Help – plik pomocy do programu FuzzyTECH.
[4] http://www.intelligent-systems.info/FuzzyEngine.htm - strona E. Sazanova poświęcona stero- waniu rozmytemu żurawiem portowym.
Protokół do ćwiczenia 5: Systemy rozmyte
Imię i nazwisko Rok ak. Gr. Sem. Komp. Data Podpis prowadzącego _________________________ 20__/__ MB4 II _____ __________
Zadanie 1
Tabela 1. Wpływ modyfikacji zbiorów rozmytych na działanie sterownika
Zmienna Zbiór rozmyty Modyfikacja Opis skutków modyfikacji __________
__________
___________
___________
__________
__________
___________
___________
__________
__________
___________
___________
__________
__________
___________
___________
__________
__________
___________
___________
__________
__________
___________
___________
Zadanie 2
Notatki (poniżej i na drugiej stronie):