首页 > 极客资料 博客日记
转动惯量矩阵推导
2024-10-10 16:00:03极客资料围观16次
这篇文章介绍了转动惯量矩阵推导,分享给大家做个参考,收藏极客之家收获更多编程知识
质点的角动量
角动量是矢量,可用位矢和动量的矢积表示:
\[\vec{L} = \vec{r} \times \vec{p} \tag{1}
\]
惯性张量
对于通过质心,绕任意轴以角速度\(\omega\)旋转的刚体,对于质心的角动量定义为:
\[H_{cg} = \int(\vec{r} \times (\vec{\omega} \times \vec{r})) dm
\]
r和w可以写成向量:
\[\vec{r} = x\vec{i} + y\vec{j} + z\vec{z}
\]
\[\vec{\omega} = \omega_x\vec{i} + \omega_y\vec{j} + \omega_z\vec{z}
\]
向量叉乘可以写成矩阵和向量相乘的形式:
\[\vec{r} \times \vec{q} = \begin{bmatrix}
r_y q_z - r_z q_y \\
r_z q_x - r_x q_z \\
r_x q_y -r_y q_x
\end{bmatrix}
=
\begin{bmatrix}
0 & -r_z & r_y \\
r_z & 0 & -r_x \\
-r_y & r_x & 0
\end{bmatrix}
\begin{bmatrix}
q_x \\
q_y \\
q_z
\end{bmatrix}
\]
因此展开角动量公式里的叉乘:
\[H_{cg} = \int(\vec{r} \times (\vec{\omega} \times \vec{r})) dm
=
\int(
\begin{bmatrix}
0 & -z & y \\
z & 0 & -x \\
-y & x & 0
\end{bmatrix}
\begin{bmatrix}
0 & -\omega_z & \omega_y \\
\omega_z & 0 & -\omega_x \\
-\omega_y & \omega_x & 0
\end{bmatrix}
\begin{bmatrix}
x \\
y \\
z
\end{bmatrix}
) dm \\
=
\int(
\begin{bmatrix}
-z\omega_z-y\omega_y & y\omega_x & z\omega_x \\
x\omega_y & -z\omega_z-x\omega_x & z\omega_y \\
x\omega_z & y\omega_z & -y\omega_y-x\omega_x
\end{bmatrix}
\begin{bmatrix}
x \\
y \\
z
\end{bmatrix}
) dm \\
=
\int(
\begin{bmatrix}
(y^2+z^2)\omega_x-xz\omega_z - xy\omega_y \\
(x^2+z^2)\omega_y -yz\omega_z-xy\omega_x \\
(x^2+y^2)\omega_z - yz\omega_y - xz\omega_x
\end{bmatrix}
) dm \\
\]
令:
\[I_{xx} = \int(y^2+z^2)dm
\]
\[I_{yy} = \int(x^2+z^2)dm
\]
\[I_{zz} = \int(y^2+x^2)dm
\]
\[I_{xy} = I_{yx} = \int(xy)dm
\]
\[I_{xz} = I_{zx} = \int(xz)dm
\]
\[I_{yz} = I_{zy} = \int(yz)dm
\]
上式可改写为:
\[H_{cg} =
\begin{bmatrix}
I_{xx}\omega_x-I_{xz}\omega_z - I_{xy}\omega_y \\
I_{yy}\omega_y -I_{yz}\omega_z-I_{xy}\omega_x \\
I_{zz}\omega_z -I_{yz}\omega_y - I_{xz}\omega_x
\end{bmatrix} \\
= \begin{bmatrix}
I_{xx} & -I_{xy} & -I_{xz} \\
-I_{xy} & I_{yy} & -I_{yz} \\
-I_{xz} & -I_{yz} & I_{zz} \\
\end{bmatrix}
\begin{bmatrix}
\omega_x \\
\omega_y \\
\omega_z
\end{bmatrix}
\]
令矩阵I:
\[I = \begin{bmatrix}
I_{xx} & -I_{xy} & -I_{xz} \\
-I_{xy} & I_{yy} & -I_{yz} \\
-I_{xz} & -I_{yz} & I_{zz} \\
\end{bmatrix}
\]
最终得到:
\[H_{cg} = I\vec{\omega}
\]
I就是转动惯量。
上式两边对于时间求导,在极短的时间内可以认为惯性矩阵I是常量:
\[\frac{d H_{cg}}{dt} = I \frac{d \vec{\omega}}{dt} = I \vec{\alpha}
\]
根据角动量定理(总外力矩等于刚体角动量的时间变化率),左侧就是外力矩,因此:
\[\vec{M} = I \vec{\alpha} \Rightarrow I^{-1} \vec{M} = \vec{\alpha} \tag{6}
\]
这是旋转的运动学公式,总外力矩克服转动惯量,给予物体于角加速度。
和平移运动公式\(\vec{F}=m\vec{a}\)具有一样结构和地位。
计算转动惯量
\[I_{xx} = \int(y^2+z^2)dm
\]
\[I_{yy} = \int(x^2+z^2)dm
\]
\[I_{zz} = \int(y^2+x^2)dm
\]
\[I_{xy} = I_{yx} = \int(xy)dm
\]
\[I_{xz} = I_{zx} = \int(xz)dm
\]
\[I_{yz} = I_{zy} = \int(yz)dm
\]
\[I = \begin{bmatrix}
I_{xx} & -I_{xy} & -I_{xz} \\
-I_{xy} & I_{yy} & -I_{yz} \\
-I_{xz} & -I_{yz} & I_{zz} \\
\end{bmatrix}
\]
根据它的定义,坐标系恒定情况下,当物体姿态发生变化后,各个质量微原的位置发生了变化,因此每个量都需要重新计算,这带来了很大计算量。
然而实际不需要那么麻烦。
将I写成另一种形式:
\[I=\sum m_i(r_i^T r_i 1 - r_i r_i^T)
\]
其中 1代表单位矩阵。
如图在参考姿态下:
\[I_{ref}=\sum m_i(r_i^T r_i 1 - r_i r_i^T)
\]
当物体旋转后,原来的微原位于\(Rr_i\)处,因此
\[I=\sum m_i((Rr_i)^T (Rr_i) 1 - (Rr_i) (Rr_i)^T) \\
=\sum m_i(r_i^T R^T Rr_i 1 - Rr_i r_i^T R^T) \\
=\sum m_i(r_i^T r_i 1 - Rr_i r_i^T R^T) \\
=\sum m_i(R r_i^T r_i 1 R^T - Rr_i r_i^T R^T) \\
=\sum m_i R(r_i^T r_i 1 - r_i r_i^T) R^T \\
=R I_{ref} R^T
\]
最后:
\[I = R I_{ref} R^T
\]
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:jacktools123@163.com进行投诉反馈,一经查实,立即删除!
标签:
相关文章
最新发布
- Nuxt.js 应用中的 prerender:routes 事件钩子详解
- 【问题解决】Tomcat由低于8版本升级到高版本使用Tomcat自带连接池报错无法找到表空间的问题
- 【FAQ】HarmonyOS SDK 闭源开放能力 —Vision Kit
- 六、Spring Boot集成Spring Security之前后分离认证流程最佳方案
- 《JVM第7课》堆区
- .NET 8 高性能跨平台图像处理库 ImageSharp
- 还在为慢速数据传输苦恼?Linux 零拷贝技术来帮你!
- 刚毕业,去做边缘业务,还有救吗?
- 如何避免 HttpClient 丢失请求头:通过 HttpRequestMessage 解决并优化
- 让性能提升56%的Vue3.5响应式重构之“版本计数”