• 易迪拓培训,专注于微波、射频、天线设计工程师的培养
首页 > 测试测量 > 技术文章 > 基于VAPS虚拟仪表反走样设计仿真实现

基于VAPS虚拟仪表反走样设计仿真实现

录入:edatop.com    点击:

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

CRT显得越来越不适应飞机座舱显示系统现代化发展趋势,其缺点主要是采用的高压易引起问题,体积大、重量大。因此具有体积小、重量轻、可靠性好、在强烈阳光下仍清晰可辨的特点的有源矩阵彩色液晶显示器 AMLCD(Active Matrix Liquid Crystal Display)成为飞机综合显示器未来的发展方向,是实现飞机“玻璃座舱”和“大图像”的重要手段。该显示器在国际上于上世纪90年代开始装机,属第六代飞机座舱显示器。目前,新一代飞机,如美国的F-22和B-777、法国的“阵风”座舱显示系统都采用了AMLCD多功能显示器[1]。

我国的电子综合图形显示系统起步较晚,也引进过平视显示、综合显示器方面的技术和产品,随着仿真技术和飞行模拟技术的不断发展,电子综合图形显示系统也得到了一定的发展。但是,目前我国的综合图形显示技术仍落后于国外,大部分军用机和民用机仪表显示系统除直接装载国外的电子综合图形显示系统外,大都停留在机械仪表阶段,这使得发展我国自己的机载图形显示系统成为当务之急。

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轴增量的比较,依次点亮距离实际直线最近的像素,便可完成直线的绘制。

edatop.com

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

结合Bresenham算法的原理与直线的对称性, 便可得到改进的Bresenham 算法。其原理如下: 以直线中点为界,其两边是对称的。因此每进行一次判断便可生成对应于直线中点的2 个对称点。由于直线的生成是从两端向中间进行的,因此其运算量将减半,运算速度将加倍。在改进的Bresenham 算法中,直线段每向横轴方向前进一个像素单位,便沿纵轴方向在该线段两侧各绘制一个像素点,每个像素点都以绘制颜色的亮度乘以某个权作为实际亮度,每个像素点的权等于1 减去该像素点在纵轴方向上与理想线段之间的距离。如图2所示。与Bresenham 法用相同亮度的3个像素点绘制线段不同,改进算法中直线段是用亮度不同的3 对像素点来绘制。这样可使直线的生成速度和质量得到提高。

edatop.com

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

edatop.com

2.2 软件系统结构
为了得到虚拟仪表系统平滑的动画效果,本文采用了VAPS中使用的双缓存技术。双缓存技术就是把有效的帧分成相等的两份。例如,一个24帧的平台通常只有12个有效帧。当双缓存技术用于图像绘制模式时,可以先将图像绘制到后台缓冲区中,绘制结束后可以通过交换缓冲区,将后台缓冲区已经绘制好的图像直接发送到前台缓冲区,由系统显示功能完成屏幕的显示,此时下一帧的图像已经开始在后台缓冲区中绘制了。如此循环反复,屏幕上总可以显示已经绘制好的图像,而看不到绘制的过程,同时还可以提高系统的效率,实现动画的连续效果,有效避免或减轻仪表图形绘制过程中的走样变形。

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

edatop.com

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

edatop.com

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

edatop.com

3.3 数据采集器及连接布局实现
如果需要多个信号源集成后去驱动一个输出对象,那么这时就要用到采集器。采集器本质上是一些数字型或布尔型的逻辑表达式。使用采集器,可以通过数据通道接收来自多个信号源的数据,并把集成后的数据提供给只有一个输入的输出对象。完成数据通道文件和采集器文件的创建之后,需要把数据通道跟插件、数据通道跟采集器连接。其连接过程与插件与数据通道的连接过程相同。一切准备就绪后,可通过点击Window菜单下拉列表中的Docking Window,选择Connections子菜单项打开所有连接数据通道的信息,便于检查连接是否正确。若有错,可在Connections界面按数据通道的连接步骤直接修改连接。

3.4 状态转换仪表布局设计
VAPS应用程序的行为模型有两种:有限状态机FSM(Finite State Machine)和扩展转换网络ATN(Augmented Transition Network)。有限状态机模型是非线性模型,在构建交互式系统和界面时非常有用。扩展转换网络模型是建立在FSM基础上的,像FSM一样,ATN也是由一系列的状态和事件及转换弧组成的,但不同的是,在ATN中,增加了动作响应。这主要表现在三个方面:
(1)通过条件测试转换到新的状态。
(2)在转移弧上,执行响应可实现某些预期的功能。
(3)与FSM模型中的离散输入(事件)相对应,ATN模型中增加了离散输出(响应)。ATN模型如图7所示。

edatop.com

对马赫表进行ATN模型设计时,在初始化状态中加载前面设计好的框架。由初始化状态转换到运行状态即可,此过程中对应的事件为无事件(即No Event),之后应用程序在运行状态循环。ATN模型的构建有两种方法:采用外部C编程和在ATN状态栏填写数据表格,编译成功后把仪表对象等文件生成ANSI C代码。
完成 VAPS 界面设计、数据转换、管理指令及运行流程设定之后,需要在VAPS 运行环境中测试显示,产生虚拟仪表运行界面,如图8。在运行测试模块中,可进行动态、图形化的HMI 实时交互。通常在该模块中可不断完善仪表面板的设计显示测试工作。

edatop.com

在VAPS中,图形重绘的时间即系统中两个缓冲区交换时间是系统屏幕刷新周期的整数倍。在VAPS应用程序运行环境中必要时可选择no extra draw项来减少图形重绘次数。在Open GL环境下运行VAPS应用程序时反走样效果比较明显。其中要用到auxSwapBuffers()函数。图9、图10所示为反走样处理前后马赫/空速指示器表盘的效果图。 
4 虚拟仪表在大气数据系统调试
在上述基础上利用VC++6.0实现对虚拟仪表的调用和连接,使其构成一个完整的系统,在飞行模拟机中大气数据系统参数实现整个流程的模拟。并对整个系统进行功能和性能测试。图11所示为联调时仪表部分运行界面。

edatop.com

由调试与仿真设计可表明,应用区域采样法和改进的Bresenham 算法,通过使用VAPS完成对虚拟仪表设计,能够取得理想的反走样效果,消除由字符和线段产生的扭曲和锯齿变形,达到模拟机使用标准,能够在实际联机调试时取得理想效果。
参考文献
[1] 王行仁.飞行实时仿真系统及技术[M].北京:北京航空航天大学出版社,2002.
[2] 李皖玲.VAPS技术在载人航天器中MFD软件开发中的应用[J]. 航天器工程, 2008,17(5):70-76.
[3] 王大勇.基于VAPS的虚拟航空仪表的开发[D].哈尔滨: 哈尔滨工业大学,2005.
[4] GERI G A, WINTERBOTTOM M D. Effect of display resolution and antialiasing on the discrimination of simulated-aircraft orientation[J]. Display, 2005,26(4-5):159-169.
[5] 赵淑荣,罗云林.大气数据系统[M].北京:兵器工业出版社,2004.
[6] FENNELL N, HEMMENS S, MOODY M. Engineering flight simulator designed for human in the loop interaction [C].Proceedings  of the SETE2000 Conference,2000:8-10.
[7] 彭燕,许增增.基于VAPS的多功能仪表界面[J].兵工自动化, 2006,25(3):90-92.
[8] GIACOMINI D, BIANCOM E, MARTINO L, et al.A New fully integrated power module for three phase servo motor driver application[J].IEEE Industry:Appliacations Society, 2005(2):981-987.
[9] 贾荣珍,彭晓源,王行仁.飞行模拟器建模、验模和性能测试与评估[J].航空学报,1998,19(1):41-44.

点击浏览:矢量网络分析仪、频谱仪、示波器,使用操作培训教程

上一篇:基于PowerPC的小目标检测系统设计
下一篇:CAN总线网络测试研究

微波射频测量操作培训课程详情>>
射频和天线工程师培训课程详情>>

  网站地图