APP下载

基于OpenGL的六自由度三维弹道仿真技术研究

2017-06-26李苑青王丽华

电子科技 2017年6期
关键词:视景弹道导弹

程 翔,李苑青,王丽华

(1.中国电子科技集团公司第20研究所 协同作战事业部,陕西 西安 710068;2.中国兵器工业集团公司第203研究所 仿真中心,陕西 西安 710065)



基于OpenGL的六自由度三维弹道仿真技术研究

程 翔1,李苑青2,王丽华1

(1.中国电子科技集团公司第20研究所 协同作战事业部,陕西 西安 710068;2.中国兵器工业集团公司第203研究所 仿真中心,陕西 西安 710065)

以弹道仿真为研究对象,根据模块化的建模思想,结合工程应用实践经验对六自由度算法模型进行了参数修正和计算方法的改进,采用管道实现C#和OpenGL的互联,构建了基于OpenGL仿真环境的导弹六自由度弹道三维仿真验证和演示平台。通过仿真展示了三维可视化效果并验证了所采用的六自由度算法模型的合理性,并将该三维仿真平台应用于实际弹道测试,经验证,该模型和仿真平台在能够真实可靠并且清晰直观的反应出导弹的六自由度弹道特性的同时,还能实时提供良好的可视化效果。

弹道仿真;六自由度模型;C#;OpenGL;三维视景

由于导弹造价昂贵,攻击过程灵活复杂,因而全部通过靶场试验和经验积累来对导弹攻击过程中的飞行姿态及轨迹进行研究是不现实的。因此研究人员大多通过建立弹道数学模型计算导弹飞行中的各项参数指标,求得不同条件下的攻击区以及导弹轨迹的变化规律的方式来进行研究和改进。同时通过多次不同条件下的仿真,可以为进一步发挥导弹的作战效能和相应的火控系统设计提供重要的参考数据。

然而现阶段的弹道仿真大都采用简化的三自由度解算模型,只考虑弹体的位置变化,而并未考虑其飞行过程中的姿态变化,因而仿真结论在实际飞行过程中的可信度较差。只有采用制导与姿态控制联合的六自由度进行仿真,才能够更全面、真实地描述导弹的运动本质和特性[1]。

其次,在以往飞行弹道的仿真验证与演示中,大多采用导弹和目标位于同一平面内的二维弹道显示,重点关注导弹飞行过程中飞行轨迹,忽略了导弹在实际飞行过程中风干扰、温度变化及本身舵片阻尼和气动特性等因素在三维空间对导弹飞行姿态和轨迹的影响,无法对弹道进行深入分析。基于上述工程研究现状,本文采用3DMAX建模,由OpenGL绘制三维空间,以VS2010为开发环境,建立双向管道实现C#环境和VC环境的数据互联和显控,设计实现了一种三维六自由度实时导弹仿真验证演示软件[2]。

1 仿真软件的开发环境

本文所建立的仿真软件以VS2010开发环境为背景,利用OpenGL函数绘制三维空间,手动重绘所需弹体、飞机、船舶等3DMax模型,实现仿真元素的逼真可视化呈现,采用粒子云技术呈现飞行过程中尾焰及命中的爆炸效果,根据六自由度弹道解算模块产生的实时弹体控制参数及飞行数据,进行导弹攻击过程的同步三维仿真。

其中,OpenGL具有良好的实用性和兼容性,它不仅支持绘制效果和造型能力的底层开发,而且具有高度的可移植性和出色的视觉质量;3DMax是基于PC系统的三维动画渲染和制作软件,可以在短时间内建立出复杂而又精细的物体模型,尤其是对导弹飞行过程中的舵片旋转的动画制作,能够实现导弹飞行过程及姿态最大程度的还原,达到理想的三维效果[3]。

2 仿真软件的设计

2.1 仿真软件架构设计

软件采用模块化结构和面向对象的程序设计方法,主要由4个主系统,总计14个模块组成。各模块组成示意图如图1所示。

图1 软件模块组成示意图

2.2 仿真软件模块设计

根据软件架构设计,各模块设计功能如下:

(1)窗口管理模块。是软件实现可视化功能的最基本模块,用于多窗口显示、定时器设置、串并行切换等,为其他模块的操作、调用和选择提供方便的人机交互环境;

(2)仿真方案配置分系统。针对不同的仿真对象,进行不同的参数配置。其中,该分系统又包括两个模块,分别是攻击模式选择模块和参数配置模块,分别对应不同的解算模型和参数列表;

(3)三维场景生成分系统。是软件视景生成的核心部分,主要由作战环境生成模块、地图生成模块和3DMax仿真元素生成模块等组成。该分系统根据所需仿真内容,生成三维仿真环境,拼接战场区域地图,导入3DMax仿真元素模型,保证导弹攻击过程方便直观的实时视觉呈现:

1)作战环境生成模块。利用OpenGL自带底层消息响应和视景绘制函数,如PreCreatWindow、WM_CREATE、OnDraw等,完成窗口风格定义、多窗口生成与释放、基本线条绘制等OpenGL视景生成基本窗口和逻辑框架的搭建[4];

2)地图生成模块。下载所需区域卫星图片,经处理和拼接,生成仿真所需区域的真实卫星地图。首先调用getPerMeterPxCount函数计算所处纬度每个像素点对应的距离;再调用ConvertGeoToXY计算中心点所在位图的序号并得出所要平移的距离,最后调用CImage类将所需图片进行拼接并保存成位图形式以供OpenGL生成地形时调用;

3)3DMax仿真元素生成模块。根据配置的仿真方案,由Import3DS函数调用绘制的.3ds的模型及贴图,根据弹道解算模块计算的参数对模型进行位置上的平移、旋转和缩放等操作以及局部关节动画演示,以达到最优、最逼真的视觉效果,尽可能全面的表现导弹在飞行过程中表现出的各个姿态和状况;

(4)弹道仿真解算分系统。是软件算法的核心部分,主要由攻击流程模块、运动解算模块和制导控制模块这3个主要模块组成,由系统定时调用,以1 ms为一帧,根据不同的攻击方式和不同的导弹参数进行导弹的六自由度弹道解算,提供包括导弹位置、姿态、飞行参数等在内的20个变量的实时数据:

1)按照导弹的攻击过程进行攻击流程的分解,这里以空对地导弹为例,攻击流程按照攻击顺序可大致分为6个部分,如图2所示:挂飞段、助推段、等高飞行段、进入巡航段(下滑段)、巡航段、自导段(跃升和俯冲攻击)。其中挂飞段,助推段,等高飞行段以及下滑段不仅时间短暂,而且遇到随机事件的可能性比较小,因此大多采用程序控制。巡航段和自导段是其中的关键,需要加入控制方程进行实时的制导与控制;

图2 空对地导弹作战飞行弹道

2)在运动解算模块中,调用空气动力学方程和导弹六自由度运动模型方程组进行微分迭代解算,其中共包括20个未知数,给定初始理想条件、实际扰动条件和噪声公式后,用数值积分法便可以得到在理想和干扰情况下的有控弹道及20个参数相应的实时变化规律[5];

(5)数据传输管理分系统。是软件各模块间数据流传输和控制的一个子系统,也是管理OpenGL和C#互联的核心部分,具体分为单双向管道管理模块、数据管理和传输模块。其中单双向管道管理模块为该分系统管控核心:由于本软件算法部分采用较C++更为高级灵活的C#编写生成,而视景生成则采用兼容性可移植性更好的OpenGL编写,因此该模块设置双向管道,实现C#和C++环境下的OpenGL的互联,一向管道用于C#向OpenGL发数,用于定时和保证数据传输的实时性,另一向管道则由OpenGL连向C#,用于对发数管道进行控制,防止数据溢出和拥塞;其余模块主要负责管道数据接收与处理、各模块间的交互控制,不再赘述;

(6)时间控制模块。主要起到定时的功能,计算步长以1 ms为一帧,视景刷新频率则根据导弹的不同飞行阶段变化,除导弹交汇段每1 ms刷新一次,保证交汇计算精确度外,其余阶段则20 ms刷新一次,保证实时解算效率;

(7)信息显示模块。会将最终软件仿真过程中各阶段的信息呈现出来,包括方案配置阶段各作战单元的参数设置显示,打击模拟仿真阶段各作战单元的实时数据显示以及三维态势的呈现。

2.3 仿真软件工作流程

仿真软件系统流程如图3所示,整个仿真系统可分为仿真方案配置阶段、三维场景生成阶段、模拟弹道解算阶段以及最终的三维场景和实时数据显示阶段。

图3 软件工作流程示意图

(1)仿真方案配置阶段:进入主界面后,首先在作战方案配置系统中进行作战模式选择。仿真软件提供了空对地攻击弹、地对地攻击弹以及地对空攻击弹这3种攻击模式,之后针对不同的攻击模式对导弹进行参数设置;

(2)三维场景生成阶段:配置好作战方案和系统参数后,利用OpenGL函数搭建三维仿真环境,导入仿真场景所需的3DMax模型元素,并按照仿真方案设定的经纬高等数据拼接相应位置的场景地图并导入到三维环境中;

(五)在资金扶持方面 牛羊保险政策有待商榷,在不暴发重大动物疫病的情况下,对于牛而言,生病或者其他意外死亡几率很小,因此与其每年投入成百上千万的资金在牛的保险方面,不如利用这些资金改善基础设施建设。

(3)模拟弹道解算阶段:系统通过调用定时器来定时调用弹道解算模块进行六自由度弹道的解算,弹道解算模块根据不同的攻击模式选择相应的攻击流程,并调用运动解算模块和制导控制模块,解算导弹实时的各项参数;

(4)三维场景和实时数据显示阶段:通过数据传输管理模块进行数据流的传输和管理,导弹相关的实时参数则由管道函数送给三维场景进行同步显示。其中,各模块的内容均可通过信息显示模块显示,包括方案配置阶段各作战单元参数、模拟攻击过程中各作战单元的实时数据以及模拟弹道轨迹、姿态、运行效果等的三维视景呈现。

3 弹道仿真的三维呈像及仿真结果

3.1 系统操作

系统运行后,首先选择导弹的攻击方式,共有空对地攻击弹,地对地攻击弹和地对空攻击弹3种场景可供选择,选定攻击方式后,可对该场景下各元素进行参数的设定,参数设定完毕后即可生成此场景的三维环境,图4为不同场景以及不同视角下的三维环境。

图4 不同场景以及不同视角下的三维环境

点击开始按钮后,系统开始定时调用弹道解算模块,并进行三维视景的实时显示。在导弹飞行过程中,观测者可以切换包括跟随、定向、漫游等在内的不同视角对导弹进行全方位的观测,另外导弹的经度、纬度、高度、速度、航向、俯仰、横滚等姿态相关重要数据也会实时显示在数据显示栏。当导弹完成攻击或出现故障自行销毁时,会绘制当前的爆炸效果。

3.2 仿真结果及分析

本文针对软件所具有的空对地攻击弹和地对地攻击弹这两种场景分别进行仿真,并进行三维效果的演示以及仿真结果的对比分析。

图5为空对地攻击弹的全弹道仿真效果图,图5(a)~图5(c)分别正视图,侧视图和俯视图,可以通过全方位不同角度观测导弹攻击过程中的三维曲线弹道。从图中可以看到,导弹发射后导弹先按照程序预定指令进行短暂的等高飞行后迅速进行自适应姿态的无动力下滑;当达到一定的高度后,发动机点火开始工作,并根据设定的巡航高度和航路点调整飞行姿态,进行寻航段突防飞行;当接近目标后,导弹自身导引头开机并扫描获取需要打击的目标,引导导弹飞向目标,进行自导段的跃升俯冲攻击。

图5 空对地攻击弹全弹道三视图

图6为地对地攻击弹的全弹道仿真效果图,图6(a)~图6(c)分别正视图,侧视图和俯视图。可以直观地观察到地对地攻击弹与空对地攻击弹的最大区别在于发射段,地对地攻击弹属于垂直发射,导弹在发射后处于无控段,导弹先垂直上升,紧接着导弹自身的发动机点火,控制导弹进行转弯,以达到预定的航向角、弹道倾角以及巡航高度的要求,然后导弹进入中制导阶段,余下部分基本和空对地攻击弹方式类似。

图6 地对地攻击弹全弹道三视图

另外,如图7所示,在导弹飞行过程中,可以通过切换观察视角及观察距离,观察导弹在任意时刻的运动状况和飞行姿态,达到对导弹攻击过程中全方位、细节化的观察。

图7 不同角度观察效果

最后当导弹命中目标或自行销毁时,如图8所示,仿真软件利用粒子云技术绘制爆炸效果,给研究人员最直观的感受。

图8 爆炸效果图

4 结束语

本文研究了基于OpenGL的导弹六自由度弹道仿真及三维呈像技术,相较于传统的弹道仿真方式,主要具有以下两点优势:

(1)采用制导与姿态控制相结合的六自由度模型进行弹道仿真,引入空气动力、干扰条件和噪声等对导弹飞行的影响,模型中导弹的各项飞行参数均是根据导弹实时的姿态和飞行状况计算得到的,从而提高了仿真精度和真实度,使仿真结果更加贴近导弹在真实环境下的飞行状况,进而可以更加准确的分析和验证各项参数或制导控制方式对导弹攻击飞行过程中的影响;

(2)利用C#、C++、3DMAX与OpenGL联合开发的弹道仿真系统不仅供了真实的三维场景,实现了弹道仿真过程中的六自由度可视化演示,帮助研究人员更加直观、高效地认识抽象的数学参数和模型,更真实地模拟现实情况下导弹的飞行轨迹和姿态控制,还同时保证了数据传输的实时性和可控性,使整个仿真流程更加流畅和高效,也使得仿真平台的交互性能更加强大,可视化效果更好,后期维护改进更加便捷。综上,本文在三维环境下对弹道仿真的研究方法更加真实可靠,仿真软件更加清晰直观,具有极佳的工程应用价值。

[1] 李洪儒,冯振声,李柯.基于面向对象技术的弹道导弹六自由度仿真研究[J].弹箭与制导学报,2001,21(1):11-14.

[2] 雷刚,鲜勇.弹道导弹飞行弹道的三维仿真[J]. 计算机仿真,2005,22(8):32-34.

[3] 王新波,朱维杰.基于OpenGL与3DS Max的三维场景建模[J].电子科技,2012,25(1):79-80.

[4] 廖宏刚,刘荣.基于OpenGL的三维真实感地形的实现[J].电子科技,2013,26(9):164-165.

[5] 高晓光.航空军用飞行器导论[M].西北工业大学出版社,2004.

[6] 耿丽娜,秦海力,郑志强.制导炸弹弹道仿真系统开发[J].系统仿真学报,2008(21):5748-5751.

[7] 马其东,马雷挺,钟志通.垂直发射型舰空导弹比例导引三维弹道仿真研究[J].导弹与航天运载技术,2008(3):15-18.

[8] 谢汉桥,文立华.基于OpenGL的反舰导弹弹道视景仿真[J].计算机仿真,2010,27(1):85-89.

[9] 和平鸽工作室.OpenGL高级编程与可视化系统开发[M].北京:水利水电出版社,2002.

[10] 邱伟,李心鹏,王晓斌.基于OpenGL的三维模型渲染新方法[J].遥测遥控,2016,37(5):12-15.

[11] 张进强,蒋夏军.外弹道可视化仿真研究与实现[J].计算机工程与科学,2015,37(2):372-378.

[12] 张爱华,吴彦卓.基于OpenGL的虚拟海场景生成技术研究[J].舰船电子工程,2015,35(5):84-88.

[13] 王昂.海上舰艇作战虚拟视景图像系统仿真研究[J].计算机仿真,2016,33(4):419-423.

[14] 邓方林,黄先祥.弹道导弹六自由度仿真决策系统设计与研制[J].系统仿真学报,2004,16(2):186-189.

[15] 张大元,赵玉芹,雷虎民,等.地空导弹三点法三维运动学弹道建模与仿真[J].飞行力学,2012,30(1):57-60.

Research on Six Degree of Freedom 3D Trajectory Simulation Based on OpenGL

CHENG Xiang1, LI Yuanqing2, WANG Lihua1

(1. Cooperative Engagement Department,The 20th Research Institute of China Electronic Technology Group Corporation, Xi’an 710068,China;2. Simulation Center,The 203th Research Institute of China North Industries Group Corporation, Xi’an 710065,China)

Using the trajectory simulation as the research object, a ballistic missile’s six degree of freedom 3D simulation and demonstration platform was constructed based on the OpenGL simulation environment and the modular modeling idea, in which the parameter correction and calculation method of six degree of freedom model were improved by combining with the engineering practice experience, and the C# and OpenGL was inter -connected by using pipeline between them. The simulation showed the effect of 3D visualization and verify the rationality of the six degree of freedom model of the algorithm. At last, the 3D simulation platform was tested in real experiment, and as a result, the platform showed a reliable and clear response of six degree of freedom ballistic missile and a good visualization at the same time.

trajectory simulation;six degree of freedom model;C#;OpenGL;3D imaging

2017- 03- 24

陕西省青年科技新星项目(2015KJXX-66)

程翔(1989-),男,硕士,助理工程师。研究方向:火力与指挥控制,系统建模与仿真。

10.16180/j.cnki.issn1007-7820.2017.06.005

TN595.2+1;TP391.41

A

1007-7820(2017)06-016-05

猜你喜欢

视景弹道导弹
弹道——打胜仗的奥秘
虚拟现实技术在游戏设计中的应用及研究
导弹燃料知多少
一维弹道修正弹无线通信系统研制
正在发射的岸舰导弹
拦截那枚导弹
导弹转运
基于PID控制的二维弹道修正弹仿真
消除弹道跟踪数据中伺服系统的振颤干扰
全回转拖轮运动建模与视景仿真