撰文/Dassault Systems SolidWorks 劉紅政 宋昂
獵人射猴問題在運(yùn)動仿真中的實(shí)現(xiàn)
撰文/Dassault Systems SolidWorks 劉紅政 宋昂
獵人射猴是一個古老的命題:獵人在瞄準(zhǔn)猴子扣動扳機(jī)的同時,猴子受到驚嚇從樹上自由下落,猴子是否會被射中(如圖1所示)?

圖1 獵人射猴示意圖
有人認(rèn)為子彈出膛后在空中會飛行一段時間,無法射中猴子,因此猴子會幸免于難。當(dāng)然,也有很多人論證了猴子會被子彈射中。下面我們通過多種方式來更深入地解讀這個問題。
1.公式推導(dǎo)
我們先畫出簡化的運(yùn)動學(xué)示意圖,如圖2所示。

圖2 運(yùn)動學(xué)示意圖
按照猴子的豎直位置,可以列出公式:

該公式簡化為:

水平方向可以列出:

由公式(2)和(3)可以得出:

因此,只要子彈可以在猴子掉落到地面之前飛行R距離,猴子就一定會被獵人射殺。當(dāng)然,這是以獵人的視角求解所得結(jié)果。如果以猴子的視角看待這個問題,則所列公式會有所區(qū)別,但得到的結(jié)論是一致的。
2.物理試驗(yàn)
很多高校的教授也在各種場合驗(yàn)證了獵人射猴的問題,如MIT的著名教授Walter Lewin在公開課上的實(shí)驗(yàn)(詳見視頻https://www.youtube.com/ watch?v=ej1paFRZUS0;臺灣大學(xué)周祥順教授所做的實(shí)驗(yàn),見視頻https://www.youtube.com/ watch?v=BCkVY1PJwDQ)。這些實(shí)驗(yàn)得到了和理論一致的結(jié)果。
首先,我們在S0LIDW0RKS M0TI0N中建立一個簡化的模型,使用球體代表猴子,使用圓柱椎體代表子彈(圖3)。下面我們通過設(shè)置不同的運(yùn)動邊界條件,來模擬這個問題。

圖3 SOLIDWORKS中的簡化模型
1.加速度法
模擬子彈在槍膛中先做直線加速運(yùn)動,出膛后在重力作用下做拋物線運(yùn)動,如圖4所示。可以按照表中給出的參數(shù)給定加速度大小及經(jīng)歷的時間。

表 出膛后加速度參數(shù)

圖4 加速度法
2.線性馬達(dá)法
模擬子彈沿瞄準(zhǔn)線做線性等速運(yùn)動,指定子彈運(yùn)行的初始方向及速度,如圖5所示。
3.初始速度法
設(shè)置子彈的初始速度,指定方向及速度大小,如圖6所示。

圖5 線性馬達(dá)法

圖6 初始速度法
當(dāng)然,這三種方法在S0LIDW0RKS M0TI0N中都需要給定重力環(huán)境及3D接觸的條件,這里做統(tǒng)一說明。最終,我們都能夠在猴子下落的方向,得到子彈與猴子接觸的位置,而且也可以使用S0LIDW0RKS M0TI0N的結(jié)果圖解功能,繪制子彈的跟蹤路徑,如圖7所示。

圖7 子彈射殺軌跡
本文通過使用S0LIDW0RKS M0TI0N的運(yùn)動仿真功能,驗(yàn)證了獵人射猴這一經(jīng)典運(yùn)動學(xué)案例。在軟件中嘗試了不同的運(yùn)動學(xué)邊界條件,都可以得到相同的計(jì)算結(jié)果。使用S0LIDW0RKS M0TI0N進(jìn)行運(yùn)動學(xué)仿真,具有很好的操作界面,并能生成可視化的動畫及圖解。學(xué)校老師在介紹這一案例時,也可以嘗試使用S0LIDW0RKS M0TI0N這一工具,為學(xué)生帶來更多的物理體驗(yàn)。