Algorytmy sterowania
Algorytmy sterowania zostały zaprojektowane, aby jak najprecyzyjniej kontrolować położenie i orientację efektora w robotach manipulacyjnych. Mogą być także zastosowane w robotach mobilnych.
Historia
Początkowo do sterowania robotami wykorzystywano regulatory PID. Wkrótce jednak zauważono, że uzyskiwane wyniki były znacznie gorsze od oczekiwanych, głównie z powodu nieliniowości. Badania wykazały, że regulator PD (bez części całkującej) jest bardziej efektywny. Metoda ta jest wciąż stosowana w przypadku robotów, dla których nie ma dostępnego modelu matematycznego (tzn. brak jest znanego wzoru na dynamikę robota). W rezultacie algorytmy zostały podzielone na trzy grupy, w zależności od poziomu wiedzy o robocie.
Całkowita znajomość modelu
Dokładna linearyzacja
- Model:
- Sterowanie:
- Równanie zamkniętej pętli:
- Własności:
- globalny,
- eksponencjalnie stabilny (patrz metody Lapunowa),
- {\displaystyle n} lokalnych sterowań PD z korekcją.
- Model:
- Sterowanie:
- {\displaystyle e=q-q_{d}} – błąd śledzenia położenia,
- {\displaystyle q_{r}} – trajektoria referencyjna (nie trzeba znać),
- {\displaystyle s=q^{’}-q_{r}^{’}} = e^{’}+e\Lambda – zmienna ślizgu,
- {\displaystyle K_{d}} – macierz, która spełnia warunek {\displaystyle K_{d}s>0.}
- Równanie zamkniętej pętli:
- Model:
- Sterowanie:
- {\displaystyle K,K_{d}} – macierze diagonalne, > 0,
- {\displaystyle \theta _{est}} – nie zależy od czasu i zawiera się w przedziale {\displaystyle [\theta _{m}in,\theta _{m}ax],}
- – nie ma identyfikatora,
- – sterowanie jest nieciągłe.
- Równanie zamkniętej pętli:
- przekroczenie trajektorii – robot mija krzywą wyznaczoną przez trajektorię i zaczyna poruszać się po jej drugiej stronie,
- oscylacja wokół trajektorii – robot zaczyna poruszać się „po gasnącej sinusoidzie”, w której wartością średnią jest trajektoria.
{\displaystyle M(q)q^{”}+C(q,q^{’})q^{’}+D(q)=u.}
{\displaystyle u=M(q)v+C(q,q^{’})q^{’}+D(q),}
gdzie:
{\displaystyle v} – własne sterowanie.
{\displaystyle M^{-1}(q)M(q)(q^{”}-v)=0,}
{\displaystyle q^{”}=v.}
Slotine i Li
{\displaystyle M(q)q^{”}+C(q,q^{’})q^{’}+D(q)=u.}
{\displaystyle u=M(q)q_{r}^{”}+C(q,q^{’})q_{r}^{’}+D(q)-K_{d}s,}
gdzie:
{\displaystyle M(q)(q^{”}-q_{r}^{”})+C(q,q^{’})(q^{’}-q_{r}^{’})+K_{d}s=0,}
{\displaystyle q^{”}-q_{r}^{”}=s^{’},}
{\displaystyle q^{’}-q_{r}^{’}=s,}
{\displaystyle Ms^{’}=-Cs-K_{d}s.}
Częściowa nieznajomość modelu
Adaptacyjne wersje algorytmów przy całkowitej znajomości
Algorytm ślizgowy
{\displaystyle M(q,\theta )q^{”}+C(q,q^{’},\theta )q^{’}+D(q,\theta )+d(t)=Y(q,q^{’},q^{’},q^{”})\theta +d(t)}
{\displaystyle \theta } – nieznane, stałe parametry, można oszacować pomiędzy {\displaystyle \theta _{m}in,} a {\displaystyle \theta _{m}ax,}
{\displaystyle d(t)} – nieznane ograniczone zakłócenie, braki w modelu.
{\displaystyle u=Y(q,q^{’},q_{r}^{’},q_{r}^{”})\theta _{est}-K_{d}s-K\operatorname {sgn}(s),}
gdzie:
{\displaystyle Y\theta +d=Y_{r}\theta _{est}-K_{d}s-K\operatorname {sgn}(s),}
{\displaystyle Y\theta -Y_{r}\theta =Y_{r}\theta _{est}-Y_{r}\theta -K_{d}s-K\operatorname {sgn}(s)-d,}
{\displaystyle (Y-Y_{r})\theta =M(q,\theta )q^{”}+C(q,q^{’},\theta )q^{’}+D(q,\theta )-M(q,\theta )q_{r}^{”}+C(q,q^{’},\theta )q_{r}^{’}+D(q,\theta ),}
Algorytm uniwersalny
Całkowita nieznajomość modelu
PD
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 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
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, która może tylko wzrastać, gdy błąd przekroczy zadany poziom {\displaystyle \lambda.} Metoda ta pozwala oszacować wartość błędu, z jakim porusza się robot.
Cel
Celem tych algorytmów jest śledzenie zadanej trajektorii {\displaystyle q_{d}(t),} tak aby {\displaystyle e(t)=q(t)-q_{d}(t) \rightarrow 0.} Część algorytmów ma już zaszyty 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:
{\displaystyle v=q_{d}^{”}-K_{d}(q^{’}-q_{d}^{’})-K_{p}(q-q_{d}).}
Po podstawieniu do wzoru:
{\displaystyle q^{”}=v}
otrzymujemy:
{\displaystyle q^{”}=q_{d}^{”}-K_{d}(q^{’}-q_{d}^{’})-K_{p}(q-q_{d}).}
Dobieranie nastaw
Jest to ostatni krok w trakcie przeprowadzania symulacji komputerowych, który polega na określeniu wartości, jakie powinny 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 uzyskać wynik zbliżony do optymalnego.
Kryterium jakości
Kryterium to przedstawia sumaryczny błąd od początku do końca sterowania i zapisuje się jako:
{\displaystyle E=\int \limits _{0}^{T}{|e|dt},}
gdzie:
{\displaystyle |e|} – moduł błędu (suma różnic pomiędzy kolejnymi współrzędnymi).
Mniejsza wartość {\displaystyle E} oznacza, że robot szybciej zaczyna poruszać się zgodnie z ruchem punktu na trajektorii. Jednakże nie oznacza to, że z perspektywy osoby obsługującej manipulator (lub robot mobilny) nastawy z nią związane są najlepsze. Może to wynikać z faktu, że mogą wystąpić dodatkowe przesterowania.
Przesterowania
W automatyce obserwuje się 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 w przypadku algorytmów sterowania robotów manipulacyjnych i mobilnych. Można wyróżnić dwa niepożądane zachowania:
Ad. 1 – Pojawia się, gdy wartość macierzy stojącej przy błędzie {\displaystyle (e)} jest zbyt duża.
Ad. 2 – Pojawia się, gdy wartość macierzy stojącej przy szybkości zmian błędu {\displaystyle (e’)} jest zbyt duża.
Obydwa zachowania są niepożądane, gdy robot ma poruszać się np. wzdłuż ściany (może 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
Wszystkie pochodne występujące we wzorach są obliczane względem czasu, tj. {\displaystyle q^{’}={\frac {dq}{dt}}.}