en
×

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

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

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

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

李沐益,男,硕士,工程师。主要研究方向:试飞数据实时监控。E-mail:limuyi@comac.cc;

梁仕杰,男,硕士,工程师。主要研究方向:试飞遥测传输。E-mail:liangshijie@comac.cc

通讯作者:

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

中图分类号:TP311.56

文献标识码:A

DOI:10.19416/j.cnki.1674-9804.2023.02.021

参考文献 1
黄涛,王伟.大型民机试飞测试发展与挑战[J].计算机测量与控制,2016,24(9):5-7;11.
参考文献 2
孙健,霍培锋.大型飞机试飞测试现状与对策[J].测控技术,2007,26(3):19-21.
参考文献 3
白效贤,杨廷梧,袁炳南.航空飞行试验遥测技术发展趋势与对策[J].测控技术,2010,29(11):6-9.
参考文献 4
李彦辰,艾庆忠,王少非.基于Redis的分布式搜索引擎研究[J].软件导刊,2018,17(3):201-204.
参考文献 5
秦永刚,张峰.基于ZeroMQ的仿真时间同步系统设计[J].信息与电脑(理论版),2019(15):113-115.
参考文献 6
祁春,段宝元.遥测数据实时处理软件系统及其应用[J].科学技术与工程,2010,10(28):7047-7050.
参考文献 7
MACDONALD M.WPF编程宝典:第4版[M].王德才,译.北京:清华大学出版社,2013:17-25.
参考文献 8
刘铁猛.深入浅出WPF[M].北京:中国水利水电出版社,2010:35-50.
参考文献 9
秦永刚,张峰.基于ZeroMQ的仿真时间同步系统设计[J].信息与电脑(理论版),2019(15):113-115.
参考文献 10
杨哲,王鹏,徐茜.基于RTR的遥测数据实时处理软件的设计与实现[J].计算机测量与控制,2016,24(1):165-167.
参考文献 11
山寿,郝明哲,孙伟.基于数据分发服务和WPF技术的试飞实时监控系统设计[J].计算机测量与控制,2020,28(3):119-122,143.
目录contents

    摘要

    电子地图是民机试飞中常见的监控应用,用于实时反映试飞飞机的位置、航迹和空域等信息。但传统的电子地图功能单一,存在无法动态更新空域、不能航后回放以及不支持多架机集中监控等问题,无法满足当前试飞安全监控需求。基于GMAP.NET组件设计研发了一款新的二维电子地图实时监控软件,采用多线程调度、动态图层等技术,集成了时序数据库,在实现多架机试飞航迹实时监控的同时,支持航迹信息的实时存储、回放和空域信息的在线更新。通过在某国产大型客机试飞现场的测试,软件可满足试飞航迹的安全监控需求。

    Abstract

    Electronic map is a common monitoring application in civil aircraft flight test, which is used to reflect the position, track and airspace of flight test aircraft in real time. However, the traditional electronic map has a single function, and has shortcomings such as unable to dynamically update the airspace, unable to replay after flight, and unable to support centralized monitoring of multiple aircraft, which cannot meet the current test flight safety monitoring requirements. Based on GMAP.NET component, a new real-time monitoring software for two-dimensional electronic map has been designed and developed, which adopts time series database,dynamic layer and other technologies to realize the real-time monitoring of the test flight tracks of multiple aircrafts, and also supports the storage and playback of track information and the online update of airspace information.Through the field test of large passenger aircraft, the software can meet the safety monitoring requirements of the test flight track.

    关键词

    GMAP.NET时序数据库动态图层空域回放

  • 0 引言

  • 实时监控是民机试飞中保证试飞安全的重要手段,是在试飞过程中,以试飞数据为输入实时驱动各种监控应用,真实反映试飞飞机飞行状态的过程。其中,电子地图是不可或缺的重要应用。电子地图往往部署于地面,使用飞机试飞过程中通过遥测实时传输的定位数据(包括经度、纬度、高度和磁航向角等四个参数)来反映飞机的位置,为地面的指挥人员、飞机设计人员等提供参考依据,以此来提高试飞安全。

  • 传统的电子地图功能相对比较单一,空域信息需要提前设置,无法做到监控期间的在线更新,很难满足空域信息动态变化的监控需求; 同时,在某些重要试飞科目执行时需要进行试飞航迹的实时回放或者重加载,传统的电子地图软件都很难实现; 除此之外,多架机试飞航迹的集中监控也带来了巨大挑战。因此,设计研发一款新的电子地图实时监控软件十分必要。

  • 本文采用GMAP.NET组件,利用多线程调度、动态图层等技术,设计研发了二维电子地图实时监控软件。软件以某国产大型客机的试飞遥测数据为输入,完成了多架机试飞航迹在实时状态下的集中监控和空域信息的动态加载以及删除,并以时序数据库作为存储介质,实现了试飞航迹信息的存储和回放,满足了试飞监控需求,提高了试飞安全。

  • 1 软件架构及功能

  • 二维电子地图实时监控软件采用典型的客户端/服务端(C/S)架构,以WPF平台为基础,采用C#语言实现,架构如图1所示。软件以XML文件维护用户相关配置,服务端主要完成遥测数据的接收、解析,并使用InfluxDB时序数据库实现试飞航迹数据的实时存储,同时收集服务端和客户端各个功能模块运行的日志信息,管理异常告警。客户端集成了GMAP.NET组件,允许用户通过人机交互界面实时监控试飞航迹和飞机位置,并可通过手动方式添加和删除空域。客户端和服务端之间使用ZeroMQ消息队列进行数据、用户指令和配置信息的实时交互。

  • 图1 二维电子地图实时监控软件软件架构

  • 软件采用多线程实现,各个功能模块与线程间的调度关系如图2所示。

  • 当软件启动时,主调度线程会自动加载XML配置文件中的配置信息,获取实时通信的地址和端口,并传输至数据通信模块,同时侦听客户端控制指令,当获取开启指令时,激活各个功能模块。数据通信模块会根据开启指令,自动创建数据通信线程,并在不同工作模式下提取不同的数据源,例如在实时模式下,数据通信模块会将数据发送至数据解析线程进行实时解析,在回放模式下则会从时序数据库或者文件中直接加载数据传递到实时监控模块。经过解析的工程量数据通过两个独立线程分别存储在文本文件和时序数据库中,同时驱动实时监控线程完成航迹的绘制和显示。

  • 图2 线程调度时序图

  • 2 服务端

  • 2.1 数据通信与解析

  • 数据通信模块部署于服务端,主要实现试飞遥测数据的接收、挑选以及服务端和客户端的数据交互。

  • 由于工作模式的不同,数据通信模块加载的数据源不同。如图3所示,在实时状态下,数据通信模块完成遥测数据接收并分发给数据存储和实时监控模块,数据存储模块会同时将数据存进时序数据库和文本文件,实时监控模块会利用实时数据和空域信息完成监控; 在回放模式下,数据通信模块会提取时序数据库和文本文件中的数据驱动实时监控模块进行数据回放和航迹加载。

  • 图3 数据通信流程

  • 试飞时,处理后的遥测数据经过UDP组播形式进行实时分发,应用层协议如图4所示:所有的参数均以单精度浮点数进行编码,字节长度为4个字节,参数的排列顺序则以csv文件形式托管在指定的FTP服务器上。

  • 图4 遥测数据分发协议

  • 对于实时数据流的解析如图5所示:首先,软件会登录FTP服务器自动下载csv文件,提取参数索引和参数名称之间的映射关系,形成字典D<int,string>{Index,Name}; 其次,软件持续侦听遥测数据的网络数据包,对接收到的数据利用同步字以及校验和进行数据完整性检查,通过校验的数据才会被处理; 第三,提取数据包的时间戳T、数据长度N,并以4字节为单位将参数解析为单精度浮点数Value,最终形成以参数名称为主键、Value为值的字典DValue<string,float>{D[Index],Value}; 最后,通过所需经度、纬度、高度、磁航向角等参数名称进行挑选,挑选后的数据按照对应架机被写入不同的消息队列等待客户端的订阅。

  • 2.2 数据存储与管理

  • 不同架机的地图驱动数据在挑选后会以多线程形式被同时存储到InfluxDB时序数据库和文本文件中,以满足数据回放和历史航迹加载的功能。

  • 按照图6所示流程,软件在完成数据解析后会创建两个独立的线程Thread2InfluxDB和Thread2Txt。在Thread2InfluxDB线程中,软件将首先创建对象pointToWrite,该对象维护了参数名称(name)、架机号(SerialNumber)、绝对时间戳(Timestamp)以及参数的实时值,然后采用异步模式写入数据库; 软件在写入文本文件时,首先会以架机号建立多个独立的文件,其次将采用“参数名称”+“连接符”+“分割符号”的形式(连接符为‘#’,分隔符为‘,’),构建长字符串,同时循环写入指定文件。

  • 图5 遥测数据解析流程

  • 图6 数据存储流程

  • 2.3 日志与异常管理

  • 为了提高软件的稳定性,集成Log4Net组件对运行过程中的异常进行捕捉,并采用分级管理机制对日志进行记录,分为信息(info)、警告(warn)、错误(error)、严重错误(fatal)四个等级,其中:

  • 1)信息主要为用户的操作记录,例如工程的加载、空域的更新等;

  • 2)警告是指在软件运行过程中出现的不影响软件状态的异常信息;

  • 3)错误包括数据的解析异常、存储异常、显示异常等;

  • 4)严重错误主要记录软件崩溃的时间和原因。

  • 3 客户端

  • 3.1 实时监控

  • 实时监控是整个软件的核心模块,该模块集成了GMAP.NET组件,用于实现飞机位置、飞行航迹以及空域信息的实时显示和更新。GMAP.NET是开源的跨平台组件,其结构如图7所示,包括地图数据源(map)、图层(overlay)和图标(markers)。飞机的实时位置、历史航迹和空域以不同的图层叠加在地图源数据上。

  • 图7 GMAP.NET组件结构

  • GMAP.NET支持多种不同类型的地图数据源,本软件使用离线模式加载地图源数据,支持ArcGIS、Bing、OpenStreet、百度、高德等多种形式。在软件启动时,通过设置GMAP.NET组件MapProvider属性完成地图数据源的加载,同时根据架机号SerialNumber动态初始化三个图层:gMapOverlayPlane,gMapOverlayTrack以及gMapOverlayAirspace。其中gMapOverlayPlane图层用于显示飞机的图标和当前的位置,gMapOverlayTrack显示试飞的航迹,gMapOverlayAirspace加载空域信息。

  • 客户端在接收到数据后会在gMapOverlayPlane图层上更新飞机图标的位置,并在gMapOverlayTrack图层上“打点”以显示航迹,实现步骤如图8所示,包括:

  • 1)利用实时接收的纬度(latitude)、经度(longitude)等参数信息初始化currentPoint对象;

  • 2)以currentPoint对象创建并填充点gMapPoint;

  • 3)在gMapOverlayTrack图层上添加点gMapPoint完成航迹更新;

  • 4)删除gMapOverlayPlane图层上原有的飞机图标信息;

  • 5)以currentPoint对象、磁航向角(MagneticHeading)的当前值创建新的飞机图标;

  • 6)在gMapOverlayPlane图层上添加飞机图标完成飞机位置的实时更新;

  • 7)最后统一主、辅线程,将gMapOverlayPlane、gMapOverlayTrack图层加载至GMAP.NET组件上。

  • 图8 飞机和航迹的更新

  • 3.2 空域管理

  • 空域信息有助于监控人员了解飞机当前的相对位置和地面遥测站的视觉盲区,帮助地面指挥人员进行试飞指挥,对于试飞安全十分重要。空域管理模块利用GMAP.NET组件动态图层的特性可以实现空域信息的热加载和即时更新。

  • 软件支持添加多边形和圆形空域,实现流程如图9所示:

  • 1)首先构建类CreateAirspace,定义用于绘制多边形和圆形空域的静态方法DrawPolygon和DrawEllipse;

  • 2)第二步准备数据源:绘制多边形的各个数据点可以从文件加载,也可以手动设置,格式为“索引#纬度#经度”的字符串,如图10(a)所示; 圆形空域只需设置圆心坐标和半径,如图10(b)所示;

  • 3)第三是调用DrawPolygon和DrawEllipse方法在gMapOverlayAirspace图层上绘制空域,并将该空域添加至由空域名称和空域信息组成的字典DNameIndex<string,AirspaceInfor>{Name,Infor},其中类AirspaceInfor维护了包括索引、点坐标、绘制线宽、绘制颜色等信息;

  • 图9 添加空域流程

  • 4)最后统一主、辅线程,将gMapOverlayAirspace图层叠加显示在GMAP.NET组件上,如图10(c)所示。

  • 添加的空域信息以图11的形式展示。删除空域时,通过获取选择空域的索引m调用方法gMapOverlayAirspace.Polygons.RemoveAt(m)删除该空域。

  • 图10 空域信息调用与管理

  • 图11 空域信息

  • 3.3 工程管理

  • 软件的重要配置信息存储在XML文件中,用户可通过加载XML文件实现工程的快速切换。如图12所示,<DataSources>节点下管理了不同架机的数据通信信息,包括UDP的组播地址和端口; <Parameters>是驱动地图的参数信息,除了参数名称外,<OutputInterval>表示定时获取数据的延时,单位ms; 在<StorageGroups>中维护了用于不同架机数据储存的时序数据库和文件地址。

  • 图12 XML配置信息

  • 4 试验

  • 为了验证二维电子地图实时监控软件的功能完整性和性能,将其部署在某国产大型客机的试飞现场,利用遥测实时数据进行驱动,测试结果如表1所示。

  • 表1 试验结果

  • 试飞航迹的监控状态如图13所示。

  • 图13 试飞航迹的监控状态

  • 5 结论

  • 本文设计研发了二维电子地图实时监控软件,弥补了传统电子地图软件的不足:

  • 1)利用某国产大型客机试飞遥测数据实现了多架机试飞航迹的实时监控;

  • 2)采用时序数据库和文本文件相结合的方式实现了航迹数据的存储、实时回放和事后加载;

  • 3)利用GMAP.NET组件动态图层特性实现了空域信息的热加载和灵活更新。

  • 参考文献

    • [1] 黄涛,王伟.大型民机试飞测试发展与挑战[J].计算机测量与控制,2016,24(9):5-7;11.

    • [2] 孙健,霍培锋.大型飞机试飞测试现状与对策[J].测控技术,2007,26(3):19-21.

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

    • [4] 李彦辰,艾庆忠,王少非.基于Redis的分布式搜索引擎研究[J].软件导刊,2018,17(3):201-204.

    • [5] 秦永刚,张峰.基于ZeroMQ的仿真时间同步系统设计[J].信息与电脑(理论版),2019(15):113-115.

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

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

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

    • [9] 秦永刚,张峰.基于ZeroMQ的仿真时间同步系统设计[J].信息与电脑(理论版),2019(15):113-115.

    • [10] 杨哲,王鹏,徐茜.基于RTR的遥测数据实时处理软件的设计与实现[J].计算机测量与控制,2016,24(1):165-167.

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

  • 参考文献

    • [1] 黄涛,王伟.大型民机试飞测试发展与挑战[J].计算机测量与控制,2016,24(9):5-7;11.

    • [2] 孙健,霍培锋.大型飞机试飞测试现状与对策[J].测控技术,2007,26(3):19-21.

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

    • [4] 李彦辰,艾庆忠,王少非.基于Redis的分布式搜索引擎研究[J].软件导刊,2018,17(3):201-204.

    • [5] 秦永刚,张峰.基于ZeroMQ的仿真时间同步系统设计[J].信息与电脑(理论版),2019(15):113-115.

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

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

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

    • [9] 秦永刚,张峰.基于ZeroMQ的仿真时间同步系统设计[J].信息与电脑(理论版),2019(15):113-115.

    • [10] 杨哲,王鹏,徐茜.基于RTR的遥测数据实时处理软件的设计与实现[J].计算机测量与控制,2016,24(1):165-167.

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

  • 微信公众号二维码

    手机版网站二维码

    我要投稿 投稿指南 联系我们 二维码
    TOP
    ×
    《民用飞机设计与研究》
    关于《民用飞机设计与研究》期刊网站升级的重要通知