Z Wikipedii, wolnej encyklopedii
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 .
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}}.}
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.