吳 晶 劉金元 陳重陽(yáng) 李海林
(1.海軍工程大學(xué)管理工程系 武漢 430033)(2.廣州地區(qū)裝備修理監(jiān)修室 廣州 510715)
內(nèi)彈道計(jì)算可為武器彈藥設(shè)計(jì)、內(nèi)彈道性能分析、武器動(dòng)力學(xué)分析及仿真等提供基本數(shù)據(jù)。
內(nèi)彈道計(jì)算包括單一裝藥內(nèi)彈道計(jì)算和混合裝藥內(nèi)彈道計(jì)算,而前者又可分為簡(jiǎn)單形狀火藥內(nèi)彈道計(jì)算和多孔火藥內(nèi)彈道計(jì)算[1],可見,內(nèi)彈道計(jì)算中涉及大量數(shù)據(jù)的計(jì)算以及不同彈道模型的選擇。Matlab軟件具有強(qiáng)大的數(shù)學(xué)運(yùn)算能力,其圖形用戶界面GUI的使用更易于圖形表現(xiàn)的多樣化[2]。GUI在數(shù)值計(jì)算、函數(shù)調(diào)用、圖形處理以及軟件開發(fā)方面具有有別于傳統(tǒng)VC、JAVA或者Delphi的界面開發(fā)方式[3~5]。利用 Matlab GUI開發(fā)內(nèi)彈道計(jì)算模塊可有效處理大量數(shù)值計(jì)算和圖形表現(xiàn)的矛盾[6]。相關(guān)文獻(xiàn)中還未有此方法開發(fā)內(nèi)彈道計(jì)算模塊的論述。
內(nèi)彈道計(jì)算理論的發(fā)展經(jīng)歷了經(jīng)典內(nèi)彈道和現(xiàn)代內(nèi)彈道兩個(gè)過程。前者在拉格朗日假定下,以變量平均值描述內(nèi)彈道循環(huán)過程,后者則以兩相流體力學(xué)為基礎(chǔ),能有效預(yù)測(cè)膛內(nèi)壓力波。文獻(xiàn)[7]分別基于經(jīng)典彈道模型和現(xiàn)代彈道模型利用Visual Basic語(yǔ)言開發(fā)了全彈道仿真平臺(tái),但在裝填密度不大、膛壓不高的情況下,經(jīng)典內(nèi)彈道理論的計(jì)算結(jié)果合理性較好,因此,本文將基于經(jīng)典內(nèi)彈道理論利用GUI開發(fā)內(nèi)彈道計(jì)算模塊,在同一界面上實(shí)現(xiàn)單一裝藥(簡(jiǎn)單形狀火藥或多孔火藥)和任意兩種火藥混合裝藥的內(nèi)彈道計(jì)算。并通過案例仿真驗(yàn)證模塊開發(fā)的正確性。
在內(nèi)彈道基本假設(shè)的基礎(chǔ)上,將常規(guī)內(nèi)彈道方程組歸納并改造如下:
1)形狀函數(shù):ψ=χZ(1+λZ+μZ2)
3)狀態(tài)方程:p(v-α)=RT
6)彈丸速度與行程關(guān)系式:v=dl/dt
聯(lián)立以上六個(gè)獨(dú)立的方程,以時(shí)間t為自變量,可求解反應(yīng)火藥燃燒規(guī)律和彈丸運(yùn)動(dòng)規(guī)律的六個(gè)變量,即火藥已燃百分?jǐn)?shù)ψ、火藥已燃相對(duì)厚度Z、膛內(nèi)平均壓力p、膛內(nèi)平均溫度T、彈丸運(yùn)動(dòng)速度v和彈丸行程l。
7)對(duì)于高、低溫彈道,即發(fā)射藥溫變化時(shí),既考慮燃速的變化,用系數(shù)BL來(lái)修正;又考慮藥溫變化對(duì)火藥熱焓的影響,用系數(shù)IT來(lái)修正[8]:
式中,f、T1和f′、T′1分別為修正前后的火藥力和火藥定容燃燒溫度;IQ為熱散失系數(shù),熱散失通過降低火藥熱焓的方法處理;火藥燃速溫度系數(shù)BL和火藥熱焓溫度系數(shù)IT常溫下取值為1,高溫下取值大于1,低溫下取值小于1。
與簡(jiǎn)單形狀火藥相比,多孔火藥內(nèi)彈道需另外考慮兩個(gè)因素:一是火藥形狀函數(shù)的改變,二是多孔火藥燃燒過程中存在的侵蝕燃燒現(xiàn)象。
多孔火藥形狀特征量在火藥分裂前的增面燃燒階段和火藥分裂后的減面燃燒階段發(fā)生改變,分別予以考慮后的形狀函數(shù)為
高、低溫內(nèi)彈道中,發(fā)射藥初溫變化引起的火藥燃速變化和火藥熱焓變化均對(duì)侵蝕燃燒產(chǎn)生影響,常用高、低溫內(nèi)彈道仿真方法中對(duì)侵蝕燃燒的修正考慮了燃速變化的影響,卻忽略了火藥熱焓對(duì)侵蝕燃燒的作用。本文采用文獻(xiàn)[9~10]的模型,在多孔藥高、低溫內(nèi)彈道仿真中考慮火藥熱焓變化對(duì)侵蝕燃燒的作用,此處不予贅述。
本文只求解兩種不同類型火藥混合裝藥的內(nèi)彈道計(jì)算問題,混合裝藥可以是兩種簡(jiǎn)單形狀火藥、兩種多孔火藥或是簡(jiǎn)單形狀火藥與多孔火藥的混合?;旌涎b藥內(nèi)彈道中先燃燒完畢的火藥稱為薄火藥,后燃燒完畢的火藥稱為厚火藥。
將兩種不同類型火藥的混合裝藥內(nèi)彈道過程分為三個(gè)階段:第一階段薄、厚火藥同時(shí)燃燒直到薄火藥燃燒完畢;第二階段厚火藥單獨(dú)燃燒直至燃燒完畢,第三階段彈丸在混合燃?xì)庾杂膳蛎涀龉ο鲁雠诳?。混合裝藥內(nèi)彈道計(jì)算需分別考慮薄、厚火藥的形狀函數(shù)、燃速方程、能量方程,根據(jù)火藥形狀不同可采用2.1節(jié)或2.2節(jié)中相應(yīng)模型。計(jì)算模型中的壓力為混合燃?xì)馄骄鶋毫?,由道爾頓分壓定律知其為薄、厚火藥分壓p1、p2之和,計(jì)算公式如下:
式中,v1、v2分別為薄、厚火藥燃?xì)獾谋热?,其分別滿足下式:
式中,V0為藥室容積,S為身管截面積,l為彈丸行程;ωi、ρpi、αi、ψi(i=1、2)分別為薄、厚火藥的裝藥質(zhì)量、密度、氣體余容和已燃百分比。
利用四階五級(jí)龍格-庫(kù)塔法,借助Matlab的圖形用戶界面開發(fā)環(huán)境GUIDE,開發(fā)內(nèi)彈道計(jì)算模塊如圖1所示。
圖1 內(nèi)彈道計(jì)算模塊
該模塊將2.1節(jié)至2.3節(jié)的彈道計(jì)算模型集成于同一界面,包含單一裝藥的簡(jiǎn)單形狀火藥、多孔火藥和任兩種不同類型火藥混合裝藥的內(nèi)彈道仿真。
圖2 內(nèi)彈道計(jì)算結(jié)果保存數(shù)據(jù)
使用時(shí),根據(jù)內(nèi)彈道裝填方式的不同在對(duì)應(yīng)的下拉菜單中選擇“單一裝藥”或“混合裝藥”:當(dāng)選擇“單一裝藥”時(shí),“火藥參數(shù)輸入”中薄火藥相應(yīng)參數(shù)被置0,且對(duì)應(yīng)的文本框處于不可寫狀態(tài);當(dāng)選擇“混合裝藥”時(shí),所用文本框處于待編輯狀態(tài)。在“艦炮參數(shù)輸入”、“系數(shù)選取”和“火藥參數(shù)輸入”中輸入相應(yīng)的參數(shù),點(diǎn)擊“計(jì)算”按鈕即可進(jìn)行內(nèi)彈道仿真并在圖形區(qū)輸出p-t、p-l曲線,在“畫圖”下拉菜單中可選擇性輸出v-t、v-l曲線或T-t、T-l曲線。點(diǎn)擊“保存”按鈕可將內(nèi)彈道計(jì)算的特殊點(diǎn)和中間點(diǎn)寫入電腦硬盤的Excel文件中,特殊點(diǎn)包括“薄火藥燃燒結(jié)束點(diǎn)”、“最大壓力點(diǎn)”、“厚火藥燃燒結(jié)束點(diǎn)”和“彈丸出炮口點(diǎn)”;中間點(diǎn)每隔0.1ms輸出一組,每組數(shù)據(jù)包括“運(yùn)行時(shí)間”、“薄火藥已燃相對(duì)質(zhì)量”、“厚火藥已燃相對(duì)質(zhì)量”、“彈丸行程”、“彈丸速度”、“膛內(nèi)壓力”和“膛內(nèi)溫度”。圖1中實(shí)例仿真結(jié)果保存的Excel文件通過截屏如圖2。點(diǎn)擊“置零”按鈕可將輸入的參數(shù)、輸出的圖形以及Excel文件中記錄的數(shù)據(jù)清空,以便進(jìn)行下一次計(jì)算。需要說(shuō)明的是,在點(diǎn)擊“置零”按鈕前確保Excel文件處于關(guān)閉狀態(tài),否則系統(tǒng)在清空Excel文件保存的數(shù)據(jù)時(shí)會(huì)發(fā)生錯(cuò)誤。
利用內(nèi)彈道計(jì)算模塊對(duì)某大口徑艦炮多孔藥高、常、低溫內(nèi)彈道進(jìn)行仿真,以驗(yàn)證該模塊對(duì)內(nèi)彈道仿真的準(zhǔn)確性。仿真中修正系數(shù)的選取如表1所示。
表1 內(nèi)彈道仿真中修正系數(shù)的選取
將表1中選取的系數(shù)依次代入內(nèi)彈道計(jì)算模塊,其它參數(shù)的選取等同常溫(圖1),經(jīng)仿真計(jì)算,并將Excel文件保存的中間點(diǎn)畫圖,可得該大口徑艦炮高、常、低溫內(nèi)彈道的p-t曲線和v-t曲線,和試驗(yàn)擬合曲線的對(duì)比如圖3所示。
圖3 某大口徑艦炮高、常、低溫內(nèi)彈道p-t曲線
圖4 某大口徑艦炮高、常、低溫內(nèi)彈道v-t曲線
由圖3、圖4可見,仿真曲線和試驗(yàn)曲線基本重合,仿真結(jié)果與試驗(yàn)結(jié)果一致性較好。利用黃金分割法搜尋最高膛壓pm、插值法計(jì)算炮口速度v0,得計(jì)算值如表2,與文獻(xiàn)[8]中的實(shí)驗(yàn)值進(jìn)行對(duì)比可知,高、常、低溫內(nèi)彈道pm的相對(duì)誤差分別為0.86%、0.51%、0.17%,v0的相對(duì)誤差分別為0.002%、0.0002%、1.12%。內(nèi)彈道計(jì)算模塊仿真精度較高,可滿足工程實(shí)踐需要。
表2 內(nèi)彈道仿真結(jié)果
利用Matlab GUI開發(fā)的內(nèi)彈道計(jì)算模塊可以編譯為可執(zhí)行文件供其他軟件平臺(tái)調(diào)用。但在VB語(yǔ)言調(diào)用可執(zhí)行文件時(shí)會(huì)出現(xiàn)doc黑屏,不利于良好的人機(jī)交互。為此可在Matlab命令窗口依次輸入cd(prefdir)和edit compopts.bat,在文件的最后添加以下語(yǔ)句:set LINKFLAGS=%LINKFLAGS%-subsystem windows,重新編譯的可執(zhí)行文件,調(diào)用時(shí)將不再出現(xiàn)doc黑屏。
[1]金志明.槍炮內(nèi)彈道學(xué)[M].北京:北京理工大學(xué)出版社,2004:13-14.
[2]陳杰.MATLAB寶典[M].北京:電子工業(yè)出版社,2007.
[3]魏娟,宋福慶.基于MATLAB的GUI設(shè)計(jì)在高等數(shù)學(xué)中的應(yīng)用[J].安陽(yáng)師范學(xué)院學(xué)報(bào),2010:129-131.
[4]黃飛,李燦平,任小慶,等.基于 Matlab/GUI的圖形處理軟件開發(fā)[J].長(zhǎng)沙通信職業(yè)技術(shù)學(xué)院學(xué)報(bào),2010,9(3):21-25.
[5]龔妙昆.基于 MATLAB的GUI設(shè)計(jì)應(yīng)用軟件[J].微型電腦應(yīng)用,2011,27(8):53-55.
[6]歐陽(yáng)明,李玉清,曾海霞,等.VB與MATLAB混合編程在工程中的應(yīng)用[J].電子技術(shù),2009(7):7-9.
[7]李克婧,張小兵.火炮全彈道過程仿真及應(yīng)用[J].火炮發(fā)射與控制學(xué)報(bào),2010(1):48-52.
[8]王道宏,張長(zhǎng)琪.現(xiàn)代火炮設(shè)計(jì)計(jì)算程序選編[M].北京:國(guó)防工業(yè)出版社,1993:82-88.
[9]張方方,侯健,魏平,等.存在侵蝕燃燒的發(fā)射藥高、低溫內(nèi)彈道性能研究[J].彈箭與制導(dǎo)學(xué)報(bào),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.