摘 要:文章采用MATLAB GUI软件平台完成战斗部杀伤威力计算系统设计,该系统使用方便,只需输入相关参数,便可计算出初速、终点速度、杀伤威力半径、在某距离上的静态密度、速度随距离衰减曲线、动能随距离衰减曲线。结果可在系统界面显示或输出。该系统可以使不会计算战斗部杀伤威力和不会使用MATLAB编程的人员直接得到需要的结果。大大缩短了计算周期,满足人们的使用。通过多次设计验证,该系统高效可靠,为战斗部威力分析提供了直观的输出。
关键词:战斗部杀伤威力计算系统;MATLAB GUI;威力计算
中图分类号:TP311 文献标识码:A文章编号: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 引 言
破片对有生目标如人员、飞机和车辆等的杀伤破坏作用是杀伤战斗部的主要战技指标,通过合理设计杀伤战斗部的破片特性以达到所需要的战技指标。当前杀伤爆破战斗部的设计依然是以分析与综合经验数据作为设计中的借鉴与依据。通过威力计算、MATLAB仿真得到设计结果。通过MATLAB GUI可以将MATLAB程序在GUI界面直观地显示出来,使用者可使用该界面直接得出结果。
1 开发软件MATLAB GUI简介
MATLAB GUI为图形用户界面(Graphical User Interface,GUI)是指采用图形方式显示的计算机操作用户界面,是MATLAB用户可视化交互式的工具,是人和计算机进行信息交流的工具。运用GUI生成的操作界面用户可以不用浏览烦冗的代码而进行操作。GUI不仅深受用户的喜爱也是工程人员运用MATLAB进行可视化操作的捷径,工程人员只需要拖动相应的工具,编写回调函数即可。MATLAB GUI可以将文件编译成独立的可执行程序exe文件用户不需要安装MATLAB软件,只需安装相应版本组件运行环境文件MCRinstaller.exe,即运行程序。MATLAB具有强大的计算及优化能力,但是操作门槛比较高,借助可视化工具GUI可以降低使用难度,在解决问题的过程中为用户提供现有任务和解决方案之间的用户行为交互及数据传输。
GUI拥有很多按钮,包括:静态文本(Static Text)、可编辑文本(Edit Text)、坐标轴(Axes)、按钮(PushButton)等。通过这些按钮,可以设计出不同的GUI界面[1,2]。
在一个GUI界面内部的传递数据为。每一个控件的回调函数头:function myc_Callback(hObject, eventdata, handles)。第一个参数是hObject,是跟这个callback所关联的控件的handles,在它自己的callback下,可以用代号-> hObject来调用它。即控件自己的回调函数调用自己的属性,只用hObject.属性名就可以了(中间一点)。第二个参数是MATLAB的保留参数。第三个handles是这个GUI界面的代号,可以通过它获取这个界面的所有信息。所以在控件A自己的回调函数中,要获取或者设置别的控件的属性,就用handles。别的控件Tag,属性handles hObject都是结构体。handles格式是一个存放数据的缸。控件的handles是小缸,它的名字叫作hObject;GUI界面的handle是一个大缸,并且这个缸名字也叫作handles;大缸里存放了所有的小缸和所有用户数据,你只需handles.控件A的tag,就可以存取控件A的信息。把自己计算出或者别的什么数据放到这个缸里,可以在任何地方。
2 威力计算系统功能介绍
通过输入战斗部参数,使用者便可计算出初速、迎风面积、速度衰减系数、存速、终点速度、破片抛射角、极限抛射角、最大杀伤距离、球面角度、破片静态密度、速度随距离衰减曲线、动能随距离衰减曲线。用户可根据自己需求设计需要的输出结果。界面显示非常直观。该计算系统不需要每计算一个战斗部编一次程序。所有战斗部计算均可使用该系统。
3 系统设计参数选择
该系统的输入参数和输出结果如表1所示。不同战斗部参数选择可参考表2、表3、表4和表5。在计算过程中,基于MATLAB软件平台,进行编程计算[3]。
4 用户界面设计及显示效果
Matlab-GUI可实现对程序代码进行封装的作用,通过进行可视化图形GUI界面设计,为使用者提供一个简单便捷的操作平台,更加人性化,更加简洁。借助MATLAB GUI来设计并完成用户界面的搭建与应用。
首先在GUI里绘制静态文本框、可编辑文本框及按钮,在静态文本框里输入表1的变量,随后在GUI中设计好控件分布和排列,控件大小及文字大小均可由用户根据需要设置。最终在MATLAB编辑器中编写功能函数,回调函数,数据传递,逻辑调配等[4]。该系统已经编写好战斗部威力计算程序。用户只需在对应的可编辑文本框里输入该用户所需要计算的战斗部参数,点击“运行”按钮,即可得到计算结果。
程序设计简介[5]:
对每一个可编辑文本创建如下的回调函数:
if(isempty(input))
set(hObject,String,0)
end
运行按钮的回调函数:
输入:输入变量=str2double(get(handles.edit,String));
输出:set(handles.edit,String,num2str(v0));
(注:需对所有变量进行上述编程)
在输入与输出之间加入战斗部威力计算的公式。
战斗部威力计算的公式为:
破片初速计算用哥尼公式:
(1)
式(1)中,V0为破片初速;k为速度修正系数;β为装药质量和壳体质量比;为炸药格尼常数。
破片存速公式为:
(2)
式(2)中,α为速度衰减系数,mf为破片质量,V0为破片初始速度,x为破片飞行距离,CD为气动阻力系数,S为迎风面积,ρa为当地空气密度。
假设毁伤某目标所需的破片动能为E,则破片的终点速度Vr为:
(3)
将式(1)、(2)式联合可得破片最大杀伤距离X1:
(4)
假设杀伤目标所需的分布密度要求为ρ,破片的最大杀伤距离X2为:
(5)
其中n为破片总数,,α为极限抛射角,θe为破片抛射角。
破片抛射角由Shapiro导出式计算,对于等直径战斗部壳体,其抛射角为:
(6)
其中D为炸药爆速,θf为弹轴和引爆点-破片线之间的角度。
因此,含能战斗部的威力半径X为:
X=min(X1,X2) (7)
球面角度:
q=2π(∂2-∂1) (8)
在R米距离上的静态密度为:
ρ=n/qR2 (9)
上述过程为该计算系统的编程方法。
以某一战斗部为例,在图1中可编辑文本框中输入该战斗部的破片总质量、药质量、破片数、一枚破片的质量、炸药格尼常数、炸药爆速、速度修正系数、气动阻力系数、当地空气密度、破片形状系数、破坏动能、弹轴与破片间的夹角1、弹轴与破片间的夹角2、距离、等效人行靶破片数。点击运行便可得到初速、终点速度、X1、X2、在R米距离上,每平方米破片数如图2所示,同时生成速度随距离衰减曲线、动能随距离衰减曲线,如图3、图4所示。
5 结 论
采用 MATLAB GUI作为软件开发工具进行可视化界面设计,完成了战斗部杀伤威力计算的设计。通过MATLAB GUI可以使用户输入相关参数即可进行计算。GUI使编程人性化,易于操作,不必再debug再运行。就像电脑自带的计算器那样。运行既生成计算器的那个界面,输入只需要用鼠标点击上面的按钮就可以了。该系统操作简单,误差较小,稳定程度高,实现速度较快。大大缩短了用公式计算威力或MATLAB编程计算威力的时间,提高设计效率,而且更加直观,并能保证较高的计算精度。该计算系统设计对于其他计算系统的设计编程提供了参考意义,可使用该编程方法进行各类GUI的实现。
参考文献:
[1] 余胜威,吴婷,罗建桥.MATLAB GUI 设计入门与实战 [M].北京:清华大学出版社,2016.
[2] 王广,邢林芳.MATLAB GUI 程序设计 [M].北京:清华大学出版社,2018.
[3] 张国伟.终点效应及其应用技术 [M].北京:国防工业出版社,2006.
[4] 王树山.终点效应学:第2版 [M].北京:科学出版社,2019.
[5] 罗华飞.MATLAB GUI 设计学习手记:第3版 [M].北京:北京航空航天大学出版社,2014.
作者简介:杨玉婷(1993.10—),女,汉族,山西大同人,设计师,本科,主要研究方向:仿真与计算。