基于VC和Vega Prime联合开发的巡航导弹仿真系统研究
彭亮,黄心汉
(华中科技大学 控制科学与工程系,湖北 武汉,430074)
摘 要:对基于Visual C++和Vega Prime软件的巡航导弹仿真系统进行开发研究。其步骤是:通过Matlab/Simulink软件将已建立的导弹六自由度数学模型进行仿真,获取导弹的位置、速度等信息;然后,通过Multigen Creator软件建立导弹的实体模型,并用Vega Prime软件进行视景仿真;采用Visual C++进行系统集成,建立基于三者相结合的导弹实时参数感知仿真试验平台;最后,以所建立的导弹在自由空间飞行的运动仿真系统为例,验证该试验平台的可行性和实用价值。仿真结果表明:采用此方案能够在虚拟环境中比较真实地模拟巡航导弹的运动,对导弹的动力学模型和控制系统的验证和改进有一定的参考价值。
关键词:导弹;仿真系统;Visual C++软件;Vega Prime软件;Matlab/Simulink软件
中图分类号:TP391.9, TJ761.12 文献标志码:A 文章编号:1672-7207(2010)01-0219-06
Simulation system of cruise missile using VC and Vega Prime
PENG Liang, HUANG Xin-han
(Department of Control Science Engineering, Huazhong University of Science and Technology, Wuhan 430074, China)
Abstract: The system’s development research was completed based on Visual C++ and Vega Prime softwares. The procedures were as follows. The information of missile’s position and position and so on were obtained by the simulation of missile’s six degrees of freedom mathematical model based on Matlab/Simulink software. Missile’s physical model was established using Multigen Creator software, and the model was used by Vega Prime software to drive Visual simulation. Finally, the feasibility and practical value of this simulation experimental platform were demonstrated by creating a free-flying simulation of missile in free-flying space. The simulation results indicate that this method is helpful in confirmation and improvement of cruise missile dynamics model and control system.
Key words: missile; simulation system; Visual C++ software; Vega Prime software; Matlab/Simulink software
巡航导弹作为远程精确制导的高技术武器装备,已成为以“非接触精确打击”的重要武器。建立巡航导弹实时视景仿真系统,可以降低其研制和开发的费用和周期,减少巡航导弹遇到内部故障或在不可预见的复杂战场环境中导致故障的可能性,有利于研究人员的研究和开发。虚拟现实仿真技术是20世纪80年代末发展起来的一项仿真技术,它以良好的沉浸感、逼真度和人机交互性能已应用于军事、航空航天、建筑、娱乐和医疗等领域[1-2]。一般的基于PC环境下开发的仿真系统侧重于视景沉浸感的表现或运动模拟。应用C++等高级编程语言开发的仿真系统往往注重于物体的运动模拟,开发代码繁复,开发周期长,可靠性低,不利于系统的维护。而采用Vega Prime等仿真软件能对虚拟环境进行快速开发[3],但对于运动的模拟效果一般。为此,本文作者首先对巡航导弹进行受力分析,建立导弹的六自由度动力学方程,然后,利用Matlab/ Simulink软件建立巡航导弹的数学模型,建立巡航导弹的运动仿真系统;利用Multigen Creator软件建立巡航导弹的实体模型,并运用Vega Prime软件建立视景仿真系统;最后,利用Visual C++将2个系统联合起来,组成完整的巡航导弹实时视觉仿真系统。
1 巡航导弹的六自由度运动数学模型
1.1 坐标系的建立
对巡航导弹的动力学进行分析和求解时,必须先选用适当的描述巡航导弹的坐标系。对于导弹等飞行器,常用的右手坐标系有地面坐标系Axyz、弹体坐标系Ox1y1z1、弹道坐标系Ox2y2z2和速度坐标系Ox3y3z3 [4]。
(1) 地面坐标系Axyz:与地面固联,原点A取导弹质心在地面上的投影点,Ax轴在水平面内,指向目标(或目标在水平面上的投影点)为正;Ay轴与水平面垂直,往上为正;Az轴按右手定则确定。
(2) 弹体坐标系Ox1y1z1:原点O取在导弹的质心;Ox1轴与弹体纵轴重合,指向头部为正;Oy1轴在弹体纵向对称平面内与Ox1轴垂直,向上为正;Oz1轴垂直于Ox1y1平面,方向按照右手定则确定。
(3) 弹道坐标系Ox2y2z2:原点O取在导弹的质心;Ox2轴与导弹的速度矢量V重合;Oy2轴位于包含速度矢量的铅垂平面内且与Ox2轴垂直,向上为正;Oz2轴按照右手定则确定。
(4) 速度坐标系Ox3y3z3:原点O取在导弹的质心;Ox3轴与导弹的速度矢量V重合;Oy3轴在弹体纵向对称平面内与Ox3轴垂直,向上为正;Oz3轴垂直于Ox1y1平面,方向按照右手定则确定。
1.2 作用于导弹上的力和力矩
导弹在飞行时,所受的力主要有重力、发动机推力、空气动力、气动力矩等[5]。
(1) 推力是导弹飞行的动力,与燃料消耗量等因素有关。
(1)
式中:为单位时间内的发动机燃料消耗量;ue为燃气介质对弹体的喷出速度;Sa为发动机喷管出口处的横截面积;pa为发动机喷管出口处燃气流的压强;pH为导弹所处高度的大气压强。
(2) 空气动力可分解为阻力Fx、升力Fy和侧向力Fz。试验结果表明:空气动力与来流的动压头q和导弹的特征面积S成正比,即
(2)
式中:Cx,Cy和Cz分别为相对于弹体坐标系的侧向力、法向力和横向力系数,随飞行马赫数、高度、侧滑角、攻角等飞行状态的变化而变化;ρ为空气密度;v为导弹飞行速度。
(3) 气动力矩主要包括俯仰力矩、偏航力矩、滚转力矩,分别用无量纲力矩因数表示为:
(3)
(4) 导弹所受的重力和导弹的飞行高度有关。
(4)
式中:g0为地球表面的重力加速度,一般取为9.81 m/s2;Re为地球半径,一般取为6 371 km; H为导弹离地面的高度。
1.3 导弹六自由度动力学数学模型
根据导弹的受力以及刚体运动学原理,就可以得到导弹的六自由度数学模型。导弹运动方程组是表征导弹运动规律的数学模型,是分析、计算或模拟导弹运动的基础。导弹在空间的运动方程由描述导弹质心运动和弹体姿态变化的动力学方程、运动学方程、导弹的质量变化方程和角度关系方程等组成[6-7]:
式中:各参数的具体含义见文献[6]。
2 基于Matlab/Simulink运动仿真系统的建立
Simulink是Matlab最重要的组件之一,它提供一个动态系统建模、仿真和综合分析的集成环境,具有强大的数据处理和仿真功能[8]。根据导弹的动力学数学模型,利用Simulink建立导弹运动仿真系统,将导弹的整个武器装备系统按功能分为多个模块(如图1所示),并将其进行封装,有利于程序的可移植性与重用性。然后,利用Matlab/Simulink建立巡航导弹的Simulink模型[9],如图2所示。这样,可以根据已建立的Simulink仿真模型获得导弹各个时刻运动的位置、速度、加速度。还可以根据这些信息利用Simulink模拟动画,但视图只能展现出一维信息,对于空间的表现力不强。采用仿真软件Vega Prime能克服该缺点。
图1 导弹飞行仿真模块
Fig.1 Flight simulation module of missile
图2 基于Simulink的系统仿真模型
Fig.2 System simulation model based on Simulink
3 基于Multigen Creator软件的实体模型的建立
利用Vega Prime软件进行仿真,首先要建立导弹等物体的实体模型。Multigen Creator软件独有的可视化数据库为实时系统的应用提供了有效的途径。利用Wall和Loft等方法,结合CAD导入实体模型,采用DOF技术,加入特征纹理,建立导弹实体模型,可以获得良好的视觉效果[10]。导弹的实体模型结构如图3所示。
图3 导弹的实体模型框架
Fig.3 Framework of constructing entity model
在使用导弹模型时,必须保证纹理文件和*.fit格式的模型文件在1个文件夹下,这将会使程序的可靠性降低。利用插件将两者组合生成*.fst格式的模型文件,可以提高程序的可靠性,使Vega Prime软件调用速度更快。导弹的*.fst模型如图4所示。
图4 导弹的*.fst模型
Fig.4 *.fst model of missile
4 基于Vega Prime软件的导弹视景实时仿真系统的建立
Vega Prime应用程序一般分为2个主要阶段:Vega Prime系统的静态描述阶段和Vega Prime系统的动态循环。前一阶段的主要工作是为确保Vega Prime系统的正常运行进行必要的系统设置,主要包括内存分配、参数配置、Vega Prime基本类的定义等,这一阶段保证渲染出流畅的动态视景仿真画面,再加入相应的交互控制代码完成各种仿真应用[11-12]。本系统中,导弹是场景中运动的物体,在Vega Prime软件的开发环境下,每一个运动的物体都是1个控制对象,为场景中的导弹运动物体需要建立了相应的控制,要控制导弹的运动就是通过改变它的位置来实现的。在视景端,导弹需要按照预先定义的路径运动,从而实现仿真运动效果,本文中导弹的运动数据是通过Matlab/ Simulink仿真软件计算得到的。Vega Prime应用程序框架如图5所示。
图5 视觉仿真系统流程图
Fig.5 Flow chart of vision simulation system
利用Vega Prime和Creator联合完成的视景仿真系统,提供了真实环境的沉浸感,但对于导弹这种对象的运动控制要求很高,简单的情景再现不够,这就需要利用Visual C++将Vega Prime和Matlab/Simulink 2种仿真软件联合起来,实现各自的优势。
5 VC,Vega Prime和Matlab/Simulink软件联合仿真系统
5.1 联合仿真系统原理及程序流程
弹道实时参数感知仿真平台是1个由软件Vega Prime,Visual C++和Matlab相结合,采用可视化软件Vega Prime、利用Matlab/simulink强大的计算能力和仿真能力作为后台的实时计算平台,它利用Visual C++强大的接口功能实现前后平台间的实时数据传输。系统原理如图6所示。
图6 系统原理图
Fig.6 System schematic diagram
为了实现虚拟现实仿真平台,首先利用建模软件Creator进行底层建模,建立模型库,生成*.flt实体模型文件;运用Matlab/Simulink软件强大的计算功能以及矩阵计算能力计算导弹的位姿、速度、加速度;利用Vega Prime调用*.acf文件来进行场景配置;最后,利用Visual C++集真仿真平台,生成*.exe可执行文 件[13]。程序流程如图7所示。
图7 程序流程图
Fig.7 Program flow chart
在该仿真平台下,Visual C++用于整个系统的集成;用Vega Prime软件对仿真系统进行驱动,实现可视化仿真;用Matlab/Simulink软件实现复杂的导弹弹道及位姿等信息的计算。采用该系统设计的仿真平台,充分利用了Matlab/Simulink软件丰富的数值运算和仿真功能以及Vega Prime软件的可视化功能。同时,它结合Visual C++软件面向对象、可视化等Windows效率和程序功能,具有明显的优越性和通用性。
5.2 Visual C++与Matlab/Simulink软件编程接口
Visual C++与Matlab软件的混合编程有以下几种形式[14]:
(1) 利用Matlab的API标准接口实现混合编程;
(2) 利用Matcom实现Matlab与Visual C++的混合编程;
(3) 在Visual C++软件中调用Matlab引擎,通过在后台运行Matlab来实现与Visual C++软件的混合编程;
(4) 通过调用语言编译器和连接器,将Matlab程序编译成Visual C++文件。
本文采用形式(4),在Matlab环境中将Matlab函数编译成可以脱离Matlab环境运行的动态连接库,在Visual C++环境中编写Vega Prime应用程序,加载并调用动态连接库,实现三者之间的无缝连接。该方法的关键在于对Matlab与Visual C++的接口进行编程。由于其完全脱离了Matlab环境,并提高了编程效率,因此,得到了广泛应用。
Simulink与VC应用程序接口一个显著的特点是Simulink仿真必须依赖于MATLAB系统[15]。到目前为止,MATLAB提供引擎方式将Simulink与VC应用程序的编程结合起来。要通过引擎方式将Simulink与VC结合起来,首先需掌握VC与MATLAB通过引擎方式混合编程以及Simulink命令行仿真技术。
5.3 程序模块组成及仿真试验结果
实时可视化仿真试验平台由控制模块、绘图模块以及算法子模块3部分构成,如图8所示。
图8 程序模块图
Fig.8 Program module chart
控制模块由Visual C++语言编写,实现对场景以及导弹模型的选取和控制。对导弹的控制包括导弹的平移和旋转以及在有效算法下对目标进行攻击。同时,采用Vega Prime软件提供的接口函数以获取导弹运行环境的实时参数。
绘制模块由Vega Prime应用程序编写。由于Vega Prime软件本身自带了在Windows平台下的API接口,因此,大大简化了开发过程,缩短了开发周期,并使开发的程序具有很大的通用性。它主要用于实现对对象模型的驱动,从而实现三维仿真,并通过参数传递接受控制模块的控制。
算法子模块由Matlab编写,把有效算法编写成*.m文件,经过上述操作,制作成动态链接库,通过Visual C++与Matlab/Simulink的接口编程,与控制模块之间实现参数交换,并对绘制模块进行有效控制。
在该平台下对某型导弹进行视景仿真试验,运行结果如图9和图10所示。其中:图9所示为导弹的爬升状态截图,图10所示为仿真系统总体框架的界面图。
图9 导弹飞行图
Fig.9 Missile flight drawing
图10 总界面图
Fig.10 Total interface drawing
6 结论
(1) 在充分分析当前巡航导弹操作训练所带来的问题的基础上,提出采用软件VC和Vega Prime软件开发视景仿真程序的方法,以巡航导弹虚拟仿真系统为背景,实现了用Vega Prime软件进行视景仿真驱动。
(2) 利用Matlab/Simulink软件建立导弹的运动仿真部分,获取导弹各个时刻的速度、位置、加速度等,能够对导弹的运动特性进行模拟并具有良好的移植性,可供不同的研究对象使用。结合VC和Vega Prime软件两者的优势,采用面向对象的设计方法,有利于提高系统的可扩展性、重用性和可修改性。
(3) 该系统在有效算法的控制下,可以实现对导弹弹道参数、气动力及导弹位姿参数的实时计算,并实现对导弹整个运行过程的三维实时仿真。
(4) 所研究的设计方案基于VC和Vega Prime软件的视景仿真控制方法,对开发类似武器装备的操作训练系统具有一定的参考价值。
参考文献:
[1] 古伊, 高井祥, 孙九运. 基于Creator Pro/Vega Prime的三维地形仿真技术[J]. 矿山测量, 2005(1): 27-29.
GU Ying, GAO Jing-xiang, SUN Jiu-yun. Description of creator Pro/Vega Prime based three-dimensional topographic simulation techniques[J]. Mine Surveying, 2005(1): 27-29.
[2] 王云翔, 赵经成, 付战平, 等. 基于Vega Prime的视景仿真驱动技术研究[J]. 微型计算机信息, 2008, 24(3): 214-216.
WANG Yun-xiang, ZHAO Jing-cheng, FU Zhan-ping, et al. Research of scene simulation drive technique based on Vega Prime[J]. Microcomputer Information, 2008, 24(3): 214-216.
[3] 李亚臣, 胡健, 黎远忠, 等. 基于Vega Prime的航天器视景仿真中的多坐标系问题[J]. 系统仿真学报, 2007, 19(3): 575-578.
LI Ya-chen, HU Jian, LI Yuan-zhong, et al. Research on various coordinate systems in spacecraft visual simulation based on Vega Prime[J]. Journal of System Simulation, 2007, 19(3): 575-578.
[4] 张静瑜. 导弹弹道建模与仿真系统的设计与实现[D]. 吉林大学计算机科学与技术学院, 2009.
ZHANG Jing-yu. Design and implementation of missile trajectory modeling and simulation system[D]. College of Computer Science and Technology, Jilin University, 2009.
[5] 钱杏芳, 张鸿端, 林瑞雄. 导弹飞行力学[M]. 北京: 北京理工大学出版社, 2000.
QIAN Xing-fang, ZHANG Hong-duan, LIN Rui-xiong. Missile flight mechanics[M]. Beijing: Beijing Institute of Technology Press, 2000.
[6] 赵晶慧. 远程空空导弹制导控制系统研究[D]. 哈尔滨工业大学航天工程系, 2007.
ZHAO Jing-hui. Study on guidance control system of long range air to air missile[D]. Department of Astronautic Engineering, Harbin Institute of Technology, 2007.
[7] 郝丽杰, 姚郁, 姜宇. 质量矩控制导弹的建模与仿真研究[J]. 系统仿真学报, 2005, 17(9): 2054-2056.
HAO Li-jie, YAO Yu, JIANG Yu. Modeling and simulation research of missile based on mass moment control[J]. Journal of System Simulation, 2005, 17(9): 2054-2056.
[8] 黄永安, 马路, 刘慧敏. MATLAB7.0/Simulink6.0建模仿真开发与高级工程应用[M]. 北京: 清华大学出版社, 2005.
HUANG Yong-an, MA Lu, LIU Hui-min. Modeling and simulation for development and advanced project application of MATLAB7.0/Simulink6.0[M]. Beijing: Tsinghua University Press, 2005.
[9] 王欣, 姚俊, 王育欣. 基于Matlab/Simulink的导弹三通道弹道仿真[J]. 装备制造技术, 2007(12): 68-69.
WANG Xin, YAO Jun, WANG Yu-xin. Three-channel ballistic simulation of missile based on Matlab/Simulink[J]. Equipment Manufacturing Technology, 2007(12): 68-69.
[10] CHEN Shi-neng, XU Li-mei, LI Hui. Research on 3D modeling in scene simulation based on Creator and 3dsmax[J]. Journal of Electronic Science and Technology of China, 2006, 4(2): 1736-1740.
[11] ZHANG Shu-ai, TAN Guo-xin, LIANG Bo, et al. Design and implementation of real-time 3D campus scene simulation management system based on Vega[C]//International Conference on Computer Science and Software Engineering. Wuhan, 2008: 1162-1165.
[12] YANG Si, LI Xiao-min, XIE Hui. UAV servicing and training system based on VR and HLA[C]//The Eighth International Conference on Electronic Measurement and Instruments. Xi’an, 2007, 341-345.
[13] CHEN Gang, GAN Zhi-chun, SHENG Jian-jun, et al. Equipment simulation training system based on virtual reality[C]// International Conference on Computer and Electrical Engineering. Zhengzhou, 2008: 563-567.
[14] 沈智芳, 易从艳. Visual C++与MATLAB程序的接口研究[J]. 电脑开发与应用, 2008(10): 824-826.
SHEN Zhi-fang, YI Cong-yan, Visual C++ and MATLAB the procedure interface studies[J]. Computer Development and Applications. Zhengzhou, 2008(10): 824-826.
[15] 王春民, 安海忠, 王丰贵. 基于VC和Smiulink的电力电子仿真实验平台设计[J]. 吉林大学学报: 信息科学版, 2008, 26(3): 265-269.
WANG Chun-min, AN Hai-zhong, WANG Feng-gui. Design of simulation experimental platform for power electronics based on VC and Simulink [J]. Journal of Jilin University: Information Science Edition, 2008, 26(3): 265-269.
收稿日期:2009-05-12;修回日期:2009-08-10
基金项目:国家自然科学基金资助项目(69580003)
通信作者:彭亮(1976-),男,湖南娄底人,博士,从事机器人与信息融合研究;电话:13296690996;E-mail: pengliang1203@163.com
(编辑 陈灿华)