6. Zagadnienie parkowania ciężarówki. Sterowniki rozmyte Aby móc sterować przebiegiem pewnych procesów lub też pracą urządzeń niezbędne jest stworzenie odpowiedniego modelu, na podstawie którego można będzie podejmować decyzje związane ze sterowaniem. Bardzo często zdarza się, iż znalezienie odpowiedniego modelu jest procesem trudnym i czasochłonnym a nierzadko wymagającym przyjęcia dodatkowych założeń upraszczających zagadnienie. W takim przypadku idealnym narzędziem są sterowniki rozmyte. Zamiast wyznaczać pewien model formułujemy jedynie reguły postępowania w postaci rozmytych zdań warunkowych typu IF... THEN... Rysunek 1 przedstawia klasyczny sterownik rozmyty. Składa się on z czterech ele- mentów: Rysunek 1: Klasyczny sterownik rozmyty. Bazy reguł Bazę reguł stanowi zbiór rozmytych reguł postaci IF (x1 jest A1) AND... AND (xn jest An) THEN (y1 jest B1) AND... AND (ym jest Bm) 1
gdzie A i, B j, i = 1,..., n, j = 1,..., m są zbiorami rozmytymi, x i zmiennymi wejściowymi, y j zmiennymi wyjściowymi. Bloku rozmywania Ponieważ system sterowania z logiką rozmytą operuje na zbiorach rozmytych, dlatego konkretne wartości sygnału wejściowego podlegają operacji rozmywania, w wyniku której zostają one odwzorowane w zbiór rozmyty. Bloku wnioskowania Na podstawie zbioru reguł rozmytych w oparciu o uogólnione reguły wnioskowania znajdujemy odpowiedni zbiór rozmyty będący wnioskiem powstałym w oparciu o podane przesłanki. Bloku wyostrzania Wielkością wyjściową bloku wnioskowania jest zbiór rozmyty. Zbiór ten należy odwzorować w jedną wartość, która będzie poszukiwanym sygnałem sterującym. Zadanie, które będziemy chcieli rozwiązać znane jest pod nazwą zagadnienia parkowania ciężarówki i jako takie nie jest wcale problemem trywialnym. Chcąc zastosować podany algorytm musimy najpierw wygenerować zbiór reguł, na których podstawie będziemy realizować procedurę wnioskowania, co w konsekwencji pozwali sterować ciężarówką na pewnym zamkniętym obszarze. Chcemy zaparkować ciężarówkę, czyli ustawić ją w położeniu prostopadłym do rampy 1 Zakładamy, że pojazd porusza się tylko do tyłu i ze stałą prędkością. Pojazdem sterujemy zmieniając kąt skręcenia jego kół. Zakres zmienności dla kątów: Φ [ 180, 180] oraz θ [ 45, 45]. Poniżej zamieszczono niezbędne wzory opisujące dynamikę ruchu ciężarówki oraz rysunek 2 przedstawiający znaczenie użytych symboli. Teoria x(t + 1) = x(t) + sin [θ(t) + Φ(t)] sin [θ(t)] cos [Φ(t)] y(t + 1) = y(t) + cos [θ(t) + Φ(t)] sin [θ(t)] sin [Φ(t)] Φ(t + 1) = Φ(t) arcsin [ 2 sin θ(t) ] b Poniżej podajemy algorytm tworzenia reguł rozmytych. Zakładamy, że naszym celem jest stworzenie sterownika rozmytego o dwóch wejściach i jednym wyjściu mając cały czas na uwadze rozwiązanie zadania jakie sobie wyznaczyliśmy czyli problemu parkowania ciężarówki. W tym celu, w oparciu o zebrane przykładowe dane, musimy ustalić odpowiednie reguły rozmyte. Przykładowe dane nazywać będziemy dalej danymi uczącymi i będą one zbiorem par (in(i), out(i)), i = 1, 2,... gdzie in(i) = (x1(i), x2(i)), out(i) = y(i) jest sygnałem wejściowym, podawanym na wejście sterownika, natomiast out(i) wzorcową wartością sygnału wyjściowego. 1 Rampa to górna krawędź obszaru w którym się poruszamy. 2
Krok 1 - podział przestrzeni wejściowej i wyjściowej na obszary Określamy przedziały, w których zawierają się dopuszczalne wartości dla in(i) oraz out(i). Każdy z przedziałów dzielimy na 2N + 1 obszarów (odcinków). Dla każdego z sygnałów N może być różne; różne mogą być także długości odcinków. Poszczególne obszary oznaczamy następująco: M N (MayN),..., M 1 (May1), S(redni), D 1 (Duy1),..., D N (DuyN) i dla każdego z nich określamy jedną funkcję przynależności. Przykład takiego podziału przedstawiono na rysunku 3. Jak widać w stosunku do trzech sygnałów: x 1, x 2, y przyjęto następujące założenia: Sygnał Minimalna Maksymalna N wartość wartość x 1 1.0 5.0 2 x 2 2.73 15.8 2 y 0.4 13.7 3 Dla uproszczenia jako funkcję przynależności przyjęto wszędzie funkcję o kształcie trójkątnym. Krok 2 - tworzenie reguł rozmytych na podstawie danych uczących. Wyznaczamy stopnie przynależności danych uczących do każdego z obszarów utworzonych w kroku 1. Biorąc pod uwagę rysunek 3 stwierdzamy, że stopień przynależności danej x 1 (1) do obszaru M 1 wynosi 0.7, do obszaru M 2 0.3 a do pozostałych obszarów 0. Podobnie postępujemy dla x 2 (1) i y(1). Przyporządkowujemy dane uczące do obszarów w których mają one maksymalne stopnie przynależności. W ten sposób dla każdej pary uczącej możemy napisać jedną regułę: (x1(1),x2(1),y(1)) ==> reguła (1): IF (x1 jest M_1) AND (x2 jest S) THEN y jest M_1 Krok 3 - przyporządkowanie stopni prawdziwości do każdej z reguł W oparciu o każdą parę danych uczących możemy sformułować jedną regułę. Oczywiste jest, że w przypadku występowaniu dużej ilości par wiele reguł będzie miało te same przesłanki i te same (bądź też różne) wnioski. W celu umożliwienia podjęcia decyzji, którą z nich wybrać, do każdej reguły przyporządkowujemy stopień prawdziwości i wybieramy tą spośród reguł o tych samych przesłankach, która ma ten stopień najwyższy. Dla reguł postaci IF (x1 jest A1) AND (x2 jest A2) THEN y jest B stopień prawdziwości sp definiujemy jako sp = µ A1 (x 1 )µ A2 (x 2 )µ B (y) 3
Krok 4 - utworzenie bazy reguł rozmytych Bazę reguł stanowi tablica, którą wypełniamy regułami rozmytymi w następujący sposób: jeśli reguła jest postaci IF (x1 jest Ax) AND (x2 jest Ay) THEN y jest Bz to na przecięciu kolumny Ax oraz wiersza Ay wpisujemy nazwę zbioru rozmytego występującego we wniosku, czyli Bz. Krok 5 - wyostrzanie W celu określenia liczbowej wartości sterowania należy przyjąć pewną metodę wyostrzania. W tym przypadku wyostrzanie odbywać się będzie według wzoru y = Nk=1 τ (k) y (k) Nk=1 τ (k) gdzie τ (k) = µ A1 (k)(x 1 )µ A2 (k)(x 2 ) nazywamy stopniem aktywności k tej reguły. Rysunek 2: Ciężarówka oraz obszar parkingu. 4
Rysunek 3: Podział na obszary i określenie funkcji przynależności. 5