摘 ?要:文章采用MATLAB GUI軟件平臺(tái)完成戰(zhàn)斗部殺傷威力計(jì)算系統(tǒng)設(shè)計(jì),該系統(tǒng)使用方便,只需輸入相關(guān)參數(shù),便可計(jì)算出初速、終點(diǎn)速度、殺傷威力半徑、在某距離上的靜態(tài)密度、速度隨距離衰減曲線、動(dòng)能隨距離衰減曲線。結(jié)果可在系統(tǒng)界面顯示或輸出。該系統(tǒng)可以使不會(huì)計(jì)算戰(zhàn)斗部殺傷威力和不會(huì)使用MATLAB編程的人員直接得到需要的結(jié)果。大大縮短了計(jì)算周期,滿足人們的使用。通過(guò)多次設(shè)計(jì)驗(yàn)證,該系統(tǒng)高效可靠,為戰(zhàn)斗部威力分析提供了直觀的輸出。
關(guān)鍵詞:戰(zhàn)斗部殺傷威力計(jì)算系統(tǒng);MATLAB GUI;威力計(jì)算
中圖分類號(hào):TP311 ? ? 文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):2096-4706(2021)13-0107-04
Calculation System of Warhead Killing Power Based on MATLAB GUI
YANG Yuting
(Anhui Fangyuan Electromechanical Co., Ltd., Bengbu ?233010, China)
Absrtact: The paper Uses MATLAB GUI software platform to design the warhead killing power calculation system, the system is easy to use, just input the relevant parameters, it can calculate the initial velocity, terminal velocity, killing power radius, static density at a certain distance, velocity-distance attenuation curve and kinetic energy-distance attenuation curve. The system interface can display or output the results. The system allows people who can not calculate warhead killing power and who can not program using MATLAB to get the desired results directly, and greatly shorten the calculation cycle, meet the use of people. Many designs prove that the system is highly efficient and reliable, and provides an intuitive output for the warhead power analysis.
Keywords: warhead killing power calculation system; MATLAB GUI; power calculation
0 ?引 ?言
破片對(duì)有生目標(biāo)如人員、飛機(jī)和車輛等的殺傷破壞作用是殺傷戰(zhàn)斗部的主要戰(zhàn)技指標(biāo),通過(guò)合理設(shè)計(jì)殺傷戰(zhàn)斗部的破片特性以達(dá)到所需要的戰(zhàn)技指標(biāo)。當(dāng)前殺傷爆破戰(zhàn)斗部的設(shè)計(jì)依然是以分析與綜合經(jīng)驗(yàn)數(shù)據(jù)作為設(shè)計(jì)中的借鑒與依據(jù)。通過(guò)威力計(jì)算、MATLAB仿真得到設(shè)計(jì)結(jié)果。通過(guò)MATLAB GUI可以將MATLAB程序在GUI界面直觀地顯示出來(lái),使用者可使用該界面直接得出結(jié)果。
1 ?開(kāi)發(fā)軟件MATLAB GUI簡(jiǎn)介
MATLAB GUI為圖形用戶界面(Graphical User Interface,GUI)是指采用圖形方式顯示的計(jì)算機(jī)操作用戶界面,是MATLAB用戶可視化交互式的工具,是人和計(jì)算機(jī)進(jìn)行信息交流的工具。運(yùn)用GUI生成的操作界面用戶可以不用瀏覽煩冗的代碼而進(jìn)行操作。GUI不僅深受用戶的喜愛(ài)也是工程人員運(yùn)用MATLAB進(jìn)行可視化操作的捷徑,工程人員只需要拖動(dòng)相應(yīng)的工具,編寫(xiě)回調(diào)函數(shù)即可。MATLAB GUI可以將文件編譯成獨(dú)立的可執(zhí)行程序exe文件用戶不需要安裝MATLAB軟件,只需安裝相應(yīng)版本組件運(yùn)行環(huán)境文件MCRinstaller.exe,即運(yùn)行程序。MATLAB具有強(qiáng)大的計(jì)算及優(yōu)化能力,但是操作門(mén)檻比較高,借助可視化工具GUI可以降低使用難度,在解決問(wèn)題的過(guò)程中為用戶提供現(xiàn)有任務(wù)和解決方案之間的用戶行為交互及數(shù)據(jù)傳輸。
GUI擁有很多按鈕,包括:靜態(tài)文本(Static Text)、可編輯文本(Edit Text)、坐標(biāo)軸(Axes)、按鈕(PushButton)等。通過(guò)這些按鈕,可以設(shè)計(jì)出不同的GUI界面[1,2]。
在一個(gè)GUI界面內(nèi)部的傳遞數(shù)據(jù)為。每一個(gè)控件的回調(diào)函數(shù)頭:function myc_Callback(hObject, eventdata, handles)。第一個(gè)參數(shù)是hObject,是跟這個(gè)callback所關(guān)聯(lián)的控件的handles,在它自己的callback下,可以用代號(hào)-> hObject來(lái)調(diào)用它。即控件自己的回調(diào)函數(shù)調(diào)用自己的屬性,只用hObject.屬性名就可以了(中間一點(diǎn))。第二個(gè)參數(shù)是MATLAB的保留參數(shù)。第三個(gè)handles是這個(gè)GUI界面的代號(hào),可以通過(guò)它獲取這個(gè)界面的所有信息。所以在控件A自己的回調(diào)函數(shù)中,要獲取或者設(shè)置別的控件的屬性,就用handles。別的控件Tag,屬性handles hObject都是結(jié)構(gòu)體。handles格式是一個(gè)存放數(shù)據(jù)的缸。控件的handles是小缸,它的名字叫作hObject;GUI界面的handle是一個(gè)大缸,并且這個(gè)缸名字也叫作handles;大缸里存放了所有的小缸和所有用戶數(shù)據(jù),你只需handles.控件A的tag,就可以存取控件A的信息。把自己計(jì)算出或者別的什么數(shù)據(jù)放到這個(gè)缸里,可以在任何地方。
2 ?威力計(jì)算系統(tǒng)功能介紹
通過(guò)輸入戰(zhàn)斗部參數(shù),使用者便可計(jì)算出初速、迎風(fēng)面積、速度衰減系數(shù)、存速、終點(diǎn)速度、破片拋射角、極限拋射角、最大殺傷距離、球面角度、破片靜態(tài)密度、速度隨距離衰減曲線、動(dòng)能隨距離衰減曲線。用戶可根據(jù)自己需求設(shè)計(jì)需要的輸出結(jié)果。界面顯示非常直觀。該計(jì)算系統(tǒng)不需要每計(jì)算一個(gè)戰(zhàn)斗部編一次程序。所有戰(zhàn)斗部計(jì)算均可使用該系統(tǒng)。
3 ?系統(tǒng)設(shè)計(jì)參數(shù)選擇
該系統(tǒng)的輸入?yún)?shù)和輸出結(jié)果如表1所示。不同戰(zhàn)斗部參數(shù)選擇可參考表2、表3、表4和表5。在計(jì)算過(guò)程中,基于MATLAB軟件平臺(tái),進(jìn)行編程計(jì)算[3]。
4 ?用戶界面設(shè)計(jì)及顯示效果
Matlab-GUI可實(shí)現(xiàn)對(duì)程序代碼進(jìn)行封裝的作用,通過(guò)進(jìn)行可視化圖形GUI界面設(shè)計(jì),為使用者提供一個(gè)簡(jiǎn)單便捷的操作平臺(tái),更加人性化,更加簡(jiǎn)潔。借助MATLAB GUI來(lái)設(shè)計(jì)并完成用戶界面的搭建與應(yīng)用。
首先在GUI里繪制靜態(tài)文本框、可編輯文本框及按鈕,在靜態(tài)文本框里輸入表1的變量,隨后在GUI中設(shè)計(jì)好控件分布和排列,控件大小及文字大小均可由用戶根據(jù)需要設(shè)置。最終在MATLAB編輯器中編寫(xiě)功能函數(shù),回調(diào)函數(shù),數(shù)據(jù)傳遞,邏輯調(diào)配等[4]。該系統(tǒng)已經(jīng)編寫(xiě)好戰(zhàn)斗部威力計(jì)算程序。用戶只需在對(duì)應(yīng)的可編輯文本框里輸入該用戶所需要計(jì)算的戰(zhàn)斗部參數(shù),點(diǎn)擊“運(yùn)行”按鈕,即可得到計(jì)算結(jié)果。
程序設(shè)計(jì)簡(jiǎn)介[5]:
對(duì)每一個(gè)可編輯文本創(chuàng)建如下的回調(diào)函數(shù):
if(isempty(input))
set(hObject,’String’,’0’)
end
運(yùn)行按鈕的回調(diào)函數(shù):
輸入:輸入變量=str2double(get(handles.edit,’String’));
輸出:set(handles.edit,’String’,num2str(v0));
(注:需對(duì)所有變量進(jìn)行上述編程)
在輸入與輸出之間加入戰(zhàn)斗部威力計(jì)算的公式。
戰(zhàn)斗部威力計(jì)算的公式為:
破片初速計(jì)算用哥尼公式:
(1)
式(1)中,V0為破片初速;k為速度修正系數(shù);β為裝藥質(zhì)量和殼體質(zhì)量比;為炸藥格尼常數(shù)。
破片存速公式為:
(2)
式(2)中,α為速度衰減系數(shù),mf為破片質(zhì)量,V0為破片初始速度,x為破片飛行距離,CD為氣動(dòng)阻力系數(shù),S為迎風(fēng)面積,ρa(bǔ)為當(dāng)?shù)乜諝饷芏取?/p>
假設(shè)毀傷某目標(biāo)所需的破片動(dòng)能為E,則破片的終點(diǎn)速度Vr為:
(3)
將式(1)、(2)式聯(lián)合可得破片最大殺傷距離X1:
(4)
假設(shè)殺傷目標(biāo)所需的分布密度要求為ρ,破片的最大殺傷距離X2為:
(5)
其中n為破片總數(shù),,α為極限拋射角,θe為破片拋射角。
破片拋射角由Shapiro導(dǎo)出式計(jì)算,對(duì)于等直徑戰(zhàn)斗部殼體,其拋射角為:
(6)
其中D為炸藥爆速,θf(wàn)為彈軸和引爆點(diǎn)-破片線之間的角度。
因此,含能戰(zhàn)斗部的威力半徑X為:
X=min(X1,X2) ? ? ? ? ? ? ? ? ? ? ? ? ? ? (7)
球面角度:
q=2π(?2-?1) ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?(8)
在R米距離上的靜態(tài)密度為:
ρ=n/qR2 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? (9)
上述過(guò)程為該計(jì)算系統(tǒng)的編程方法。
以某一戰(zhàn)斗部為例,在圖1中可編輯文本框中輸入該戰(zhàn)斗部的破片總質(zhì)量、藥質(zhì)量、破片數(shù)、一枚破片的質(zhì)量、炸藥格尼常數(shù)、炸藥爆速、速度修正系數(shù)、氣動(dòng)阻力系數(shù)、當(dāng)?shù)乜諝饷芏?、破片形狀系?shù)、破壞動(dòng)能、彈軸與破片間的夾角1、彈軸與破片間的夾角2、距離、等效人行靶破片數(shù)。點(diǎn)擊運(yùn)行便可得到初速、終點(diǎn)速度、X1、X2、在R米距離上,每平方米破片數(shù)如圖2所示,同時(shí)生成速度隨距離衰減曲線、動(dòng)能隨距離衰減曲線,如圖3、圖4所示。
5 ?結(jié) ?論
采用 MATLAB GUI作為軟件開(kāi)發(fā)工具進(jìn)行可視化界面設(shè)計(jì),完成了戰(zhàn)斗部殺傷威力計(jì)算的設(shè)計(jì)。通過(guò)MATLAB GUI可以使用戶輸入相關(guān)參數(shù)即可進(jìn)行計(jì)算。GUI使編程人性化,易于操作,不必再debug再運(yùn)行。就像電腦自帶的計(jì)算器那樣。運(yùn)行既生成計(jì)算器的那個(gè)界面,輸入只需要用鼠標(biāo)點(diǎn)擊上面的按鈕就可以了。該系統(tǒng)操作簡(jiǎn)單,誤差較小,穩(wěn)定程度高,實(shí)現(xiàn)速度較快。大大縮短了用公式計(jì)算威力或MATLAB編程計(jì)算威力的時(shí)間,提高設(shè)計(jì)效率,而且更加直觀,并能保證較高的計(jì)算精度。該計(jì)算系統(tǒng)設(shè)計(jì)對(duì)于其他計(jì)算系統(tǒng)的設(shè)計(jì)編程提供了參考意義,可使用該編程方法進(jìn)行各類GUI的實(shí)現(xiàn)。
參考文獻(xiàn):
[1] 余勝威,吳婷,羅建橋.MATLAB GUI 設(shè)計(jì)入門(mén)與實(shí)戰(zhàn) [M].北京:清華大學(xué)出版社,2016.
[2] 王廣,邢林芳.MATLAB GUI 程序設(shè)計(jì) [M].北京:清華大學(xué)出版社,2018.
[3] 張國(guó)偉.終點(diǎn)效應(yīng)及其應(yīng)用技術(shù) [M].北京:國(guó)防工業(yè)出版社,2006.
[4] 王樹(shù)山.終點(diǎn)效應(yīng)學(xué):第2版 [M].北京:科學(xué)出版社,2019.
[5] 羅華飛.MATLAB GUI 設(shè)計(jì)學(xué)習(xí)手記:第3版 [M].北京:北京航空航天大學(xué)出版社,2014.
作者簡(jiǎn)介:楊玉婷(1993.10—),女,漢族,山西大同人,設(shè)計(jì)師,本科,主要研究方向:仿真與計(jì)算。