REGULATOR ROZMYTY - APLIKACJA

 

Wstęp

 

Aplikacja zamieszczona na mojej stronie przedstawia kolejne etapy obliczeń jakie zachodzą w regulatorze rozmytym, w celu podania ostrej wartości wyjściowej na obiekt.

 

Aplikacja ta jest tak napisana, jakby dane na nią wprowadzane pochodziły z modelu suwnicy, a jej wynik podawany był na silnik suwnicy. Tak więc wielkościami jakie wprowadzamy są wychylenie wahadła suwnicy oraz dystans jaki pozostał wózkowi suwnicy aby dotrzeć do pozycji zadanej. Jako wynik otrzymujemy prędkość z jaką powinien się on poruszać w momencie wystąpienia danych wejściowych.

 

W celu rozpoczęcia obliczeń należy podać w odpowiednich miejscach dystans i wychylenie. Mogą to być liczby zmienno przecinkowe. Zakres wprowadzanych danych to dla dystansu [-100,100] a dla wychylenia [-90,90]. Po naciśnięciu przycisku 'START' program wykona wszystkie obliczenia zachodzące w regulatorze rozmytym i wyświetli je na ekranie. Dostępne są również przyciski umożliwiające zmianę wprowadzonej danej o ±1. Po ich naciśnięciu nastąpi zmiana danej oraz ponowne obliczenie wyniku regulatora dla nowych zmiennych wejściowych.

W symulacji tej pokazane są 3 etapy, na jakie dzieli się sterowanie rozmyte.

 

1. FUZYFIKACJA

 

Po wprowadzeniu danych i naciśnięciu przycisku ‘START’ są one zaznaczane jaskrawo zieloną kreską na odpowiednich wykresach. Każda ze zmiennych ma trzy zbiory rozmyte określone następującymi zmiennymi lingwistycznymi: Ujemne, Zerowe, Dodatnie. Będziemy je nazywać odpowiednio DU, DZ i DD dla zmiennej dystansu i WU, WZ i WD dla zmiennej wychylenia. Każdy zbiór rozmyty zaznaczony jest osobnym kolorem. Wartość rzędnej w miejscu przecięcia znacznika z granicą zbioru rozmytego daje nam stopień przynależności wprowadzonej danej do tego zbioru. Obliczone w ten sposób stopnie przynależności wypisywane są za czerwoną strzałka z napisem ‘fuzyfikacja’. Dla zwiększenia czytelności stopnie te wypisywane są w kolorze danego zbioru rozmytego.

 

 

2. WNIOSKOWANIE

 

Na podstawie obliczonych wcześniej stopni przynależności i bazy reguł wyznaczane są przesłanki wygrywające, dzięki którym tworzona jest wynikowa funkcja przynależności.

Warunki bazy reguł utworzonej dla tej aplikacji przedstawiają się następująco:

JEŻLI( (d=m_DU)&(w=m_WU) )

TO( m_PU(p) = MIN( (d=m_DU)&(w=m_WU) )

JEŻLI( (d=m_DU)&(w=m_WZ) )

TO( m_PD(p) = MIN( (d=m_DU)&(w=m_WZ) )

JEŻLI( (d=m_DU)&(w=m_WD) )

TO( m_PD(p) = MIN( (d=m_DU)&(w=m_WD) )

JEŻLI( (d=m_DZ)&(w=m_WU) )

TO( m_PU(p) = MIN( (d=m_DZ)&(w=m_WU) )

JEŻLI( (d=m_DZ)&(w=m_WZ) )

TO( m_PZ(p) = MIN( (d=m_DZ)&(w=m_WZ) )

JEŻLI( (d=m_DZ)&(w=m_WD) )

TO( m_PD(p) = MIN( (d=m_DZ)&(w=m_WD) )

JEŻLI( (d=m_DD)&(w=m_WU) )

TO( m_PU(p) = MIN( (d=m_DD)&(w=m_WU) )

JEŻLI( (d=m_DD)&(w=m_WZ) )

TO( m_PU(p) = MIN( (d=m_DD)&(w=m_WZ) )

JEŻLI( (d=m_DD)&(w=m_WD) )

TO( m_PD(p) = MIN( (d=m_DD)&(w=m_WD) )

 

Wyniki bazy reguł podane są w tabeli ‘stopień aktywacji przesłanek’. Na podstawie tych wyników dla każdego zbioru rozmytego zmiennej wyjściowej wybierane są reguły wygrywające i zostają one wypisane za czerwoną strzałka z napisem ‘wnioskowanie’. Dzięki nim za pomocą poniższego wzoru obliczana jest wynikowa funkcja przynależności.

 

 

3. DEFUZYFIKACJA

 

Ta część aplikacji odpowiada za obliczenie prędkości zadanej dla silnika suwnicy. W programie tym użyto dwóch metod defuzyfikacji. Są nimi metoda Środka Ciężkości oraz metoda Wysokości. Opisane są one szerzej w zakładce 'DEFUZYFIKACJA'. Celem takiego działania jest pokazanie różnicy w obliczonych przez nie wartościach wyjściowych.

 

Strona z symulacją znajduje się tutaj.

 W razie problemów z wyświetlaniem aplikacji, należy odświeżyć stronę.

 

UWAGA! Aby móc uruchomić aplikację należy mieć zainstalowaną wirtualną maszynę Javy. Można ją pobrać tutaj (w wersji tylko dla Windows), lub ze strony firmy