(航天神舟飞行器有限公司天津300301)
摘要:在飞行仿真中,为了实现仿真的逼真性和降低实际费用,通常可采用模拟仪表或虚拟仪表来代替真实的航空仪表.虚拟仪表是将仪表显示在屏幕上,用屏幕代替飞机仪表盘,它具有价格低、更改方便等特点,近年来在飞机型号的概念设计和飞机仿真中得到广泛应用。
关键词:飞行仿真;虚拟航空仪表;生成技术
虚拟航空仪表显示系统的指导思想是建立一个模块化、面向对象的仿真系统。它提供一个控制模型,通过优化设计和飞行参数的具体分析和处理,可直接验证理论模型的准确程度,达到实时仿真的效果。主要用于地面训练模拟器上,实现航空仪表参数的显示、修改、读取、存储等功能。
一、发展虚拟航空仪表的意义
随着科技时代的到来,航空航天中计算机技术被广泛使用,飞行仿真作为仿真技术中的重要部分,对航空领域的发展意义重大。因为受客观环境的复杂多变性和其他不可控因素的影响,对飞行仿真技术的要求越来越高,虚拟航空仪表显示系统必须同时具备真实性、交互性、实时性,才能够面对突发和复杂的情况下发挥其巨大的功能,这也是目前飞行仿真技术研究和发展的方向。当前,世界各个国家都进行着以经济实力和科学技术为基础的综合国力的较量,伴随着日趋激烈的国际竞争,军事国防力量不可忽视,而飞行仿真技术在国家的国防领域则扮演着重要角色。在航空飞行演练学习中,飞行仿真技术被广泛的教授,同时这也是培养要素质飞行员的重要途径。在飞行中,计算机技术的使用,模拟飞行实验可以反复多次的进行,更方便了实验结果的分析,也节约了资金的投入。真实的物理模型被仿真模型所代替,大大提高了科研的质量和结果的分析能力。在军事训练和作战领域,少不了仿真技术的使用,因此加大对虚拟航空仪表显示系统的研究,显得尤为重要。面对日趋复杂的飞行环境和越来越艰巨的任务,加大飞行仿真中科学技术的投入,使得虚拟航空仪表显示系统更具科学化和专业化,对仿真技术的更新升级做好技术的支持和保障。
二、飞行仿真中虚拟航空仪表生成技术
1.开发平台简介。虚拟航空仪表系统开发工作主要集中在虚拟仪表的外观,指针,滚动显示数据条,警告等设计与制作,通讯接口的开发以及外设硬件的驱动三方面,虚拟仪表界面是虚拟仪表制作的主要工作,其界面的逼真度是影响虚拟仪表系统真实感的主要因素。同时,飞行模拟器虚拟仪表系统的开发应该保证具有一定的灵活性,平台的可移植性和良好的实时交互性,故而对系统软件开发环境提出了较高的要求。本系统开发采用PC机,Windows操作系统环境,GLStudio和VisualC++6.0开发平台,Photoshop图形处理软件。GLStudio能创建实时的、照片级的互动图形界面,提供了一个三维“所见即所得”的设计环境,其用户接口友好,建立的图片模型能生成C++和OpenGL源代码,这些源代码可以单独编译,也可嵌入其它应用中。其建模速度快、生成的C++代码可读性好,其良好的交互性是其它仿真软件不能比拟的。集成编程环境。它以其方便易用的AppWizard、ClassWizard以及丰富的可视化资源编辑工具而著称,特别适用于开发一些要求调整的大型应用软件,为大型工程项目的开发提供了强有力的工具。
2.系统功能模块描述。航空仪表是飞行器性能参数和导航参数显示的窗口,为飞行员提供飞行器飞行的信息。虚拟航空仪表应提供在功能上和外观上与真实飞行器尽可能相同的各仪表。主要包括飞行参数、导航参数、电气系统参数以发动机参数,并进行实时显示。虚拟座舱仪表系统采用条理清晰的、面向对象模块化结构的编程思想,模块应该具有独立性,各个模块之间尽量减少耦合,以实现程序的可移植性和可扩充性。虚拟座舱电子式仪表可划分为不同的功能单元,各功能单元既相互连接,又可独立工作。
3.系统功能模块。在整个仪表的开发过程中,主要分为4大设计过程,包括仿真仪表界面的开发、控件驱动方式定义、对按键消息的处理、外部网络通讯程序开发。开发仿真航空仪表执行文件的过程是一个交互循环的过程。首先建立GLStudioo与VC++编译器的连接,然后编辑图形界面,利用GLStudio的自动代码生成器产C++、OpenGL代码。如果界面不令人满意,则需要重新编译,修改和再次生成可执行文件。一是仪表界面开发对所要开发的机型座舱进行了解,是制作仿真仪表的基础。所做的虚拟仪表尺寸、颜色。外型、仪表功能、逻辑关系、报警指示、字体以及响应时间等都应该与真实座舱仪表一致。另外有一些仪表需要进行图象处理,则需要用等图象处理软件进行处理做成PNG格式纹理,使其更加接近真实座舱的仪表。在VC++环境下建立一个工程,建立主面板对象并为其添加纹理,把用户所有建立的图片模型建立Group。二是驱动显示。为了实现对仪表板中仪表指针、电门、旋钮等部件的控制,要在代码生成器中完成各部分的运动和响应关系。通过GLStudio和VC++混合编程,对虚拟座舱的驱动程序,在静态的画面基础上添加代码,使各个控件能实时动态的显示当前的直升机的各种飞行参数。驱动程序是在仪表内部实现描述的。主飞行显示器的空速、高度、垂直速度、导航显示器的垂直偏差刻度等为位置控制,即调用Location()程序编程来实现。PFD的姿态指示仪的俯仰刻度带、航向罗盘、导航显示器的航道指针等为旋转控制,即调用函数进行控制。而其它的所有信息,如风向、风速、读数窗口等为文本框方式,实时显示当前数据。以航向游标为例,介绍旋转的实现。用非常强大的API函数库,以罗盘刻度的圆周中心为中心,构造旋转所需的函数,在相应位置添加使游标对象旋转的回调函数,形成外部控制对象转动所用的接口函数。三是通讯接口的实现。飞行模拟器的仪表系统要与飞行模拟器的其他系统建立联系,才能达到要求。仪表系统重要同飞行动力学仿真系统进行数据交换。根据数据流图可以确定系统间的接口数据。仪表系统为飞行员营造了相对真实的座舱显示系统,而其仪表显示控制的驱动数据来自飞行动力学仿真系统。飞行动力学仿真系统为仪表系统提供位置数据,导航数据,发动机数据以及大气数据等,且对于数据的实时性要求较高。所以通信采用无连接的UDP形式,有仪表系控制驱动数据的采用。在本飞行模拟器演示系统中,虚拟航空仪表系统与飞行动力学仿真的接口数据多通道的数据通讯,所以相应的接口数据以结构体的形式定义为一种多元素的数组。由于函数是工作在阻塞模式下,如果此时没有数据到来,程序将停止等待,这样阻止了画面的生成。可以通过异步选择机制设计通讯接口,这样做有些麻烦,本文选择了显式控制套接字工作在非阻塞模式下。通过这中方式,即可把数据准确实时的接受过来,然后可以把这些数据传输到驱动参数里面,实现仪表画面驱动显示。四是生成仿真程序编译、链接、运行,可生成可执行文件和仿真程序。如果对测试的结果不满意,需要对仿真界面进行更改,只需返回界面重新绘制图形界面,然后重新编译运行即可。
本文研究了仪表仿真技术,在系统开发的全过程中实现了需求与设计一致性行,实现了需求验证和设计修改的快速、高效迭代,达到了优化设计过程、方便需求分析、降低开发成本的目的,在飞机、运输机和特种飞机的航空电子系统设计方面具备了相当的应用前景和潜力。
参考文献:
[1]高颖;邵亚楠;郑涛;GLStudio在飞行座舱模拟器中的仿真研究[J],弹箭与制导学报,2017(2):257–2601.
[2]刘国庆;李哲煜;某型飞机模拟训练器虚拟仪表系统的研究[J],微计算机信息2017年第26卷第6-1期.
[3]刘丽娇,基于GL-Studio的飞行虚拟座舱开发[D],哈尔滨工业大学,2016.