en
×

分享给微信好友或者朋友圈

使用微信“扫一扫”功能。
作者简介:

刘涛,男,硕士,高级工程师。主要研究方向:试飞数据处理与管理。E-mail:liutao2@comac.cc;

冯灿,男,博士,研究员。主要研究方向:试飞测试工程。E-mail:fengcan@comac.cc;

陈家益,男,硕士,工程师。主要研究方向:试飞测试软件设计与研发。E-mail:chenjiayi@comac.cc

通讯作者:

冯灿,E-mail:fengcan@comac.cc

中图分类号:TP311.56

文献标识码:A

DOI:10.19416/j.cnki.1674-9804.2023.01.019

参考文献 1
白效贤,杨廷梧,袁炳南.航空飞行试验遥测技术发展趋势与对策[J].测控技术,2010,29(11):6-9.
参考文献 2
祁春,段宝元.遥测数据实时处理软件系统及其应用[J].科学技术与工程,2010,10(28):7047-7050.
参考文献 3
MACDONALD M.WPF编程宝典[M].王德才,译.北京:清华大学出版社,2013,17-25.
参考文献 4
刘铁猛.深入浅出WPF[M].北京:中国水利水电出版社,2010:35-50.
参考文献 5
中国商飞上海飞机客户服务有限公司.基于ARINC767规范的飞行记录器数据的译码方法及系统:CN201910841124.5[P].2020-02-11.
参考文献 6
覃杨森,范彦勤,刘语乔,等.试飞数据分析结果的可视化输出软件设计与实现[J].计算机测量与控制,2015,23(11):53.
参考文献 7
李千目,许满武,张宏,等.软件体系结构设计[M].北京:清华大学出版社,2008.
参考文献 8
山寿,郝明哲,孙伟.基于数据分发服务和WPF技术的试飞实时监控系统设计[J].计算机测量与控制,2020,28(3):119-122;143.
参考文献 9
宁伟.通用航空总线实时测试与分析技术研究[D].西安:西北工业大学,2006.
参考文献 10
尚洋.民用飞机ARINC429总线和ARINC 664总线应用权衡研究[J].科技视界,2017(12):97;73.
目录contents

    摘要

    测试数据是民机试飞过程中的最终产物,是反映飞机系统状态、表明适航符合性的重要依据。随着大量先进航空总线在民机上的应用,测试数据的体量越发庞大、类型也更为复杂,为测试数据的处理和分析带来了巨大的挑战。对民机试飞测试数据的类型、存储特点和常用分析方法进行了研究,深入分析了试飞测试数据的处理和分析需求,立足于WPF(windows presentation foundation)平台,采用MVVM(Model-View-ViewModel)设计模式,使用了内存管理、DataBinding事件模型、反射等关键技术,集成了SciChart、时序数据库等组件,设计开发了民机试飞测试数据处理分析软件。软件实现了试飞测试数据的快速处理、分析及可视化,可完成多个数据文件的同时加载、进行1 Hz~16 kHz不同采样率下数据分析结果的可视化展示,经实际应用,满足了某国产大型客机的试飞需求。

    Abstract

    Test data is the final product of the civil aircraft flight test, which is an important basis for reflecting the aircraft system status and showing the airworthiness compliance. With the application of a large number of advanced aviation buses on civil aircraft, the volume and types of test data become larger and more complex, which has brought huge challenges to the processing and analysis of test data. This paper studies the types, storage characteristics and common analysis methods of civil aircraft flight test data. The processing and analysis requirements of flight test data were analyzed in depth. Based on the WPF(windows presentation foundation)platform, MVVM(Model-View-ViewModel) design pattern was adopted, key technologies such as memory management and DataBinding were used, and components such as SciChart and timing database were integrated. The data processing and analysis software for civil aircraft flight test were designed and developed. The software not only realizes the rapid processing, analysis and visualization of flight test test data, but also can complete the simultaneous loading of multiple data files and perform centralized display of data analysis results with different sampling rates from 1 Hz~16 kHz. The actual application meets the flight test requirements of a domestic large passenger aircraft.

    关键词

    试飞测试MVVMWPFSciChart

    Keywords

    flight testMVVMWPFSciChart

  • 0 引言

  • 民用飞机在生产制造后,往往需要3~5年的试飞周期来进行大量的试飞试验,用以验证飞机设计的正确性以及与某些适航条款的符合性。在进行试飞试验时,国内外主流试飞机构会在飞机上加装传感器、抽引航空总线,并使用机载采集系统对总线数据、模拟量数据进行采集和记录,而这些数据就是试飞测试数据。

  • 试飞测试数据是典型的时序数据。随着机载测试系统网络化进程的不断深入以及大量先进航空总线在现代民机中的使用,试飞测试数据往往具有体量巨大、类型复杂等特点[1]。与此同时,针对不同的试飞科目,试飞测试数据的采样率跨度也十分巨大,如缓变的温度传感器采样率为1 Hz,而对某些电源品质参数的采样率需求则达到了2 MHz。

  • 在传统模式下,试飞测试数据的存储方式主要以文本文件、数据库文件为主[2],处理分析时需要专业人员编辑相关代码或脚本,并没有统一的软件平台,这导致在功能实现、分析结果可视化显示、系统维护等方面具有较大的制约性,尤其针对高频测试数据,更难以满足数据即时处理的需求。

  • 本文以Windows呈现基础(windows presenta-tion foundation,简称WPF)平台为基础,采用模型-视图-视图模型(Model-View-ViewModel,简称MVVM)设计模式,结合内存管理、事件驱动、反射等技术,集成了时序数据库和SciChart等组件,设计开发了民机试飞测试数据处理分析软件,集成了文件加载、格式转换、可视化显示等功能模块,为试飞测试数据的计算分析提供了统一的接口,实现了试飞测试数据的快速分析,提高了试飞效率。

  • 1 软件架构

  • 民机试飞测试数据处理分析软件采用典型的三层架构,分为数据层、服务层和显示层,如图1所示。

  • 1)数据层主要实现不同类型数据文件的加载,包括通用的txt文本文件、csv和dmd等格式的专项测试数据文件以及原始记录文件等;

  • 图1 软件功能架构示意图

  • 2)服务层主要用于实现各类数据的操作,如时间对齐、参数合成、数据解码和数据分析等;

  • 3)显示层是软件的人机交互界面,集成了多种图表控件、控制组件,可响应用户不同的操作指令,调用服务层的相关服务对数据进行处理分析,并在不同类型图表中显示分析结果。

  • 本软件依赖于WPF平台,采用MVVM设计模式实现,相对于传统的模型-视图-控制器(model view controller,简称MVC),MVVM引入了ViewModel来降低View和Model之间的耦合性[3-4],其原理如图2所示。

  • 图2 MVVM设计模式原理

  • 1)Model层有多个抽象的类组成,功能是负责数据的读取、数据库的操作,相当于图1中的数据层,每一个Model层都会有一个ViewModel对象来调用,用以数据的读写操作;

  • 2)View层是用户界面,即显示层,不做和业务相关的操作,使用Xaml文件进行维护;

  • 3)ViewModel是对用户界面即View层的抽象,只专注于业务的逻辑处理,ViewModel层不会持有任何控件的引用,和View层之间的交互依赖于Data和Command(其中Data是实现了INotifyPropertyChanged接口,具有通知功能的属性),用户界面的控件通过DataBinding显示Data的更新,用户的操作以Command进行传递。

  • 图3 DataBinding原理

  • 2 数据层

  • 数据层的功能是将数据加载到内存中。数据的来源可以是记录文件或者时序数据库。

  • 2.1 文件加载

  • 数据层对于通用记录文件(即txt文本文件)中参数序列的提取是通过文件预加载和数据读取两个步骤实现的。文件预加载流程如图4所示,当用户通过软件界面打开数据文件时,View层传递OpenFileCommand命令,该命令的形参为数据文件的绝对路径。在与View层对应的ViewModel层会执行OpenFileCommand命令,调用Model中的方法加载文件,最终形成两个字典D1<String,List<String>{P1,P2,P3...Pn}>和D2<String,int>,其中D1是主键为文件绝对路径、值为参数名称列表的字典; D2的主键为参数名称,值为参数在当前文件中的索引。

  • 图4 数据文件预加载流程

  • 当用户选择相关参数进行处理或者图表分析时,软件首先通过D1的主键定位到当前的数据文件,逐行读取数据,并通过D2中参数名称和索引的关系完成指定参数的提取,并填充数据字典D3(键为参数名称,值为当前参数的数据列表,其中类Point包括了数据点的绝对时间戳TimeStamp和参数值Value),保存在内存中,流程如图5所示。

  • 图5 参数数据提取过程

  • 2.2 时序数据库读写

  • 针对dmd等特殊格式下专项测试数据,软件采用时序数据库InfluxDB作为中间层组件,将文件中的数据进行持久化,当使用时从InfluxDB中查询数据并加载至内存。具体实现步骤如图6所示,首先通过目标数据库的Uri地址、用户名及密码创建客户端对象Client,第二步通过异步方式进行连接,连接成功后对InfluxDB进行数据续写操作。

  • 2.3 内存管理

  • 试飞测试数据受飞行时长、采样率等因素影响,体量差异性较大(单个文件甚至超过20 GB),为了避免因为数据文件过大造成内存溢出,在软件的数据层引入了LierdaCracker对内存进行压缩处理。实现方法是在项目中安装Lierda.WPFHelper包,并在App.xaml.cs中的Application_Startup方法里实例化调用cracker方法。利用LierdaCracker每30 s对内存进行一次压缩,将软件使用内存压缩至最小10 MB。

  • 3 服务层

  • 数据层提取的数据序列会在服务层进行处理,包括不同采样率数据的时间对齐、二次采样、参数计算和EAFR原始数据解析等。

  • 图6 时序数据库的处理流程

  • 3.1 时间对齐

  • 软件可同时加载多个数据文件,不同数据文件参数的起始时间存在细微的差异,同时采样率也不同,因此在可视化绘图或者计算前需要进行时间对齐,策略是以“最早”的时间作为起始时间,以最高的采样率作为基准采样率,对D3中各个时间序列进行插值。

  • 3.2 二次采样

  • 在试飞参数中,振动参数的采样率高达8 192 Hz,电源专测参数的采样率有时超过2 MHz,这类参数在进行图表绘制时会响应用户的操作,根据图表曲线的放大程度结合当前显示设备的分辨率进行分层式动态二次采样,分为L1~L3三个级别,如图7所示。L1是以1 s为单位,取该时间段内的起始点、最大值点、最小值点和终止点,是最简单、最快速的趋势预览方式; L2根据当前显示设备的分辨率进行单位时间内数据点的提取,目的是不失真的展现时间序列的曲线变化,如当前用户显示器分辨率为1 920×1 080,L2以1 s为单位,均匀提取其中的1 920数据点,同时叠加L1的特征点; L3即为全量的参数序列。

  • 图7 分层二次采样示意图

  • 在进行L3级数据加载时,为了减少显示层的等待时间,避免因为数据加载导致的线程阻塞,会将D3中参数的“单时间序列”(即List<Point>)转换为“多数据序列”,即按照采样率的倍数对List<Point>进行切分,并依次建立时间序列索引和子序列之间的映射关系,形成字典DHF<int,List<Point>>。

  • 3.3 参数计算

  • 软件提供了参数合成、简单数学运算、快速傅里叶、小波分析等常用的计算服务。计算服务以反射的方式实现。所谓反射是指在运行时获得程序或程序集中每一个类型(包括类、结构、委托、接口和枚举等)的成员和成员的信息。通过反射,软件实现了动态连接库(DLL)中相关函数(方法)的动态调用。例如,快速傅里叶以DHF<int,List<Point>>为输入,首先识别目标时间点所在的区间,利用时间序列索引从DHF中提取数据样本Array,然后调用指定DLL中的Transfor.Fft(Array)进行计算。

  • 3.4 EAFR数据解析

  • 除了直接加载数据文件外,本软件还支持某大型客机增强型机载飞行记录器(enhanced airborne flight recorder,简称EAFR)数据的解析,该数据采用ARINC767格式编码[5]。当用户加载的数据文件为EAFR原始文件时,软件首先会读取配置文件中的帧信息、参数信息,创建对应的类,形成帧信息字典Dictionary<FrameID,FrameDescription>,字典中维护了每一帧中的参数信息,包括参数的位置、取位、数据类型等,如图8所示; 其次,解析服务将遍历数据层加载的原始数据,提取相邻同步字之间的数据,并通过FrameID,将属于同一帧的数据填充进列表,同时结合帧信息字典中的参数信息完成解析; 最后,由记录时间戳T0加上每一帧的相对时间T1形成参数的绝对时间,并以Session Number和FrameTitle为文件名输出数据文件。

  • 4 显示层

  • 显示层即软件界面,用于人机交互和数据曲线显示。本软件以WPF为基础,集成了SciChart高性能图表组件,界面如图10所示,分为菜单栏、工具栏、侧边显示栏和主显示区以及底部状态栏等五大部分。

  • 图8 读取EAFR配置信息

  • 图9 EAFR数据解析过程

  • 1)菜单和工具栏提供了不同类型数据文件的打开、时序数据库的连接以及不同形式图表的加载;

  • 2)当用户打开数据文件时,会在侧边栏目显示当前文件的参数列表,用户可通过Filter进行参数的过滤筛选,选择单个或多个参数进行曲线绘制和FFT计算,同时也可根据不同的业务场景,通过“Chart Type”下拉框选择不同类型的图表;

  • 图10 软件主界面

  • 3)主显示区采用动态组件加载模式,用于响应用户操作显示不同类型图表,包括单图表、多图表、简单图表、多轴图表、高频图表等;

  • 4)底部的状态栏用于显示文件读取、参数曲线绘制和分析计算的实时进度。

  • 5 试验

  • 分别以32 Hz低频总线参数、8 192 Hz高频参数文件和EAFR原始数据文件为测试用例验证软件功能和性能,相关信息如表1所示。

  • 表1 测试环境及用例信息

  • 软件性能测试结果如表2所示。

  • 表2 软件性能测试结果

  • 同一组参数在不同类型图表显示状态如图11所示。

  • 图11 同一组参数在不同类型图表显示状态

  • 81 92 Hz高频数据绘制及FFT分析如图12所示。

  • 图12 8 192 Hz高频数据绘制及FFT分析

  • 经测试,软件以32 Hz总线数据、8 192 Hz高频数据以及4 Hz的EAFR数据为输入,成功实现了试飞测试数据的加载、格式转换和不同类型图表下的结果可视化,软件运行稳定,满足设计要求。

  • 6 结论

  • 本文设计了一种用于试飞测试数据处理和分析的应用软件:

  • 1)实现了国产某大型客机不同类型、不同采样率试飞数据文件的加载、读取和可视化分析;

  • 2)实现了某大型客机EAFR原始数据的快速解析;

  • 3)实现高频数据的时频域快速分析和结果的可视化展示;

  • 4)软件采用MVVM设计模式,业务逻辑和用户界面彼此独立,可根据不同的应用场景分别进行快速重构以满足未来新型号的应用需求。

  • 参考文献

    • [1] 白效贤,杨廷梧,袁炳南.航空飞行试验遥测技术发展趋势与对策[J].测控技术,2010,29(11):6-9.

    • [2] 祁春,段宝元.遥测数据实时处理软件系统及其应用[J].科学技术与工程,2010,10(28):7047-7050.

    • [3] MACDONALD M.WPF编程宝典[M].王德才,译.北京:清华大学出版社,2013,17-25.

    • [4] 刘铁猛.深入浅出WPF[M].北京:中国水利水电出版社,2010:35-50.

    • [5] 中国商飞上海飞机客户服务有限公司.基于ARINC767规范的飞行记录器数据的译码方法及系统:CN201910841124.5[P].2020-02-11.

    • [6] 覃杨森,范彦勤,刘语乔,等.试飞数据分析结果的可视化输出软件设计与实现[J].计算机测量与控制,2015,23(11):53.

    • [7] 李千目,许满武,张宏,等.软件体系结构设计[M].北京:清华大学出版社,2008.

    • [8] 山寿,郝明哲,孙伟.基于数据分发服务和WPF技术的试飞实时监控系统设计[J].计算机测量与控制,2020,28(3):119-122;143.

    • [9] 宁伟.通用航空总线实时测试与分析技术研究[D].西安:西北工业大学,2006.

    • [10] 尚洋.民用飞机ARINC429总线和ARINC 664总线应用权衡研究[J].科技视界,2017(12):97;73.

  • 参考文献

    • [1] 白效贤,杨廷梧,袁炳南.航空飞行试验遥测技术发展趋势与对策[J].测控技术,2010,29(11):6-9.

    • [2] 祁春,段宝元.遥测数据实时处理软件系统及其应用[J].科学技术与工程,2010,10(28):7047-7050.

    • [3] MACDONALD M.WPF编程宝典[M].王德才,译.北京:清华大学出版社,2013,17-25.

    • [4] 刘铁猛.深入浅出WPF[M].北京:中国水利水电出版社,2010:35-50.

    • [5] 中国商飞上海飞机客户服务有限公司.基于ARINC767规范的飞行记录器数据的译码方法及系统:CN201910841124.5[P].2020-02-11.

    • [6] 覃杨森,范彦勤,刘语乔,等.试飞数据分析结果的可视化输出软件设计与实现[J].计算机测量与控制,2015,23(11):53.

    • [7] 李千目,许满武,张宏,等.软件体系结构设计[M].北京:清华大学出版社,2008.

    • [8] 山寿,郝明哲,孙伟.基于数据分发服务和WPF技术的试飞实时监控系统设计[J].计算机测量与控制,2020,28(3):119-122;143.

    • [9] 宁伟.通用航空总线实时测试与分析技术研究[D].西安:西北工业大学,2006.

    • [10] 尚洋.民用飞机ARINC429总线和ARINC 664总线应用权衡研究[J].科技视界,2017(12):97;73.

  • 微信公众号二维码

    手机版网站二维码

    我要投稿 投稿指南 联系我们 二维码
    TOP