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 podej- mować decyzje związane ze sterowaniem. Bardzo często zdarza się, iż znalezienie odpowiedniego modelu jest procesem trudnym i czasochłonnym a nierzadko wy- magają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ń warun- kowych typu
IF ... THEN ...
Rysunek 1 przedstawia klasyczny sterownik rozmyty. Składa się on z czterech ele-
Rysunek 1: Klasyczny sterownik rozmyty.
mentów:
• Bazy reguł
Bazę reguł stanowi zbiór rozmytych reguł postaci IF (x1 jest A1) AND ... AND (xn jest An)
gdzie Ai, Bj, i = 1, ..., n, j = 1, ..., m – są zbiorami rozmytymi, xi – zmiennymi wejściowymi, yj – 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 rozmywa- nia, 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 wniosko- wania 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ęża- ró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 zmie- niają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.
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 ]
Teoria
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.
1Rampa to górna krawędź obszaru w którym się poruszamy.
• 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:
MN(M ayN ), ..., M1(M ay1), S(redni), D1(Duy1), ..., DN(DuyN ) i dla każdego z nich określamy jedną funkcję przynależności. Przykład takie- go podziału przedstawiono na rysunku 3. Jak widać w stosunku do trzech sygnałów: x1, x2, y przyjęto następujące założenia:
Sygnał Minimalna Maksymalna N wartość wartość
x1 1.0 5.0 2
x2 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 x1(1) do obszaru M1 wynosi 0.7, do obszaru M2 – 0.3 a do pozostałych obszarów 0. Podobnie postępujemy dla x2(1) i y(1). Przy- porzą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 przy- porzą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
• 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 rozmy- tego 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 =
PN
k=1τ(k)y(k)
PN k=1τ(k) gdzie
τ(k) = µA1(k)(x1)µA2(k)(x2) nazywamy stopniem aktywności k − tej reguły.
Rysunek 2: Ciężarówka oraz obszar parkingu.
Rysunek 3: Podział na obszary i określenie funkcji przynależności.