计算机物理学-刚体动力学(2)

来源:互联网 发布:雅克萨之战 知乎 编辑:程序博客网 时间:2024/04/28 00:45

Bullet讨论群:533030320

自前一章提出的在三维空间中可绕任意轴转动的问题已经过去1周(笔者太忙..研究实时碰撞算法苦逼呀)
好了也不吐槽了,让我们来看看什么叫惯性张量…
这个新名词也没啥稀奇的,张量故名思议就是向量的集合…好几个不同位置的向量组合在一起就叫张量,例如一个曲面上每个点都有一个法向量,那这个曲面上所有的法向量就叫张量…懂了么。
接着上一次说道我们已经获取到了每个轴上的转动惯量,那任意轴都是由x,y,z轴组合平移而成,比如斜线 (1,1,1),就是x=1,y=1,z=1组合而成,聪明的读者大概已经理解了接下去我们要做什么。
其实任意轴的转动惯量就是一个3X3的矩阵———-一个二阶张量

为了明白转动惯量从何而来,你必须重新观察角动量方程:
Hcg=(r×(w×r))dm
其中w是物体的角速度,r是重心到每个原子质量dm的距离,三重向量积
可以用向量积展开,r和w都是向量,可以表达如下:
r=xi+yj+zk
w=wxi+wyj+wzk
代入方程展开叉乘向量积得到:
Hcg=[(y2+z2)wx+xywyxzwz]i+
[yxwx+(z2+x2)wyyzwz]j+
[zxwxzywy+(x2+y2)wz]k  dm
我们使用上一节中公式替换方程中元素
Ixx=y2+z2dm
Iyy=z2+x2dm
Izz=x2+y2dm
Ixy=Iyx=yxdm
Ixz=Izx=xzdm
Iyz=Izy=yzdm
通过替换I变量后方程我们得到
Hcg=[IxxwxIxywyIxzwz]i+
[Iyxwx+IyywyIyzwz]j+
[IzxwxIzywy+Izzwz]k
通过简化我们可以得到
       |Ixx     Ixy  Ixz|
I=|Iyx     Iyy  Iyz|
       |Izx  Izy      Izz|

进一步简化可得:
Hcs=Iω
那有些同学要问问什么上一节中的物体都没有惯量积呢?Ixy,Iyz,Izx
因为上一节给出的物体都是轴对称的!这很重要
在轴对称的物体上 积分为零!
我们来看下Ixy=Iyx=yxdm
在y>0的情况下x从左积分到右
yxdm 其中x>0
y|x|dm 其中x<0
所以从左往右积分和为零,同样y,z轴上因为对称所以积分都为零,所以惯性积为零
       |Ixx   0    0|
I=|0     Iyy  0|
       |0    0      Izz|

现在我们就能计算出如果加在物体上的力能获得多少角速度了

力* 力矩臂* delta时间 = 转动惯量* 角速度
所有都是已知量求角速度还不简单么 :P

0 0