航空仪表的仿真方法研究

2021-03-24 03:26王述运刘剑超岳付昌
数字技术与应用 2021年1期
关键词:高度表指针模拟器

王述运 刘剑超 岳付昌

(海军航空大学教练机模拟训练中心,辽宁葫芦岛 125001)

0 引言

航空仪表是飞行模拟器重要的组成部分,飞行员在驾驶飞机过程中的各种飞行参数、导航参数和电气系统参数等都是通过航空仪表来获取的,在感观上,航空仪表或者说是图形仪表为飞行员提供与真实飞行环境一致的仪表环境,并且,图形仪表与视景系统、人感系统等其它系统相配合,模拟出飞机的飞行环境,使得驾驶员能够快速地获得最有用的飞行信息,从而更加有效地操纵和管理整个飞行控制系统。

随着科学技术及工业的快速发展,飞机上采用的仪表结构和形式也越来越多,机械式和电气式仪表作为可靠性较强的显示方式依然存在,但伺服系统式、数字化和综合显示的电子式仪表越来越多,这些科技含量大的仪表制作精密、原理及结构复杂、控制信号多样化、成本高,考虑到诸多因素,飞行模拟器一般不会直接应用这些高昂精细的仪表。因此,航空仪表的仿真方法研究是模拟器研制过程中的一个重要环节。本文以某型飞机飞行模拟器为介绍对象,总结近年来航空仪表仿真方法和思路。

1 航空仪表分类

根据航空仪表模拟仿真方法,结合飞行模拟器具体的通信协议和仪表的改装程度,航空仪表的仿真方式大致可以分为以下三种类型:实装仪表、虚拟仪表和半实物仿真仪表[1]。

1.1 实装仪表

实装仪表就是将飞机上的真实仪表指示器原封不动地安装到飞行模拟器上,在实际应用过程中,有些个别仪表可能会做一些微小的改动,例如航空时钟、伏安表指示器等。如果飞行模拟器采用与飞机相同的总线接口时,就可以将飞机上的电子式仪表直接在模拟器上使用,但这样造价比较高。

1.2 虚拟仪表

虚拟仪表,也就是仪表本身带有输入输出的能力,仪表上有按钮、旋钮、标度尺、图形等功能,它主要是将计算机虚拟技术和仪器仪表技术结合起来,使得仪表所有功能在显示器上显示出来,可以将一块仪表进行虚拟,也可以将多块仪表同时虚拟到一台显示器上,如果单台仪表虚拟,仪表模板空洞处露出要显示的虚拟仪表,比如虚拟空速表、地评议表等,除了仿真仪表外壳外,所有的显示单元皆由计算机图形绘制。虚拟仪表的推广,使得飞行模拟器相关设备件越来越简单,在仪表仿真领域得到了极其广泛的应用。但不管图形界面做的如何逼真,虚拟仪表也不可能完全替代真实仪表,与真实仪表之间总是存在一定差距的,因此在实际飞行训练中,仍存在一定的局限性。

1.3 半实物仿真仪表

半实物仿真仪表,又叫模拟仪表。这类仪表的指针和刻度盘等指示部分以及外壳都与真实仪表一样,但其内部的结构和工作原理则完全不同,如模拟应急地平仪,里面并无陀螺,模拟进气压力表中并无膜盒。半实物仿真仪表的造价和制作难度要比虚拟仪表高得多,但它解决了虚拟仪表与真实仪表在感官上存在差距的问题。同时通过半实物仿真仪表的训练,可以使没有飞行经历的新学员,快速地沉浸到飞行环境中,建立正确的直观印象,确保模拟飞行训练的真实性和实效性。

2 航空仪表的仿真方法

航空仪表的仿真,要依托于多种技术并借助许多软件工具方能完成,其开发工作主要集中在仿真仪表指针、滚动、旋转显示数据条、警告等设计与制作,外观需要高仿机械设计制作,另外,通讯接口的开发以及外设硬件的驱动也非常重要[2]。

2.1 实装仪表的仿真方法

实装仪表的仿真主要有两个途径:一是将飞机上的真实仪表原封不动地安装到飞行模拟器上,仪表本身不做任何改动,比如航空时钟。二是只利用其仪表指示器,根据指示器的工作原理设计电路直接驱动,比如伏安表和气缸头温度表等一些电流、电压式仪表。这类仪表的仿真相对比较简单,这里不做过多的阐述。

2.2 虚拟仪表的仿真方法

虚拟仪表的开发平台一般是在Windows系统下,利用Visual C++开发环境,采用Flash、GL Studio以及Open GL等虚拟仿真技术。开发流程图如图1 所示。

本文在绘制仪表时,采用了Open GL纹理映射技术。利用Open GL纹理映射功能,能够清晰的绘制出用来描述表表面各点处的反射属性,从而达到模拟仪表表面丰富的纹理细节的目的,提高计算机生成图形的真实性,这样做的目的,使得仪表建模过程变得更加简化。使用纹理绘制的一般步骤为[3]:定义纹理贴图、控制纹理、说明纹理贴图方式和定义纹理坐标等。

图1 虚拟仪表软件开发流程图Fig.1 Flow chart of virtual instrument software development

虚拟仪表在绘制前要对其进行拆分,就是根据其显示功能将一块仪表拆分为多个能够独立显示的纹理单元,每个纹理单元由两张纹理贴图组成:掩码图和元素图。比如高度表指示器可拆分为表盘、条纹、告警旗、指针和滚动数字五个纹理单元。

表盘的绘制过程如下:首先准备两张图片,如图2和图3所示。图2为高度表的表盘掩码图,透明部分为白色RGB(0xff,0xff,0xff),非透明部分为黑色RGB(0x00,0x00,0x00);图3为高度表的表盘元素图,透明部分为黑色RGB(0x00,0x00,0x00)。将图2与背景图进行“与”运算(GL_AND),图3与背景图进行“或”运算(GL_OR),即可完成高度表表盘的显示。表盘的显示效果如图4 所示。指针等其它纹理的绘制方法与表盘的绘制方法相同。一只完整高度表的显示效果图如图5所示。

虚拟仪表中仪表模板的设计与布局必须同时兼顾真实仪表的外形尺寸、真实仪表在座舱面板上的位置、显示器可用区域尺寸及仪表模板上安装的调节旋钮和按钮空间尺寸等因素。对于难以调整的仪表,可结合总体布局效果,对其尺寸和位置的可作微小的调整,但必须不能破坏座舱仪表板原有布局,调整后的整体视觉效果不能与原仪表板视觉效果有太大的差距。虚拟仪表运行效果图如图6所示。

图2 高度表表盘掩码图Fig.2 Mask diagram of altimeter dial

图3 高度表表盘元素图Fig.3 Altimeter dial element diagram

图4 高度表表盘显示效果图Fig.4 Display effect of altimeter dial

图5 高度表显示效果图Fig.5 Display effect of altimeter

图6 虚拟仪表运行效果图Fig.6 Operation effect of virtual instrument

图7 虚拟仪表维护界面图Fig.7 Virtual instrument maintenance interface

绘制纹理贴图的控制参数主要由6个要素构成,分别为初始位置坐标、初始缩放系数、初始旋转角度、实时位置坐标、实时缩放系数和实时旋转角度。其中,初始位置坐标、初始缩放系数和初始旋转角度均来源于原仪表,其大小尺寸等数据由专业软件根据各块仪表在模拟仪表板上的位置和大小测试得出,并以文件的形式存于磁盘,纹理的实时位置坐标、实时缩放系数和实时旋转角度信号则由主控计算机通过网络给出。虚拟仪表的维护界面如图7所示。

2.3 半实物仿真仪表的实现方法

所谓半实物仿真,就是将控制器(实物)与在计算机上实现的控制对象的仿真模型(见数学仿真)联接在一起进行试验的技术[4]。半实物仿真仪表的实现,主要包括以下几个方面的内容:

(1)利用专业软件和工具对实装仪表的外形尺寸进行测量,制作出与实装仪表相同的表壳、表盘和指针等部件;

(2)熟悉实装仪表功能和原理技术,设计其内部结构;

(3)掌握实装仪表的指示特点,并根据这些特点,设计仪表驱动程序,重点考虑的是仪表指示的跟随性和精度;

图8 加速度表仿真外形图Fig.8 Simulation outline of accelerometer

图9 加速度表控制结构框图Fig.9 Control structure block diagram of accelerometer

图10 上位机控制软件流程图Fig.10 Flow chart of upper computer control software

(4)通过上位机控制指针转动的角度和速度,来模拟真实仪表的指示情况。

半实物仿真仪表的实现方法,一般采用电机驱动技术,即由步进/伺服电机构成位置伺服系统,本文以加速度表为例,说明半实物仿真仪表的设计思路。加速度表外形如图8 所示。加速度表的仿真控制, 实质是一套基于CAN总线的步进电机位置伺服控制系统。结构框图如图9所示。

步进电机控制器收到上位机发来的角度信号后,产生脉冲信号,送到专用的步进电机驱动器,驱动电机带动指针转动到相应角度。由角位移传感器产生反馈信号,可消除因步进电机丢步所造成的仪表指示上的误差。另外为了提高仪表的指示精度,可采用加装减速箱、增加驱动器的细分倍数等途径来实现。

步进电机控制器通过接收上位机的指令,实现对仪表指针转动方向、频率和角度的控制。上位机采用V C++编程,程序流程图如图10所示。

3 结语

本文以某型飞机飞行模拟器的研制为例,介绍了航空仪表仿真的一些常用方法:实装仿真、虚拟仿真和半实物仿真。通过试飞验证,该模拟器的仪表仿真系统具有良好的实时性、稳定性和可维护性,其跟随性和指示精度也完全符合真实仪表的性能指标,在功能和外观上能够逼真地仿真该型飞机的各类仪表,完全能够满足模拟飞行训练的要求。

猜你喜欢
高度表指针模拟器
了不起的安检模拟器
盲盒模拟器
划船模拟器
An useful fight
捷联惯性/天文/雷达高度表组合导航
无线电高度表实时飞控半实物仿真技术研究
SINS/GPS/SST/高度表组合导航系统异步融合算法
基于改进Hough变换和BP网络的指针仪表识别
动态飞行模拟器及其发展概述
ARM Cortex—MO/MO+单片机的指针变量替换方法