張德鍵,焦志剛,王珞冰
(沈陽(yáng)理工大學(xué) 裝備工程學(xué)院, 沈陽(yáng) 110159)
炮彈作為現(xiàn)代戰(zhàn)爭(zhēng)中最主要的大規(guī)模殺傷性武器,一直受到各國(guó)軍隊(duì)和武器研究者們的關(guān)注。為了能觀察到炮彈在外彈道的運(yùn)動(dòng),提高火炮炮彈的散布和打擊精度,增加炮彈射程,火炮研究者們提出了很多設(shè)計(jì)方案。張斐[1]設(shè)計(jì)了一種機(jī)械裝置,通過(guò)ADAMS和Workbench進(jìn)行模擬實(shí)驗(yàn),模擬出了3種不同類(lèi)型彈丸的飛行姿態(tài)。李華等[2]采用3DMAX進(jìn)行渲染,將Simulink與虛擬現(xiàn)實(shí)語(yǔ)言相結(jié)合實(shí)現(xiàn)了彈丸六自由度剛體彈道的可視化仿真。張進(jìn)強(qiáng)等[3]將MATLAB與OpenGL結(jié)合,實(shí)現(xiàn)了基于數(shù)值仿真實(shí)時(shí)驅(qū)動(dòng)的彈道可視化平臺(tái),該平臺(tái)可以對(duì)炮彈的飛行軌跡、姿態(tài)、散布等進(jìn)行仿真分析。張維[4]建立了彈丸六自由度剛體彈道的Simulink模型,并在MATLAB的GUIDE環(huán)境下,建立了外彈道的可視化系統(tǒng)。
虛擬現(xiàn)實(shí)技術(shù)自誕生以來(lái),就一直受到軍方的青睞。安興等[5]介紹了美軍在構(gòu)建戰(zhàn)場(chǎng)、單兵訓(xùn)練、異地同環(huán)境作戰(zhàn)訓(xùn)練、軍事指揮人員訓(xùn)練、武器裝備研制及信息網(wǎng)絡(luò)虛擬戰(zhàn)等7個(gè)方面虛擬現(xiàn)實(shí)技術(shù)的應(yīng)用現(xiàn)狀及發(fā)展。欒悉道,謝毓湘等[6]從現(xiàn)實(shí)戰(zhàn)場(chǎng),單兵模擬訓(xùn)練、近戰(zhàn)戰(zhàn)術(shù)訓(xùn)練,多兵種聯(lián)合演習(xí)等4個(gè)方面分析了虛擬現(xiàn)實(shí)技術(shù)在軍事上的應(yīng)用現(xiàn)狀,并在高新武器研發(fā)、軍事地圖、軍事醫(yī)學(xué)救治和遠(yuǎn)程操控機(jī)械設(shè)備等方面闡述了虛擬現(xiàn)實(shí)技術(shù)在軍事上的發(fā)展前景。王彪等[7]結(jié)合虛擬現(xiàn)實(shí)技術(shù),設(shè)計(jì)了一種軍用橋梁半實(shí)物仿真模擬訓(xùn)練器的研制方案。
本文將重點(diǎn)研究如何借助虛擬現(xiàn)實(shí)技術(shù)實(shí)現(xiàn)將彈丸六自由度剛體彈道方程的計(jì)算數(shù)據(jù)與彈丸三維模之間的傳遞方法。并驗(yàn)證這種方法的可行性,得到彈丸剛體外彈道的可視化視景仿真。
彈丸外彈道方程組可分為質(zhì)點(diǎn)彈道方程組和六自由度剛體彈道方程組,對(duì)比這兩種方程對(duì)彈丸外彈道的描述,質(zhì)點(diǎn)彈道方程是在忽略馬格努斯力、科氏慣性力和全部力矩的情況下建立的,描述的是理想狀態(tài)下彈丸的運(yùn)動(dòng),在該狀態(tài)下,可將彈丸當(dāng)作質(zhì)點(diǎn),彈丸的運(yùn)動(dòng)軌跡呈不對(duì)稱(chēng)的拋物線。質(zhì)點(diǎn)彈道方程只能描述彈丸的外彈道軌跡[8]。
彈丸六自由度剛體彈道方程中包含了精確、復(fù)雜的角運(yùn)動(dòng),其可以看作是彈丸質(zhì)心運(yùn)動(dòng)方程和彈丸繞質(zhì)心運(yùn)動(dòng)方程組成。質(zhì)心運(yùn)動(dòng)方程和繞質(zhì)心運(yùn)動(dòng)方程建立在不同的坐標(biāo)系下,本文選用地面坐標(biāo)系、彈道坐標(biāo)系建立彈丸質(zhì)心運(yùn)動(dòng)方程,選用第一彈軸坐標(biāo)[9]系建立彈丸繞質(zhì)心運(yùn)動(dòng)方程。
彈丸質(zhì)心運(yùn)動(dòng)方程:
彈丸繞質(zhì)心運(yùn)動(dòng)方程:
其中:v為彈丸速度,θa為速度高低角,ψ2為速度方向角,x、y、z為彈丸位置坐標(biāo),ωξ、ωη、ωζ為3個(gè)坐標(biāo)軸方向的角速度,φa為彈軸高低角,φ2為彈軸方位角,Mξ、Mη、Μζ分別為外力矩在彈軸坐標(biāo)系上3個(gè)坐標(biāo)軸方向的上的分量,Jξ為轉(zhuǎn)動(dòng)慣量,γ是彈丸轉(zhuǎn)速,方程具體內(nèi)容請(qǐng)參考文獻(xiàn)[9]。
要想準(zhǔn)確描述彈丸在空氣中的飛行軌跡和飛行姿態(tài),需要知道彈丸運(yùn)動(dòng)的位置坐標(biāo),旋轉(zhuǎn)的角速度以及各角度變化等數(shù)據(jù)。使用彈丸六自由度剛體彈道方程計(jì)算出彈丸飛行時(shí)的位置坐標(biāo)值,3個(gè)軸方向的角運(yùn)動(dòng)以及彈丸的章動(dòng)角和偏航角的變化。如何將這些數(shù)據(jù)通過(guò)腳本傳遞到彈丸的三維模型上是準(zhǔn)確描述彈丸在空氣中的飛行軌跡和飛行姿態(tài)的關(guān)鍵步驟。
彈道仿真運(yùn)行腳本采用迭代的編程思想,設(shè)置一個(gè)迭代的步長(zhǎng)Dt,該步長(zhǎng)值是一個(gè)浮點(diǎn)型的參數(shù)。讓彈丸外彈道計(jì)算的初始值加上該初始值與步長(zhǎng)Dt的乘積,將這一次計(jì)算的數(shù)值賦予第一次計(jì)算的數(shù)值A(chǔ)1。再將A1的值加上A1值與Dt的乘積賦予A2,依次類(lèi)推,直至方程中彈丸y軸的位置坐標(biāo)小于0為止,數(shù)學(xué)公式描述如下:
A1=A初+(A初×Dt)
程序運(yùn)行邏輯框圖如圖1。
方程只迭代一次是不能實(shí)現(xiàn)實(shí)時(shí)傳遞數(shù)據(jù)的,這里需要將彈丸六自由度剛體彈道方程的迭代腳本寫(xiě)在Unity腳本中的Update()函數(shù)下[10]。這個(gè)函數(shù)會(huì)在每一幀渲染前被調(diào)用,一次刷新一幀,也就是將彈丸六自由度剛體彈道方程寫(xiě)在這個(gè)函數(shù)下時(shí),Update()函數(shù)每刷新一幀,方程就會(huì)被迭代一次,彈丸六自由度剛體彈道方程的計(jì)算程序會(huì)在Update()函數(shù)下,以上述的計(jì)算方式循環(huán),直至彈丸y軸坐標(biāo)值小于0為止。將計(jì)算結(jié)果在Console顯示框中輸出,結(jié)果如圖2所示。
數(shù)據(jù)計(jì)算成功后,需要將描述彈丸運(yùn)動(dòng)的參數(shù)賦予彈丸三維模型,因此需要調(diào)用Unity內(nèi)部的Transform組件中的位置函數(shù)和旋轉(zhuǎn)函數(shù),Transform組件用于儲(chǔ)存并操控物體的位置、旋轉(zhuǎn)和縮放[11]。其中transform.postion()函數(shù)來(lái)描述物體在三維空間的位置變化,括號(hào)中對(duì)應(yīng)的是物體運(yùn)動(dòng)的三維坐標(biāo)。方程計(jì)算出的彈丸運(yùn)動(dòng)位置的三維坐標(biāo)填寫(xiě)到三維空間函數(shù)Vector3()中,并將三維空間函數(shù)Vector3()的數(shù)值賦予transform.postion()函數(shù)中,在Update()函數(shù)下,transform.postion()函數(shù)實(shí)時(shí)刷新,彈丸三維模型就會(huì)以計(jì)算出的參數(shù)進(jìn)行運(yùn)動(dòng),使用Unity中的繪線工具,呈現(xiàn)出彈丸的飛行軌跡。transform.LocalEulerAngle()函數(shù)是表示物體相對(duì)于父級(jí)物體旋轉(zhuǎn)的角度,當(dāng)使用這個(gè)函數(shù)時(shí),設(shè)置的角度值為絕對(duì)值,括號(hào)中獲取的是物體運(yùn)動(dòng)的角速度。同樣隨著方程計(jì)算出彈丸運(yùn)動(dòng)角速度的刷新,彈丸三維模型將實(shí)時(shí)按照計(jì)算數(shù)據(jù)轉(zhuǎn)動(dòng),呈現(xiàn)彈丸運(yùn)動(dòng)姿態(tài)。調(diào)用Instantiate()函數(shù)克隆彈丸預(yù)制物體運(yùn)行效果如圖3、圖4以及圖5所示。
本文通過(guò)將彈丸六六自由度剛體彈道方程腳本寫(xiě)在Update()函數(shù)下,將方程計(jì)算的數(shù)據(jù)賦給了Unity中的Transform()函數(shù),實(shí)現(xiàn)了用計(jì)算數(shù)據(jù)驅(qū)動(dòng)彈丸三維模型運(yùn)動(dòng),該過(guò)程實(shí)現(xiàn)彈丸外彈道可視化的關(guān)鍵步驟。通過(guò)該項(xiàng)技術(shù)還可以實(shí)現(xiàn)例如尾翼彈、導(dǎo)彈、水下彈藥、魚(yú)雷、火箭等武器系統(tǒng)的發(fā)射仿真,有助于分析在風(fēng)、雨、雷電等極端環(huán)境下影響彈丸飛行的各個(gè)因素。是彈丸外彈道研究的一次新的嘗試。
參考文獻(xiàn):
[1]張斐.彈丸飛行姿態(tài)運(yùn)動(dòng)學(xué)分析與模擬試驗(yàn)研究[D].太原:中北大學(xué),2013.
[2]李華,陳偉偉.基于虛擬現(xiàn)實(shí)建模語(yǔ)言的彈道可視化仿真[J].探測(cè)與控制學(xué)報(bào),2009,31(1):77-80.
[3]張進(jìn)強(qiáng),蔣夏軍.外彈道可視化研究與實(shí)現(xiàn)[J].計(jì)算機(jī)工程與科學(xué),2015,37(2):372-378.
[4]張維.基于MATLAB的武器外彈道仿真可視化技術(shù)研究[D].太原:中北大學(xué):2014.
[5]安興,李剛.虛擬現(xiàn)實(shí)技術(shù)在美軍模擬訓(xùn)練中的應(yīng)用現(xiàn)狀及發(fā)展[J].光電與控制,2011,18(10):42-46.
[6]欒悉道,謝毓湘.虛擬現(xiàn)實(shí)技術(shù)在軍事上的應(yīng)用[J].系統(tǒng)仿真學(xué)報(bào),2003,15(4):604-607.
[7]王彪,鄒煜.虛擬現(xiàn)實(shí)技術(shù)在軍事模擬訓(xùn)練中的應(yīng)用[J].工兵裝備研究,2007,26(5):52-56.
[8]錢(qián)林方.火炮彈道學(xué)[M].北京:北京理工大學(xué)出版社,2009:12.
[9]韓子鵬.彈箭外彈道學(xué)[M].北京:北京理工大學(xué)出版社,2008.
[10] 夏瀚笙,沈峘,王瑩,等.三維數(shù)字圖像相關(guān)法的匹配策略和應(yīng)變場(chǎng)計(jì)算[J].重慶理工大學(xué)學(xué)報(bào)(自然科學(xué)),2017(9):110-118.
[11] Ceeger Logo視界.Unity圣典[DB/OL].http://www.ceeger.com/Script/Transform/Transform.localEulerAngles.html,2010.12.