刘 伟,李欣益,管再升,束川良
(上海机电工程研究所,上海 201109)
高逼真度的弹道仿真能够较为真实的模拟导弹在空中的飞行过程,可以预测并控制飞行试验的风险,是地空导弹设计中的一项重要任务。型号研制过程中,由于各型地空导弹武器系统战技指标、拦截目标、导弹性能等各有不同,在弹道仿真中,出现了多种数学模型,弹道设计师根据数学模型编写的弹道仿真程序各式各样,往往花了大量时间编程,仿真结果却不理想,弹道仿真准确度不高。同时,由于型号间弹道仿真程序不统一,输入接口不一致,造成型号间弹道复核复算仅限于数学模型的检查,无法进行真正的弹道计算。在目前型号研制任务逐渐加重、研制周期逐渐缩短、飞行任务越来越多的情况下,迫切需要一款实用、通用、方便用的弹道仿真工具,提高计算效率,节约人力、物力成本。
国内外对弹道仿真工具的研究已有很多年,并建成了较为实用的仿真软件,国外洛克希德马丁公司和NASA兰利研究中心开发了POST[1],波音公司和NASA格伦研究中心创建了OTIS[2],国内西北工业大学的唐明亮、谷良贤对弹道仿真通用软件[3]进行了探索,国防科技大学的鲁中华、郭振云对弹道通用模型的建立及通用软件设计进行了研究[4],西北工业大学龚春林、谷良贤将弹道仿真应用在了导弹总体方案软件系统上[5],兵器203所赵军民、何亚娟对基于MATLAB/Simulink的弹道模块化进行了开发[6],北京航空航天大学洪蕾[7]、南京理工大学王仲铎、王宏波[8]在弹道仿真软件可视化方面进行了研究。国内外学者与开发人员进行了大量工作,但是这些仿真工具并不能直接应用在国内型号的弹道仿真中。根据型号特点,文中对某几型地空导弹的弹道模型进行了梳理和规范,基于统一的仿真框架,开发了一套弹道仿真系统。通过界面操作或者少量的编程即可实现一个系统对多个型号进行仿真的功能,并能实现诸如动力系数计算、载荷计算、参数曲线实时显示、数据快速判断等功能,具有模块易更换、界面易操作、实用性强的特点。
仿真系统采取仿真界面、仿真控制、仿真模型相对独立的框架,层级清晰,接口明确,便于软件的维护、升级和扩展。仿真系统主要框架见图1,核心模块包括仿真界面模块、仿真控制模块、仿真模型模块,除需要完成仿真功能的核心模块外,还增加了辅助软件模块。
图1 软件系统功能模块框图
系统的主要目的是实现多个型号的通用弹道仿真,为了实现通用性,系统在以下方面做了探索:
1)建立标准弹道数据库。对几个型号的弹道数据梳理后,整合了各个型号的弹道输出文件,按照最大化原则,建立标准的弹道数据库,并留有可扩展的空间;建立了弹道数据类,可实现弹道数据的统一管理。
2)建立标准弹道模型。针对不同的弹道模型,对模型进行再细化,建立能够通用的标准子模型,通过多个子模型可搭建成父模型,例如不同型号制导规律模型不同,但都可划分为初、中、末制导,初制导模型又可细化为转弯规律模型、姿态指令形成模型等,各型号相同的子模型可作为标准模型,放入标准模型库,各型号有差异的子模型可作为选择模块,统一其外部接口。
3)外部数据接口标准化。弹道仿真用到很多外部数据,例如质量质心转动惯量、气动模型等。外部数据一般由不同专业不同人员提供,不能直接使用,为此软件系统采取封装策略,创建了封装器,使用封装器可将各类外部数据标准化。标准化后的数据分为两类:一是文本库,二是动态链接库。
系统除能进行弹道仿真外,还兼顾弹道优化功能。系统可作为一个弹道计算的求解器,嵌入到ISIGHT等优化软件中,实现弹道优化。
系统借助Qt工具,使用C++语言进行编程实现,充分运用了面向对象、继承、多态等方法。下面对系统已实现的各个功能模块进行简要介绍。
建立弹道仿真模型时充分考虑了模块易更换、接口可通用的思路,主要建立的仿真模型有:导弹运动学参数模型、总体参数模型、目标模型、气动模型、自动驾驶仪模型、制导规律模型、相对运动模型、大气模型、导弹动力学方程组模型、射向瞄准规律模型等,如图2所示。创建了弹道数据类,模块之间信息传输通过调用弹道数据类对象实现。
图2 仿真模型
2.1.1 目标模型
目标模型用来确定目标类型、目标位置、目标速度等。防空导弹对付的目标均为快速移动目标,包括飞机类目标、巡航导弹、空地导弹、直升机等,根据是否机动又可分为机动目标和不机动目标。对于同一类目标,又分为两种模型:一是根据目标运动模型计算出目标运动数据;二是调用目标数据库得到目标运动数据。
系统利用C++继承、多态的特性,建立了一个目标基类“HTarget”类,并规定了基类方法,各种不同的目标均继承自该类。
2.1.2 总体参数模型
总体参数模型用来确定弹道的输入参数,主要包括:导弹外形参数、发动机推力参数、垂直弹射参数、质量质心转动惯量等。这些参数既可以通过界面直接设置,也可以通过数据库获取。
通过界面可以进行各种组合与参数调整,可以方便的更换发动机、质量质心等输入数据,根据不同的导弹可设置不同的输入,可以快速的进行弹道仿真,特别是在论证初期,可通过多参数的调整使导弹性能达到最优。
2.1.3 制导规律模块
通常,防空导弹按照导弹飞行程序,可划分为三个飞行阶段:初制导、中制导和末制导,在型号研制阶段,还有程控指令飞行阶段。软件系统按照四个阶段进行设计。
初制导规律采用传统的垂直发射快速转弯规律,通过界面可以对转弯规律参数、初制导终止条件进行选择或调整;中、末制导规律可选用多种导引规律,目前可供选择的有修正比例导引规律模型和最优导引律模型,可以通过界面调整比例系数和中末制导交班条件、末制导结束条件等,根据需要后续可增加其他导引规律;程控指令规律可以通过界面进行增添。
除了内置的常用制导规律模型,系统还提供了自定义模型,在接口相似的情况下,支持自定义的各种制导规律。自定义模型采用Matlab的m文件编制而成,进行弹道仿真时软件系统可自动调用Matlab软件对m文件进行解释,完成弹道计算。待自定义的制导规律模型成熟后,可对软件系统进行升级,将此规律内置在制导规律模型库中。
2.1.4 射向瞄准规律模块
射向瞄准规律模块可计算出初制导滚转到位后的导弹初始指向,为中末制导飞行创造有利条件。系统提供了三种模式:第一种模式是在型号研制初期,没有瞄准规律模型时,通过界面指定导弹初始指向;第二种模式是在型号研制过程中,验证模型的优劣时,将模型编制成脚本程序(或m文件)嵌入到软件中,通过弹道仿真结果对模型进行判别;第三种模式是型号已经定型或者正在定型时,已经固化的射向瞄准规律模型可以内置在软件中,通过界面选择不同模型。
2.1.5 其他模块
导弹动力学模块有两种弹体模型可选择:质点动力学模型(三自由度)、刚体动力学模型(六自由度),可设置导弹初始运动参数。气动模块和自动驾驶仪模块均采用动态链接库的形式,通过接口的标准化可实现不同气动模型和自动驾驶仪模型的无缝更换。通常,不同型号的气动模型和驾驶仪模型不同,软件可方便的通过更换气动和驾驶仪动态链接库达到型号与模型一一对应的目的。相对运动学模块和大气模块均采用成熟的数学模型,固化在软件中;积分模块采用四阶龙格-库塔积分方法,气动力、气动力矩、角度转换均采用飞行力学中常用的模型。
仿真界面基于Qt编写,主要功能是为用户提供友好的人机交互平台,通过界面操作,可以进行仿真控制、系统设置、参数调节、模块选择、模型更改、实时图形显示等。2.1节中介绍的大部分仿真模型均可通过相应的界面进行人机交互。仿真系统主界面如图3所示。
图3 仿真系统主界面
仿真系统可自由设置仿真类型(典型弹道、全空域弹道、弹道优化等)、仿真时间、仿真步长、仿真终止条件、导弹飞行时间等,并能及时反馈仿真过程(如仿真各参数变化、仿真进度等)。
系统采用多线程控制,界面使用主线程,每一个弹道仿真过程均开辟一个工作线程,可充分利用硬件资源,并确保界面的及时响应。
为了提高弹道仿真效率,丰富系统功能,开发了一些辅助模块,例如实时显示模块、三维仿真模块、脚本调试模块、数据后处理模块、铰链力矩计算模块、气动特性分析模块、动力系数分析模块等。
其中三维仿真模块基于OpenSceneGraph三维渲染引擎,可以对生成的弹道用三维视景仿真的形式进行表现,仿真效果如图4所示。
图4 三维仿真模块
仿真系统可用于多个型号的弹道仿真任务,例如:典型弹道计算、全空域杀伤区计算、射程估算、制导规律优化、对付多种目标条件下弹道性能计算、靶试弹道计算、铰链力矩计算、动力系数计算、可用过载计算、特征点气动特性分析等。
使用时,可通过在菜单中选择不同型号的配置文件进行不同型号的弹道仿真。以某地空型号为例,用该系统进行靶试弹道仿真,同时该弹道也进行了实际的靶场飞行试验。仿真条件为拦截虚拟平飞飞机目标,拦截点距发射点斜距125 km,拦截点海拔高度5 km,全程弹道和姿态角变化曲线与实际飞行试验靶试弹道对比如图5和图6所示(其中弹道轨迹表示为北天东坐标系)。由图5、图6可见,仿真的弹道与靶试飞行的弹道基本重合,两者姿态角偏差很小,仿真系统能较为逼真的模拟导弹的飞行过程,对地空导弹的研制起到了重要作用。
图5 仿真与靶试弹道轨迹对比
图6 仿真与靶试的姿态角对比
针对型号研制过程中弹道仿真的需求,开发了一套弹道仿真系统,文中对仿真系统通用化、模块化的实现思路进行了描述,并对各模块的实现情况进行了简要介绍。初步应用表明,该系统可进行多个型号多个弹道任务的工作,显著提高了工作效率。