角动量传递方程
对于如何计算两个刚体之间的角动量传递,是否有人对可以相对容易地实现的方程有任何好的参考?
我已经寻找这类事情有一段时间了,但我还没有找到任何对这个问题特别容易理解的解释。
准确地说,这个问题是这样出现的; 两个刚体在无摩擦(几乎是)的表面上移动; 把它想象成空气曲棍球。 两个刚体接触,然后移开。 现在,在不考虑角动量的情况下,方程相对简单; 问题是,物体之间的角动量转移会发生什么?
举个例子,假设两个物体没有任何角动量; 它们不旋转。 当它们以倾斜角度相互作用时(行进矢量不与它们的质心线对齐),显然它们的一定量的动量会转化为角动量(即它们各自获得一定量的旋转),但是如何很多,其方程式是什么?
这可能可以通过使用多体刚性系统来计算来解决,但我想要进行更优化的计算,这样我就可以实时计算这些东西。 有谁对方程式有任何想法,或者对这些计算的开源实现有任何想法以包含在项目中吗? 准确地说,我需要这是一个相当优化的计算,因为需要在模拟的单个“滴答”内模拟大量的交互。
编辑:好的,看起来关于这个主题的准确信息并不多。 我发现“程序员的物理学”类型的书有点太……太简单了,很难真正理解; 我不需要算法的代码实现; 我想弄清楚(或者至少已经为我勾勒出)算法。 只有这样我才能根据我的需求适当优化它。 有人有关于此类主题的数学参考吗?
Does anyone have any good references for equations which can be implemented relatively easily for how to compute the transfer of angular momentum between two rigid bodies?
I've been searching for this sort of thing for a while, and I haven't found any particularly comprehensible explanations of the problem.
To be precise, the question comes about as this; two rigid bodies are moving on a frictionless (well, nearly) surface; think of it as air hockey. The two rigid bodies come into contact, and then move away. Now, without considering angular momentum, the equations are relatively simple; the problem becomes, what happens with the transfer of angular momentum between the bodies?
As an example, assume the two bodies have no angular momentum whatsoever; they're not rotating. When they interact at an oblique angle (vector of travel does not align with the line of their centers of mass), obviously a certain amount of their momentum gets transferred into angular momentum (i.e. they each get a certain amount of spin), but how much and what are the equations for such?
This can probably be solved by using a many-body rigid system to calculate, but I want to get a much more optimized calculation going, so I can calculate this stuff in real-time. Does anyone have any ideas on the equations, or pointers to open-source implementations of these calculations for inclusion in a project? To be precise, I need this to be a rather well-optimized calculation, because of the number of interactions that need to be simulated within a single "tick" of the simulation.
Edit: Okay, it looks like there's not a lot of precise information about this topic out there. And I find the "Physics for Programmers" type of books to be a bit too... dumbed down to really get; I don't want code implementation of an algorithm; I want to figure out (or at least have sketched out for me) the algorithm. Only in that way can I properly optimize it for my needs. Does anyone have any mathematic references on this sort of topic?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
如果您对旋转非球形物体感兴趣,请http://www.myphysicalslab.com/collision。 html 显示了如何做到这一点。 物体的不对称性意味着碰撞过程中的法向接触力会产生围绕各自重心的扭矩,从而导致物体开始旋转。
对于台球或空气曲棍球来说,情况就有点微妙了。 由于主体是球形/圆形,法向力始终直接穿过 CG,因此没有扭矩。 然而,法向力并不是唯一的力。 还有一个与接触法线相切的摩擦力,它将产生围绕重心的扭矩。 摩擦力的大小与法向力和摩擦系数成正比,与相对运动的方向相反。 它的方向与物体在接触点处的相对运动相反。
If you're interested in rotating non-spherical bodies then http://www.myphysicslab.com/collision.html shows how to do it. The asymmetry of the bodies means that the normal contact force during the collision can create a torque about their respective CGs, and thus cause the bodies to start spinning.
In the case of a billiard ball or air hockey puck, things are a bit more subtle. Since the body is spherical/circular, the normal force is always right through the CG, so there's no torque. However, the normal force is not the only force. There's also a friction force that is tangential to the contact normal which will create a torque about the CG. The magnitude of the friction force is proportional to the normal force and the coefficient of friction, and opposite the direction of relative motion. Its direction is opposing the relative motion of the objects at their contact point.
嗯,我最喜欢的物理书是 Halliday 和 Resnick。 我从来没有觉得那本书对我来说任何东西都变得愚蠢(愚蠢是在头骨里面,而不是在页面上......)。
如果你提出一个思考问题,你就可以开始了解它会如何发展。
想象一下,您的两个刚性空气曲棍球底部无摩擦,但边缘周围的摩擦系数最大。 显然,如果两个冰球以相同的动能彼此相向,它们将完美地弹性碰撞并以相反的方向返回。
然而,如果它们的中心偏移 2*半径 - epsilon,它们将几乎不会接触到周边的一点。 如果它们边缘的摩擦系数非常高,您可以想象它们的所有能量都会转化为旋转。 当然,撞击后必须分开,否则它们会在粘在一起时立即停止自己的旋转。
所以,如果你只是在寻找一些看似合理且有趣的东西(游戏物理学),我想说你可以标准化摩擦系数来解释两个物体之间微小的接触面积(选择看起来有趣的东西)并使用物体路径和撞击点之间角度的正弦值。 直线方向,你会得到弹跳,45 度会给你弹跳和旋转,90 度偏移会给你最大旋转和最小弹跳。
显然,以上都不是准确的模拟。 不过,它应该是一个足够简单的框架,可以引发有趣的行为。
编辑:好的,我想出了另一个有趣的例子,也许更能说明问题。
想象一个单一的圆盘(如上所述)朝着静止的、刚性的、近一维的针尖移动,该针尖提供了先前的高摩擦力但低粘性。 如果圆盘经过的距离正好与边缘接触,您可以想象其线性能量的一部分将转换为旋转能量。
然而,您可以确定的一件事是,在这次接触之后存在最大旋转能量:磁盘最终不能以使其外边缘以高于原始线速度的速度移动的速度旋转。 因此,如果圆盘以每秒一米的速度移动,它最终不会出现其外边缘以每秒超过一米的速度移动的情况。
因此,现在我们有了一篇很长的文章,有一些简单的概念应该有助于直觉:
Well, my favorite physics book is Halliday and Resnick. I never ever feel like that book is dumbing down anything for me (the dumb is inside the skull, not on the page...).
If you set up a thought problem, you can start to get a feeling for how this would play out.
Imagine that your two rigid air hockey pucks are frictionless on the bottom but have a maximal coefficient of friction around the edges. Clearly, if the two pucks head towards each other with identical kinetic energy, they will collide perfectly elastically and head back in opposite directions.
However, if their centers are offset by 2*radius - epsilon, they'll just barely touch at one point on the perimeter. If they had an incredibly high coefficient of friction around the edge, you can imagine that all of their energy would be transferred into rotation. There would have to be a separation after the impact, of course, or they'd immediately stop their own rotations as they stuck together.
So, if you're just looking for something plausible and interesting looking (ala game physics), I'd say that you could normalize the coefficient of friction to account for the tiny contact area between the two bodies (pick something that looks interesting) and use the sin of the angle between the path of the bodies and the impact point. Straight on, you'd get a bounce, 45 degrees would give you bounce and spin, 90 degrees offset would give you maximal spin and least bounce.
Obviously, none of the above is an accurate simulation. It should be a simple enough framework to cause interesting behaviors to happen, though.
EDIT: Okay, I came up with another interesting example that is perhaps more telling.
Imagine a single disk (as above) moving towards a motionless, rigid, near one-dimensional pin tip that provides the previous high friction but low stickiness. If the disk passes at a distance that it just kisses the edge, you can imagine that a fraction of its linear energy will be converted to rotational energy.
However, one thing you know for certain is that there is a maximum rotational energy after this touch: the disk cannot end up spinning at such a speed that it's outer edge is moving at a speed higher than the original linear speed. So, if the disk was moving at one meter per second, it can't end up in a situation where its outer edge is moving at more than one meter per second.
So, now that we have a long essay, there are a few straightforward concepts that should aid intuition:
您应该看看游戏开发者物理学 - 很难出错和一本奥莱利的书。
You should have a look at Physics for Game Developers - it's hard to go wrong with an O'Reilly book.
除非你有充分的理由重新发明轮子,
我建议仔细查看一些开源物理引擎的源代码,例如 Open Dynamics Engine或项目符号。 该领域的高效算法是一种艺术形式,毫无疑问,最好的实现是在像这样经过严格同行评审的项目中发现的。
Unless you have an excellent reason for reinventing the wheel,
I'd suggest taking a good look at the source code of some open source physics engines, like Open Dynamics Engine or Bullet. Efficient algorithms in this area are an artform, and the best implementations no doubt are found in the wild, in throroughly peer-reviewed projects like these.
请看看这个参考资料!
如果你想真正进入力学,这就是你要走的路,而且它是正确的、数学上正确的方法!
Glocker Ch.,集值力定律:非光滑系统动力学。 应用力学讲义 1,施普林格出版社,柏林,海德堡 2001 年,222 页。 PDF(目录,149 kB)
Pfeiffer F.,Glocker Ch.,单边接触的多体动力学。 约翰·威利 Sons,纽约,1996 年,317 页。 PDF(目录,398 kB)
Glocker Ch.,Dynamik von Starrkörpersystemen mit Reibung und Stößen。 VDI-Fortschrittberichte Mechanik/Bruchmechanik, Reihe 18, Nr. 182,VDI-Verlag,杜塞尔多夫,1995 年,220 页。 PDF (4094 kB)
Please have a look at this references!
If you want to go really into Mecanics, this is the way to go, and its the correct and mathematically proper way!
Glocker Ch., Set-Valued Force Laws: Dynamics of Non-Smooth Systems. Lecture Notes in Applied Mechanics 1, Springer Verlag, Berlin, Heidelberg 2001, 222 pages. PDF (Contents, 149 kB)
Pfeiffer F., Glocker Ch., Multibody Dynamics with Unilateral Contacts. JohnWiley & Sons, New York 1996, 317 pages. PDF (Contents, 398 kB)
Glocker Ch., Dynamik von Starrkörpersystemen mit Reibung und Stößen. VDI-Fortschrittberichte Mechanik/Bruchmechanik, Reihe 18, Nr. 182, VDI-Verlag, Düsseldorf, 1995, 220 pages. PDF (4094 kB)