Algorytmy sterowania

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

  1. Model:
  2. {\displaystyle M(q)q^{”}+C(q,q^{’})q^{’}+D(q)=u.}

  3. Sterowanie:
  4. {\displaystyle u=M(q)v+C(q,q^{’})q^{’}+D(q),}

    gdzie:

    {\displaystyle v} – własne sterowanie.

  5. Równanie zamkniętej pętli:
  6. {\displaystyle M^{-1}(q)M(q)(q^{”}-v)=0,}

    {\displaystyle q^{”}=v.}

  7. Własności:
    • globalny,
    • eksponencjalnie stabilny (patrz metody Lapunowa),
    • {\displaystyle n} lokalnych sterowań PD z korekcją.

    Slotine i Li

    1. Model:
    2. {\displaystyle M(q)q^{”}+C(q,q^{’})q^{’}+D(q)=u.}

    3. Sterowanie:
    4. {\displaystyle u=M(q)q_{r}^{”}+C(q,q^{’})q_{r}^{’}+D(q)-K_{d}s,}

      gdzie:

      • {\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.}
    5. Równanie zamkniętej pętli:
    6. {\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

    1. Model:
    2. {\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.

    3. Sterowanie:
    4. {\displaystyle u=Y(q,q^{’},q_{r}^{’},q_{r}^{”})\theta _{est}-K_{d}s-K\operatorname {sgn}(s),}

      gdzie:

      • {\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.
    5. Równanie zamkniętej pętli:
    6. {\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:

    • 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.

    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}}.}

Przeczytaj u przyjaciół: