撰文/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)。這些實驗得到了和理論一致的結果。
首先,我們在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這一工具,為學生帶來更多的物理體驗。