劉榮華,溫垚珂,閆文敏,劉蘇蘇
(1. 南京理工大學機械工程學院,江蘇 南京 210094;2. 瞬態沖擊技術國防科技重點實驗室,北京 102202;3. 中國兵器工業第208研究所,北京 102202;4. 南通大學機械工程學院,江蘇 南通 226019)
人體易損性評估軟件可以快速評估各類殺傷元對人體靶標的殺傷效應,結合具體作戰任務還可評估人員的失能情況。為了在軟件界面快速直觀地再現槍彈侵徹過程及其在人體靶標內造成的瞬時空腔膨脹過程,就需要結合相應終點彈道理論模型數據,在軟件中虛擬再現侵徹過程。目前,對基于各類外彈道方程的槍彈和導彈飛行過程虛擬再現技術研究較多,對槍彈終點彈道的虛擬再現技術罕有文獻報道[1]。
張進強等人[3]通過構建OpenGL的三維視景仿真環境,實現了基于數值仿真實時驅動的彈道可視化仿真平臺,對炮彈的飛行軌跡、實時運動姿態進行了仿真和分析。吳楓等人[4]利用虛擬現實技術、數據可視化技術等,構建了一個航天發射可視化仿真平臺,并開展了相應可視化仿真應用案例。薛志斌等人[5]為降低工作量,通過專業三位建模軟件3DS MAX建立模型,并用C++語言將3DS文件導入OpenGL中,實現可視化以及人機交互控制。程翔等人[6]對六自由度算法模型進行了改進,實現了導彈六自由度彈道三維仿真,該仿真能夠真實可靠并且清晰直觀的反映導彈的六自由度彈道特性,其可視化效果良好。文雷[7]利用計算機圖形技術,構造導彈的三維模型并通過快速載入實體模型的方法載入OpenGL,最終實現了導彈飛行仿真,為導彈飛行軌跡研究提供了一種直觀、便捷的仿真分析方法。
目前,已有研究大都針對三維模型實時位移、旋轉實現了仿真[8],[9],但侵徹過程中的瞬時空腔是一個形狀實時變化的三維模型,動態變形特點給傷道仿真帶來困難。本文基于OpenGL設計了槍彈侵徹仿真程序,程序可以實現對槍彈侵徹全過程的三維可視化。通過引入阻力系數和升力系數,建立槍彈運動和瞬時空腔運動模型。經過與實驗對比發現模型具有良好的準確性。依據模型,獲取侵徹過程槍彈運動與空腔變形的實時數據,設計算法實現對子彈運動和空腔運動的可視化仿真,為動態變形的三維模型仿真提供了一些參考。
在槍彈侵徹明膠過程中,槍彈的受力主要隨槍彈與明膠有效接觸面積變化,其中面積分離率和彈頭長徑比是描述有效接觸面積的重要因素。劉蘇蘇[8]通過分析侵徹過程中的不同方向受力,提出了阻力系數和升力系數與翻轉角的關系式,從而建立步槍彈在明膠中的運動模型和瞬時空腔運動模型。
當槍彈以非零度攻角侵徹明膠時,槍彈在明膠中的運動可以分為:質點平動和繞質心的轉動[11]-[13]。隨著槍彈翻轉角的增加,槍彈與明膠的有效接觸面積增大,因而槍彈不斷受到一個翻滾力矩的作用;與此同時,槍彈翻轉過程中,槍彈尾部會受到明膠的阻礙作用,從而形成一個阻尼力矩,始終阻礙槍彈的翻轉。結合這兩個在槍彈上作用相反的力矩,建立方程(1)。
質點平動中受力分為水平方向的阻力和豎直方向的升力。關于阻力,通過引入空氣動力學中的阻力系數,建立阻力模型。阻力的大小主要取決于有效接觸面積的大小。根據槍彈在明膠中翻轉的角度,可將翻轉分為三個階段即窄傷道段、快速翻轉階段、阻尼振蕩階段,并分別建立有效接觸面積與翻轉角的關系方程。結合升力的作用,引入升力系數最終建立方程(2)(3)(4)。

(1)

(2)

(3)

圖1圖2是以上理論模型與實驗結果的對比。從圖中可以看出,理論模型得到的數據與實驗結果重合度很好,這表明該理論模型能夠較為準確的反映侵徹過程。

圖1 侵徹深度隨時間變化曲線

圖2 翻轉角度隨時間變化曲線
取明膠深度S處,軸向厚度為ds的截面為研究對象,依據動能定理計算得到彈頭在該截面釋放的能量dEs。當該截面空腔膨脹至最大時,認為截面動能為0,變形能量最大,且該層明膠具有最大能量dEp。考慮到由于攻角的存在,彈頭會出現翻滾現象,明膠分層之間存在能量交換,分層能量不守恒,即dEs≠dEp。通過假設分層之間的能量交換與彈頭釋放能量和所有截面中彈頭最大釋放能量的差值正相關,建立明膠截面的最大變形能與彈頭釋放能量的關系表達式。又考慮彈頭翻轉帶來的影響,引入彈頭有效接觸面積和明膠粘彈性的影響,表示截面變形能和動能之間的關系。最終瞬時空腔運動模型如下

(4)

圖3是是以上理論模型與實驗結果的對比(某7.62mm槍彈,入靶速度701m/s)。從圖中可以看出,理論模型可以很好地模擬空腔從開始膨脹到閉合運動過程的空腔輪廓。

圖3 理論模型結果與實驗結果典型時刻對比[8]
OpenGL庫一般包含兩個基本庫,一個用來實現開窗,另一個管理OpenGL函數指針[1][2]。實現這兩個功能的庫有很多。采用當前成熟、穩定的GLFW、GLEW庫。基本環境的搭建需要將這兩個庫加載、驅動,其中初始化的關鍵語句如下:

表1 OpenGL初始化關鍵語句
OpenGL渲染模型的過程,是由CPU對模型數據(頂點、法線、紋理)進行讀取、處理,再將數據傳遞至GPU進行渲染顯示。對于復雜的幾何模型,手動輸入模型的頂點、法線和紋理坐標數據是極為困難的,其效率也較低。模型加載可以將建立好的幾何模型導入程序之中,極大提高了復雜場景可視化的效率。
在3dmax軟件中,畫出槍彈彈頭的幾何模型,保存為obj格式文件。利用ASSIMP模型加載庫將子彈模型加載到程序之中。在OpenGL中,模型的幾何數據以矩陣的形式進行操作,模型的幾何變換是由矩陣乘以相應的變換向量、矩陣實現的。GLM是一個專門為OpenGL量身定做的數學庫,該庫可以幫助得到幾何變換相應的矩陣。
利用函數glm∷mat4建立一個單位矩陣,通過glm∷translate、glm∷scale、glm∷rotate函數對單位矩陣進行變換,得到平移、縮放、旋轉的變換矩陣。其中glm∷rotate()函數需要一個向量作為自變量,幾何模型會以該向量作為旋轉軸進行旋轉。這個旋轉軸向量的起點為子彈質心,方向與旋轉平面垂直。而子彈在做平移時,質心會不斷變化,使該旋轉向量需要不斷隨之變化。為解決該問題,使用一個函數,因變量是初始旋轉軸向量和質心動態坐標,函數返回一個不斷隨著質心平移的旋轉軸向量。
子彈的運動分為質心的平動和繞質心的旋轉,由運動方程求解,得到子彈隨時間的位移和翻轉角度數據。將子彈的位移值和翻轉角度數據,作為變換矩陣的變換量,隨時間不斷切換到對應的值。最終實現子彈模型的運動可視化效果。圖4是子彈典型時刻姿態與實驗對比圖,從圖中可以看出,通過程序實現的子彈運動可視化效果與實驗中較為符合。

圖4 子彈典型時刻姿態與實驗對比圖
圖4中,a:實驗高速攝影拍攝的子彈在明膠中運動過程,b:槍彈侵徹過程可視化效果。
目前OpenGL渲染圖形,主要應用于不變化模型的渲染,而對實時變換形狀的模型渲染少有應用。瞬時空腔是一個典型的幾何形狀隨時間不斷變換的模型,傳統的方式難以處理。OpenGL渲染的基礎圖元是三角形,將瞬時空腔劃分為有限多個三角形,并實時變換三角形的數據,最終實現瞬時空腔運動的渲染動畫。算法原理如圖5所示。

圖5 依據數據渲染空腔原理圖
圖6是槍彈侵徹明膠數值計算結果中,垂直彈道一截面典型時刻的等效應力圖[14]。從圖中可以看出,在垂直侵徹方向,瞬時空腔的形狀可以看作一個圓。為此,將瞬時空腔視作沿著侵徹深度排列的一系列圓組成,這些圓的位置和大小都會隨時間變化。將每一時刻的空腔分為一系列圓,通過方程求解,可以獲得這一系列圓的圓心位置和半徑。

圖6 空腔一截面等效應力圖[14]
如圖7a所示,在一系列圓上取點,再從相鄰兩個圓上取四個點如圖7b所示,由這四個點分別組成兩個互補為矩形的三角形。沿著圓上對所有點進行以上操作,即可將兩個圓之間,由三角形進行縫補,最終形成一個圓臺的形狀。對沿著侵徹深度的所有圓進行以上操作,最終可以獲得空腔的形狀。依照以上原理,將空腔沿著侵徹深度方向劃分為50個圓,每個圓上取8個點。為確定每個點的頂點三維坐標,對一系列圓心位移、半徑數據進行以下處理

圖7 圓上選取三角形頂點
Xi=X0;
(5)
Yi=Y0+R*sin(i*2pi/n);
(6)
Zi=R*cos(i*2pi/n);
(7)
X0、Y0、Z0=0是圓心的坐標,R是圓半徑,Xi、Yi、Zi是圓上第i個點的坐標,n是在圓上劃分點的個數。建立一個循環將沿著圓上各點坐標求得,放入數組。(OpenGL坐標系遵循右手定則,在屏幕上向右為X正方向,向上為Y正方向,垂直屏幕向里是Z正方向)
OpenGL中渲染三角形,頂點數據需要按照逆時針三角形的順序排列。按照如圖7b的順序將所有頂點排序從新放入數組。根據理論模型求解每一時刻的空腔數據較為繁瑣,因此只選取10個時間間隔相同的典型空腔數據,并通過對數據進行插值計算,得到豐富的數據,來驅動可視化仿真,以保證畫面的流暢性和變形過程清晰的展現。最后將該數組作為頂點數據傳遞至GPU進行渲染。
經過對算法的測試,結果表明,該算法可以很好的呈現空腔的動態變形過程。截取典型時刻的空腔形狀,如圖8。

圖8 典型時刻空腔形狀
依據上述子彈運動模型和瞬時空腔運動模型,以某7.62mm槍彈為例,使用Matlab對微分方程組求解獲取數據。結合C++語言編寫的侵徹過程可視化程序,實現槍彈侵徹明膠的可視化,從而更快速直觀的觀察侵徹發生過程中的現象。
初始條件為:X方向位移為0,Y方向位移為0,偏轉角為0,X方向速度為700m/s,Y方向速度為36.678 m/s,偏轉角速度為0。
圖9是通過可視化程序實現的槍彈侵徹明膠場景,并和實驗照片進行了對比。從圖中可以看出空腔的形狀與實驗高速攝影相似,可以較為真實地展示空腔的變形過程。經過驗證,設計的算法可以將子彈侵徹明膠過程中空腔的動態變形完整的呈現。利用該程序可以進行各種初始條件的仿真,形象地預測傷道的形狀,為后續將其投影到人體上進行不同位置損傷評估有重要支撐作用。

圖9 可視化空腔與實驗典型時刻對比圖
1)建立的槍彈侵徹明膠運動方程可以較準確的描述槍彈侵徹過程中槍彈在明膠內的侵徹深度和翻滾角度變化歷程。
2)建立的明膠內瞬時空腔運動方程可以較準確描述明膠內瞬時空腔的形狀輪廓隨時間和空腔的演化過程。
3)基于OpenGL技術開發的傷道可視化軟件可以快速直觀的再現槍彈侵徹人體模擬靶標過程中傷道的形成過程,為人體易損性評估軟件提供準確的人體損傷數據。