通过免费试用 Wolfram System Modeler 探索本文的内容(https://www.wolfram.com/system-modeler/trial/?wechat-trial)。
保龄球是一种简单的游戏,由一个球、10 个球瓶和一条球道组成。你接球,来到起跑线,瞄准 1 号和 3 号瓶之间,然后将球扔出去。你会本能地假设球和球道是完美的,并期望球直奔你瞄准的地方。
然而,我们几乎总是会发现这种直觉是错误的。Jan Brugård 和我将通过使用 Wolfram System Modeler(https://www.wolfram.com/system-modeler/) 探索不同的效果来尝试解释这种现象并在这篇博文中揭示保龄球背后的物理原理。
作为一个零经验但对保龄球有好奇心的人,我开始为游戏建模,并注意到需要决定的大量参数,例如初始球速度、初始球位置、旋转速度等等。我不知道哪些重要,哪些不重要。我在互联网上找到了很多有趣的材料,但我又想维持我的新手经验且充满好奇的精神。所以我决定平生第一次和妻子一起去打保龄球。俗话说,迟到总比没有好。
投几个球试试看
我们在住的地方附近找到了一个保龄球馆。是的,我们想实地试一试!
我们立刻就开始玩了。我选了一个球,来到起跑线的球道中间,瞄准保龄球瓶,把球扔了出去。但球并没有我认为的那么快,球花了两秒多一点的时间才到达球瓶。它一直直行,然后,令我失望的是,结果违背我的直觉——它向左钩了 20 厘米。为什么?
比赛结束后,我回去开始研究并模拟了一个模型,其中包括球、球道和它们之间的接触:
我按照美国保龄球大会 (USBC) 的规则(https://www.bowl.com/rules/)设计了该模型,包括 18.29 m (60 ft.) 的球道长度和大约 8 m/s (9.145 ≂ 8 m/s) 的初始球速度。然而,它也在旋转,所以我试着计算转数——但球转得太快了。我检查了一下,发现角速度在 30-60 rad/s 左右。因此我的模型里,我假设为 45 rad/s。
我模拟了我的模型的第一个版本,并尝试复制我第一次投保龄球的情境。让我们看看生成的 System Modeler 动画:
如您所见,与我的第一次尝试相反,球一直是直的,那为什么我的投掷中途偏离了?是球或球道的问题还是我的问题?
让我们从球开始说起。起初听起来可能很奇怪,但实际上球并不是完美的形状。您可能会认为这是由于球上的洞,是的,但这只对了一部分。话又说回来,球制造商增加了一些配重来平衡这些孔。然而,它们添加的质量也可能有意或无意地导致回转半径(https://mathworld.wolfram.com/RadiusofGyration.html, 即回旋半径)的差异。如果存在任何差异,我们可能会看到由于网球拍定理(https://en.wikipedia.org/wiki/Tennis_racket_theorem, 即 Dzhanibekov 效应)而导致的保龄球投掷偏差,如这篇博文(https://blog.wolfram.com/2020/12/15/simulating-zero-gravity-to-demonstrate-the-dzhanibekov-effect-and-other-surprising-physics-models/)所示。
将这个不完美的因素添加到球上,看看会发生什么:
再次检查USBC规则后,我使用了允许的最大回转半径差异。差异很小,只有 0.2 毫米。如您所见,这次球没有直走。它以这种初始条件开始,然后走曲线。然而,这种曲线并不像我观察到的那么明显。
通过调整回转半径可以更清楚地看到这种效果:
得到一条不规则弯曲的曲线。然而,获得这样的曲线需要设计一个超出允许限制的球。所以,一定有其他东西可以解释我的第一次投掷结果和模型之间的区别。在保龄球道第一次投掷失败后,我决定将初始位置向右移动 20 厘米左右,同时保持球速大致相同。
球和之前一样滚动,然而它比第一次投掷弯曲更多并击中了 2 号球杆。
移动初始位置如何影响我的模型中的结果?以下代码说明了这一点:
球如预期滚动,和较早的那次投掷一样。但是,与我的现实生活经验相反的是,在偏离上并没有差异。之后我阅读了有关保龄球道的更多内容,事实证明,球道特意设计成有不均匀的摩擦(https://aapt.scitation.org/doi/10.1119/1.1767099)。
是的,这听起来很让人疑惑,但这增加了球路的复杂性,从而增加了比赛的竞争性。甚至根据不同的摩擦模式有不同名称的保龄球道,包括“鲨鱼”、“熊”和“老虎”球道。一般来说,在球道的前三分之二部分摩擦力非常低,但在球道最后一段摩擦力则增加了近 10 倍。那么如果我将这一参数引入我的模型会发生什么?
模拟之前我知道摩擦分布因车道而异,这让新秀投球手很难完全处理所有信息。因此,我将其建模为一个变量。1.5 秒后,球会像这样到达球道的干燥部分(http://beginnerbowlingtips.com/oil-and-bowling-lane-conditions):
我以这种方式模拟了保龄球道并投出了第一球,以下是我得到的结果:
是的,球路比以前弯曲了一点,但仍然没有我第一次实际投掷时弯曲得那么多。也许只是我投得不好?在正式比赛中,有些职业选手更疯狂地弯曲这些球。一定有我遗漏的东西。我在检查那些可能的原因时,我想起来职业选手是如何扔球的:他们会旋转球!
这也解释了为什么当我认为我已经复制了包括位置和手臂摆动在内的每一个细节来调整前一次投球的球速时,我会得到不同轨迹。因为在扔球的同时,我也旋转了球。
该角速度也影响轨迹。即使我试图通过查看手指孔来计算绕 y 轴旋转的次数,但结果对我来说是不可能的,因为球在球道方向旋转。由于很难观察这些值,我查询了相关数据(https://www.bowl.com/uploadedFiles/Equip_and_Specs/Equip_and_Specs_Home/08ballmotionstudy.pdf)。旋转速度在 1-10 rad/s 之间,具体取决于投球手。在这种情况下,我假设它是 5 rad/s。
下图解释了旋转球和表面如何协调工作。在球第一次打滑后,它会在干燥部分失去一点能量,并随着摩擦力的增加开始弯曲。它在球道的干燥部分获得充分的牵引力,并且由于球自身的旋转速度,而最终显示出令人费解的曲线!
加上旋转角速度后,我终于得到了与实际投掷类似的结果:
如果您想使用模型,请添加您认为可以提高准确性的任何参数。
为何要投曲球?
现在我们都知道球在大多数情况下是以曲线运动的,但不知道如何随心所欲地投出单手曲球。更何况,球为何可以如此曲线运动?
答案可能是投掷的角度。全倒是相当困难的。大多数投球手很快意识到在 1-3 号瓶口袋(右手)或 1-2 号瓶口袋(左手)之间有一个窄口袋形来实现全倒。单手曲球在这些口袋形处获得更好的角度,并有更高的容错率。当球滚直时,击球必须准确。通过单手曲球,球以更大的力击打球瓶,产生更好的传球。
如果球刚好在中心袋的右侧或进入角度不足,那么直投——即使球击中口袋区域——也会倾向于只碰到球瓶。换句话说,单手曲球可以用不太精确的击球来实现全倒。
还有很多其他因素要考虑,但现在让我们总结一下整件事情。我们计算了我作为新手观察到的参数对保龄球轨迹的影响。
最后,我认为我可以回答为什么你对保龄球的直觉是错误的。正如我之前提到的,球、球道、你和我(可能)都不可能是完美的。但希望,玩以下保龄球游戏能给你带来更多的思考和洞察,让你打出完美局:
技术测试
我们已经对保龄球及其运动轨迹的解释做出了自己的努力,现在你也可以下载模型(https://content.wolfram.com/uploads/sites/39/2022/03/Bowling.mo)并使用 Wolfram System Modeler 运行代码来重现模拟击球。