STEROWANIE ROZMYTE
ZADANIE:
W ramach ćwiczenia trzeba będzie zaprogramować wirtualny sterownik
rozmyty, sterujący napędami dwuczłonowego robota o dwóch przegubach obrotowych.
Sygnały ze sterownika sterują wartościami momentów siły M1
i M2, rozwijanych przez
napędy tych przegubów. Dla dodatnich wartości M1
i M2, działają one w kierunku
przeciwnym do ruchu wskazówek zegara.
Na kiść robota działa siła zewnętrzna o stałym kierunku, lecz zmiennym zwrocie.
Celem sterownika jest jak najszybsze doprowadzenie ramion robota do ściśle określonej
pozycji (zdeterminowanej przez wartości kątów alfa1
i alfa2 zadane przez prowadzącego),
oraz utrzymanie ich w tej pozycji pomimo "szarpania" spowodowanego oddziaływaniem
siły zewnętrznej. Kąt alfa1 jest to kąt,
jaki tworzy pierwsze ramię robota z poziomą
płaszczyzną podstawy, natomiast ramię drugie tworzy z ramieniem pierwszym kąt alfa2
(oba kąty są mierzone w kierunku przeciwnym do ruchu wskazówek zegara).
Sygnałami wejściowymi do sterownika rozmytego są aktualne wartości kątów alfa1
i alfa2 (znormalizowane do zakresu <-180°,180°>),
oraz chwilowe wartości
prędkości kątowych tych przegubów
omega1 i omega2
(wartości te są dodatnie dla
kierunku obrotów przeciwnego do ruchu wskazówek zegara).
W celu realizacji zadania należy najpierw przemyśleć (pod kątem logiki rozmytej)
zależności pomiędzy parametrami wejściowymi
(alfa1,alfa2,
omega1,omega2)
i wyjściowymi (M1,M2) regulatora,
a następnie napisać procedurę w języku ARLANG,
która będzie zawierała deklaracje stosownych zmiennych rozmytych, instrukcje fuzyfikacji,
reguły wnioskowania oraz instrukcje defuzyfikacji.
PRZYGOTOWANIE:
Przed przystąpieniem do ćwiczenia uczestnicy powinni
zapoznać się z językiem programowania
ARLANG (wystarczy zrozumieć podstawy),
oraz z zasadami zapisu działań na logice rozmytej w tym języku, opisanymi
w pliku
FUZZY.TXT