摘要:飞行器是一个庞大的复杂系统,其设计与开发需要几轮迭代,而仿真技术在此过程中起着无法替代的作用。开源仿真软件FlightGear主要用于飞行模拟,并不能用于飞行器的系统研发仿真与验证。本文以FlightGear为基础,对其进行了扩展,从而实现了一套集飞行数据管理和分析于一体的软件系统。利用FlightGear接口,开发了以数据采集为主的通信、存储等模块,使扩展系统能够实时、灵活地采集飞行器的参数,并存储于数据库;设计并实现了用于飞行器姿态预测的分析模块,新预测方法提高了姿态参数的预测精度。目前,该扩展系统已用于桌飞行器的研发论证中,取得了较好的经济效益。
关键词:飞行数据;FlightGear;通信;预测;飞行仿真
中图分类号:TP311.52 文献标志码:A 文章编号:1005_2615(2015)03-0446-07
Management and Analysis System for Flight Data Based on FlightGear
Dong Yu,Pi Dechang
Abstract:Aircraft is a large complex system, and the development of aircraft system requircs several rounds of iteration. The simulation technology plays an irreplaceable role in the process. FlightGear, an open source simulation software, is used for flight simulation. However, it cannot be directly used in aircraft system research and development of simulation and verification. A set of software system combined flight data management and analysis is presented based on FlightGear. In order to collect real-time flight parameters flexibly and store them in database, the system expands and develops storage and communication modules for data collection, thus making the full use of the interfaces of FlightGear. The system designs and implements analysis module for predicting attitude of aircraft, and improves the prediction accuracy of posture parameters. At present, the extended system has been applied in research and demonstration of aircraft system and has achieved good economic benefits.
Key words: flight data; FlightGear; communication; prediction; flight simulation
新一代飞行器系统日趋复杂,不确定因素也逐步增多,系统的实时仿真和综合测试技术变得尤为重要。飞行器系统的开发需要几轮迭代,对其原型系统的设计、建模、实现、评估并给出结果是必要的,这有助于提高系统设计的整体水平。使用仿真技术可以加速原型开发的进程,并给出相对容易讨论的手段来评估原型开发过程中的问题。FlightGear作为一个开放源代码、多平台的飞行仿真软件,其目标是创建一个先进的飞行模拟器用于科研或者学术环境,追求和开发新颖的飞行仿真思路,并最终成为用户的应用程序端。其主要由动力学模型系统、视景显示系统、仪表系统、驾驶舱系统、音效系统、助航系统、自动驾驶系统等组成。凭借其强大的飞行模拟功能,FlightGear不仅吸引了众多的飞行模拟爱好者,也赢得了专业用户的青睐,已成为众多科研部门的飞行仿真引擎。
收稿日期:2015-01-21;修订日期:2015-04-27
自1997年7月发布第一个跨平台版本至今,国内外已经有很多科研机构已经将FlightGear用于研究项目之中。例如美国伊利诺伊大学将FlighGear用于飞行结冰过程的仿真可视化研究[1]。Bhandari等人[2]在FlightGear飞行模拟器仿真环境中进行了基于神经网络的无人机非线性控制器的开发。Khalastchi等人使用机器人Roboticanl和飞行模拟器FlightGear进行试验,并提出一个使用结构模型成功地检测诊断传感器在线故障的方法[3]。Somers等人提出一种反向操控的ACT-R变体模型,将FlightGear作为其运行环境并保持同步[4]。在国内,黄华等人利用FlightGear飞行模拟器外部数据输入、输出接口,将飞行仿真数据通过网络实时传递,驱动FlightGear可视化引擎[5]。飞行数据的种类较多,目前针对不同的数据已开展了较广深入的研究,如刘永建[6]使用了改进的神经网络模型对民用飞机发动机的故障和性能进行了研究;Omkar等人[7]利用飞行数据研究了直升机的动力学;史勇杰等人[8]使用飞行数据深入研究了旋翼桨涡干扰现象影响机理。对于正在执行任务的飞行器而言,对其关键参数和飞行器健康的预测则更具现实意义。王润全等人[9]使用飞行器的GPS采样数据,提出了一种基于混沌多项式的预测模型。崔建国等人[10]通过提取水平尾翼声发射信息的关联维数构建特征,提出了一种基于混沌理论的飞机健康预测方法。Duda等人[11]则为飞机的应用程序研究了横向气流的预测,取得了较好的效果。 在真实飞行环境中,验证极限条件下的飞行器,如战斗机的高过载飞行过程,不仅成本高、风险大,而且安全性低,而仿真技术在此过程中扮演了无法替代的作用。虽然FlightGear提供了专业的飞行动力学模型,具有强大的飞行仿真能力,但是对于仿真试验过程中产生的大量试验数据的处理能力较弱,缺少一个系统的数据管理与分析工具,能够对试验数据动态更新、实时记录,并对飞行状态直观显示、预测和回放,以便领域专家进一步分析和评估飞行器的设计质量。为满足以上需求,本文在FlightGear的基础上,设计并实现了一套数据管理与预测分析的软件系统。该系统可实时采集传输飞行数据,可视化监测关键参数的实时变化情况;可将采集到的数据存入指定数据库并进行离线场景回放;采用改进后的灰色预测方法对关键参数进行预测。
1 系统框架
该系统主要利用FlightGear内部模型解算、视景显示功能及网络功能对模拟飞行器飞行过程中产生的实时飞行数据进行采集、传输、显示及分析。主要包括FlightGear仿真软件、通信模块、配置模块、存储模块、显示模块、分析模块,如图1所示。
(1)FlightGear仿真软件接受环境系统和动力学系统的控制,控制结果通过三维可视仿真系统进行渲染或通过通信模块输出。该部分也可以通过外部数据的激励,取代FlightGear内部激励功能.仅使用其视觉子系统功能。
(2)通信模块是该系统的基础模块。主要完成内部其他模块与FlightGear的通信,实现两者之间的数据交换。
(3)配置模块作为辅助功能模块,主要根据XML的配置技术完成以下功能:
①系统配置。实现了FlightGear系统运行环境,外界数据(包含云层、地形等)以及各类飞行器的载入等配置。
②参数配置。包括指定飞行器模型、声音模型、飞行动力学模型、飞行器动作参数等。
③数据传输配置。规定数据传输的内容、格式等。
(4)存储模块主要用于存储大数据量的飞行数据,用于文件回放以及分析预测等。
(5)显示模块实现参数值及飞行状态的直观显示,主要包括参数动态曲线实时显示、参数全程曲线显示及场景回放等。
(6)分析模块是该系统最重要模块,也是可扩展的模块。该模块能够运用统计学及时间序列分析相关领域的技术,灵活地对一些关键飞行状态参数进行预测,并给出相应的误差分析。
下面针对两个最为关键的模块,即通信模块与分析模块,展开详细地介绍与分析。
2 通信模块
FlightGear在模拟飞行时可以产生大量飞行数据,但FlightGear本身并没有提供数据存储功能,一些重要数据只能在飞机座舱的仪表和平视显示器上可以看到。在系统启动之后也可以通过手动打开日志记录功能记录相关的数据,而通过手动打开日志记录界面需要重新添加参数的名称和路径,并且系统不会自动记忆,每次重新飞行都需要重新输入;更不足的是,自带的日志记录系统所能记录的数据量非常有限,不能满足飞行仿真的实际需求。因此,本文分别采用本地数据配置以及自定义两种方式,对飞行数据进行采集与回放。
2.1 本地数据采集及配置
根据FlightGear功能,本文给出了一种通过配置XML文档的方法来实现本地的数据采集及回放(Generic protocol,一种FlightGear自定义协议)。该方式重点在于添加、删除、修改XML文档中所需的参数,其采集的数据量理论上不受限制,且能将数据格式化存储于CSV文件,便于后期处理分析及场景回放。以playback协议为例,该XML配置文档“playback. xml”位于MYMFG_ROOT\data\Protocol目录下。文档中声明了需要输入输出的属性值、格式和该属性结点在属性树(Property tree)中位置,并声明了属性值之间以“,”隔开。该协议文件可以包含一个和一个