吳 晶 劉金元 陳重陽 李海林
(1.海軍工程大學管理工程系 武漢 430033)(2.廣州地區裝備修理監修室 廣州 510715)
內彈道計算可為武器彈藥設計、內彈道性能分析、武器動力學分析及仿真等提供基本數據。
內彈道計算包括單一裝藥內彈道計算和混合裝藥內彈道計算,而前者又可分為簡單形狀火藥內彈道計算和多孔火藥內彈道計算[1],可見,內彈道計算中涉及大量數據的計算以及不同彈道模型的選擇。Matlab軟件具有強大的數學運算能力,其圖形用戶界面GUI的使用更易于圖形表現的多樣化[2]。GUI在數值計算、函數調用、圖形處理以及軟件開發方面具有有別于傳統VC、JAVA或者Delphi的界面開發方式[3~5]。利用 Matlab GUI開發內彈道計算模塊可有效處理大量數值計算和圖形表現的矛盾[6]。相關文獻中還未有此方法開發內彈道計算模塊的論述。
內彈道計算理論的發展經歷了經典內彈道和現代內彈道兩個過程。前者在拉格朗日假定下,以變量平均值描述內彈道循環過程,后者則以兩相流體力學為基礎,能有效預測膛內壓力波。文獻[7]分別基于經典彈道模型和現代彈道模型利用Visual Basic語言開發了全彈道仿真平臺,但在裝填密度不大、膛壓不高的情況下,經典內彈道理論的計算結果合理性較好,因此,本文將基于經典內彈道理論利用GUI開發內彈道計算模塊,在同一界面上實現單一裝藥(簡單形狀火藥或多孔火藥)和任意兩種火藥混合裝藥的內彈道計算。并通過案例仿真驗證模塊開發的正確性。
在內彈道基本假設的基礎上,將常規內彈道方程組歸納并改造如下:
1)形狀函數:ψ=χZ(1+λZ+μZ2)
3)狀態方程:p(v-α)=RT
6)彈丸速度與行程關系式:v=dl/dt
聯立以上六個獨立的方程,以時間t為自變量,可求解反應火藥燃燒規律和彈丸運動規律的六個變量,即火藥已燃百分數ψ、火藥已燃相對厚度Z、膛內平均壓力p、膛內平均溫度T、彈丸運動速度v和彈丸行程l。
7)對于高、低溫彈道,即發射藥溫變化時,既考慮燃速的變化,用系數BL來修正;又考慮藥溫變化對火藥熱焓的影響,用系數IT來修正[8]:

式中,f、T1和f′、T′1分別為修正前后的火藥力和火藥定容燃燒溫度;IQ為熱散失系數,熱散失通過降低火藥熱焓的方法處理;火藥燃速溫度系數BL和火藥熱焓溫度系數IT常溫下取值為1,高溫下取值大于1,低溫下取值小于1。
與簡單形狀火藥相比,多孔火藥內彈道需另外考慮兩個因素:一是火藥形狀函數的改變,二是多孔火藥燃燒過程中存在的侵蝕燃燒現象。
多孔火藥形狀特征量在火藥分裂前的增面燃燒階段和火藥分裂后的減面燃燒階段發生改變,分別予以考慮后的形狀函數為

高、低溫內彈道中,發射藥初溫變化引起的火藥燃速變化和火藥熱焓變化均對侵蝕燃燒產生影響,常用高、低溫內彈道仿真方法中對侵蝕燃燒的修正考慮了燃速變化的影響,卻忽略了火藥熱焓對侵蝕燃燒的作用。本文采用文獻[9~10]的模型,在多孔藥高、低溫內彈道仿真中考慮火藥熱焓變化對侵蝕燃燒的作用,此處不予贅述。
本文只求解兩種不同類型火藥混合裝藥的內彈道計算問題,混合裝藥可以是兩種簡單形狀火藥、兩種多孔火藥或是簡單形狀火藥與多孔火藥的混合。混合裝藥內彈道中先燃燒完畢的火藥稱為薄火藥,后燃燒完畢的火藥稱為厚火藥。
將兩種不同類型火藥的混合裝藥內彈道過程分為三個階段:第一階段薄、厚火藥同時燃燒直到薄火藥燃燒完畢;第二階段厚火藥單獨燃燒直至燃燒完畢,第三階段彈丸在混合燃氣自由膨脹做功下出炮口。混合裝藥內彈道計算需分別考慮薄、厚火藥的形狀函數、燃速方程、能量方程,根據火藥形狀不同可采用2.1節或2.2節中相應模型。計算模型中的壓力為混合燃氣平均壓力,由道爾頓分壓定律知其為薄、厚火藥分壓p1、p2之和,計算公式如下:

式中,v1、v2分別為薄、厚火藥燃氣的比容,其分別滿足下式:

式中,V0為藥室容積,S為身管截面積,l為彈丸行程;ωi、ρpi、αi、ψi(i=1、2)分別為薄、厚火藥的裝藥質量、密度、氣體余容和已燃百分比。
利用四階五級龍格-庫塔法,借助Matlab的圖形用戶界面開發環境GUIDE,開發內彈道計算模塊如圖1所示。

圖1 內彈道計算模塊
該模塊將2.1節至2.3節的彈道計算模型集成于同一界面,包含單一裝藥的簡單形狀火藥、多孔火藥和任兩種不同類型火藥混合裝藥的內彈道仿真。

圖2 內彈道計算結果保存數據
使用時,根據內彈道裝填方式的不同在對應的下拉菜單中選擇“單一裝藥”或“混合裝藥”:當選擇“單一裝藥”時,“火藥參數輸入”中薄火藥相應參數被置0,且對應的文本框處于不可寫狀態;當選擇“混合裝藥”時,所用文本框處于待編輯狀態。在“艦炮參數輸入”、“系數選取”和“火藥參數輸入”中輸入相應的參數,點擊“計算”按鈕即可進行內彈道仿真并在圖形區輸出p-t、p-l曲線,在“畫圖”下拉菜單中可選擇性輸出v-t、v-l曲線或T-t、T-l曲線。點擊“保存”按鈕可將內彈道計算的特殊點和中間點寫入電腦硬盤的Excel文件中,特殊點包括“薄火藥燃燒結束點”、“最大壓力點”、“厚火藥燃燒結束點”和“彈丸出炮口點”;中間點每隔0.1ms輸出一組,每組數據包括“運行時間”、“薄火藥已燃相對質量”、“厚火藥已燃相對質量”、“彈丸行程”、“彈丸速度”、“膛內壓力”和“膛內溫度”。圖1中實例仿真結果保存的Excel文件通過截屏如圖2。點擊“置零”按鈕可將輸入的參數、輸出的圖形以及Excel文件中記錄的數據清空,以便進行下一次計算。需要說明的是,在點擊“置零”按鈕前確保Excel文件處于關閉狀態,否則系統在清空Excel文件保存的數據時會發生錯誤。
利用內彈道計算模塊對某大口徑艦炮多孔藥高、常、低溫內彈道進行仿真,以驗證該模塊對內彈道仿真的準確性。仿真中修正系數的選取如表1所示。

表1 內彈道仿真中修正系數的選取
將表1中選取的系數依次代入內彈道計算模塊,其它參數的選取等同常溫(圖1),經仿真計算,并將Excel文件保存的中間點畫圖,可得該大口徑艦炮高、常、低溫內彈道的p-t曲線和v-t曲線,和試驗擬合曲線的對比如圖3所示。

圖3 某大口徑艦炮高、常、低溫內彈道p-t曲線

圖4 某大口徑艦炮高、常、低溫內彈道v-t曲線
由圖3、圖4可見,仿真曲線和試驗曲線基本重合,仿真結果與試驗結果一致性較好。利用黃金分割法搜尋最高膛壓pm、插值法計算炮口速度v0,得計算值如表2,與文獻[8]中的實驗值進行對比可知,高、常、低溫內彈道pm的相對誤差分別為0.86%、0.51%、0.17%,v0的相對誤差分別為0.002%、0.0002%、1.12%。內彈道計算模塊仿真精度較高,可滿足工程實踐需要。

表2 內彈道仿真結果
利用Matlab GUI開發的內彈道計算模塊可以編譯為可執行文件供其他軟件平臺調用。但在VB語言調用可執行文件時會出現doc黑屏,不利于良好的人機交互。為此可在Matlab命令窗口依次輸入cd(prefdir)和edit compopts.bat,在文件的最后添加以下語句:set LINKFLAGS=%LINKFLAGS%-subsystem windows,重新編譯的可執行文件,調用時將不再出現doc黑屏。
[1]金志明.槍炮內彈道學[M].北京:北京理工大學出版社,2004:13-14.
[2]陳杰.MATLAB寶典[M].北京:電子工業出版社,2007.
[3]魏娟,宋福慶.基于MATLAB的GUI設計在高等數學中的應用[J].安陽師范學院學報,2010:129-131.
[4]黃飛,李燦平,任小慶,等.基于 Matlab/GUI的圖形處理軟件開發[J].長沙通信職業技術學院學報,2010,9(3):21-25.
[5]龔妙昆.基于 MATLAB的GUI設計應用軟件[J].微型電腦應用,2011,27(8):53-55.
[6]歐陽明,李玉清,曾海霞,等.VB與MATLAB混合編程在工程中的應用[J].電子技術,2009(7):7-9.
[7]李克婧,張小兵.火炮全彈道過程仿真及應用[J].火炮發射與控制學報,2010(1):48-52.
[8]王道宏,張長琪.現代火炮設計計算程序選編[M].北京:國防工業出版社,1993:82-88.
[9]張方方,侯健,魏平,等.存在侵蝕燃燒的發射藥高、低溫內彈道性能研究[J].彈箭與制導學報,2012,32(1):145-148.
[10]Greatrix D R,Cottlieb J J.Erosive burning model for composite-propellant rocket motors with large lengthto-diameter ratios[J].Canadian Aeronautics and Space Journal,1987(33):133-142.