机器人动力学建模之理解惯性张量

惯性张量是什么?

惯性张量是用于描述刚体转动惯性的一个量,并且它是一个矩阵。它通常表示为:
I=[IxxIxyIxzIyxIyyIyzIzxIzyIzz]=[y2+z2 dmxy dmxz dmxy dmx2+z2 dmyz dmxz dmyz dmx2+y2 dm] I=\left[\begin{array}{lll} I_{x x} & I_{x y} & I_{x z} \\ I_{y x} & I_{y y} & I_{y z} \\ I_{z x} & I_{z y} & I_{z z} \end{array}\right]= \left[\begin{array}{lll} \int{y^2+z^2}\ dm & -\int{xy}\ dm & -\int{xz}\ dm \\ -\int{xy}\ dm & \int{x^2+z^2}\ dm & -\int{yz}\ dm \\ -\int{xz}\ dm & -\int{yz}\ dm & \int{x^2+y^2}\ dm \end{array}\right]

我们最熟悉的一个很容易和惯性张量混淆的量就是转动惯量,注意,这个确实是一个量,只是一个数字,而不是矩阵。

一般来说,教科书中区别这二者是说转动惯量是描述刚体绕定轴转动的惯性的量,而惯性张量则是描述刚体绕定点转动的惯性的量。但是这种说法是不是还是很难懂!!!

我对于这二者的理解比较简单。

假设我们以刚体上的某一个点建立了三维直角坐标系:
如果刚体只绕xx轴旋转,并且我们只考虑刚体绕xx轴的旋转运动的惯性,那么我们只需要用一个量就能描述,这就是刚体围绕xx轴的转动惯量,也是惯性张量里面的IxxI_{xx}这个量。
如果刚体还是只绕xx轴旋转,但是我们还需要考虑刚体绕xx轴旋转时,对yy轴和zz轴的运动会产生什么影响,那么就需要另外的两个量,也就是IyxI_{yx}和I_{zx}。
再如果,刚体不仅仅绕xx轴旋转,还绕zz轴和yy轴旋转,那么就需要更多的量,一共算起来就是9个量,所以也就是惯性张量中的9个元素。

另外,说明一点:
转动惯量是惯性张量在对角线上的元素,也就是惯性矩
惯性积时惯性张量在非对角线上的元素

一个简单的例子

下面介绍一个简单的例子来说明惯性张量的计算方式。

如下图所示,假设有一个质点围绕xx轴以角速度ωx\omega_x旋转,我们来求该质点分别对xx轴,yy轴,zz轴的动量矩。
机器人动力学建模之理解惯性张量
首先,假设由坐标系原点指向质点的的向量为r=[x,y,z]Tr=[x,y,z]^T

于是,质点的速度为:v=ωx[1,0,0]T×r=[0,ωxz,ωxy]Tv=\omega_x [1,0,0]^T\times{r}=[0,-\omega_x z,\omega_x y]^T

所以,假设质点的质量为mm,质点相对于原点的动量矩为:
L=mr×v=[mωx(z2+y2),mωx(xy),mωx(xz)]TL=mr\times{v}=[m\omega_x(z^2+y^2),m\omega_x(-xy),m\omega_x(-xz)]^T

所以,质点对于xx轴的动量矩为:mωx(z2+y2)m\omega_x(z^2+y^2)
对于yy轴的动量矩为:mωx(xy)m\omega_x(-xy)
对于zz轴的动量矩为:mωx(xz)m\omega_x(-xz)

由于我们知道动量矩为:L=IωL=I\omega

所以,我们求出了质点的相对于xx轴的惯性矩为:m(z2+y2)m(z^2+y^2)
对于yy轴的惯性积为:m(xy)m(-xy)
对于zz轴的惯性积为:m(xz)m(-xz)

除了说明惯性张量的求法以外,这个小例子还想说明,即便质点只是绕着x轴旋转,也会对y轴和z轴产生一定的影响,而这种影响就是由惯性张量所描述的。惯性矩(转动惯量)的物理意义是很容易理解的,而惯性积的物理意义并不那么明显。但是通过这个小例子就可以知道,惯性积IxyI_xy描述了绕x轴转动对y轴的运动产生的影响。

结论

惯性张量的第一列就代表刚体沿xx轴旋转时,对xx轴,yy轴,zz轴产生的动量矩的大小。同理,对于第二,三列也是类似的。换种说法,IyxI_{yx}就代表当刚体沿xx轴旋转时,会对沿yy轴的转动产生多大的影响。