Inertia tensor

Inertia Tensor in 2D

We can't have rotations in one dimension so two is the lowest number of dimensions to which we can apply this. In two dimensions the inertia tensor is a scalar quantity known as the second moment of mass.

I = ∫(r²)dm

In other words, we don't just sum the mass, but mass further from the rotation axis has more effect. Each element of mass is multiplied by the square of its distance from the centre of rotation.

Inertia Tensor in 3D

In 3 dimensions the inertia tensor is grade 2, which is a matrix. This makes things a bit more complicated as it means that a torque, say around the 'x' axis, can cause acceleration around the other axes.

[I] =
∫(rz²+ry²)dm-∫rx*rydm-∫rx*rzdm
-∫ry*rxdm∫(rz²+rx²)dm-∫ry*rzdm
-∫rz*rxdm-∫rz*rydm∫(rx²+ry²)dm

The inertia tensor is derived on this page.

This matrix is symmetrical around the leading diagonal and it has the property that it can be factored into rotational and diagonal parts as follows:

[I] = [R][D][Rt]

where:

  • [I] = the inertia tensor matrix
  • [R] = rotation matrix made up from the eigenvectors of [I]
  • [D] = a diagonal matrix with the diagonal terms made up from the eigenvalues of [I] and the non-diagonal terms are zero.
  • [Rt] = the transpose of [R]

Factoring matrices in this way is discussed on this page. What this means, in practical terms, is that we can always rotate the local coordinates of the solid object in such a way that [I] becomes a diagonal matrix. Which means that, in this axis, the acceleration will be around the same axis as the torque.

Another way of explaining this is that, there are certain symmetries of any solid object around which it will rotate without wobbling into a different axis. These symmetrical axes are the eigenvectors of [I].

 

The inertia matrix is often described as the inertia tensor, which consists of the same moments of inertia and products of inertia about the three coordinate axes.[6][23] The inertia tensor is constructed from the nine component tensors, (the symbol {\displaystyle \otimes }\otimes is the tensor product)

{\displaystyle \mathbf {e} _{i}\otimes \mathbf {e} _{j},\quad i,j=1,2,3,}{\displaystyle \mathbf {e} _{i}\otimes \mathbf {e} _{j},\quad i,j=1,2,3,}

where {\displaystyle \mathbf {e} _{i},i=1,2,3}{\displaystyle \mathbf {e} _{i},i=1,2,3} are the three orthogonal unit vectors defining the inertial frame in which the body moves. Using this basis the inertia tensor is given by

{\displaystyle \mathbf {I} =\sum _{i=1}^{3}\sum _{j=1}^{3}I_{ij}\mathbf {e} _{i}\otimes \mathbf {e} _{j}.}{\displaystyle \mathbf {I} =\sum _{i=1}^{3}\sum _{j=1}^{3}I_{ij}\mathbf {e} _{i}\otimes \mathbf {e} _{j}.}

This tensor is of degree two because the component tensors are each constructed from two basis vectors. In this form the inertia tensor is also called the inertia binor.

For a rigid system of particles {\displaystyle P_{k},k=1,...,N}{\displaystyle P_{k},k=1,...,N} each of mass {\displaystyle m_{k}}m_{k} with position coordinates {\displaystyle \mathbf {r} _{k}=(x_{k},y_{k},z_{k})}{\displaystyle \mathbf {r} _{k}=(x_{k},y_{k},z_{k})}, the inertia tensor is given by

{\displaystyle \mathbf {I} =\sum _{k=1}^{N}m_{k}\left(\left(\mathbf {r} _{k}\cdot \mathbf {r} _{k}\right)\mathbf {E} -\mathbf {r} _{k}\otimes \mathbf {r} _{k}\right),}{\displaystyle \mathbf {I} =\sum _{k=1}^{N}m_{k}\left(\left(\mathbf {r} _{k}\cdot \mathbf {r} _{k}\right)\mathbf {E} -\mathbf {r} _{k}\otimes \mathbf {r} _{k}\right),}

where {\displaystyle \mathbf {E} }\mathbf {E} is the identity tensor

{\displaystyle \mathbf {E} =\mathbf {e} _{1}\otimes \mathbf {e} _{1}+\mathbf {e} _{2}\otimes \mathbf {e} _{2}+\mathbf {e} _{3}\otimes \mathbf {e} _{3}.}{\displaystyle \mathbf {E} =\mathbf {e} _{1}\otimes \mathbf {e} _{1}+\mathbf {e} _{2}\otimes \mathbf {e} _{2}+\mathbf {e} _{3}\otimes \mathbf {e} _{3}.}

In this case, the components of the inertia tensor are given by

{\displaystyle {\begin{aligned}I_{11}=I_{xx}&=\sum _{k=1}^{N}m_{k}\left(y_{k}^{2}+z_{k}^{2}\right),\\I_{22}=I_{yy}&=\sum _{k=1}^{N}m_{k}\left(x_{k}^{2}+z_{k}^{2}\right),\\I_{33}=I_{zz}&=\sum _{k=1}^{N}m_{k}\left(x_{k}^{2}+y_{k}^{2}\right),\\I_{12}=I_{21}=I_{xy}&=-\sum _{k=1}^{N}m_{k}x_{k}y_{k},\\I_{13}=I_{31}=I_{xz}&=-\sum _{k=1}^{N}m_{k}x_{k}z_{k},\\I_{23}=I_{32}=I_{yz}&=-\sum _{k=1}^{N}m_{k}y_{k}z_{k}.\end{aligned}}}{\displaystyle {\begin{aligned}I_{11}=I_{xx}&=\sum _{k=1}^{N}m_{k}\left(y_{k}^{2}+z_{k}^{2}\right),\\I_{22}=I_{yy}&=\sum _{k=1}^{N}m_{k}\left(x_{k}^{2}+z_{k}^{2}\right),\\I_{33}=I_{zz}&=\sum _{k=1}^{N}m_{k}\left(x_{k}^{2}+y_{k}^{2}\right),\\I_{12}=I_{21}=I_{xy}&=-\sum _{k=1}^{N}m_{k}x_{k}y_{k},\\I_{13}=I_{31}=I_{xz}&=-\sum _{k=1}^{N}m_{k}x_{k}z_{k},\\I_{23}=I_{32}=I_{yz}&=-\sum _{k=1}^{N}m_{k}y_{k}z_{k}.\end{aligned}}}

The inertia tensor for a continuous body is given by

{\displaystyle \mathbf {I} =\iiint \limits _{Q}\rho (\mathbf {r} )\left(\left(\mathbf {r} \cdot \mathbf {r} \right)\mathbf {E} -\mathbf {r} \otimes \mathbf {r} \right)\,\mathrm {d} V,}{\displaystyle \mathbf {I} =\iiint \limits _{Q}\rho (\mathbf {r} )\left(\left(\mathbf {r} \cdot \mathbf {r} \right)\mathbf {E} -\mathbf {r} \otimes \mathbf {r} \right)\,\mathrm {d} V,}

where {\displaystyle \mathbf {r} }\mathbf {r} defines the coordinates of a point in the body and {\displaystyle \rho (\mathbf {r} )}\rho (\mathbf {r} ) is the mass density at that point. The integral is taken over the volume {\displaystyle V}V of the body. The inertia tensor is symmetric because {\displaystyle I_{ij}=I_{ji}}{\displaystyle I_{ij}=I_{ji}}.

Alternatively it can also be written in terms of the angular momentum operator {\displaystyle [\mathbf {r} ]\mathbf {x} =\mathbf {r} \times \mathbf {x} }{\displaystyle [\mathbf {r} ]\mathbf {x} =\mathbf {r} \times \mathbf {x} }:

{\displaystyle \mathbf {I} =\iiint \limits _{Q}\rho (\mathbf {r} )[\mathbf {r} ]^{T}[\mathbf {r} ]\,\mathrm {d} V=-\iiint \limits _{Q}\rho (\mathbf {r} )[\mathbf {r} ]^{2}\,\mathrm {d} V}{\displaystyle \mathbf {I} =\iiint \limits _{Q}\rho (\mathbf {r} )[\mathbf {r} ]^{T}[\mathbf {r} ]\,\mathrm {d} V=-\iiint \limits _{Q}\rho (\mathbf {r} )[\mathbf {r} ]^{2}\,\mathrm {d} V}

The inertia tensor can be used in the same way as the inertia matrix to compute the scalar moment of inertia about an arbitrary axis in the direction {\displaystyle \mathbf {n} }\mathbf {n},

{\displaystyle I_{n}=\mathbf {n} \cdot \mathbf {I} \cdot \mathbf {n} ,}{\displaystyle I_{n}=\mathbf {n} \cdot \mathbf {I} \cdot \mathbf {n} ,}

where the dot product is taken with the corresponding elements in the component tensors. A product of inertia term such as {\displaystyle I_{12}}{\displaystyle I_{12}} is obtained by the computation

{\displaystyle I_{12}=\mathbf {e} _{1}\cdot \mathbf {I} \cdot \mathbf {e} _{2},}I_{12}=\mathbf {e} _{1}\cdot \mathbf {I} \cdot \mathbf {e} _{2},

and can be interpreted as the moment of inertia around the {\displaystyle x}x-axis when the object rotates around the {\displaystyle y}y-axis.

The components of tensors of degree two can be assembled into a matrix. For the inertia tensor this matrix is given by,

{\displaystyle \mathbf {I} ={\begin{bmatrix}I_{11}&I_{12}&I_{13}\\I_{21}&I_{22}&I_{23}\\I_{31}&I_{32}&I_{33}\end{bmatrix}}={\begin{bmatrix}I_{xx}&I_{xy}&I_{xz}\\I_{yx}&I_{yy}&I_{yz}\\I_{zx}&I_{zy}&I_{zz}\end{bmatrix}}.}{\displaystyle \mathbf {I} ={\begin{bmatrix}I_{11}&I_{12}&I_{13}\\I_{21}&I_{22}&I_{23}\\I_{31}&I_{32}&I_{33}\end{bmatrix}}={\begin{bmatrix}I_{xx}&I_{xy}&I_{xz}\\I_{yx}&I_{yy}&I_{yz}\\I_{zx}&I_{zy}&I_{zz}\end{bmatrix}}.}

It is common in rigid body mechanics to use notation that explicitly identifies the {\displaystyle x}x, {\displaystyle y}y, and {\displaystyle z}z-axes, such as {\displaystyle I_{xx}}I_{​{xx}} and {\displaystyle I_{xy}}{\displaystyle I_{xy}}, for the components of the inertia tensor.

### 计算质心位置的方法 要通过 `mass`(质量)、`origin`(原点坐标)以及 `inertia`(惯性张量矩阵)来计算物体的质心位置,可以采用以下方法: #### 质心定义 质心的位置可以通过总质量和分布的质量中心关系得出。如果已知物体的整体几何形状及其对应的惯性张量,则可以直接利用这些数据推导出质心的具体位置。 对于刚体而言,其惯性张量 \( I \) 的表达形式如下所示[^1]: \[ I = \begin{bmatrix} I_{xx} & -I_{xy} & -I_{xz}\\ -I_{yx} & I_{yy} & -I_{yz}\\ -I_{zx} & -I_{zy} & I_{zz} \end{bmatrix} \] 其中各分量表示相对于某固定参考系下不同轴向之间的惯性矩和惯性积。 当给定一个具有均匀密度的理想化简单形体时,可通过解析法求解;而对于复杂结构或者非均质材料构成的实际部件来说,则通常借助数值积分技术完成近似估算过程[^2]。 以下是基于Python实现的一个通用算法框架用于演示这一原理: ```python import numpy as np def compute_centroid(inertia, mass): """ Compute the centroid of an object given its inertia tensor and total mass. Parameters: inertia (numpy.ndarray): The 3x3 inertia tensor matrix. mass (float): Total mass of the body. Returns: list[float]: Centroid coordinates [cx, cy, cz]. """ # Assuming that 'inertia' is provided w.r.t some known origin point, # we can use parallel axis theorem to find shift vector from this origin to COM # Extract diagonal elements which represent moments about respective axes i_xx,i_yy,i_zz = inertia.diagonal() # Off-diagonals are products-of-inertia; they should be zero at center-of-mass frame ideally off_diag_sum_sqrd = sum([val**2 for val in ( inertia[0][1], # I_xy or I_yx inertia[0][2], # I_xz or I_zx inertia[1][2]) ])# I_yz or I_zy if abs(off_diag_sum_sqrd)<1e-8: # If already close enough to being centered around CM, no need further calcuation cx,cy,cz=0.,0.,0. else: raise ValueError("Non-zero product terms indicate input not aligned with CoM.") return [-i/mass for i in (cx*i_xx ,cy*i_yy ,cz*i_zz)] if __name__ == "__main__": example_inertial_tensor=np.array([ [ 1.45,-0.07, 0. ], [-0.07, 1.62, 0. ], [ 0. , 0. , 1.]]) m_total=9.8 try: com_position=compute_centroid(example_inertial_tensor,m_total) print(f"Center Of Mass Position:{com_position}") except Exception as e: print(e) ``` 上述脚本展示了如何依据输入的惯性张量与总体质量来确定重心所在之处。需要注意的是,在实际应用过程中可能还需要考虑更多因素比如外部力场影响等额外条件约束情况下的精确调整[^3]。 相关问题
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值