Algorytm sterowania sinusoidalnego

Z testwiki
Wersja z dnia 20:21, 30 sie 2019 autorstwa imported>Beno (WP:SK+Bn)
(różn.) ← poprzednia wersja | przejdź do aktualnej wersji (różn.) | następna wersja → (różn.)
Przejdź do nawigacji Przejdź do wyszukiwania

Algorytm sterowania sinusoidalnego stosowany jest do sterowania układem łańcuchowym (robotem). Pozwala on odpowiedzieć na pytanie: „Jakie sterowanie należy użyć, aby wszystkie współrzędne osiągnęły zadaną wartość”.

Układ łańcuchowy sterowany jest poprzez dwa sygnały u. Przy czym niezależnie sterowane są tylko dwie pierwsze współrzędne. Pozostałe współrzędne zależne są od wartości współrzędnych niezależnych oraz od wartości sygnału sterującego. Algorytm sterowania sinusoidalnego proponuje wysterowanie osobno każdej współrzędnej zaczynając od x1 i x2, a kończąc na xn.

Pierwszy krok

Przykład sterowania dla trzech zmiennych, I i II oznaczają numer kroku.

Pierwszy krok polega na wysterowaniu x1 i x2 tak, aby osiągnęły one zadaną wartość. W tym celu wyznaczana jest stała wartość sterowania. Następnie wyznaczana jest wartość pozostałych współrzędnych. Będzie to wartość początkowa, od której zacznie się drugi krok. W pierwszym kroku następuje także podział zadanego czasu T na n1 części ([0,t1,t2,,T]). W każdej kolejnej części będzie powtarzany krok drugi.

Sterowanie:

u1=x1(T)x1(0)τ=const,
u2=x2(T)x2(0)τ=const.

Przykładowy układ i współrzędna zależna:

x1=u1,
x2=u2,
x3=x2u1.

Wykonuje się całkowanie drugiego wzoru, przez co otrzymuje się:

x2(t)x2(0)=u2t.

Wzór ten jest podstawiany do trzeciego wzoru:

x3=x2u1=[x2(0)+u2t]u1,
x3(τ)=x3(0)+0τ[x2(0)u1+u1u2s]ds.

Drugi krok

Po wyznaczeniu wartości początkowej kolejnej współrzędnej przystępuje się do wyszukania sterowań, które pozwolą ustawić współrzędną na jej zadanym położeniu, a także zapewnią, że poprzednie współrzędne będą znajdowały się w tym samym miejscu co na początku odcinka czasu. Tymi sterowaniami są sygnały sinus oraz cosinus. Są one niezależne od siebie i pozwalają uzyskać to, czego się oczekuje. Dzięki tym sygnałom kolejna współrzędna zostaje ustawiona we wskazanym miejscu, a pozostałe (po wykonaniu ruchu po okręgu) pozostają w swoim poprzednim położeniu.

Sterowanie:

u1(t)=asinωt,
u2(t)=bcosωt,
ω=2πτ,

gdzie a i b są wartościami szukanymi.

Dowód na poprawność sterowania

Zakładając, że x1,x2 znalazły się na swoich docelowych pozycjach. Należy sprawdzić czy sterowanie w czasie [τ,2τ]:

u1(t)=asinωt,
u2(t)=bcosωt,
ω=2πτ

da oczekiwany wynik, czyli x1(2τ)=x1(τ), x2(2τ)=x2(τ):

x1(2τ)=x1(τ)+τ2τasinωsds,
x1(2τ)=x1(τ)aω[cosωs]τ2τ,
x1(2τ)=x1(τ)aωcosω2τ+aωcosωτ,
x1(2τ)=x1(τ)a2πτcos2πτ2τ+a2πτcos2πττ,
x1(2τ)=x1(τ)a2πτ+a2πτ=x1(τ).

Powyżej przedstawiony został dowód dla pierwszej zmiennej. Podobny dowód można przeprowadzić dla drugiej zmiennej. Wynika z tego, że zastosowane sterowanie pozwala uzyskać żadaną stałość zmiennych niezależnych.

Przykład

Zakładając układ o stanie początkowym x0=(0,0,0)T, zadanym stanie końcowym xT=(2,2,π4)T oraz czasie T = 4, w którym należy przejść ze stanu x0 do stanu xT; τ będzie w tym przypadku równe 2.

Pierwszy krok, to policzenie stałego sterowania oraz wartości początkowej trzeciej współrzędnej. Obydwa sterowania są sobie równe i wynoszą: u1=u2=2τ. Natomiast trzecia współrzędna będzie miała wartość:

x3(τ)=x3(0)+0τ[x2(0)u1+u1u2s]ds=0τu1u2sds=4τ212[s2]0τ=2.

W drugim i ostatnim kroku wylicza się wartość a i b dla sterowań:

x3(2τ)=x3(τ)+abτ24π=x3(T),
2+abτ24π=π4,
ab=π28πτ2,
a=πτ, b=π8τ.

Uwagi

Należy pamiętać o tym, że sterowanie [0,t1] jest stałe. Natomiast w punkcie t1 jedno ze sterowań jest nieciągłe. Drugim problemem jest wyznaczenie odpowiednich wartości sygnałów sinus oraz cosinus (wzmocnienie), tak aby uzyskać oczekiwany efekt.

Bibliografia

  • K. Tchoń, A. Mazur, I. Dulęba, R. Hossa, R. Muszyński: Manipulatory i roboty mobilne. Modele, planowanie ruchu, sterowanie, Warszawa 2000, Szablon:ISBN.