关键词:直升机;三维视景仿真;座舱仪表;实现
开发一套直升机飞行视景仿真系统为目的,提出了一种基于Muhigen Creator和Vega软件的三维视景仿真系统解决方案。利用三维图形开发软件Creator对座舱仪表模型进行可视化建模,使用自由度设置(DOF)技术实现仪表指针的动态交互。将模型加载到Vega的环境中,在VC++环境下,基于MFC实现了仪表的驱动程序,给出了具体的实现方法,设计了座舱仪表仿真界面。最后在Vega场景中仿真直升机的飞行状态,直观形象地反映直升机的飞行特性。实际仿真显示,该视景系统的仿真效果形象逼真。
一、座舱仪表建模
在座舱视景仿真过程中,动态平显画面是操作人员与实时飞行视景交互信息的一个重要窗口。动态仪表通过数据接口实时接收飞机状态数据并不断更新当前的显示。图2为最后实现的动态平显模型,中间为地平仪和姿态线,左侧为飞行速度显示,右侧为高度显示,顶部为航向显示,底部为滚转显示。
1.仪表指针的构建。Creator中并没有提供创建好的指针模型,但指针在仪表仿真系统中起到指示当前飞行状态参数的作用,是不可或缺的一部分。在设计过程中,使用Polygon工具制作一个三角形来代表指针。设计指针的关键是确定指针的大小、背景、框架等元素,具体可以通过设置“Colors”、“Drawing”、“Shade”和“Other”选项来定义指针的外观。
2.数据框的构建。为了直观地了解飞机当前的状态,在实时动态交互时需要设计数据框来显示飞机当前的速度和高度等相关数据。具体实现步骤如下:(1)制作外框。制作外框的关键是确定外框的大小、背景、颜色等参数,设置在“FACE Attributes”对话框中进行。主要包括:“Colors”、“Drawing”、“Shade”和“Other”等选项。(2)显示数据。实现数据框内数据显示的关键在于确定数据的类型,数据显示的位置,字体颜色、背景以及数据显示的范围。相关的设置在“Text Attributes”对话框中进行。主要包括:“Colors”、“Drawing”、“Justify”、“Shade”和“Numeric”等选项。“Numeric”项中“Value”为其初始值。
3.构建矩形量表(Vertical Gauge)。设计矩形量表首先要设定量表的主要参数,如量表的大小、背景、刻度标尺等。具体通过设置“Gauge Background”、“Gauge Outline”、“Colors”和“Margin”选项来定义量表面板的背景、外框、颜色和刻度标尺与矩形量表边框的距离。设置“Major Division”选项可以在量表上显示主要刻度。完成主要布局后,就可以在其中加入数字和其他标签,设置主要在“Number Layout”区域中进行。由于高度表、速度表和航向表都只能在一定的可视区域内显示数据,所以在量表的设置中要进行局部可视化处理,设置主要在“Clip Attributes”对话框进行。
4.构建机载量表(Pitch Ladder)。机载量表(Pitch Ladder)是各种飞行器座舱最常见的仪表,通常用于显示飞机的俯仰角和倾斜角。机载量表的主要设置都在仪表面板模块提供的机载量表窗口中进行。量表的大小指针和垂直标尺由“Gauge Size”、“Bank Point Size”和“Spacing”复选项控制。“Mask”、“Sky/Ground”、“Bank Tape”、“Perspective Line”和“Water Line Mark”复选框则分别控制机载量表相应的组成元素。“Outline”选项用于显示标尺可视范围和遮罩外框。机载量表的模型对象主要由3个组节点构成。机载量表在层级数据库的局部图,其中:916组节点包含了。308体节点,对应机载量表的偏转标尺;g15组节点对应机载量表的偏转角度指针,被放置在dofroll节点下,该节点是一个LOD节点,可以控制指针的偏转,具有绕自身Y轴旋转的自由度;g341组节点对应机载量表的垂直标尺,被放置在dofpitch节点下,该节点也是一个LOD节点,可以控制垂直标尺的俯、仰角度,具有绕自身x轴旋转的自由度。此外,dofpitch节点又是dofroll节点的子节点,所以垂直标尺可以跟偏转角度指针一样进行相应的偏转,从而实现预期的效果。
5.DOF节点的设置。仪表的仿真模型使用专业的三维建模软件Creator,根据实际飞行状态建立模型,在仿真过程中需要的参数包括飞机的高度、速度、俯仰角、倾斜角和航向角。飞机仪表的各个部分能够独立运动必须应用Creator的DOF技术。本系统根据实际情况,设置了5个DOF节点,而这些节点在建模的同时进行设置。
二、飞行视景系统的实现
1.Lynx的实时控制。Lynx是用来设定和预览Vega应用程序的图形式用户界面。Lynx封装了所有的Vega基本类。用户可以不涉及Vega代码的编程仅通过设置相关参数实现实时驱动的效果,如显示通道、视点、特殊效果、时间尺度等,并能将上述改变映射到Vega实时环境下。此外,Lynx具有良好的开放性,用户可以根据自己的特殊需求赋予系统新的功能。
2.Vega对飞行视景的驱动。(1)仪表DOF节点的控制,为了真实模拟场景运动体的动态效果,如前进、后退、拐弯、俯仰和倾斜等,在平显模型组结点下分别设置了5个DOF节点,每一节点控制一个自由度动作。Vega中提供了控制DOF节点的API函数,因此用户可以通过节点直接利用相应的API函数来控制仪表系统的相关部件。下面以调用DOF节点的部分代码为例加以说明:
/*开关节点可以控制滚转、高度和速度是否运行*/
/*描绘文本控制滚转、高度和速度的数据显示*/
vgSym DOFMin(rollDOF,VGSYMDOF—H,一180);
/*自由度节点的最小自由度*/
vgSymDOFMax(rollDOF,VGSYMDOF—H,+1 80);
/*自由度节点的最大自由度*/
vgSymDOFCur(pitchDOF,VGSYMDOF—H,P*0.1);
.......
/*5个自由度的运动方向和运动速率*/
(2)仪表驱动的设计。直升机座舱仪表属于指针式仪表的一种特殊情况,其标尺只能在一定的可视区域内可见,超出可视区域以外是不可见的。座舱仪表和平显的可视化驱动通过Clip节点、DOF节点和Switch节点综合作用实现。其中,使用DOF节点控制地平仪或平显标尺的上下移动及左右旋转,通过Clip节点确定座舱仪表的可视范围,通过Switch节点确定座舱仪表各节点的开关状态。由于仪表模型的创建和DOF节点的设置具有相似性,以速度仪表驱动的部分代码为例进行说明:
VgSymDOF*speedDOF;
float speed=100;/*初始速度100*/
speedDOF=(VgSymDOF*)VgSymFindNode(sym,“dofairspeed”,NULL);/*找到dofairspeed节点*/
……/*编写代码在层次数据库中找到驱动所需的仪表
节点,例如:平显节点,开关节点*/
vgGetPosVec(pos,&x,&y,&z,&heading,&pitch,&roll);
/*外部输入的数据通过驱动程序实时控制仪*/
VgSymDOFCur(speedDOF,VGSYMDOF—Y,17.5一speed*
0.01);/*速度节点的运动方向和运动速率*/
vgSymSwitchMasklndex(speedSwitch,(int)(speed。
0.01));/*使标尺在可视范围内显示*/
图3给出了仪表在VEGA中仿真的程序运行效果截图。
图3 直升机飞行时的平显视图
通过运用虚拟现实技术,三维建模软件Muhigen Creator和仿真开发软件Vega对直升机座舱仪表显示及视景进行实时仿真,实现了对各种飞行姿态的实时仿真模拟、座舱仪表对当前飞行状态的实时显示两项功能,具有良好的逼真性和沉浸感。该系统应用于实际直升机控制系统的半实物仿真中,取得了很好的效果。
参考文献:
[1]田鹏.基于Vega的直升机视景仿真技术研究与实现.2017.
[2]张蓉.浅谈直升机视景仿真及座舱仪表显示系统实现.2017.
论文作者:伍孟迪1,王晓乐2,代艳青3
论文发表刊物:《防护工程》2018年第31期
论文发表时间:2019/1/15
标签:节点论文; 仪表论文; 座舱论文; 量表论文; 标尺论文; 直升机论文; 自由度论文; 《防护工程》2018年第31期论文;