Algorytmy sterowania

Z Wikipedii, wolnej encyklopedii

Algorytmy sterowania opracowane zostały w celu jak najdokładniejszego sterowania położeniem i orientacją efektora w manipulatorze robotycznym. Mogą one być używane także w przypadku robotów mobilnych.

Historia[edytuj | edytuj kod]

Początkowo do sterowania robotem stosowano regulatory PID. Jednak bardzo szybko okazało się, że wyniki były dużo gorsze od oczekiwanych (głównie za sprawą nieliniowości). Badania wykazały, że skuteczniejszy jest regulator PD (pozbawiony części całkującej). Sposób ten przetrwał do dzisiaj i stosowany jest w przypadku robotów, dla których nie został wyznaczony model matematyczny (tzn. nie jest znany wzór na dynamikę robota). Ostatecznie opracowane algorytmy podzielone zostały na trzy grupy opisujące stan wiedzy o robocie.

Całkowita znajomość modelu[edytuj | edytuj kod]

Dokładna linearyzacja[edytuj | edytuj kod]

1. Model:

2. Sterowanie:

gdzie:
– własne sterowanie.

3. Równanie zamkniętej pętli:

4. Własności:

– globalny,
– eksponencjalnie stabilny (patrz metody Lapunowa),
lokalnych sterowań PD z korekcją.

Slotine i Li[edytuj | edytuj kod]

1. Model:

2. Sterowanie:

– błąd śledzenia położenia,
– trajektoria referencyjna (nie trzeba znać),
– zmienna ślizgu,
– macierz, która spełnia warunek

3. Równanie zamkniętej pętli:

4. Własności:

– globalny,
– asymptotycznie stabilny.

Częściowa nieznajomość modelu[edytuj | edytuj kod]

Adaptacyjne wersje algorytmów przy całkowitej znajomości[edytuj | edytuj kod]

Algorytm ślizgowy[edytuj | edytuj kod]

1. Model:

– nieznane, stałe parametry, można oszacować pomiędzy a
– nieznane ograniczone zakłócenie, braki w modelu.

2. Sterowanie:

– macierze diagonalne, > 0,
nie zależy od czasu i zawiera się w przedziale
– nie ma identyfikatora,
– sterowanie jest nieciągłe.

3. Równanie zamkniętej pętli:

Algorytm uniwersalny[edytuj | edytuj kod]

Całkowita nieznajomość modelu[edytuj | edytuj kod]

PD[edytuj | edytuj kod]

Jest to podstawowy sposób sterowania robotem przy całkowitej nieznajomości modelu. Przyjmuje się, że robot to układ z wejściem u i wyjściem x. Wartość x porównuje się z wartością zadaną, a uzyskany wynik e podawany przez poprzez układ PD jako nowe sterowanie u. Nie stosuje się członu całkującego, ponieważ komplikuje on układ i nie wnosi poprawy w sterowaniu. Ostatnim etapem jest ustawienie odpowiednio dużej wartości P oraz D. Przy odpowiednio dużych wartościach jesteśmy w stanie uzyskać dość mały błąd. Niestety nie jesteśmy w stanie określić wartości tego błędu.

Lambda-śledzenie[edytuj | edytuj kod]

Algorytm ten podobny jest do PD, z tą różnicą, że błąd podawany jest poprzez układ (moduł) wzmacniający K. Przyjmuje się, że moduł ten ma zmienną wartość wzmocnienia. Przy czym wartość wzmocnienia może ulec jedynie zwiększeniu. Następuje to w momencie, gdy błąd przekroczy zadany poziom Metoda ta pozwala oszacować wartość błędu z jakim porusza się robot.

Cel[edytuj | edytuj kod]

Celem ww. algorytmów jest śledzenie zadanej trajektorii to jest takie działanie, aby Część algorytmów ma już zaszyty w sobie wzór błędu (ew. także wzór na jego pochodną), inne wymagają podania dodatkowych informacji.

W przypadku algorytmu dokładnej linearyzacji przyjmujemy, że:

Po podstawieniu do wzoru:

otrzymujemy:

gdzie:

– korekcja.

Na koniec należy zapewnić postać macierzy taką, że spełnione zostaną warunki Hurwitza. Warunki te spełniają np. macierze diagonalne, w których wszystkie składniki na głównej diagonali są większe od zera.

Nazwy macierzy dobrane zostały nieprzypadkowo, ponieważ występuje przy pochodnej błędu, a przy błędzie. W ten sposób otrzymaliśmy sterownik PD.

Dobieranie nastaw[edytuj | edytuj kod]

Jest to ostatni punkt w trakcie wykonywania symulacji komputerowych. Polega on na określeniu wartości, jakie muszą przyjąć odpowiednie macierze. W tym celu przeprowadza się szereg symulacji dla kilku różnych wartości. Po określeniu wpływu poszczególnych macierzy oraz przedziału w którym uzyskuje się oczekiwaną jakość sterowania (kryterium jakości) można wykonać dodatkowe obliczenia zawarte w otrzymanym przedziale, aby otrzymać wynik zbliżony do optymalnego.

Kryterium jakości[edytuj | edytuj kod]

Kryterium to przedstawia sumaryczny błąd od początku do końca sterowania i zapisywane jest jako:

gdzie:
– moduł błędu (suma różnic pomiędzy kolejnymi współrzędnymi).

Mniejsza wartość oznacza, że robot szybciej zaczyna poruszać się zgodnie z ruchem punktu na trajektorii. Jednakże nie oznacza ona, że z punktu widzenia osoby obsługującej manipulator (lub robot mobilny) nastawy z nią związane są najlepsze. Wynika to z faktu, iż mogą pojawić się dodatkowe przesterowania.

Przesterowania[edytuj | edytuj kod]

W automatyce obserwowane jest zjawisko przesterowania polegające na tym, że wyjście układu przekracza zadaną wartość, a następnie zaczyna maleć aż osiągnie wartość ustaloną. Podobnie jest także w przypadku algorytmów sterowania robotów manipulacyjnych i mobilnych. Wyróżnić można dwa zachowania odbiegające od oczekiwanych:

  1. przekroczenie trajektorii – robot mija krzywą wyznaczoną przez trajektorię i zaczyna poruszać się po jej drugiej stronie,
  2. oscylacja wokół trajektorii – robot zaczyna poruszać się „po gasnącej sinusoidzie”, w której wartością średnią jest trajektoria.

Ad. 1 – Pojawia się, gdy jest zbyt duża wartość macierzy stojącej przy wartości błędu

Ad. 2 – Pojawia się, gdy jest zbyt duża wartość macierzy stojącej przy szybkości zmian błędu

Obydwa zachowania są nie do przyjęcia, gdy robot ma się poruszać np. wzdłuż ściany (mógłby w takim przypadku zderzać się ze ścianą). W przeciwnym przypadku należy określić czy takie zachowanie robota nie będzie przeszkadzało w wykonywaniu zadania.

Uwagi[edytuj | edytuj kod]

Wszystkie pochodne występujące we wzorach wyliczane są względem czasu tj.