Układ łańcuchowy

Układ łańcuchowy – pojęcie związane z robotami mobilnymi, oznacza sposób na przedstawienie zależności pomiędzy położeniem i orientacją robota w przestrzeni, a sygnałami sterującymi. Wzór na układ łańcuchowy używany jest m.in. w algorytmie sterowania sinusoidalnego.

Definicja

Układem łańcuchowym nazywa się układ równań różniczkowych w postaci:

d x 1 d t = u 1 {\displaystyle {\frac {dx_{1}}{dt}}=u_{1}}
d x 2 d t = u 2 {\displaystyle {\frac {dx_{2}}{dt}}=u_{2}}
d x 3 d t = x 2 u 1 {\displaystyle {\frac {dx_{3}}{dt}}=x_{2}u_{1}}
d x 4 d t = x 3 u 1 {\displaystyle {\frac {dx_{4}}{dt}}=x_{3}u_{1}}
...
d x n d t = x n 1 u 1 {\displaystyle {\frac {dx_{n}}{dt}}=x_{n-1}u_{1}}

Układ taki ma n {\displaystyle n} zmiennych i dwa sterowania, za pomocą których należy ustawić wszystkie zmienne na określonych pozycjach. Powyższe równania można także przedstawić jako układ bezdryfowy:

d x d t = g ( x ) u , {\displaystyle {\frac {dx}{dt}}=g(x)u,}

gdzie:

g 1 ( x ) = [ 1 0 x 2 . . x n 1 ] , {\displaystyle g_{1}(x)={\begin{bmatrix}1\\0\\x_{2}\\.\\.\\x_{n-1}\end{bmatrix}},} g 2 ( x ) = [ 0 1 0 . . 0 ] . {\displaystyle g_{2}(x)={\begin{bmatrix}0\\1\\0\\.\\.\\0\end{bmatrix}}.}

Przykład

Istnieje nieliniowy układ dynamiczny przedstawiony jako układ równań (*)

d x d t = u 1 cos θ {\displaystyle {\frac {dx}{dt}}=u_{1}\cos \theta }
d y d t = u 1 sin θ {\displaystyle {\frac {dy}{dt}}=u_{1}\sin \theta }
d ϕ d t = u 2 {\displaystyle {\frac {d\phi }{dt}}=u_{2}}
d θ d t = u 1 tg ϕ . {\displaystyle {\frac {d\theta }{dt}}=u_{1}\operatorname {tg} \phi .}

Na początku należy wyznaczyć przybliżenie liniowe funkcji sin , cos , tg {\displaystyle \sin ,\cos ,\operatorname {tg} } stosując wzór:

f ( x ) f ( x 0 ) + f ( x 0 ) x ( x x 0 ) . {\displaystyle f(x)\approx f(x_{0})+{\frac {\partial f(x_{0})}{\partial x}}(x-x_{0}).}

W ten sposób otrzymuje się:

sin θ = θ , {\displaystyle \sin \theta =\theta ,}
cos θ = 1 , {\displaystyle \cos \theta =1,}
tg ϕ = ϕ , {\displaystyle \operatorname {tg} \phi =\phi ,}

a po podstawieniu do (*):

d x d t = u 1 {\displaystyle {\frac {dx}{dt}}=u_{1}}
d y d t = u 1 θ {\displaystyle {\frac {dy}{dt}}=u_{1}\theta }
d ϕ d t = u 2 {\displaystyle {\frac {d\phi }{dt}}=u_{2}}
d θ d t = u 1 ϕ . {\displaystyle {\frac {d\theta }{dt}}=u_{1}\phi .}

Na podstawie otrzymanego układu równań tworzone są nowe zmienne x i , {\displaystyle x_{i},} które po zróżniczkowaniu dadzą układ łańcuchowy.

x 1 = x , {\displaystyle x_{1}=x,}
x 2 = ϕ , {\displaystyle x_{2}=\phi ,}
x 3 = θ , {\displaystyle x_{3}=\theta ,}
x 4 = y , {\displaystyle x_{4}=y,}
d x 1 d t = d x d t = u 1 , {\displaystyle {\frac {dx_{1}}{dt}}={\frac {dx}{dt}}=u_{1},}
d x 2 d t = d ϕ d t = u 2 , {\displaystyle {\frac {dx_{2}}{dt}}={\frac {d\phi }{dt}}=u_{2},}
d x 3 d t = d θ d t = ϕ u 1 = x 2 u 1 , {\displaystyle {\frac {dx_{3}}{dt}}={\frac {d\theta }{dt}}=\phi *u_{1}=x_{2}*u_{1},}
d x 4 d t = d y d t = θ u 1 = x 3 u 1 . {\displaystyle {\frac {dx_{4}}{dt}}={\frac {dy}{dt}}=\theta *u_{1}=x_{3}*u_{1}.}

W ten oto sposób otrzymany został układ łańcuchowy, którym można sterować (o ile jest sterowalny, patrz nawiasy Liego) za pomocą sygnałów wyznaczonych w algorytmie sterowania sinusoidalnego itp.