2017年11月13日星期一

游戏中的物理(车辆)(五)

游戏中的物理(车辆)(五)

轮胎牵引力

之前的假设是轮胎不会打滑,现实中,如果汽车停止,全油门加速,车胎将会先打滑然后再前进。如果汽车以过高的速度经过一个弯道,或许会侧滑出去。
回忆此章的开头,汽车能向前运动,是因为轮胎和地面间的摩擦力。这个摩擦力叫做牵引力。它等于垂直于汽车的压力乘以摩擦系数:
式8.32的牵引力,是轮胎不打滑的最大摩擦力。一辆车的牵引力一般是通过“滑轨测试(skidpad test)”得到的。车辆围绕一个平的圆形轨道行驶,车辆的速度不断增加,直到侧向加速度与轮胎的牵引力相等。
式8.33的r是轨道的半径。如果车速超过某点,向心力比牵引力大,车辆开始向外侧滑动。滑轨测试的结果通常表示为车辆不滑动的最大加速度。在干燥路面上, 2004 Porsche Boxster S 的最大轮胎加速度是0.91g,g是重力加速度。
这个加速度限制也适用于直线状况。如果轮胎上施加的扭力大于最高加速度,则轮胎开始打滑。所以最大轮胎加速度会限制汽车的加速。无论轮胎上施加了多大的扭力,汽车的加速不会超过轮胎的最大加速度。
对游戏而言,使用轮胎牵引力效果很直观。首先计算施加到轮胎上的扭力:
然后计算最大摩擦力(式8.32).如果轮上扭力低于最大摩擦力,则可用于汽车运动,如果轮上扭力大于最大摩擦力,则轮胎打滑,应使用最大摩擦力计算汽车运动。
式8.32的系数取决于轮胎和路面的条件。光头胎会比日常胎有更低的系数。在冰面上会比干地上有更低的系数。
最后的注意点是最大轮胎加速度用于汽车最终加速度。围绕曲线行驶的车辆将会有向心加速度。最终加速度等于向心和直线加速度的和的平方根:
从式8.35可得,一辆加速进入一个弯道的车辆比用特定速度沿此弯道巡航的车辆更容易打滑。

围绕曲线行驶

到目前为止,只讨论了车辆沿直线行驶的物理。车子当然不能永远直行,有时还需转弯。围绕曲线行驶可分为两种情况:高速转向和低速转向。
首先讨论低速的情况。低速比高速要容易些,一些因素,比如向心加速度,可以忽略。轮胎可以假定不打滑。考虑如图8-10的车。前轮转过角度为δ,向右转。如果车子以恒定速度行驶,将转过一个半径为 rc的圆。
车子转向的圆心位于右侧前后轮的垂线的交点。圆的半径可以用三角测量得到。前后轮的距离是l,也叫轴距。轴距与半径的比等于sinδ:
另一个重点是转向的速度,即角速度。如果转向时没有摩擦力,则角速度ωt,等于线速度除以半径:
使用式8.36,角速度可由轮距和前轮角度得出:
式8.36和8.38提供了低速转向的所有信息。比如,驾驶Boxster S低速转一个90度的弯,速度为10m/s(36km/h)。为了转这个弯,前轮需要转动10度。Boxster S的轴距为2.41m。半径有多大,需要花多长时间?半径可从式8.36得出:
所需时间等于转过的角度pi/2,除以角速度:

高速转向

模拟高速转向比较复杂,例如,向心力会导致车子向外滑。或者说,轮胎会有垂直于转向方向的速度分量。这个力也产生对汽车质心的扭力,使得汽车围绕质心转动。你可能见过这个效果,当车子高速转向时,汽车的尾部向外甩,出现“甩尾”现象。
最简单的模拟高速转向的方式是计算侧向力,Flateral,它等于向心力和摩擦力的差:

角度θ是汽车行驶的坡道的角度。在式8.41中,正侧向力是向外的。因为摩擦力不可能超过向心力(汽车不可能滑向内侧),侧向力将总是大于或等于0。
式8.41提供了大致的侧向力的计算,但是它没法模拟汽车高速过弯时的甩尾或侧滑效果。要得到更逼真的高速过弯效果,需要考虑每个轮胎上的侧向力。这相当复杂,需要知道轮胎打滑角度等,超出了这本书的范围。

模拟撞车

我们都知道,汽车有时会撞到什么东西。你或许在现实中撞过车。在汽车模拟中,撞向什么东西或撞飞什么看起来很有趣。我们在第六章学习了碰撞的基础,很多相同的理念可以应用到汽车上。汽车不是实心的金属块,当它们撞到什么东西,除非是速度很低,否则车体会变形。这种碰撞是非弹性的,因为汽车运动的能量会损坏车体。
第六章,给出了计算两个物体直线碰撞后的速度的公式8.42a,8.42b。碰撞后的速度v′1 and v′2,是两物体的质量m和碰撞前的速度v,以及返回系数e的函数。其中一个物体是车,另一个则可以是任何东西。
如果汽车的任何部位在碰撞中发生了变形,那么碰撞是非弹性的,则返回系数将小于1.在第六章中,弹性和非弹性的碰撞已经讨论过。一个极端情况是完全非弹性碰撞,这时返回系数为0.这种情况下,汽车和碰撞的物体将挤在一起,会有一个相同的碰撞后速度。(式8.43)
大多数情况下,碰撞不是完全非弹性的,返回系数将会大于0.汽车将会损坏,并撞飞碰到的物体。F1赛车游戏使用0.25的返回系数。

摩托车

摩托车也是一种可以创造刺激的游戏体验的车辆。摩托车更轻,更灵活,加速性更好,但是大部分加速和刹车的物理是和汽车一样的。摩托车的动力传到后轮,趋势它前进。摩托车也受到空阻,滚动摩擦力,牵引力的影响,正如车一样。
表8-4比较了跑车和高性能摩托车的性能参数。车:2004 Porsche Boxster S,摩托车:2004 Honda CBR1000RR。摩托车更轻,汽车有更高的极速,但是摩托车加速更快。它只需要汽车的一半多一点的时间达到100km/h。汽车引擎扭力更高,但是摩托车引擎有更高的红线转速(这也是它加速更快的一个原因)。
如之前所说,汽车和摩托车有很多相似的地方,但是有一个重要的不同之处:摩托车如何转向。

摩托车转向

让汽车转弯很简单,转动轮子到想转的方向。如果你在摩托车上也这么做,除非是速度很低,否则你会摔车。这种现象的原因叫“陀螺进动”。当摩托车的轮子转向一个方向时,一个力会施加到相反的方向上,使得轮子倾斜。比如,如果你把摩托车的前轮向左转,摩托车会向右倾斜,反之亦然。因为这个现象,如果你想把摩托车的前轮转向某方向,你会摔出摩托车。
成功地让摩托车高速转向的关键是向弯道的内部倾斜,如图8.11所示。这种倾斜会稳定摩托车的运动,有几种方法可以让摩托车向弯内倾斜。第一种是利用陀螺进动,叫反转向。为了开始转向,驾驶者必须向相反的方向转动前轮。这看起来奇怪,但是记住向反方向转动前轮会使得摩托车向弯内倾斜。驾驶者也可以倾斜肩部来使得摩托车向合适的方向倾斜。

表示反转向的力和时间的数学公式非常复杂,包含许多惯性和角速度的项。除非你想模拟非常高细节的摩托车运动,否则没有必要考虑那么复杂。反转向更适合作为一种视觉效果。当游戏中的车手转向时,让摩托车向弯内倾斜。

为汽车或摩托车增加高级效果

这章描述了汽车或摩托车的基本物理,可以想象,一些高级的物理效果并没有讨论。我们已经说过,汽车转向的真实描述需要考虑四个轮子上的侧向力。另一个转向的效果是重量会转移到外侧的轮子上。
要增加更逼真的物理效果,请使用和基本模型相同的步骤。首先,创建一个受力分析图,找出力和方向。然后,写出描述这些运动的公式。最后,代码实现。
参考:
1. B. Bowling, “Air Drag Coefficients and Frontal Area Calculation,” www.bgsoflex.com/airdragchart.html. 
2. C.E. Mungan, “Rolling Friction of a Free Wheel,” http://usna.edu/Users/physics/mungan/Scholarship/RollingFriction.pdf. 
3. R. van Gaal, “Car Physics Basics,” www.racer.nl/reference/carphys.htm#enginebraking. 

没有评论:

发表评论