基于指令控制的可重构机载显控系统仿真
2014-09-29王志乐付战平周秀芝
王志乐,付战平,周秀芝
(海军航空工程学院青岛校区军用虚拟仿真研究与训练中心,山东 青岛 266041)
1 概述
显示与控制系统(简称显控)作为现代飞机综合航空电子系统的核心部分,既负责管理航空电子系统的工作模式和状态,又对座舱内的各种操作进行处理[1],显示其他系统的各种数据,通过各型显示装置向飞行员输出显示信息[2]。
显控系统仿真是模拟器研制的重要组成部分[3-4]。传统的显控系统仿真都基于显示画面,整理显控中主要的显示画面,然后对画面菜单进行分级开发,编写画面间的切换逻辑,交联系统的数据处理集中在画面开发中完成,如某型飞机多功能显示系统的仿真[5],此方法会增加逻辑编写的复杂度,易造成画面重叠出现,多个显示终端的数据实时性不好;而且系统的灵活性和通用性差,当研制同一型号另一功能模拟器或者应用于虚拟环境的训练系统时无法适应,而模拟器的研制费用昂贵,因此在现有模拟器基础上进行新的实验改进尤为重要[6-8],NASA的LaSRS++项目使用面向对象技术设计的模拟器框架进行了多年持续的改进,项目代码复用率达96%[9-10]。所以,采用可重构的技术研制的模拟器仿真软件才能适应模拟器的发展[11]。本文在进行显控系统仿真时,将前台显示部分和后台控制处理软件分开设计,结合软件的可重构特性、代码和设计模式的可复用性,提出一种基于指令控制方式的显控系统仿真方法,在编写后台图元控制和数据处理软件时无须考虑有多少显示画面以及显示画面之间的切换关系,以提高显控系统的开发效率和可靠性,以及模拟器研制的重构能力。
2 软件功能结构
显控处理系统从软件结构上划分包括综合任务处理机软件和图元显示软件。
(1)综合任务处理机软件作为显控后台软件(简称处理机软件),主要完成与各个交联机载系统的数据处理与收发、航电显示软件的逻辑处理和画面图元组织绘制。
(2)图元显示软件作为显控前台软件,呈现给训练人员的是可视化的图形图象和操作菜单,该软件主要接收处理机软件发送的图元指令信息,解析指令信息后通过图形图象处理算法完成图元的绘制和显示。
为了使显控系统框架和代码能够复用,主要采用面向对象技术,另外实现系统的重构必须使软件设计完全与硬件脱离,因此,在显控系统和多功能显示器(MFD)、多功能键盘(MFK)等硬件之间的通信必须通过测控中间软件完成。显控系统交互结构如图1所示。
图1 显控系统交互结构
3 仿真软件设计
由于显控系统需要显示的内容比较多,图形图像运算量比较大,逻辑解算和数据处理量很大,而且对系统实时性要求较高,同时又具有一定的可重构性和维护性,因此对仿真软件的设计尤为关键。
3.1 软件仿真环境
处理机仿真软件选用Visual C++.Net,采用面向对象的类开发技术为主,将处理机仿真软件各个功能分别封装成类进行调用,图元显示软件采用专业的仪表仿真软件GL Studio。
GL Studio[12]是DISTI公司为仪表仿真软件开发提供的一套系统解决方案,用来创建实时、二维或三维、照片级的互动图形界面[13]。
用户可以利用其图形交互界面以所见即所得的方式来完成仪表面板的制作,通过代码编辑器调用GL Studio及Windows提供的API来完成仪表内图元的控制,因此,可以利用GL Studio实现图元显示软件的开发。GL Studio仿真仪表能被创建成可执行文件(.exe)、动态链接库(.dll)、ActiveX控件,可以很方便地用于模拟器的重构。
3.2 软件仿真架构的设计
根据仿真功能,可以将处理机软件划分为指令画面绘制类、逻辑控制类、数据处理类,系统软件架构如图2所示。在图2中,元件是指开关、按钮等某一器件,仅发出信号和状态。系统设计采用的C/S模式,描述了航电显控系统与图元显示软件的交互关系和交互方式,该系统在设计时兼容了显控硬件设备和纯虚拟显控设备2种研制模式。
图2 系统软件架构设计
处理机软件仿真包括利用指令进行绘制图元形成显示画面、键盘控制逻辑,以及与各个系统交联数据的运算处理。
指令是指用户自定义的图元绘制和控制接口。该指令包含指令代码和特征字。每调用完一个指令之后会将每个图元指令代号和图元特征以十六进制数存放在unsigned short数组中,形成指令帧。由网络模块通过UDP方式发送给图元显示软件。
键盘逻辑控制包括MFK、MFD周边键。按压键盘之后,将键盘的RS485信号和状态发送给测控中间件,该软件将接受的信号重新编码,形成新的协议发送给处理机仿真软件。与各个系统交联数据的运算处理主要是将系统输入的原始数据进行二次加工,通过计算产生飞行员等使用人员所关心的一些数据,以易读易交互的数据方式显示在图元显示软件上。
3.3 指令模型的构建
处理机软件绘制图元在显示软件上的画面时,通过调用指令来完成。处理机软件将构成画面的指令帧存储在数组_BUFF[2048]中。
指令帧的信息字段如表1所示。在表1中,每一个指令和指令数据(图元特征)都按顺序排列在数组中,当画面绘制完毕之后调用结束指令。根据显示画面的符号特征可以把图元指令分为通用指令和特殊指令。
表1 指令帧的信息字段
3.3.1 通用指令
通用指令用于绘制矩形、圆弧、直线等图形,绘制字母、数字、汉字和标点符号。
多功能显示器(MFD)以象素点为衡量单位,从上至下为0~1023;从左至右为0~767,显示器左上角为(0,0)点。因此,用指令描述图元坐标x,y时同样采用象素点,编码方式为二进制编码;字母、数字、汉字和标点符号的编号采用内码方式实现。字母、数字编码的低8位与ASCII码的码值相同,高8位为0。例如圆(弧)指令和字符显示指令,见表2和表3。
表2 圆(弧)指令
表3 字符显示指令
特征字的格式为0xXXXX(16 进制):
字号:为0,表示16号字体;为1,表示10号字体。
闪烁:为0,表示不闪烁,为1,表示闪烁。
颜色:根据需要自定义。
3.3.2 特殊指令
特殊图符指令:绘制特殊的图符。除通用图符以外的所有符号。需要一一定义图符的指令代码和特征描述,如图3飞行姿态所示,指令描述如表4所示。数据字1的单位为°,编码方式为二进制编码,最低位为0.1;数据字2的单位为°,编码方式为二进制编码,最低位为0.1。
图3 飞行姿态图符
表4 飞行姿态显示指令
3.4 图元显示软件的构建
图元显示软件利用GL Studio进行开发,通过接收处理机软件发送的绘制显示页面指令集,完成每一个图元的实时绘制和刷新,具体流程如图4所示。对于图元显示软件来说,所有的图元处理函数都在GL Studio动态库中完成,主要包括指令解析、通用图元处理算法和特殊图元处理算法。
图4 图元的构建
3.4.1 指令解析
任务处理机软件将页面绘制的所有指令转为16进制数后以字符串发送给GL Studio动态库,再在内部还原成short型数组iReBuffer[2048],此方法解决了GL Studio对外只提供Property交互方式,实现了只用一个属性完成大数据量的交互。图5是指令解析N-S算法的流程。字符串转换之后,通过遍历数组chReBuffer获得每一个指令及其特征数据,解析指令后调用绘制函数完成图元的绘制。
图5 指令解析N-S算法流程
3.4.2 图元处理
页面上显示的每一个图元都是利用指令数据(图元特征)进行计算处理后完成正确显示的。通用指令的图元是通过GL Studio提供的接口动态创建的;特定图元是通过加载贴图后,调用GL Studio提供的接口驱动。
通用指令通过定义各自的容器来存放,优点是可以动态存放不定数量的图元数据;容器是一个多功能的,能够操作多种数据结构和算法的模板类和函数库,可以很方便地处理其中的数据。
首先根据指令及数据定义数据结构,然后定义指令数据容器,将相同的图元数据存放在容器中(如字符串、航路点、航线等)。本文以字符图元和圆(弧)图元进行设计。
图元处理过程如图6所示。然后根据容器中图元的数据调用GL Studio提供的接口动态绘制图元、驱动图元显示或者运动,图元都存储在对象容器中。动态绘制图元流程如图7所示。再根据容器中图元的数据调用GL Studio提供的接口动态绘制图元、驱动图元显示或者运动,图元都存储在对象容器中。动态绘制图元流程如图7所示。
图6 图元处理过程
图7 动态绘制图元流程
4 仿真应用分析
该仿真方法已成功应用于某型飞机模拟器。处理机软件运行在Inter(R)Core(TM)2 CPU 4300@1.80 GHz、内存1 GB、显卡NVIDIA GeForce9300硬件条件下,图元显示软件运行在单板机上,图8和图9是该型模拟器显控运行部分的效果。定义指令帧unsigned short_BUFF[2048],经过对每一个页面指令帧分析发现,2048的空间足够显控系统图元数据的存储,在测试过程中结合了模拟器的飞行和武器操纵功能,图元驱动的实时性完全满足飞行训练需求。对图元较多较复杂的页面做分析,如表5所示。
图8 导航界面
图9 驾驶界面
表5 指令存储与图元驱动仿真时间
显控系统操作响应的实时性会严重影响模拟器的性能,进而影响飞行员训练的逼真度和效果。影响软件实时性的主要因素是处理机软件接受用户操作信号后,进行逻辑运算、组织显示画面的时间。由于显控系统画面复杂多变,因此逻辑关系的解算极其复杂,传统仿真方法是基于画面一一进行仿真,逻辑判断及嵌套很深,有时候一个菜单一个符号的改变都要作为一个画面进行制作驱动,很容易出现菜单或符号等重叠出现或者画面多次操作后显示不对。表6和表7给出了2种设计方式逻辑解算的效率。
表6 基于指令逻辑的处理时间
表7 基于画面逻辑的处理时间
该型显控仿真软件同时应用于该型直升机雷达仿真模拟器,无须改动指令和处理机软件,直接在图元显示软件上叠加雷达仿真视频,实现了软件重构,见图10。同样该显控仿真软件应用于别的机型时,通用指令和特殊指令的图元显示软件无需改变,只需要修改处理机软件,通过调用指令来组织新的画面。
图10 叠加雷达视频界面
5 结束语
针对现代飞机模拟器研制过程中显控系统仿真存在的局限性和不稳定性,本文综合考虑显控逻辑处理和图元显示构建,提出一种基于指令重构技术构建显控页面的方法,仿真实验及结果的定性定量分析表明,该方法有效地简化了系统仿真的过程,降低逻辑复杂度,提高了系统的稳定性和实时性,并且可以有效应对系统的变更。今后需要进一步对图元特征进行抽象,完善显控后台逻辑仿真方法,构建显控仿真通用平台。
[1]范天慈.机载综合显示系统[M].北京:国防工业出版社,2008.
[2]吴华兴,康凤举,黄 伟,等.基于虚拟现实环境的飞机显控系统软件仿真[J].系统仿真学报,2012,24(6):1232-1235.
[3]罗春波,沈为群,宋子善,飞行多功能显示器仿真系统的研究与实现[J].计算机仿真,2004,21(12):249-251.
[4]张凤鸣,褚文奎,樊晓光,等.综合模块化航空电子体系结构研究[J].电光与控制,2009,16(9):47-51.
[5]陈 曦,李国清,宋吉江,等.某型军机多功能显示系统的仿真[J].系统仿真学报,2006,18(S2):457-459.
[6]Heesbeen B W,Ruigrok W M.A Versatile Simulator Architecture Making Simulation of Multiple Complex Aircraft Simple[C]//Proc. of AIAA Modeling and Simulation Technologies Conference.Colorado,USA:[s.n.],2006:6477-6481.
[7]Jordan T L,Bailey R M.NASA Langley’s Airstar Testbed:A Subscale Flight Test Capability for Flight Dynamics and Control System Experiments[C]//Proc.of AIAA Guidance,Navigation and Control Conference and Exhibit.Honolulu,USA:[s.n.],2008:6660-6665.
[8]刘广达,黄其涛,韩俊伟.可重构研究用飞行模拟器设计[J].哈尔滨工程大学学报,2011,32(4):492-498.
[9]Wusk M S,Wusk M S.Aries Nasa Langley’s Airborne Research Facility[C]//Proc.of AIAA Aircraft Technology Integration and Operations Forum.Los Angeles,USA:[s.n.],2002:134-139.
[10]Jason R N,Patrick K.Rapid Prototyping of an Aircraft Model in an Object-oriented Simulation[C]//Proc.of AIAA Modeling and Simulation Technologies Conference and Exhibit.Austin,USA:[s.n.],2003:5816-5820.
[11]Liu H T.Interactive Design and Simulation Platform for Flight Vehicle Systems Development[C]//Proc.of AIAA Molding and Simulation Technologies Conference and Exhibit.San Francisco,USA:[s.n.],2006:6812-6828.
[12]北京华力创通科技有限公司.GL Studio:真实仪表面板开发平台[J].软件世界,2004,8(2):44-45.
[13]Distributed Simulation Technology Inc..Gl Studio User’s Guide Ver3.0[M].[S.l.]:Disti Inc.,2005.