基于P3D的飞机飞行航迹数据回放演示程序设计

2020-02-18 05:25马腾达
教育教学论坛 2020年5期
关键词:进度条飞行数据航迹

马腾达

(中国民航大学 电子信息与自动化学院,天津 300300)

一、引言

在传统的飞机飞控系统教学中,通常采用Matlab等软件对飞行控制律进行仿真,以曲线形式显示飞机的姿态、舵面等数据,这种演示方式直观性不强,学生的学习难度较大。在现代教学中,虚拟仿真作为一种直观有效的教学手段,能够使用更少的资金投入,使学生们获得更加真实的教学体验[1]。文献[2-4]分别基于不同的虚拟平台对航迹回放展开了研究。本项目利用虚拟仿真技术,基于P3D平台,设计了飞机飞行航迹数据回放演示程序。本程序能够在P3D虚拟场景中将飞行航迹数据利用虚拟飞机进行展示,即时生成飞机运动轨迹,反映飞机的飞行特性,能够将教学中需要说明的各种概念以真实形象的三维场景表现出来,大大降低了学生的抽象思维难度,增加了学生的学习兴趣。

二、P3D平台简介及其数据接口开发

P3D(Prepar3D)是由洛克希德·马丁公司推出的一款飞行模拟软件,其目标是针对教育、培训机构以及军方定制的模拟软件。P3D提供了SDK,能够进行二次开发,将P3D内的数据与外部进行交互,P3D虚拟场景如图1所示。

图1 P3D虚拟场景

为了控制P3D平台中虚拟飞机的运动状态,采用Qt软件平台,开发了与P3D平台的数据接口,并封装为数据控制类。数据控制类的结构如图2所示。类中提供了initSend()、endSend()和SendCommand()几种函数。其中initSend()函数能够实现连接P3D平台的功能,end-Send()函数能够实现断开P3D的功能,而SendCommand函数能够将控制命令传输至P3D中,进而驱动虚拟飞机按照命令进行运动。

图2 数据控制类的结构

在基本的飞行航迹数据回放中,需要用到姿态和位置两种信息,主要包括高度、空速、俯仰角、横滚角、航向角、经度、纬度等参数,为了更好地体现飞行效果,还包括对起落架、副翼、升降舵、方向舵等参数的控制。数据控制类中的SendCommand()函数,能够对这些参数进行控制,驱动虚拟飞机按照指定参数运动。

三、飞行航迹数据回放演示程序设计

1.总体结构。飞行航迹数据回放演示程序是在Qt开发环境下进行设计的。Qt是一个跨平台应用程序和UI开发框架[5,6],程序总体结构如图3所示。

图3 程序的总体结构

(1)P3D驱动模块。首先要将设计的程序连接到P3D模拟飞行系统,采用数据控制类实现该功能。在程序界面上设置两个按钮,分别为“连接P3D”“断开P3D”。为了判断程序是否连接成功,在界面上有一个连接信号指示灯。在与P3D连接成功后,用户选择飞行航迹数据文件,从文件中得到有效的飞行航迹数据后,在后台进行数据处理程序,对数据进行分析读取,并通过数据控制类中的SendCommand () 函数传输到P3D中。

(2)回放控制模块。完成飞机的飞行回放过程需要知道飞机的位置和姿态信息。获取飞行航迹数据后,以一定频率输出数据,飞机即可再现飞行过程,同时控制飞机的舵面进行显示。在程序中,对飞行回放有开始、暂停、快进、慢放、停止、重新回放六种功能。要实现飞行数据的定时传输,采用定时器对传输周期进行设定,而快进慢放功能的实现也通过定时器进行设置。当定时器的频率变快,回放过程就将加快,当定时器的频率减慢,回放过程就变慢。在对回放进行开始暂停功能时,则是对定时器调用启动和停止函数。

(3)航迹显示模块。当飞机在飞行航迹回放过程中,用户需要观察飞机当前的飞行状态。航迹显示模块将飞机的位置、姿态、舵面信息通过列表的方式进行显示。为了能够完整地观察整个飞行过程,航迹显示模块还具有曲线显示功能,以曲线图表的形式展示高度、速度、姿态、舵面等信息。

(4)进度条模块。为了方便用户掌握飞行回放进度,在程序界面中设计一个进度条。飞行进度条在读取一次飞行数据后前进一小格,它的最大值即为飞行数据的总组数。拖动进度条会将读取数据的组值设定为释放后进度条的值,从而实现回放时的时间跳跃功能。

(5)飞行计时模块。程序界面中有一计时器,记录了飞行回放的累计时间。计时器每读取一次飞行数据就进行一次计时,以实现对飞行时间的记录。因为是对数据组的计算得出的飞行时间,所以通过进度条改变回放时间点时,不会影响飞行累计时间的计算。

2.工作流程。飞行航迹数据回放演示程序的工作流程如图4所示。实现飞行航迹数据回放功能需要同时运行P3D模拟飞行软件。程序之间的交互调用数据控制类中的相关函数,实现控制P3D中虚拟飞机的运动状态。

图4 程序运行的总体流程

首先与P3D进行连接,然后判断程序与P3D连接是否成功,连接成功界面右端的指示灯会由红色变为绿色,然后选择飞行航迹数据。对数据进行解析后,开始回放,控制P3D平台中的虚拟飞机按飞行航迹数据回放演示飞行过程。如果P3D未连接成功或未选择文件就点击开始回放按钮,程序将弹出窗口提示。在开始回放后,有暂停、快进、慢放、重新开始的功能操作,方便对飞行回放的观察。停止回放会回到未选择文件的状态,并初始化界面所有部件。在回放结束时,会弹出窗口提示回放完成,程序回到初始选择文件时的状态。界面中还有实时显示飞行参数的表格以及曲线图表,方便对飞行情况进行分析。界面的最下方的进度条可查看飞行回放的进度情况。

四、程序运行效果

选取某一飞行航迹,使用设计的飞机飞行航迹数据回放演示程序打开,软件运行效果如图5所示。

图5 软件运行效果

设计的程序能够读取飞行航迹数据,并将整个飞行航迹以曲线的形式进行演示,能够驱动P3D平台的虚拟飞机按照指定的方式进行运动,完成了设计的功能。

五、结语

开发的飞机飞行航迹数据回放演示程序,除了能够应用于教学,也可作为虚拟飞机运动学仿真测试平台,用于飞行操纵系统、自动飞行控制系统设计等项目的开发,具有较好的应用前景。

猜你喜欢
进度条飞行数据航迹
“进度条”思维
为什么进度条到99%就不动了
为什么进度条到99%就不动了
梦的航迹
GARMIN1000系统维修平台搭建预研究
自适应引导长度的无人机航迹跟踪方法
浅谈飞行数据集中处理流程管理
视觉导航下基于H2/H∞的航迹跟踪
基于广域信息管理的飞行数据服务设计与实现
基于航迹差和航向差的航迹自动控制算法