日期:2023-01-24 阅读量:0次 所属栏目:应用电子技术
摘 要: 为满足多架飞机的实时监控需求,对实时遥测系统的结构和原理进行了研究,使用VC++开发工具以及MapX控件,开发了基于多目标的飞行电子地图软件。软件采用C/S结构设计,并应用MapX控件对Maplnfo地理信息系统进行二次开发。软件能显示多架飞机的位置信息、实时飞行轨迹和导航参数,使地面指挥员和监控人员能够同时地掌握所有飞行器的飞行状态,增强了导航信息的可读性和可视效果,满足了多目标综合监控的需求,对以后的型号试飞任务起到了积极的作用。
关键字: MapX; 多目标电子地图; 航迹信息显示; 实时遥测系统
中图分类号: TN962?34; TP302 文献标识码: A 文章编号: 1004?373X(2015)12?0094?04
随着多目标综合监控技术在飞行试验中的应用,多目标飞行电子地图也成为飞行试验的重要监控工具。传统的基于单目标的电子地图,仅能显示一架飞机,难以使地面指挥员全面地了解机场的整体飞行的状态。本文 [iveX控件产品。在开发过程中可以选用自己最熟悉的开发语言,易于将地图功能嵌入到应用中,并且可以脱离MapInfo的软件平台运行。利用MapX能够简单快速地在应用中嵌入地图功能。
1 总体设计
1.1 服务器端设计
多目标电子地图接收网络多流数据,因此它的设计不仅包含软件本身的设计,也应包含其数据来源系统的设计,即服务器端的设计。在飞行试验中,通常在飞机上加装遥测天线用来发射无线遥测信号,将机载实时传输到地面。地面遥测接收机接收无线遥测信号,将其解调后送往实时处理服务器,服务器经过处理送往客户端,这时监控人员就可以通过客户端装置实时观察飞机性能、位置等信息。因此飞行试验实时遥测系统通常可分为机载数据发送、地面遥测接收机、前端实时服务器和实时显示客户端4部分。系统数据传输如图1所示。
因此多目标电子地图的设计有如图2所示的两种设计思路:
(1) 通过转发程序从客户端接收数据并以组播的形式转发给电子地图;
(2) 在实时处理服务器里加入基本数据转发功能,每当服务器软件开启以后就自动将地图所需的参数以组播的形式转发给地图。
方法(1)采用中间转发程序实现连接实时处理服务器和电子地图,优点是使电子地图系统脱离原有的实时监控系统,为以后更优化带来了方便,缺点是每架飞机都需要一台电脑进行数据转发,并且中转程序需人为启动,增加出错的概率。方法(2)采用内嵌到服务器的转发功能,可以有效地提高工作效率,只需要一次性配置好转发设置,以后只需要打开服务器软件,就会自动进行数据的转发,避免人为的出错;缺点是地图系统依赖实时服务器,为以后的优化设计增加少许麻烦。
由于实时监控对系统的安全可靠有着严格的要求,因此选用第二种方法进行系统软件的设计。
1.2 客户端(电子地图)设计
软件采用MapX组件与面向对象可视化编程语言VC++集成的二次开发模式,根据实时飞行监控特点,软件应该考虑到以下几点:
(1) 具备基本的地图操作。包括放大、缩小、居中、漫游、平移、点选图元等MapX自带功能以及测距、飞机中心点和绘制飞行半径等功能。
(2) 可选的飞行轨迹。由于多架飞机同时飞行,如果显示每架飞机的完全轨迹则会显得地图太乱,并且我们并不是很关注飞机的整个轨迹,有时只关注飞机在最近几分钟内的这一段轨迹。因此,地图默认只显示飞机近一段时间的轨迹,即部分轨迹。但依然保存完整轨迹数据,用户可在菜单上通过选择飞机轨迹显示模式来显示完整轨迹。
(3) 隐藏不关注的飞机。并不是所有飞机都值得去关注,隐藏不关注的飞机可以使监控人员避免受到不必要的干扰。
(4) 显示飞行的基本参数。结合飞机的基本参数信息可以更好地了解飞行的状态。
软件采用模块化结构程序设计方式。软件功能模块如图3所示。程序总体流程框架图如图4所示。其中定时器模块是软件的重点,主要完成地图的显示。
1.3 接口设计
机载数据通过遥测天线传入地面接收系统,再由地面数据处理服务器通过网络发送。电子地图通过接收网络上多流数据包,根据其中飞机号不同来提取信息,然后将相应飞机位置信息和参数信息显示在地图上。如图5所示,多流数据包包含同步字、总字长、飞机编号、处理系统类型、数据类型、时间字和基本飞行信息,如经纬度、高度、速度、航向角、横滚角、俯仰角和剩余油量等。
2 软件实现
2.1 地图的显示
在VC环境下集成MapX开发电子地图软件是将MapX作为控件插入到应用程序中,然后通过设置其属性和调用其方法,响应其事件来实现的[1?4]。
2.2 飞机的显示
飞机显示主要显示飞机位置、基本飞行参数和飞行轨迹。软件采用创建动态图层的方式,将表示飞机的符号图元、标签和飞行轨迹置于单独的一个图层中,通过SetTimer()函数设置一个定时器,并利用MapX的动态图层,快速刷新显示飞机定位信息。图6所示是实现飞机显示的程序框图,该模块采用定时器实现。处理步骤如下:
(1) 判断飞机号是否为零。在飞行过程中飞机落地后就会停止发送遥测信号,这时软件将该飞机的飞机号置零。因此,如果飞机号为零,则意味着该飞机已经无信号,软件直接处理下一架飞机数据;若不为零,则进行下一步。
(2) 判断飞机信息是否更新。在接收模块时加标记量判断数据是否更新,若未更新,则等待一定时间(软件设置为10 min),若依然没有新数据则将该飞机的飞机号置零,所有参数变量恢复初始值;若数据已更新,则进行下一步。
(3) 飞机是否显示。通过菜单栏选择不需要显示的飞机,若该架飞机不需显示,则将该飞机的飞机号
置零,所有参数变量恢复初始值。
(4) 判断经纬度是否合法。由于遥测链路有时信号不稳定或者机载测试设备自身原因导致传输到地面的数据发生错误,特别是经纬度错误常常会引起跳点,所以需要判断经纬度是否在正常范围。中国政区经度在73°~136°之间,纬度在3°~54°。
(5) 与上一个点距离是否合理。同样还是为了防止跳点,如果相邻两个点的距离过大,则认为该点为跳点,直接处理下一架飞机数据。MapX提供Distance()函数计算两点间的距离。
(6) 飞机位置信息是否创建。若没有创建,则是飞机第一次发出数据,创建飞机图元并显示在地图上。MapX提供CreateSymbol()函数创建点图元,用来显示飞机位置。CreateText()函数用来创建文本,用来显示飞机编号和飞机号。文本的字体、大小、颜色等属性可以根据实际需求来予以设置;若已创建则修改飞机图元的位置信息,重新设定图元的经纬度。
(7) 是否显示完整轨迹。可通过菜单栏选择,MapX 提供的航迹显示就是将飞机相邻时间的位置点连成线。MapX提供CreateLine()函数创建线图元。若显示完整轨迹,则软件不会删除轨迹,但需要将本应该删除的轨迹线的ID保存在Dsave[n][]数组中,用于当再次选择不显示完整轨迹时删除这些轨迹线;若不显示完整轨迹,则需判断飞机轨迹线是否足够长。如果不够长,则创建新轨迹线;如果够长,则在创建新轨迹线之前删除最旧的一段轨迹,保持轨迹线在一定数量。
(8) 保存飞机轨迹。每间隔三个点保存飞机的经纬度到结构体数组Save[n][]中。结构体Save[n][]由两个float型变量组成。Save[n][]用于当选择“显示完整轨迹”时,用虚线画出飞机之前的完全轨迹图。
(9) 更新信息列表飞机信息。将飞机的相关信息实时显示到软件界面底部的List列表。
(10) n=n+1,判断是否n 2.3 软件运行界面
软件运行主界面如图7所示。
界面上部菜单和左边工具栏为连接各个功能模块的操作按键,下部为飞机部分参数信息的显示,如飞行试验的高度、速度、经度、纬度等,容易观察,直接、便捷。在显示信息最右边选择遥测站后,会显示飞机相对该遥测站的水平和垂直角度。状态栏显示软件网络连接情况和测距数值,以及当前时间和地图上任意点的经纬度。图中以机场为中心显示坐标轴,并显示4架飞机,其中飞机1显示了完整轨迹,并用虚线画出。软件界面友好,使用方便,维护简单,稳定性好,通用性强。
3 结 语
本文介绍了采用面向对象程序设计语言VC++,集成MapX控件,设计并实现的多目标电子地图的开发。由于软件采用模块化设计,可根据以后监控需求进行快速的升级。使用结果表明,软件完全满足多架飞机同时监控的需求,并很好的提升了遥测信号的质量,对型号试飞任务起到积极的作用。
参考文献
[1] 秦浩,徐景硕,高扬,等.基于VC++与MapX的导航电子地图的实现[J].航空计算技术,2011,41(5):98 []?101.
[2] MapInfo Corporation. MapX 5.0开发人员手册[EB/OL].[2012?09?17].http://p?.
[3] 翟亚栋,陈怀民,吴成富,等.基于MapX开发的无人机导航系统[J].计算机测量与控制,2008,16(11):1626?1628.
[4] 颜辉武,吴小芳,祝国瑞.VC++环境下基于MapX控件的GIS应用软件的开发[J].昆明理工大学学报:理工版,2001,26(6):12?17.
[5] 王庆,周喜宁,宋磊.基于MapX的模拟器电子海图软件设计研究[J].现代电子技术,2014,37(1):119?122.
[6] 王延路,刘语乔.试飞监控电子地图设计与实现[J].现代电子技术,2013,35(13):131?133.