LOFTER for ipad —— 让兴趣,更有趣

点击下载 关闭
sgf-py开发指南(九)物理系统2

上篇文章的补充,因为考研就耽搁更新了,这篇文章是之前的草稿。

        对于常微分方程的求解,还有一种方法,龙格-库塔法(Runge-Kutta methods),这种方法比韦尔莱积分更加的精确,但一般不作为物理引擎的选择,因为它求解过程比较复杂,折中的韦尔莱积分是大部分物理引擎选择的方式。一般龙格-库塔方法用于计算机仿真,具体的解法可以参考维基百科。

二维旋转动力学

        二维旋转相较于三维,还是简单的,因为二维的旋转只绕z轴旋转,三维可以绕任意轴,不过原理还是差不多的,只是处理起来麻烦而已。

        决定二维旋转的主要有两个量,定向,角速率。影响二维物理旋转的也有两个量,转动惯量,力矩。

        定向

        二维物体的定向可以简单的表示为一个角度θ,这个角度是随着时间的变化而变化的所以记作θ(t)。

        角速率与加速度

        角速率的定义和矢量中的速率是相同的意义,在矢量中速率是米每秒(m/s),表示经过一段时间里的位移量,同样的,角速率是弧度每秒(rad/s),表示一段时间内,旋转过的角度。加速度的概念也同样适用,即弧度每二次方秒(rad/s^2)。表达式如下(一般角速率以ω表示,角加速率用α,这篇我写成了a,不想重新生成LaTeX了):

        转动惯量

        也可以相应的理解成运动中的质量,即在同样的力作用下,质量影响物体改变速度难易程度的量。转动惯量是度量改变物体在某一轴上改变角速率的难易程度。若物体的质量相对集中于旋转轴附近,那么,它就越容易被转动,即转动惯量较小。

        力矩

        穿过物体质心的力会施加纯粹的线性运动,但对质心外施加力则会同时产生位移和旋转。位移运动是对一个质点来施加力的作用,而旋转则是对一个薄面施加力的作用。力矩的计算是至关重要的。

        首先将施力点与物理质心连接,可确定向量r(由质点指向施力点)。然后确定力F,则力矩等于r和F的叉积。

        这里可能会产生几个疑问,力矩的作用是什么?力矩是标量还是矢量?如果是矢量那方向意味着什么?答案自然是矢量。

        但在xy平面内的两个矢量r与F的叉积不应该是一个数吗?的确二维向量的叉积是一个数,但叉积的几何意义是垂直于两个向量构成平面的向量。那么在xy平面的两个向量做叉积的结果向量就应该位于z的正半轴或负半轴。所以,两个二维向量做叉积的结果,不能将它单纯的看成一个数,而是,它位于z轴的位置。

        力矩对于角加速率和转动惯量的作用就好像力对于线性加速度和质量(力矩用N表示,转动惯量用I表示

二维旋转方程的求解

        如同运动学方程,旋转方程也是对常微分方程的求解:

        同样的,可以用显式欧拉,韦尔莱积分,龙格-库塔方法,这里主要介绍韦尔莱积分(速度韦尔莱):

        对于上式,经过分析后会发现,如果角度θ是标量,而角速率ω是矢量的话,那么计算就无法进行下去。但要使角度是矢量,似乎也不符合实际。那么显然,问题就出在角速率ω是标量还是矢量。其实角速率既不是矢量也不是标量,它是“赝矢量”或称为“伪矢量”,轴矢量,这里就不展开讨论了。

        在程序中,用一个有符号数来表示,其余程序代码的思路如同上篇文章。

碰撞处理

        关于碰撞的检测,在之前的文章中已经介绍过,这里主要处理,物体在碰撞过后,姿态的改变情况。

        能量

        研究碰撞,本质上是研究能量的转移。力使物体进行了运动,我们称,这个力做了功,功代表能量的改变。同时,通过能量守恒定律(energy conservation law)可以得知,一个孤立的系统中的能量总是保持不变,只是存在的形式发生了变化。这里线性运动和物体旋转运动所形成的动能为:

        冲量碰撞响应

        在现实生活中,碰撞伴随着复杂的能量转化。例如,碰撞后物体产生的或大或小的形变,碰撞产生的热能和发出的声音等。在物理的模拟中使用一些较为简单的模型来逼近这一情形。这个模型称为无摩擦力下瞬时碰撞的牛顿恢复定律(Newton's law of restitution for instantaneous collisions with no friction)该模型建立在以下的假设下:

       1. 碰撞力作用的时间趋向于无穷小,转化为理想的冲量(impulse),物体在碰撞的瞬时改变速度。

        2. 物体表面上的接触点无摩擦力。即,分离物体的冲量分别垂直于该碰撞表面。

        3. 物体间复杂的分子运动,可由简单的恢复系数(coefficient of restitution)所近似代替,一般记为ε,当ε=1,称为完全弹性碰撞(perfectly elastic collision),即无任何能量损失,例如两个桌球相撞。当ε=0,称为完全非弹性碰撞(perfectly inelastic collision)或称完全塑性(perfectly plastic),即碰撞后的物体会黏在一起,例如两块橡皮泥相撞。


推荐文章
评论(0)
分享到
转载我的主页