航空装备统一建模与仿真训练平台研究

2018-08-24 08:51,,,
计算机测量与控制 2018年8期
关键词:实体工厂建模

,, ,

(1.中国海洋大学 信息科学与工程学院,山东 青岛 266100;2.海军航空大学 青岛校区军用虚拟仿真研究与训练中心,山东 青岛 266041)

0 引言

随着现代电子技术和信息技术的飞速发展,现代作战飞机智能化和信息化程度都非常高,而且以航空电子模块化发展为机载现代装备的发展趋势,与此同时机载设备软件化趋势日趋明显,F-22上由软件实现的航电功能高达80%[1],在关系安全的核心系统中,如飞控计算机(FCC)的软件代码占整个源代码的1/3[2]。模拟训练手段越来越成为国内外军事训练的主要手段之一,新型作战飞机的列装都需要研制配套的模拟训练器。因此,综合现代飞机装备发展趋势和训练需求,在模拟训练开发过程中需要重点研究航空装备的统一建模技术,使航空装备的仿真开发标准化,形成统一的模型抽象方法和交互方法,这样有利于机载仿真设备跨平台通用,也真正能够实现软件模型的重构[3-4],更能够实现型号设备仿真的继承性和多态性。当前,国外的统一建模仿真训练平台,对传感器模型做了很多限制,而且授权非常昂贵无法满足国内需求,但国内还没有专门针对航空装备的统一建模仿真平台,对模拟训练器的研制主要采取两种方式,第一种是根据装备的使用训练流程,建立比较全面的仿真操作逻辑,针对需要显示的传感器数据通过专门的算法进行仿真;第二种是将装备分成几个模块或者系统,然后根据划分的特点和各个模块的功能及指标,进行专门的建模。 这两种方式导致仿真软件的复用率较低,每次面对新型飞机模拟训练系统都要重新进行设计开发,主要原因是航空装备的仿真没有实现标准化,尤其是同一类设备不同型号、不同类型设备之间没有采用软件设计模式[5-6],没有建立标准化的统一建模仿真平台。

本文提出了利用抽象工厂模式[7-8]建立仿真工厂模式架构,以仿真或训练任务配置为驱动,设计了工厂-实体-机载装备三层仿真模式体系,可以根据XML[9]提供的任务配置,快速的完成工厂、飞机、装备的仿真设计和开发,通过实体抽象、机载装备类型抽象、型号继承抽象的技术,实现从飞机到机载设备仿真开发的重构技术,避免了大量航空装备的重复开发。

1 抽象工厂模式

现代军用飞机虽然有不同的型号,但是不同型号的飞机都有同类产品,如都有火控雷达、惯导、大气、飞控、罗盘、显控、外挂物、任务机等[10-11],有些属于同一厂商不同型号,有些属于不同厂商,但同一类型产品的基本功能、状态和控制是一样的,因此基于设备的输入输出接口对同一类型产品进行抽象建立产品类型生产线,再在不同的产品生产线基础上对不同类型产品类进行二次抽象,建立最初级的机载设备生产线。基于两级类生产线可以快速的生产新旧型号的各种类型的设备和系统,也可以快速地对原有仿真机型进行加装新的仿真设备或者更换新的仿真设备。

机载设备及传感器仿真基于仿总线接口进行充分的抽象后,采用抽象工厂方法模式,建立面向航空装备的仿真工厂平台simFactory,该仿真工厂属于类创建型模式,在仿真工厂模式中,可以通过基类快速的创建新的产品或者基于产品资源类库创建同一产品的不同型号,然后在产品内部完成新增功能和特性。

2 仿真类型及抽象模型

航空装备仿真包括飞机、机载装备、导弹三大类型。

2.1 仿真实体

飞机和导弹定义为实体[12-13],文中统一称为Entity,在对实体进行仿真建模时,需要完成实体内部各种类型设备的仿真建模。

仿真工厂平台在飞机仿真设计生产过程中,以实体为组成的基本单位,基本实体由显示模型和算法模型组成,实体可以包含基本实体。

2.2 仿真设备

仿真设备是指机载设备或系统,一般可以独立地完成一些特定功能,是作为实体的一个部分,平台中称为仿真模型。从仿真模型的特点考虑,算法模型称为SLC(系统逻辑组件)、显示模型称为DLC(显示逻辑组件)。有些系统只有SLC,有些复杂的系统由SLC和DLC共同组成。

2.3 抽象模型建立

飞机的类型很多,包括战斗机、运输机、轰炸机、直升机、预警机等待,然而每种类型的飞机又分很多型号,如F15飞机、F16飞机等,有些型号的飞机又分很多小的型号,如F16A/F16B/F16C等。机载设备也存在种类多、型号多。在进行仿真设计时,需要提高设计的重构性,降低设计的复杂度,因此需要进行抽象建模。

2.3.1 实体抽象建模

在进行实体抽象建模时,根据抽象工厂模式架构进行设计,首先建立仿真实体接口类ISimEntity,然后基于接口类派生出实体类CSimEntity,在实体类模型的基础上可以建立各型具体的实体对象。所以对实体进行科学的抽象数据描述也就实现了实体的抽象建模,实体模型包括通用控制模型和通用数据模型,如表1和表2。实体抽象数据模型如表3。

表1 抽象控制接口类

表2 模型抽象数据接口

表3 仿真实体抽象接口类

2.3.2 设备抽象建模

机载设备有同一功能类型的,也有非同类型的。但是从仿真工厂模式设计考虑,需要设计的抽象模型能够适应工厂模式下实体的集成和对实体内部模型的管理。同时模型接口类也能泛化出模型类和设备类。表4设备模型抽象接口类。

设备模型继承于抽象接口模型,对模型及其数据的操作以虚函数形式定义,对于模型的通用管理采用内联函数实现函数体,包括:删除本模型、设置/获取本模型输入控制数据、设置/获取本模型输入仿真数据、设置模型基本配置。

表4 设备模型抽象接口类

3 仿真平台设计

仿真平台(也称装备仿真工厂simFactory),主要实现仿真工厂实例的创建,通过仿真工厂实现各型仿真实体的创建、管理和运行,各型仿真设备和系统模型的创建、管理、调度和运行,并能够建立实体库和设备资源库,根据实际装备组成情况调用实体库和资源库,快速的完成新型实体的集成和仿真。从而该平台既可以用于新型号飞行模拟器的研制开发、导弹武器的研制开发,也可以用于现有型号飞机的设备加装和改进后的仿真。

平台总体功能包括:XML任务配置、建立工厂、实体仿真、模型仿真、集成调度、仿真管理等。功能模块设计如图2所示。

图2 功能模块设计

3.1 平台框架设计

平台基于配置项的模块化设计,每个模块是基于模型插件模版类进行开发,开发完成的每个模型插件作为平台的仿真资源库,因此资源库分为实体资源库和模型资源库。平台根据任务配置文件调用相应的实体资源库,完成实体对象的创建,并建立实体容器列表用于实体对象的管理,实体对象根据任务配置文件在初始化过程中调用模型资源库相应的模型插件,完成模型对象的创建,同时建立模型容器列表对模型进行动态管理。建立模型与模型、模型与实体的数据传输关系和控制关系,实现实体和模型的装配,至此实体创建完毕,启动平台仿真运行功能,实现实体-模型的更新、管理、调度。

实体由子实体和模型组成。模型也可以由多个模型组成。平台提供的开发环境,包括:1)该平台提供系统仿真模型的框架和抽象的数据接口类、控制接口类、显示接口类; 2)该平台提供基础的API;3)该平台提供仿真工厂抽象接口类、实体抽象接口类、模型抽象接口类; 4)仿真工厂既可以生产设备(系统)模型、也可以生产实体模型(飞机、导弹)。 平台类架构如图3所示。

图3 工厂平台类结构

每个模型都必须添加属于模型的接口控制变量和接口数据变量,并且唯一。每个模型都继承了基础公共处理函数、管理函数。工厂创建实体、添加实体,在运行过程中动态创建和销毁实体(导弹),在工厂内部管理实体,避免外部调用复杂化。工厂与外部通信接口包括网络传输接口、视景显示信息接口、硬件采集接口(适配器模式)、配置获取接口、故障状态接口、数据记录接口等。模型之间的依赖关系,依据机载系统之间的关系进行交互。工厂既创建后台系统仿真模型SLC,又创建前台显示模型DLC。

3.2 任务模式设计

XML描述文件设计仿真工厂加工生成任务,在工厂模式下形成的是“工厂-飞机-装备模型”三层仿真模式体系,因此在XML描述驱动任务时需要体现出三级结构,如图4。

图4 驱动任务描述

在Mission中主要包括下列任务描述关键信息:

任务参数:描述任务ID,任务类型,任务名称

系统参数:描述地形纹理,仿真时间,步长。

环境参数:描述气象参数,大气温度,电磁参数,红外参数。

机场信息:描述机场位置,跑道参数,返场参数,压强。

仿真实体:描述每个实体的参数,并指定实体的描述文件,如Path=MissionDataJS_101.XML,表示101飞机描述文件。

如图5,在飞机实体描述文件中,主要完成单个实体需要加载的任务和配套模型,在JS_101.XML飞机描述文件下,加载的模型包括飞行模型、大气模型、导航模型等,也包括了模型运行需要的指标参数,实体属性等。

图5 实体任务描述

3.3 SLC模型交互设计

系统逻辑组件类SLC实现机载系统模型仿真,SLC模型具有统一的抽象接口类ISimModel和CSimModel基类,在“设备抽象建模”已经对SLC基本模型作了详细阐述,这里重点阐述SLC模型之间的控制接口和数据接口的交互设计。

在SLC模型组件内部定义本模型的控制接口和数据接口,以及需要交互的其他SLC模型接口。以惯导(INS)模型为例,在VC8环境下的数据接口和控制接口定义如下:

m_pINS->SetName("IINSInterface");

m_pINSControl->SetName("IINSControlInterface");

//惯导模型数据接口

m_pData=dynamic_cast(m_pINS);

//惯导模型控制接口

m_pControl=dynamic_cast(m_pINSControl);

SLC属于某一实体,因此SLC模型之间的数据交互在实体内完成,属于实体内模型之间数据交互。

定义SLC模型组件入口函数和访问方式如下:

// CXSimEntity某型仿真实体类

extern "C" DLLEXPORT ISimEntity* CreateSimEntity()

{

return dynamic_cast(new CXSimEntity);

}

// CXModel某SLC模型仿真类

extern "C" DLLEXPORT ISimModel* CreateXModel()

{

return dynamic_cast(new CXModel());

}

//模型组件访问方式如下:

HINSTANCE h=LoadLibraryA(pszDll); //加载SLC组件

_mhInstance[pszDll]=h;

typedef ISimModel* (CALLBACK *CREATEMODELPROC)();

CREATEMODELPROC proc;

proc=reinterpret_cast(

GetProcAddress(h,pFuncName));

建立仿真模型库句柄动态存储管理表,用于对SLC模型库的加载和释放进行动态管理,建立仿真模型指针容器,用于对实体需要的模型进行动态控制管理,对模型的数据进行交互访问,如表5是定义的模型存储容器,SLC模型的具体交互在实体基类CSimEntity中,通过周期遍历pModel中存储的所有模型,将每个模型输出的仿真数据和控制数据发送给其他所有模型,由各自模型进行筛选取值,如图6所示。

表5 SLC模型容器定义

图6 SLC 功能流程图

3.4 DLC模型设计

显控仿真系统组件SLC接受其他SLC组件的状态数据和传感器数据、目标数据、载机其他数据等,处理后适合MFD、HUD屏幕显示。同时处理人机交互按键信息实现显示画面和菜单的控制,并将需要可视化显示的数据作为显示符号的驱动数据,将显示符号和数据转换成指令帧。

显示逻辑组件类DLC,接受显控仿真系统组件SLC的绘图指令帧,进行指令解码,完成显示画面、符号的实时绘制和更新。

DLC模型的实现可以采用OpenGL底层[14]进行设计开发,也可以借助专业的仪表开发工具,如GL Studio[15]和IData[16]等,从设计模式考虑,也为了便于平台的整体设计、配置和独立运行,采用OpenGL进行开发。优点是更有力于利用此平台提供的基类直接进行DLC的开发。

将DLC显示的内容进行分类、特征提取,再抽象成显示数据模型。一般分为基本显示符号:字符、线、圆弧、矩形、三角形、窗口;特殊显示符号通过位图实现。特征属性一般分为:颜色、闪烁、线型、字体等。因此对基本显示符号需要继承抽象接口类IDrawMode实现CDrawMode类,在该类中完成基本符号的绘制函数、特征设置函数。在设计开发实际DLC应用时,基于CDrawMode派生出需要的显示组件就可以快速的完成显示设备的开发。DLC类设计如图7所示,调用流程如图8所示。

图7 DLC类设计图

图8 DLC流程图

CGLHZFontClass和CGLENFontClass字符处理类提供字符处理和显示的函数,封装了OpenGL函数通过HBITMAP、HFONT、HDC完成中英文字符的处理和显示。CBaseDrawIMG基础绘图类调用OpenGL底层函数实现所有显示符号、图形特征的设置、绘制、控制显示。CDrawMode类中定义了字符类对象和基础绘图类对象、画面绘制函数和窗口绘制函数,实现DLC的创建和显示。

4 仿真开发应用

利用平台提供的仿真任务配置模板,以某型固定翼战机J-X和对手战机F16为仿真对抗实体,设计任务配置文件和实体配置文件。其中任务文件和实体文件效果如图4和图5,文件的主要配置项数据如表6和表7。利用simFactory平台建立仿真工厂实体,根据实体配置文件利用simFactory提供的SLC SDK和DLC SDK完成机载模型的快速开发。最后由仿真工厂完成每个实体所有模型的交互。

表6 开发任务配置

表7 实体任务数据表

仿真应用运行在处理器Intel(R) Core(TM) i7-6700HQ CPU@2.60 GHz、内存16 G、GeForce 940MX环境下,机载系统显示效果如图9所示,HUD和MFD在SLC、DLC模型驱动下实时显示所有机载模型的数据。

图9 机载系统显示效果

以J-X战机仿真模型和配套仿真仪表的实时交互数据为评价对象,如表8,在该应用中测试了模型交互的最大实时数据量、单个数据传输的最大字节数,及更新时间和交互时间,测试结果表明模型和仪表的更新周期和最大交互时间非常理想,也证明了该平台具备复杂任务下航空装备仿真实体的快速化、标准化开发。

表8 J-X实体-模型-变量仿真性能评价

5 结束语

本平台不仅提供了实体仿真的系统架构和仿真运行的管理调度,更重要的是提供了实体所有机载模型的抽象建模方法,使不同类型的模型在横向之间可以扩展,相同类型不同型号的模型在纵向可以继承,模型之间的交互数据实现了类型统一,由实体负责模型的装配、交互和管理,工厂对象负责实体对象的产生和动态管理,抽象仿真工厂根据任务建立仿真训练应用和仿真工厂对象,实现整个训练任务、对抗、环境的管理和导演。

实体和模型的开发以现有的基础模型库为基础,无需从新开始,因此平台可以应用于专业的设备建模人员进行机载模型的开发,提供了装空装备仿真开发的效率,使各类型、各等级的航空装备实现了标准化仿真。

猜你喜欢
实体工厂建模
基于FLUENT的下击暴流三维风场建模
联想等效,拓展建模——以“带电小球在等效场中做圆周运动”为例
求距求值方程建模
前海自贸区:金融服务实体
实体书店步入复兴期?
基于PSS/E的风电场建模与动态分析
两会进行时:紧扣实体经济“钉钉子”
振兴实体经济地方如何“钉钉子”
为什么工厂的烟囱都很高?
奶酪工厂