基于
OpenGL
枪弹
侵彻伤道
可视化
研究
荣华
基金项目:国防科工局稳定支持经费项目(JCKYS201909C001);国家自然科学基金(11872215);军委科技委基础加强计划技术领域基金(2019-JCJQ-JJ-373);国防科技重点实验室基金(6142606020109)收稿日期:2021-06-10 修回日期:2021-08-03 第 40 卷 第 4 期计 算 机 仿 真2023 年 4 月 文章编号:1006-9348(2023)04-0021-05基于 OpenGL 的枪弹侵彻伤道可视化研究刘荣华1,温垚珂1,闫文敏2,3,刘苏苏4(1.南京理工大学机械工程学院,江苏 南京 210094;2.瞬态冲击技术国防科技重点实验室,北京 102202;3.中国兵器工业第 208 研究所,北京 102202;4.南通大学机械工程学院,江苏 南通 226019)摘要:快速直观地再现枪弹侵彻人体过程中伤道形成过程,为人体易损性评估提供准确的人体损伤数据。首先构建枪弹侵彻明胶靶标过程中的枪弹运动方程和明胶内瞬时空腔运动方程。接着使用 C+语言,在 OpenGL 规范的基础上,对枪弹运动、空腔膨胀设计了可视化算法程序。程序可以通过数据实时驱动,实现枪弹运动和明胶空腔膨胀的动态变形仿真。将某7.62mm 枪弹侵彻明胶的伤道可视化仿真与相应实验进行了对比,验证了仿真的准确性。上述程序可作为人体易损性评估软件的一个模块,用于快速直观地再现枪弹对人体的杀伤效应。关键词:弹道明胶;瞬时空腔;数据驱动;可视化仿真中图分类号:TJ22 文献标识码:BVisualization Study of Bullet Penetation Wound Based on OpenGLLIU Rong-hua1,WEN Yao-ke1,YAN Wen-min2,3,LIU Su-su4(1.School of Mechanical Engineering,Nanjing University of Science and Technology,Nanjing Jiangsu 210094,China;2.Science and Technology on Transient Impact Laboratory,Beijing 102202,China;3.No.208 Research Institute of China Ordnance Industries,Beijing 102202,China;4.Nantong University,School of Mechanical Engineering,Nantong Jiangsu 226019,China)ABSTRACT:This paper quickly and intuitively reproduces the formation process of the wound path in the process ofthe projectile penetrating the human body,and provides accurate human injury data for human vulnerability assess-ment.Firstly,the motion equations of the bullet and the temporarycavity in the gelatin were established.Then usingthe C+language,on the basis of OpenGL specification,the visual algorithm program was designed for the motion ofbullet and cavity expansion.The program can be driven in real-time by data to simulate the bullet movement and thedynamic deformation of the expansion of the gelatin cavity.The visual simulation of a 7.62mm bulletpenetrating gelat-in was compared with the corresponding experiment,and the simulation accuracy was verified.The program can beused as a module of human vulnerability assessment software to quickly and intuitively reproduce the terminal effectsof a bullet on the human body.KEYWORDS:Ballistic gelatin;Temporary cavity;Data-driven;Visual simulation121 引言人体易损性评估软件可以快速评估各类杀伤元对人体靶标的杀伤效应,结合具体作战任务还可评估人员的失能情况。为了在软件界面快速直观地再现枪弹侵彻过程及其在人体靶标内造成的瞬时空腔膨胀过程,就需要结合相应终点弹道理论模型数据,在软件中虚拟再现侵彻过程。目前,对基于各类外弹道方程的枪弹和导弹飞行过程虚拟再现技术研究较多,对枪弹终点弹道的虚拟再现技术罕有文献报道1。张进强等人3通过构建 OpenGL 的三维视景仿真环境,实现了基于数值仿真实时驱动的弹道可视化仿真平台,对炮弹的飞行轨迹、实时运动姿态进行了仿真和分析。吴枫等人4利用虚拟现实技术、数据可视化技术等,构建了一个航天发射可视化仿真平台,并开展了相应可视化仿真应用案例。薛志斌等人5为降低工作量,通过专业三位建模软件3DS MAX 建立模型,并用 C+语言将 3DS 文件导入 OpenGL中,实现可视化以及人机交互控制。程翔等人6对六自由度算法模型进行了改进,实现了导弹六自由度弹道三维仿真,该仿真能够真实可靠并且清晰直观的反映导弹的六自由度弹道特性,其可视化效果良好。文雷7利用计算机图形技术,构造导弹的三维模型并通过快速载入实体模型的方法载入 OpenGL,最终实现了导弹飞行仿真,为导弹飞行轨迹研究提供了一种直观、便捷的仿真分析方法。目前,已有研究大都针对三维模型实时位移、旋转实现了仿真8,9,但侵彻过程中的瞬时空腔是一个形状实时变化的三维模型,动态变形特点给伤道仿真带来困难。本文基于 OpenGL 设计了枪弹侵彻仿真程序,程序可以实现对枪弹侵彻全过程的三维可视化。通过引入阻力系数和升力系数,建立枪弹运动和瞬时空腔运动模型。经过与实验对比发现模型具有良好的准确性。依据模型,获取侵彻过程枪弹运动与空腔变形的实时数据,设计算法实现对子弹运动和空腔运动的可视化仿真,为动态变形的三维模型仿真提供了一些参考。2 枪弹侵彻明胶靶标理论模型在枪弹侵彻明胶过程中,枪弹的受力主要随枪弹与明胶有效接触面积变化,其中面积分离率和弹头长径比是描述有效接触面积的重要因素。刘苏苏8通过分析侵彻过程中的不同方向受力,提出了阻力系数和升力系数与翻转角的关系式,从而建立步枪弹在明胶中的运动模型和瞬时空腔运动模型。2.1 枪弹运动方程当枪弹以非零度攻角侵彻明胶时,枪弹在明胶中的运动可以分为:质点平动和绕质心的转动11-13。随着枪弹翻转角的增加,枪弹与明胶的有效接触面积增大,因而枪弹不断受到一个翻滚力矩的作用;与此同时,枪弹翻转过程中,枪弹尾部会受到明胶的阻碍作用,从而形成一个阻尼力矩,始终阻碍枪弹的翻转。结合这两个在枪弹上作用相反的力矩,建立方程(1)。质点平动中受力分为水平方向的阻力和竖直方向的升力。关于阻力,通过引入空气动力学中的阻力系数,建立阻力模型。阻力的大小主要取决于有效接触面积的大小。根据枪弹在明胶中翻转的角度,可将翻转分为三个阶段即窄伤道段、快速翻转阶段、阻尼振荡阶段,并分别建立有效接触面积与翻转角的关系方程。结合升力的作用,引入升力系数最终建立方程(2)(3)(4)。=?x2+?y2Cmcos sin -CDAl0()12JqA0l0?x2+?y2(1)my=-12A0?x2+?y2CD?y-12A0?x2+?y2CL?x(2)mz=-12A0?x2+?y2CD?x+12A0?x2+?y2CL?y(3)其中 x,y 分别为子弹水平、竖直方向的位移,Jq是弹头赤道转动惯量,Cm是与翻转角无关的翻转力矩系数,l0是枪弹长度,A0是弹头圆柱部分横截面积 是弹头的翻转角,是弹头翻转的角速度,是弹头翻转的角加速度。图 1 图 2 是以上理论模型与实验结果的对比。从图中可以看出,理论模型得到的数据与实验结果重合度很好,这表明该理论模型能够较为准确的反映侵彻过程。图 1 侵彻深度随时间变化曲线2.2 瞬时空腔运动方程取明胶深度 S 处,轴向厚度为 ds 的截面为研究对象,依据动能定理计算得到弹头在该截面释放的能量 dEs。当该截面空腔膨胀至最大时,认为截面动能为 0,变形能量最大,且该层明胶具有最大能量 dEp。考虑到由于攻角的存在,弹头会出现翻滚现象,明胶分层之间存在能量交换,分层能量不22图 2 翻转角度随时间变化曲线守恒,即 dEsdEp。通过假设分层之间的能量交换与弹头释放能量和所有截面中弹头最大释放能量的差值正相关,建立明胶截面的最大变形能与弹头释放能量的关系表达式。又考虑弹头翻转带来的影响,引入弹头有效接触面积和明胶粘弹性的影响,表示截面变形能和动能之间的关系。最终瞬时空腔运动模型如下am=F +FmF-1|e2 Aeff-AmA+ln|a=am1-1-t-tam/?v|2?v=2Pge AeffAm-=1Pg|(4)其中 am是该层明胶的最大瞬时空腔半径,Pg是打开单位体积明胶需要的能量,Aeff是弹头在弹道垂直方向上的有效接触面积,A 是弹头横截面积,Fm,Am分别是弹头受力和与明胶最大有效接触面积,是当前明胶截面与弹头受力最大截面间距离有关的函数,此处认为是常数,t是空腔膨胀到最大的时间,?v 是空腔膨胀的速度,、为常数。图 3 是是以上理论模型与实验结果的对比(某 7.62mm枪弹,入靶速度 701m/s)。从图中可以看出,理论模型可以很好地模拟空腔从开始膨胀到闭合运动过程的空腔轮廓。3 仿真实现OpenGL 库一般包含两个基本库,一个用来实现开窗,另一个管理 OpenGL 函数指针12。实现这两个功能的库有很多。采用当前成熟、稳定的 GLFW、GLEW 库。基本环境的搭建需要将这两个库加载、驱动,其中初始化的关键语句如下:图 3 理论模型结果与实验结果典型时刻对比8表 1 OpenGL 初始化关键语句代码内容glfwInit()初始化 glfwglfwMakeContextCurrent(window)设置回调glewExperimental=GL_TRUE初始化 glewglViewport(0,0,width,height)控制开窗尺寸glfwPollEvents()判断触发函数glfwSwapBuffers(window)交换缓冲glUseProgram(shaderProgram)激活着色器glGenTextures(1,&texture生成纹理3.1 子弹OpenGL 渲染模型的过程,是由 CPU 对模型数据(顶点、法线、纹理)进行读取、处理,再将数据传递至 GPU 进行渲染显示。对于复杂的几何模型,手动输入模型的顶点、法线和纹理坐标数据是极为困难的,其效率也较低。模型加载可以将建立好的几何模型导入程序之中,极大提高了复杂场景可视化的效率。在 3dmax 软件中,画出枪弹弹头的几何模型,保存为 obj格式文件。利用 ASSIMP 模型加载库将子弹模型加载到程序之中。在 OpenGL 中,模型的几何数据以矩阵的形式进行操作,模型的几何变换是由矩阵乘以相应的变换向量、矩阵实现的。GLM 是一