通过VAPS软件实现虚拟仪表设计与仿真

时间:2011-08-26

0  引言

  CRT显得越来越不适应飞机座舱显示系统现代化发展趋势,其缺点主要是采用的高压易引起问题,体积大、重量大。目前,新一代飞机,如美国的F-22和B-777、法国的“阵风”座舱显示系统都采用了AMLCD多功能显示器。

  飞机座舱综合显示系统中,飞行员看到的是一种用数字和图形形象地表示的综合信息,是把诸多由传感器送来的参数“融合”后的显示。为此,新一代座舱综合显示系统正朝着大屏幕、玻璃化方向发展。

1  反走样技术与设计环境

  “走样”是指在用计算机实时绘制图形时出现的计算机屏幕某些部分变形或出现锯齿的现象。这是因为在计算机上显示的图形是由一系列离散的、等亮度的点(像素)组成。“走样现象”的本质是用离散量表示连续量引起的失真。走样严重时会使图形走形。在飞机座舱仪表中,图形化的仪表界面在人机交互中具有非常重要的作用。如果座舱仪表出现严重的走样,会造成飞行员的误判,从而产生不利后果。在飞行模拟机中,同样也要避免计算机绘制仪表图形出现严重的走样,于是必须通过一些手段和方法来消除或者减轻走样,这就是所谓的“反走样”。

  常见的反走样方法有以下几种:(1)提高显示分辨率,即增加采样点数,使其接近或达到采样定理的要求;(2)对实际图形采样后,在显示之前进行后处理;(3)对二维函数进行二维滤波,关键是滤波函数的选取;(4)软件上采用双缓存技术。

  本文针对虚拟仪表显示中存在的主要问题进行改进,即当仪表刻度线和指针发生偏转时,线条扭曲、变形。运用VAPS软件结合区域采样技术和改进Bresenham反走样算法,实现画面显示质量的提高。

  VAPS环境下,虚拟航空仪表的设计与开发主要由两部分组成:VAPS应用程序的开发与外部应用程序的开发。虚拟仪表VAPS应用程序的开发是一个循环往复的过程,若在设定执行环境后运行结果不理想,需要返回到前面的过程中进行修改,然后再运行,再修改再运行。本文中要设计开发的大气系统仪表(气压高度表、马赫/空速指示器)都将按此流程进行设计开发。下面以气压高度表和马赫表为例,介绍虚拟航空仪表的反走样设计与仿真过程。

2  反走样原理与算法改进

2.1  硬件反走样技术

  直线段是机载显示系统中基本的图形,直线段显示的速度和质量直接影响着整个全罗盘系统仪表的效果。本文在Bresenham画线算法的基础上结合虚拟仪表的对称性提出了一种采用改进的Bresenham画线算法,借助FPGA的高集成度和高设计频率,建立一个直线绘制模块进行硬件反走样的方案。

  Bresenham 画线算法是计算机图形学领域中使用非常广泛的一种直线扫描转换算法。其算法原理如图1所示。设直线的斜率k=dy/dx,直线起点坐标为坐标原点。当0<k<1时,横轴(x轴)每向右移动一个像素单位,纵轴(y轴)便向上移动k个像素单位。此时把(1,1)和(1,0)两个像素点中距离实际直线近的像素点点亮:即当L1<1/2时,点亮像素点(1,0)(直线1);当L2<1/2时,点亮像素点(1,1)(直线2)。以后每向x轴前进一个像素单位,通过对y轴增量的比较,依次点亮距离实际直线近的像素,便可完成直线的绘制。

  Bresenham 算法在计算直线斜率和误差项时要用到浮点算术运算和除法。为了加快算法的速度,可以进行简单变换,把k=dy/dx放大dx倍,从而得到整数运算。Bresenham 算法由于采用增量计算,使得对于每一列,只要检查一个误差项的符号便可确定该列的所求像素,因而计算量小。

  结合Bresenham算法的原理与直线的对称性, 便可得到改进的Bresenham 算法。其原理如下: 以直线中点为界,其两边是对称的。与Bresenham 法用相同亮度的3个像素点绘制线段不同,改进算法中直线段是用亮度不同的3 对像素点来绘制。这样可使直线的生成速度和质量得到提高。

  依据此思路,采用改进的Bresenham 算法可以建立直线绘制模块、曲线绘制模块、多边形绘制模块等虚拟仪表部件。考虑到采用软件方案会大大增加CPU的开销,在显示复杂的仪表图像(如多功能显示器)时达不到实时性的要求,文中提出了采用集成度和设计频率更高的FPGA,这样便可以建立一个基于FPGA的直线快速绘制模块,进行反走样。基于这种思想,把绘制其他反走样图形的算法也设计成一个个模块,可以采用德州仪器或Altera公司的带嵌入CPU核的FPGA芯片,CPU调用各个子模块生成图形,并控制图像数据在FPGA中的帧存和对外输出显示,终建立一个基于FPGA的图形协助生成器,实现硬件反走样。图形协助生成器的硬件方案如图3所示。

2.2  软件系统结构

  为了得到虚拟仪表系统平滑的动画效果,本文采用了VAPS中使用的双缓存技术。双缓存技术就是把有效的帧分成相等的两份。如此循环反复,屏幕上总可以显示已经绘制好的图像,而看不到绘制的过程,同时还可以提高系统的效率,实现动画的连续效果,有效避免或减轻仪表图形绘制过程中的走样变形。

3  基于VAPS下的虚拟仪表的设计与仿真

3.1  绘制仪表布局设计

  虚拟航空仪表的尺寸、外形、动作行为应与真实航空仪表相同,才能够如实反映设计要求和效果。在绘制仪表布局前,应对所要绘制的航空仪表的基本部件构成有所熟悉。图4给出了B737-300座舱中高度表的基本部件结构图。

  高度表的设计工作区如图5所示。仪表外观设计好后,可保存为“*.FRM”文件。同时选中工程,单击工作区上方工具栏中的“→”图标或文件菜单下的运行项可运行测试设计好的虚拟仪表的外观是否满足要求,若效果不好需返回工程中修改。

3.2  连接仪表布局设计

  数据通道是一些进行数据缓存的数据结构,是输入输出部件间进行数据交换的纽带。在VAPS中,数据通道的类型可分为三种:Local common、Session common、Simulation。图6为高度表数据通道。

3.3  数据采集器及连接布局实现

  如果需要多个信号源集成后去驱动一个输出对象,那么这时就要用到采集器。采集器本质上是一些数字型或布尔型的逻辑表达式。其连接过程与插件与数据通道的连接过程相同。一切准备就绪后,可通过点击Window菜单下拉列表中的Docking Window,选择Connections子菜单项打开所有连接数据通道的信息,便于检查连接是否正确。

3.4  状态转换仪表布局设计

  VAPS应用程序的行为模型有两种:有限状态机FSM(Finite State Machine)和扩展转换网络ATN(Augmented Transition Network)。有限状态机模型是非线性模型,在构建交互式系统和界面时非常有用。扩展转换网络模型是建立在FSM基础上的,像FSM一样,ATN也是由一系列的状态和事件及转换弧组成的,但不同的是,在ATN中,增加了动作响应。这主要表现在三个方面:

  (1)通过条件测试转换到新的状态。

  (2)在转移弧上,执行响应可实现某些预期的功能。

  (3)与FSM模型中的离散输入(事件)相对应,ATN模型中增加了离散输出(响应)。ATN模型如图7所示。


  对马赫表进行ATN模型设计时,在初始化状态中加载前面设计好的框架。由初始化状态转换到运行状态即可,此过程中对应的事件为无事件(即No Event),之后应用程序在运行状态循环。ATN模型的构建有两种方法:采用外部C编程和在ATN状态栏填写数据表格,编译成功后把仪表对象等文件生成ANSI C代码。

  完成 VAPS 界面设计、数据转换、管理指令及运行流程设定之后,需要在VAPS 运行环境中测试显示,产生虚拟仪表运行界面,如图8。在运行测试模块中,可进行动态、图形化的HMI 实时交互。通常在该模块中可不断完善仪表面板的设计显示测试工作。


  在VAPS中,图形重绘的时间即系统中两个缓冲区交换时间是系统屏幕刷新周期的整数倍。其中要用到auxSwapBuffers()函数。图9、图10所示为反走样处理前后马赫/空速指示器表盘的效果图。

4  虚拟仪表在大气数据系统调试

  在上述基础上利用VC++6.0实现对虚拟仪表的调用和连接,使其构成一个完整的系统,在飞行模拟机中大气数据系统参数实现整个流程的模拟。并对整个系统进行功能和性能测试。图11所示为联调时仪表部分运行界面。

  由调试与仿真设计可表明,应用区域采样法和改进的Bresenham 算法,通过使用VAPS完成对虚拟仪表设计,能够取得理想的反走样效果,消除由字符和线段产生的扭曲和锯齿变形,达到模拟机使用标准,能够在实际联机调试时取得理想效果。


  
上一篇:一种应对智能计量需求的平台设计和实现
下一篇:简析手机发射功率

免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。

相关技术资料