(航空工业太原航空仪表有限公司电子系统研究所)
摘要:虚拟航空仪表系统是当前飞行仿真中重要的组成部分,为此研究人员应当增强到对其的研究力度,这对国家飞行器行业的发展有着十分重要的作用。文章对虚拟航空防仪表的意义进行了简述,同时讲解了航空仪表的类型以及系统的具体情况,望能对我国飞行仿真技术做出一定的贡献。
关键字:虚拟仪表;航空仪表;飞行仿真
1、前言
在飞行仿真的过程中,为了实现其的逼真性以及降低到所需要投入的资金,可以采用到模拟仪表来代替到真实的航空仪表。虚拟仪表指的是把仪表显示在屏幕上面然后用屏幕来代替到飞行所需的仪表盘,其具有了更改方便以及价格低等的优点,在飞机型号的概念以及飞行仿真中得到了较为广泛的应用。
2、发展虚拟航空仪表的意义
随着科技时代的到来,航空航天中计算机技术被广泛使用,飞行仿真作为仿真技术中的重要部分,对航空领域的发展意义重大。因为受客观环境的复杂多变性和其他不可控因素的影响,对飞行仿真技术的要求越来越高,虚拟航空仪表显示系统必须同时具备真实性、交互性、实时性,才能够面对突发和复杂的情况下发挥其巨大的功能,这也是目前飞行仿真技术研究和发展的方向。当前,世界各个国家都进行着以经济实力和科学技术为基础的综合国力的较量,伴随着日趋激烈的国际竞争,军事国防力量不可忽视,而飞行仿真技术在国家的国防领域则扮演着重要角色。在航空军队院校的飞行演练学习中,飞行仿真技术被广泛的教授,同时这也是培养要素质飞行员的重要途径。在飞行中,计算机技术的使用,模拟飞行实验可以反复多次的进行,更方便了实验结果的分析,也节约了资金的投入。真实的物理模型被仿真模型所代替,大大提高了科研的质量和结果的分析能力。在军事训练和作战领域,少不了仿真技术的使用,因此加大对虚拟航空仪表显示系统的研究,显得尤为重要。面对日趋复杂的飞行环境和越来越艰巨的任务,加大飞行仿真中科学技术的投入,使得虚拟航空仪表显示系统更具科学化和专业化,对仿真技术的更新升级做好技术的支持和保障。
3、开发平台简介
虚拟航空仪表系统开发工作主要集中在虚拟仪表的外观,指针,滚动显示数据条,警告等设计与制作,通讯接口的开发以及外设硬件的驱动三方面,虚拟仪表界面是虚拟仪表制作的主要工作,其界面的逼真度是影响虚拟仪表系统真实感的主要因素。同时,飞行模拟器虚拟仪表系统的开发应该保证具有一定的灵活性, 平台的可移植性和良好的实时交互性,故而对系统软件开发环境提出了较高的要求。
4、虚拟航空仪表系统功能实现
4.1、系统功能模块
描述航空仪表是飞行器性能参数和导航参数显示的窗口,为飞行员提供飞行器飞行的信息。虚拟航空仪表应提供在功能上和外观上与真实飞行器尽可能相同的各仪表。主要包括飞行参数、导航参数、电气系统参数以发动机参数,并进行实时显示。虚拟座舱仪表系统采用条理清晰的、面向对象模块化结构的编程思想,模块应该具有独立性, 各个模块之间尽量减少耦合, 以实现程序的可移植性和可扩充性。虚拟座舱电子式仪表可划分为不同的功能单元, 各功能单元既相互连接,又可独立工作。
4.2、系统功能模块
实现在整个仪表的开发过程中,主要分为4大设计过程,包括仿真仪表界面的开发、控件驱动方式定义、对按键消息的处理、外部网络通讯程序开发。开发仿真航空仪表执行文件的过程是一个交互循环的过程。首先建立GLStudioo与VC++编译器的连接,然后编辑图形界面,利用GLStudio的自动代码生成器产C++、OpenGL代码。如果界面不令人满意,则需要重新编译,修改和再次生成可执行文件。
5、用 CoyrPhaeus软件生成仪表模型
Coryphaeus软件是美国Centric软件公司开发的实时三维视景仿真软件.它将先进的仿真功能和易用工具相结合,为研究人员提供了一个快速、方便地建立、编辑和驱动复杂应用的环境,能显著地提高工作效率,同时在幅度减少源代码开发工作。Coryphaeus软件主要包括三大功能模块:DWB、EasyScene和Easyterrain。DWB是Coryphaeus软件中用来进行三维建模的环境,通过它可使研究人员快速地产生编辑动态、全交互式的模型、场景和仪表。在这里,我们通过SGIONYX2平台的DWB模块生成了几种航空仪表的三维模型和相关的纹理库,并利用DWB提供的OpenGL生成器产生C代码供PC机开发使用。
5.1、仪表的三维建模
根据真实的仪表外形尺寸,并考虑到在PC机上开发虚拟仪表是从正面观察,我们简化了模型,使整个仪表只产生仪表正面板,和看得见的活动部件(指针、数码盘等)。
指针位于面板前部,数码盘等部件位于面板后部,通过面板的透明纹理使其可见。通过简化,达到用最少的面表示仪表的几何结构,这样在转化成C代码时,就可以提高在PC机上运行时的图形显示速度。
5.2、纹理生成
利用DWB的纹理编辑器对拍摄的仪表照片进行图象扫描、图象处理和透明处理,给定合适的尺寸(图象的长、宽为2的指数)。最后将纹理图象文件格式转换成RGBA格式,供开发时使用。
5.3、生成OpenGLC代码
利用DWB里的OpenGL生成器,将所要用的仪表三维模型转换成C代码。注意,目前Coryphaeus4.0版软件所提供的OpenGL生成器只能将三维模型中的面、线、点及颜色转换成C代码,而模型中面上所粘贴的纹理是无法转换的。
6、用OpenGL来显示和驱动虚拟仪表
6.1、OpenGL在Windows下的工作原理
具有Windows编程经验的人都知道,在Windows下用GDI作图必须通过设备上下文(DeviceContext简写DC)调用相应的函数;用OpenGL作图也是类似,OpenGL函数是通过“渲染上下文"(RenderingContext简写RC)完成三维图形的绘制。Windows下的窗口和设备上下文支持“位图格式"(PixelFormat)属性,和RC有着位图结构,上的一致.只要在创建RC时与一个DC建立联系(RC也只能通过已经建立了位图格式的DC来创建),OpenGL的函数就可以通过RC对应的DC画到相应的显示设备上。这里还有以下需要注意的方面:1.一个线程只能拥有一个渲染上下文,也就是说,用户如果在一个线程内对不同设备作图,只能通过更换与RC对应的DC来完成,而RC在线程中保持不变。(当然,删除旧的RC后再创建新的是可以的)与此对应,一个RC也只能属于一个线程,不能被不同线程同时共享;2.设定DC位图格式等于设定了相应的窗口的位图格式,并且DC和窗口的位图格式一旦确定就不能再改变.这一点只能期望以后的Windows版本改进了;3.一个RC虽然可以更换DC,在任何时刻只能利用一个DC(这个DC称为RC的当前DC),但由于一个窗口可以让多个DC作图,从而可以让多个线程利用多个RC在该窗口上执行OpenGL操作。
6.2、编程的步骤
经过上面的分析,用VC来调用OpenGL作图的方法就很显然了。步骤如下:先设置显示设备DC的位图格式(PixelFormat)属性。这通过填充一个PixelFormatDescriptor的结构来完成(关于PixelFormatDescriptor中各项数据的意义,请参照VC的帮助信息),该结构决定了OpenGL作图的物理设备的属性,比如该结构中的数据项dwflags中PFD-DoubleBuffer位如果没有设置(置1),那末通过该设备的DC。上作图的OpenGL命令就不可能使用双缓冲来做动画。有一些位图格式(PixelFormat)是DC支持的,而有一些DC就不支持了。所以程序必须先用ChoosePixelFormat来选择DC所支持的与指定位图格式最接近的位图格式,然后用SetPixelFormat设置DC的位图格式。
7、结束语
由上可知,飞行系统是一个较为复杂的控制系统,其具有了强烈的非线性。为此研究人员在今后的工作中应当增强到对虚拟航空仪表现实系统的研究,不断对其进行完善以及创新,增大对科技的投入,才能有效提高到飞行仿真的效果,从而为我国的航空领域做出一定的贡献。
参考文献:
[1]陈又军. 基于AVR单片机的航空仪表仿真系统设计[J]. 电子测量技术, 2019(7).
[2]马学条, 程知群, 周涛,等. 飞行器电磁散射特性分析的虚拟仿真实验建设[J]. 实验室研究与探索, 2019(8):148-151.
[3]李莉, 李华. 虚拟仿真技术在煤矿安全培训中的应用[J]. 黑龙江科学, 2019(16).
[4]谭力恒, 马强, 蒋秉川,等. 面向头盔式虚拟现实的OsgEarth立体视觉生成方法%OsgEarth Stereoscopic Vision Generation Method for HMD-based Virtual Reality[J]. 系统仿真学报, 2019(7).
[5]张国庆, 杨庆祥, 黄燃东,等. 航空活塞发动机气缸磨损诊断虚拟仿真实验教学项目建设与探讨[J]. 安阳工学院学报, 2019(6):10-12.
[6]管桐, 叶军涛, 马光辉,等. 面向双眼皮虚拟手术的三维网格编辑技术[J]. 系统仿真学报, 2019(3).