猎人射猴问题在运动仿真中的实现
2015-11-30撰文DassaultSystemsSolidWorks刘红政宋昂
撰文/Dassault Systems SolidWorks 刘红政 宋昂
猎人射猴问题在运动仿真中的实现
撰文/Dassault Systems SolidWorks 刘红政 宋昂
一、概述
猎人射猴是一个古老的命题:猎人在瞄准猴子扣动扳机的同时,猴子受到惊吓从树上自由下落,猴子是否会被射中(如图1所示)?
图1 猎人射猴示意图
有人认为子弹出膛后在空中会飞行一段时间,无法射中猴子,因此猴子会幸免于难。当然,也有很多人论证了猴子会被子弹射中。下面我们通过多种方式来更深入地解读这个问题。
二、现有的论证方式
1.公式推导
我们先画出简化的运动学示意图,如图2所示。
图2 运动学示意图
按照猴子的竖直位置,可以列出公式:
该公式简化为:
水平方向可以列出:
由公式(2)和(3)可以得出:
因此,只要子弹可以在猴子掉落到地面之前飞行R距离,猴子就一定会被猎人射杀。当然,这是以猎人的视角求解所得结果。如果以猴子的视角看待这个问题,则所列公式会有所区别,但得到的结论是一致的。
2.物理试验
很多高校的教授也在各种场合验证了猎人射猴的问题,如MIT的著名教授Walter Lewin在公开课上的实验(详见视频https://www.youtube.com/ watch?v=ej1paFRZUS0;台湾大学周祥顺教授所做的实验,见视频https://www.youtube.com/ watch?v=BCkVY1PJwDQ)。这些实验得到了和理论一致的结果。
三、使用SOLIDWORKS MOTION进行猎人射猴的仿真
首先,我们在S0LIDW0RKS M0TI0N中建立一个简化的模型,使用球体代表猴子,使用圆柱椎体代表子弹(图3)。下面我们通过设置不同的运动边界条件,来模拟这个问题。
图3 SOLIDWORKS中的简化模型
1.加速度法
模拟子弹在枪膛中先做直线加速运动,出膛后在重力作用下做抛物线运动,如图4所示。可以按照表中给出的参数给定加速度大小及经历的时间。
表 出膛后加速度参数
图4 加速度法
2.线性马达法
模拟子弹沿瞄准线做线性等速运动,指定子弹运行的初始方向及速度,如图5所示。
3.初始速度法
设置子弹的初始速度,指定方向及速度大小,如图6所示。
图5 线性马达法
图6 初始速度法
当然,这三种方法在S0LIDW0RKS M0TI0N中都需要给定重力环境及3D接触的条件,这里做统一说明。最终,我们都能够在猴子下落的方向,得到子弹与猴子接触的位置,而且也可以使用S0LIDW0RKS M0TI0N的结果图解功能,绘制子弹的跟踪路径,如图7所示。
图7 子弹射杀轨迹
四、结语
本文通过使用S0LIDW0RKS M0TI0N的运动仿真功能,验证了猎人射猴这一经典运动学案例。在软件中尝试了不同的运动学边界条件,都可以得到相同的计算结果。使用S0LIDW0RKS M0TI0N进行运动学仿真,具有很好的操作界面,并能生成可视化的动画及图解。学校老师在介绍这一案例时,也可以尝试使用S0LIDW0RKS M0TI0N这一工具,为学生带来更多的物理体验。