移动机器人动力学
拉格朗日动力学方程
方程如下:
d
d
t
(
∂
L
∂
q
i
˙
)
−
∂
L
∂
q
i
=
Q
\frac{d }{dt} \left ( \frac{\partial L}{\partial \dot{q_{i}} } \right ) - \frac{\partial L }{\partial q_{i}}=Q
dtd(∂qi˙∂L)−∂qi∂L=Q其中,L=系统的动能(T)-势能(U),
q
q
q 为广义坐标,
Q
Q
Q 是作用于系统的广义力。
举个例子,推导一下差速机器人的动力学模型:
机器人在平面上移动,可以认为势能为零,动能为:
T
=
T
v
+
T
ω
+
T
w
r
T = T_{v} + T_{\omega} + T_{wr}
T=Tv+Tω+Twr其中,
T
v
T_{v}
Tv是平移动能,
T
ω
T_{\omega}
Tω是旋转动能,
T
w
r
T_{wr}
Twr是两个轮子旋转的动能。
T
v
=
1
2
M
v
2
T
ω
=
1
2
I
ω
2
T
w
r
=
1
2
I
o
ω
r
2
+
1
2
I
o
ω
l
2
T_{v} = \frac{1}{2}Mv^{2} \\ T_{\omega} = \frac{1}{2}I \omega ^{2}\\ T_{wr} = \frac{1}{2}I_{o} \omega_{r} ^{2}+\frac{1}{2}I_{o} \omega_{l} ^{2}
Tv=21Mv2Tω=21Iω2Twr=21Ioωr2+21Ioωl2
广义坐标选取为
θ
r
\theta_{r}
θr和
θ
l
\theta_{l}
θl,所以把
v
v
v和
ω
\omega
ω用
θ
˙
r
\dot{\theta}_{r}
θ˙r和
θ
˙
l
\dot{\theta}_{l}
θ˙l代替,所以
L
L
L为:
L
=
1
8
M
r
2
(
θ
˙
r
+
θ
˙
l
)
2
+
I
r
2
2
L
2
(
θ
˙
r
−
θ
˙
l
)
2
+
I
o
2
2
(
θ
˙
r
2
+
θ
˙
l
2
)
L=\frac{1}{8} Mr^{2} (\dot{ \theta} _{r } +\dot{ \theta} _{l})^{2}+\frac{Ir^{2}}{2L^{2}} (\dot{ \theta} _{r }-\dot{ \theta} _{l })^{2}+\frac{I_{o}^{2} }{2}(\dot{ \theta} _{r }^{2}+\dot{ \theta} _{l }^{2})
L=81Mr2(θ˙r+θ˙l)2+2L2Ir2(θ˙r−θ˙l)2+2Io2(θ˙r2+θ˙l2)其中,
I
I
I是机器人相对于自身重心的转动惯量,
r
r
r为轮子半径,
I
o
I_{o}
Io为轮子的转动惯量。
广义力为电机的电磁转矩减去阻转矩。
Q
=
τ
−
K
θ
˙
Q = \tau-K\dot{\theta}
Q=τ−Kθ˙其中
K
K
K是粘性摩擦系数,因此最后方程为:
(
1
4
M
r
2
+
I
r
2
L
2
+
I
o
)
θ
¨
r
+
(
1
4
M
r
2
−
I
r
2
L
2
)
θ
¨
l
+
K
θ
˙
r
=
τ
r
(
1
4
M
r
2
+
I
r
2
L
2
+
I
o
)
θ
¨
l
+
(
1
4
M
r
2
−
I
r
2
L
2
)
θ
¨
r
+
K
θ
˙
l
=
τ
l
(\frac{1}{4} Mr^{2}+\frac{Ir^{2}}{L^{2}} +I_{o})\ddot{ \theta} _{r }+(\frac{1}{4} Mr^{2}-\frac{Ir^{2}}{L^{2}})\ddot{ \theta} _{l}+K\dot{ \theta} _{r }=\tau_{r}\\ (\frac{1}{4} Mr^{2}+\frac{Ir^{2}}{L^{2}} +I_{o})\ddot{ \theta} _{l }+(\frac{1}{4} Mr^{2}-\frac{Ir^{2}}{L^{2}})\ddot{ \theta} _{r}+K\dot{ \theta} _{l }=\tau_{l}
(41Mr2+L2Ir2+Io)θ¨r+(41Mr2−L2Ir2)θ¨l+Kθ˙r=τr(41Mr2+L2Ir2+Io)θ¨l+(41Mr2−L2Ir2)θ¨r+Kθ˙l=τl
这个方程有啥用呢,其实就是得到的加速度的计算方式,通过后面的电机建模可以知道,电磁转矩
τ
\tau
τ可以通过电流和电压得到,这样通过这两个方程就可以计算出任意时刻的加速度。有了完整的加速度信息,在里程计计算、定位、控制方面等方面的精度都大大的提高了。
所有移动机器人动力学方程的推导都是这个套路,没有势能,动能包括平移动能、旋转动能和轮子转动的动能。
直流电机建模
直流电机可以写出两个方程,电压方程:
u
=
R
i
+
L
d
i
d
t
+
K
e
θ
˙
u = Ri+L\frac{di}{dt}+K_{e}\dot{\theta}
u=Ri+Ldtdi+Keθ˙
转矩方程:
J
θ
¨
=
K
T
i
−
K
θ
˙
J\ddot{\theta}=K_{T}i-K\dot{\theta}
Jθ¨=KTi−Kθ˙
取
i
i
i和
θ
˙
\dot{\theta}
θ˙为状态变量:则联立上述两式子得到电机的状态空间方程为:
[
i
˙
θ
¨
]
=
[
−
R
L
−
K
e
L
K
T
−
K
]
[
i
θ
˙
]
+
[
1
L
0
]
u
\begin{bmatrix} \dot{i} \\ \ddot{\theta } \end{bmatrix}=\begin{bmatrix} -\frac{R}{L} & -\frac{K_{e}}{L} \\ K_{T} & -K \end{bmatrix}\begin{bmatrix} i\\ \dot{\theta } \end{bmatrix}+\begin{bmatrix} \frac{1}{L} \\ 0 \end{bmatrix}u
[i˙θ¨]=[−LRKT−LKe−K][iθ˙]+[L10]u其中
K
K
K是粘性摩擦系数,
K
e
K_{e}
Ke和
K
T
K_{T}
KT是电机电动势和电磁转矩计算时需要的公式。标准的电动势和电磁转矩计算公式为:
E
=
C
e
Φ
n
τ
=
C
T
Φ
I
E = C_{e}\Phi n\\ \tau = C_{T}\Phi I
E=CeΦnτ=CTΦI其中n为转速,所以:
K
e
=
C
e
Φ
2
π
K
T
=
C
T
Φ
K_{e}=\frac{C_{e}\Phi}{2\pi}\\ K_{T}=C_{T}\Phi
Ke=2πCeΦKT=CTΦ这里的
C
e
C_{e}
Ce、
C
T
C_{T}
CT和
Φ
\Phi
Φ就可以从电机的参数上找到了。