移动机器人动力学

移动机器人动力学

拉格朗日动力学方程

方程如下:
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)qiL=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+(41Mr2L2Ir2)θ¨l+Kθ˙r=τr(41Mr2+L2Ir2+Io)θ¨l+(41Mr2L2Ir2)θ¨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θ¨=KTiKθ˙
  取 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˙θ¨]=[LRKTLKeK][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 Φ就可以从电机的参数上找到了。

你可能感兴趣的:(机器人,线性代数,矩阵,算法)