• Nie Znaleziono Wyników

Systemy rozmyte i program FuzzyTECH

N/A
N/A
Protected

Academic year: 2021

Share "Systemy rozmyte i program FuzzyTECH "

Copied!
9
0
0

Pełen tekst

(1)

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

(2)

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.

(3)

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

(4)

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.

(5)

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.

(6)

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

(7)

 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

(8)

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.

(9)

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):

Cytaty

Powiązane dokumenty

Jeśli jego najkrótszy bok (będący naprzeciwko kąta 30 ◦ ) oznaczymy literą a, to jego pozostałe boki będą miały długości a √.. 3 (bok naprzeciwko kąta 60 ◦ ) oraz

Jeśli jego najkrótszy bok (będący naprzeciwko kąta 30 ◦ ) oznaczymy literą a, to jego pozostałe boki będą miały długości a √.. 3 (bok naprzeciwko kąta 60 ◦ ) oraz

Józef Lipiec wskazuje, „iż nauki o człowieku, w tym demografia, zawierają w sobie nie tylko prawdy o zjawiskach podległych determinizmowi natury (...), lecz przede wszystkim

Niniejszy tekst jest subiektywną wizją tego, jak powinien przebiegać proces re- alizacji pracy dyplomowej. Powstał na bazie dekady doświadczeń w pracy dydak- tycznej, co

czających kondensator C na wyjście detektora jedynie na czas pomiaru, a do gniazda wyjściowego na czas odczytu wartości zapamiętanej (rys. 3).. W fazie pamiętania kondensator C

Forma algebraiczna nadaje się najlepiej do dodawania i odejmowania, forma wykładnicza do mnożenia i dzielenia... nie określają

1) wykorzystuje definicje funkcji: sinus, cosinus i tangens dla kątów od 0° do 180° , w szczególności wyznacza wartości funkcji trygonometrycznych dla kątów 30°, 45°,

Prawidłowa