王 屹,薛宏偉
(陸軍炮兵防空兵學院 士官學校,沈陽 110867)
火炮作為當前部隊裝備的主要重武器之一,其彈丸射擊過程是火炮研制的一個關鍵環節,射擊訓練長期以來主要依靠實兵實裝進行[1].這種傳統的訓練方式有其優勢,但是也存在危險性大、訓練成本高、易受天氣因素影響等問題.近年來,國內關于火炮外彈道的研究主要集中于火炮彈丸運行軌跡和彈丸飛行試驗結果的仿真,且現有的火炮外彈道仿真方法仍存在準確性、實用性和可視化方面的不足[2],因此亟需深入開展有效的、實用的火炮外彈道虛擬仿真方法的研究.
為了解決火炮外彈道仿真中可視化方面的不足,本文引入虛擬現實(Virtual Reality,VR)技術,虛擬現實技術是一種可以創建和體驗虛擬世界的計算機仿真技術,利用電腦模擬生成一個三維空間的虛擬世界,給用戶提供視覺、聽覺、觸覺等感官的模擬,讓原本繁復或者不容易展示的內容以虛擬現實技術為載體讓大眾更容易理解和接受[3].虛擬現實技術與火炮的研制相結合,將會為火炮的研制帶來極大的便利.
本文在合理的假設簡化后,通過對火炮質點外彈道方程組的分析求解,得到彈丸外彈道運動過程的數學模型.結合采用Unity3D 開發火炮外彈道虛擬仿真系統,用虛擬環境來模擬復雜多變的真實火炮發射環境,對火炮的發射過程進行了可視化仿真.該仿真不僅可以體驗火炮性能,并且具有試驗可重復、風險性小、節省資金等優點.在此仿真試驗過程中可以讓用戶根據仿真系統中的環境、聲音等因素獲得視覺、聽覺等感官體驗,從而更真切的觀察火炮發射整個過程.仿真研究結果不僅為火炮外彈道的優化設計提供了便利,同時也為火炮研究提供可視化的虛擬試驗研究方法,而且可以縮短現代火炮的研究周期和研究成本.
火炮的發射具有復雜的受力和運動過程,在火炮系統設計過程中,彈丸的外彈道設計是一項非常重要的工作.火炮外彈道學主要研究由火炮發射的彈丸出炮口后的運行軌跡及姿態[4].仿真模型的建立是仿真研究的關鍵環節,常用的外彈道模型包括:彈道微分方程組、彈道諸元的解析表達式、射表、射表諸元的逼近表達式、射表與微分方程聯合使用[5].火炮射擊通常分射擊準備和射擊實施兩個階段,射擊準備的主要任務是給火炮決定對目標射擊開始使用的瞄準裝置裝定劃分(即決定射擊諸元).射擊諸元包括方向分化、表尺分劃等.射擊準備的主要內容有確定目標位置,測地、彈道及氣象準備,決定射擊開始諸元.因此,要實時的模擬火炮彈丸在空中的飛行運動過程以及運動形態變化,需要建立彈丸運動的數學模型,即彈道方程,計算彈丸在任意時刻點的具體位置數據.同時,為了更加直觀的觀察火炮射擊過程,需要建立火炮和彈丸實體模型.
火炮發射后,發射藥在膛內燃燒產生的氣體壓力,使彈丸獲得速度在空中飛行,彈丸重心經過的路線即為彈道.彈丸在出膛后具有一定的初速度和角度,在飛行過程中在阻力和地球引力的作用下運動.彈道學是研究彈丸運動規律的學科,在彈道學中,通常情況下,火炮彈丸的外彈道模型可以分為剛體外彈道和質點外彈道.剛體外彈道模型將彈丸視為剛體,其計算結果準確,但彈道模型的公式較為復雜,不利于彈道計算腳本的編寫和實時計算.質點外彈道將彈丸簡化為質點,其彈道模型較剛體外彈道模型簡單,雖然結果沒有剛體外彈道模型精確,但是已經可以滿足本文的需求.同時,由于使用質點外彈道模型編寫腳本較為簡單并且計算速度較快,因此本文采用浦發[6]提出的質心運動方程組作為仿真研究過程中解算彈道的數學模型.
對于飛行穩定性相對較好的彈丸,在飛行中彈丸軸線和彈丸速度矢量之間有一個很小的夾角,在飛行中該角稱為攻角[7].攻角盡管很小,但是軍事武器試驗精確度要求高,因此攻角因素的影響也需要考慮.質點外彈道模型如式(1)所示:

式(1)中,v為彈丸速度,θ為彈丸攻角,x為彈丸水平方向飛行距離,y為彈丸高度,τ為虛溫,τ0n為標準條件下虛溫,c為彈道系數.π(y)為氣壓函數,可以表示為π(y)=H(y)×τ/τ0n,其中,H(y)為空氣密度函數.
為了方便計算,本項目中空氣密度函數采用經驗公式,H(y)=(20000-y)/(20000+y).F(vτ)為阻力函數,由于其精確公式較為復雜,本文采用式(2)所示的經驗公式方便程序編寫和計算.
程序運行時,需要給定參數:t=t0=0,v=v0,x=x0=0,y=y0,τ和c,其中v0為彈丸初速度,y0為彈丸出膛時的高度,由用戶指定他們的數值.τ和c分別與環境和彈丸有關,作為已知數據,由用戶輸入.彈道計算程序使用C#編寫,在獲取到初值后,使用龍格-庫塔法[8]對非線性常微分對方程組式(1)進行迭代,計算彈丸的運動軌跡,直到炮彈落地,即y=0 為止.

虛擬現實需要在三維的虛擬場景中形象地表達仿真實體的運動規律,所以就需要對每個實體進行建模.所建的虛擬實體不僅要在外形上逼真,而且在行為能力、光澤度、質感等方面都要盡可能的真實.
本文采用Unity3D 作為開發引擎.Unity3D 是一個近年來使用比較廣泛的三維游戲開發引擎,具有開發簡單易上手、三維效果逼真等優勢,被廣泛的用于虛擬現實和游戲開發[9].Unity3D 自身具有建立模型的能力,且使用到的模型資源也可以從多種多樣的3D 建模軟件中導入,其中包括3ds Max、Maya、Cinema、4D、Modo、Cheetah3D 等[10].本文主要使用3ds Max 建立火炮射擊實體模型,借助3ds Max 的貼圖和渲染功能創建能夠充分表現火炮及彈丸質感的材質,將模型渲染并轉換為.FBX 圖形文件后導入Unity3D.為了使得模型仿真效果更加逼真,火炮模型是由各部分組件分別裝配而成,這樣既便于在虛擬場景中控制火炮射角,也便于從各個角度對火炮進行觀察,并且在火炮射擊的瞬間增加了緩沖和震動的效果,使得火炮實體模型以及火炮射擊過程更加逼真.火炮模型如圖1.

圖1 火炮模型
彈丸模型的外形和質量分布均為軸對稱體,在射擊過程中作用在彈丸上所有的力都過質心,彈丸在空中飛行時除質心運動外也存在圍繞質心運動,即繞心運動,將彈丸設計為軸對稱體也避免了彈丸運行過程中脫離預設軌道而造成誤差.彈丸的尾翼設計獨特,在運動過程中會根據所受的力自由旋轉,使得彈丸仿真效果更加逼真.彈丸模型如圖2.

圖2 彈丸模型
用戶在按下發射按鈕后,使用用戶輸入的值和預設的值初始化彈道數學模型的參數.然后運行彈道計算腳本,計算炮彈的實時位置、速度、攻角等數據,并在畫面更新時對彈丸的位置、角度進行設置,同時對彈丸進行相應的旋轉操作,使彈丸更加符合真實的運動軌跡.彈丸在飛行過程中的圖像如圖3.

圖3 彈丸飛行狀態
Unity3D 具有自帶的Terrain 地形系統,而真實地形仿真是通過獲取地球地理信息數據后制作為高度圖,然后將高度圖導入到Unity3D 中進行地形的仿真.具體操作步驟為:1)在U3D 中創建地形并導入高度圖,在Terrain Composer 中操作地形;2)添加Splat;3)平滑地形;4)設置Splat Layer;5)進行Filter 操作,選中衛星圖,添加Color Range,依次編輯各色塊的RGB 值,接著生成紋理,完成紋理鋪設.至此,便可以生成大地形的仿真還原.
射擊場地形模型主要是火炮射擊時需要的地理環境模型,關系到整個視景仿真系統是否形象逼真,并且還要兼顧遠近視角觀看的需求.本文選取某靶場的真實地形作為虛擬訓練場景的地形來源.采用靶場真實地形的DEM 數據作為真實地形環境生成的依據,同時從該靶場航拍影像數據中提取地形的真實紋理數據,動態鋪設虛擬環境的地形表面紋理,有效避免了遙感影像貼圖隨縮放而發生失真現象的產生.火炮對海射擊地形場景如圖4.

圖4 對海射擊地形場景
彈丸在發射后,隨著時間的推移,高度先上升后下降,在接觸地面即高度等于零時,觸發引信,發生爆炸.在高度到達零后,由彈丸飛行控制模塊判定為接觸地面,然后調用爆炸模塊,并提供著陸點的坐標.爆炸模塊在獲得著陸點的坐標后,首先移除彈丸模型,然后觸發粒子系統.
火炮彈丸爆炸效果由Unity3D 采用純粒子系統制作.雖然爆炸效果可以由貼圖和粒子系統組成,但是貼圖效果不夠逼真,因此本文采用純粒子系統來實現火炮彈丸爆炸效果,并根據真實爆炸場景調整粒子系統的形狀、顏色、大小、發射參數等屬性,最終使得彈丸爆炸仿真效果更加真實.彈丸著陸后的爆炸效果如圖5.
首先,對彈丸外彈道運動模型進行測試.在給定所有條件初始值后,開始對彈丸彈道進行計算.部分結果如表1.

圖5 彈丸爆炸效果

表1 彈丸參數和時間關系
隨后,我們將計算所得的彈丸彈道數據繪制成圖表,使得結果更加直觀.圖6展示的是使用模型計算出的彈丸飛行距離和時間的關系;圖7展示的是彈丸飛行速度與時間的關系,從圖中可以看出彈丸飛行速度逐漸減慢,由于彈丸飛行過程中受空氣阻力等因素的影響,所以其沿炮身軸線方向是減速運動;圖8展示的是彈丸飛行高度和時間的關系.從這三張圖中可以直觀的看到彈丸的各項參數與時間的關系.

圖6 彈丸飛行距離與時間關系曲線

圖7 彈丸飛行速度與時間關系曲線

圖8 彈丸飛行高度與時間關系曲線
將彈丸彈道仿真運算結果與彈道表數值進行比較,二者存在一些誤差.分析產生誤差的主要因素有:(1)由于火炮發射過程中受載和運動十分復雜[11],有許多物理過程尚未完全認識,在建模過程中不得不做一些假設,導致理論計算結果與實際情況相比還存在一定的差異;(2)本文采用的彈丸質心運動方程組是在簡化一些環境變量的情況下使用,而真正的火炮射擊訓練需要考慮彈重、藥溫、氣溫、氣壓、風等非標準條件的影響[12],這些因素也會造成一些誤差.然而仿真結果與彈道表數值誤差較小,在可接受的范圍內,因此足以證明本次仿真實驗具有一定的準確性和可行性.
本文基于外彈道經典理論模型,通過3ds Max 和Unity3D 建立火炮、彈丸以及射擊場景模型,結合質點外彈道方程組計算彈丸運動軌跡并控制彈丸在空中運行狀態.通過與射表等資料的對比,本仿真方法誤差在可接受的范圍內,其精確性得以驗證,同時,與同類仿真方法相比提供了良好的可視化性.仿真結果表明,該仿真方法可以模擬火炮發射的整個過程,并且具有一定的實用性和參考性,為火炮研究提供可視化的虛擬試驗研究方法,可以縮短現代火炮的研究周期和研究成本,提高產品質量,同時可以應用在火炮研發和教學活動中,對進一步研究軍事領域其他兵器也具有一定的參考價值.