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