二次雷达数据显示回放系统设计

2020-08-13 07:17孙粲
软件 2020年6期

摘  要: 二次雷达是空中交通管理部门实现雷达管制的技术基础,对保障飞行器飞行安全发挥了重要作用。本文根据二次雷达运行保障实际需求,设计了一种二次雷达数据显示回放系统,实现了A/C模式二次雷达和S模式二次雷达数据的记录、显示、回放等功能。经测试,该系统运行可靠、效率高,可较好的满足实际需求。

关键词: 二次雷达;ASTERIX;显示;回放

中圖分类号: TP311.52    文献标识码: A    DOI:10.3969/j.issn.1003-6970.2020.06.045

本文著录格式:孙粲. 二次雷达数据显示回放系统设计[J]. 软件,2020,41(06):222224+232

【Abstract】: The secondary surveillance radar is the technical basis of radar control for air traffic management department, and plays an important role in flight safety. According to the actual needs of operation and maintenance, secondary surveillance radar data display and playback system is designed, which can record, display and playback the data of mode A/C and mode S secondary surveillance radar. Experiments show that the system is reliable and efficient, and can better meet actual needs.

【Key words】: Secondary surveillance radar; ASTERIX; Display; Playback

0  引言

随着民航运输业的快速发展,空中交通流量不断增加,二次雷达作为监视飞行器的主要手段,在空中交通管理中发挥着重要作用。二次雷达通过对飞行器的询问与接收飞行器对询问的应答实现对飞行器的空间三维定位与数据通信,可为空中交通管理部门指挥飞行器飞行提供重要信息[1-3]。二次雷达数据显示回放系统是二次雷达重要的人机接口,也为技术人员分析雷达性能、排查故障、分析假目标干扰等问题提供重要参考信息。

本文根据空中交通管理二次雷达运行保障实际需求,设计了一种二次雷达数据显示回放系统,实现了A/C模式二次雷达和S模式二次雷达数据的显示、回放等功能,可为二次雷达的安全运行提供有力保障。

1  总体设计

二次雷达数据显示回放系统运行于Ubuntu 19.04操作系统,使用Qt5.12.0开发,编程语言为C++,基于Qt可跨平台的特点,本系统在Windows和其他Linux系统上对源代码稍加修改,即可实现多操作系统运行[4,5]。

二次雷达数据显示回放系统由显示模块和回放模块两部分组成。显示模块负责雷达数据的接收、地图显示并将其记录于二进制文件中,回放模块读取显示模块记录的雷达数据文件并在地图上回放显示,两个模块可同时运行。二次雷达数据显示回放系统的运行需绘制大量图形,消耗大量系统资源,若采用单线程技术,将会造成主界面卡顿,因此,本设计显示模块和回放模块均使用主线程和数据解析线程两个线程,保证程序运行流畅。主线程和数据解析线程的通信采用Qt特有的Signal/Slot机制。

2  详细设计

2.1  数据解析线程设计

二次监视雷达数据通常采用欧控ASTERIX规范作为雷达信号输出标准[6],基于OSI模型的表示层和应用层制定,其中A/C模式雷达输出Cat001雷达目标报告[8]和Cat002雷达服务报文[9]、S模式雷达输出Cat034雷达服务报文[10]和Cat048雷达目标报告[11]。ASTERIX规范雷达数据格式如图1所示。一条ASTERIX雷达数据包含一下内容:(1)Cat字段,ASTERIX雷达数据类别,如Cat001、Cat002,长度为1字节,即共定义256种Cat类别;(2)Len字段,表示该ASTERIX雷达数据的长度,长度为2字节;(3)FSPEC(Field Specification)字段,可变长度,该字段是对后续Record字段包含的数据项(Data Item)的定义,ASTERIX规范的每个Cat类别都定义了标准UAP(User Application Profile),其中定义了该Cat类别可能包含的所有数据项,可根据雷达目标特征输出其中部分数据项,若此次包含某一数据项,则在FSPEC中对应的标志位置1否则置0;(4)Record字段,可变长度,该字段中依次排列了FSPEC字段定义的数据项的内容,该字段与FSPEC字段共同组成一条雷达目标报告或者雷达服务报文;每条ASTERIX雷达数据可包含一条或多条雷达目标报告或者雷达服务报文。

雷达数据通常采用同步串行HDLC协议或UDP协议传输。通常,计算机不能直接接收同步串行HDLC数据,若输入显示模块的数据为HDLC协议数据,需加装HDLC-UDP协议转换器,将HDLC数据转换为UDP数据后,输入显示模块。

数据解析线程运行于后台,显示模块的数据解析线程通过UDP Socket读取网络上的雷达数据,并将其记录在二进制文件中;回放模块的数据解析线程则从显示模块记录的文件中读取雷达数据。线程中译码器的性能直接关系到能否正确解析雷达目标信息,在该线程中设计了Decoder001、002、034、048四个译码器,根据获取的雷达数据的类型选择对应的译码器解析雷达数据,设计了Target001、Message002、Message034、Target048四个类,分别存储解析后的Cat001、002、034、048报文内容,通过Signal/Slot机制传输到主线程处理。

2.2  主线程设计

主线程主要实现功能控制、背景地图显示、雷达目标显示、坐标转换、其他信息显示等功能。

显示模块的功能控制包括雷达参数设置,数据显示的开始、暂停、终止,数据显示过滤等功能;回放模块的功能控制还可设置回放时间段和回放  速度。

地图显示用于显示数据解析线程解析的雷达数据和用户自定义的背景地图,如雷达站点、扇区、航路等。地图显示功能基于Qt图形视图框架实现。Qt图形视图框架由场景QGraphicsScene、视图QGraphicsView、图元QGraphicsItem组成[3,4],相对于采用通用GIS API的方案,具有轻量化、效率高的特点,可实现本设计背景地图、雷达目标图形化显示的需求。构造继承自QGraphicsView的MapView类和继承自QGraphicsScene的MapScene类,并实现地图缩放、拖拽等功能。雷达站点、扇区、航路等信息以文本文件的形式存储在本设计文件夹下,显示/回放模块读取文本文件并将其以圆点、多边形、折线的形式显示在背景地图上。

雷达目标在地图上的显示至少需要包含目标的当前位置、历史点、标牌、当前位置与标牌连线等元素,因此,构造一个TargetItem类用于将单个目标显示在地图上,其中包含:构造的当前位置图元、历史点图元、标牌图元、当前位置与标牌连线图元等成员变量。该类添加如下方法:鼠标双击目标的当前位置可弹出窗口显示当前目标的详细信息;目标的标牌可以被拖动到其他位置;设置显示终止门限参数n,连续n个雷达探测周期未能探测到该目标时,认为该目标未在雷达探测范围,将其从地图上删除。主线程将接收到的Target001、Target048转换为TargetItem,將其显示在地图中,并在后续周期不断更新其信息。

雷达目标的坐标通常用三维极坐标(斜距ρ、方位θ、高度h,ρ-θ-h)表示,背景地图元素(雷达站点、航路、扇区),坐标通常用WGS84坐标表示,要在Qt图形视图框架中显示上述信息均需要进行坐标转换。将以雷达为中心的目标三维极坐标投影到平面,转换为以雷达为中心的平面极坐标(r-θ),再将该平面极坐标通过Vincenty公式转换为WGS84坐标;将雷达目标和背景地图元素的WGS84坐标映射为QGraphicsView坐标系统即可显示在地图上。

图2为二次雷达数据显示回放系统显示模块界面,回放模块界面与显示模块基本相同。Display选项卡中,左边区域为功能控制、目标显示过滤、雷达目标分类统计和当前系统时间等内容;右边区域为包括背景地图、雷达目标等内容的地图显示。

图3为雷达目标详细信息的窗口显示,包含了当前周期雷达探测输出的该目标所有特征信息,所有信息均来自于当前雷达周期译码器对Cat001或Cat048雷达目标报告的解析。

图4位显示模块System Status选项卡界面,显示的当前周期雷达的状态显示,所有信息均来自于当前雷达周期译码器对Cat002或Cat034雷达服务报文的解析。

3  结论

二次雷达数据显示回放系统实现了空管二次监视雷达输出的ASTERIX Cat001、048格式雷达目标报告和Cat002、Cat034格式雷达服务报文的接收、记录、显示、回放等功能,具有显示雷达目标详细信息、雷达详细信息、目标统计信息、雷达系统状态信息等功能,可用于分析雷达性能、排查故障和干扰等。本设计基于Ubuntu Linux操作系统,使用Qt开发,开发语言为C++,图形界面友好,运行效率高。经测试,该设计可较好的满足二次雷达数据的接收、记录显示和回放需求。

参考文献

[1] 姜鹏, 张喆, 郭金亮. 空管二次雷达数据仿真系统的设计与实现[J]. 软件, 2017, 38(02): 10-15.

[2] 张军. 空域监视技术的新进展及应用[J]. 航空学报, 2011, 32(01): 1-14.

[3] 刘小兵, 俞静一, 赵玉奎. 二次雷达工作模式发展展望[J]. 软件, 2012, 33(04): 78-80.

[4] 邓子强, 王玉玫, 邓红艳, 张宇. 基于Qt绘图系统的图形应用优化研究与实现[J]. 软件, 2016, 37(12): 59-62.

[5]       兰林涛, 桂彦, 郑镇潮, 柳邓一漫, 罗京, 王朦. 基于Qt开源框架的跨平台图像修复系统设计与实现[J]. 软件, 2016, 37(08): 47-50.

[6]       赵泽. 一种通过航管集中监控系统分析雷达原始数据的方法[J]. 软件, 2019, 40(04): 210-214.

[7]       王泓淼, 张洁, 雷建胜, 赵恩伟, 王森. 基于微服务的空天协同目标识别与监视系统设计与实现[J]. 软件, 2019, 40(11): 1-3.

[8]       EUROCONTROL SUR. ET1. ST05. 2000-STD-02a-01. EUROCONTROL STANDARD DOCUMENT FOR RADAR DATA EXCHANGE Part 2a Transmission of Monoradar Data Target Reports Edition 1. 2[S]. 2011.

[9]       EUROCONTROL SUR. ET1. ST05. 2000-STD-02b-01. EUROCONTROL STANDARD DOCUMENT FOR RADAR DATA EXCHANGE Part 2b Transmission of Monoradar Service Messages Edition 1. 0[S]. 1997.

[10]    EUROCONTROL SUR. ET1. ST05. 2000-STD-02b-01. EURO?CONTROL STANDARD DOCUMENT FOR SUR?VEILLANCE DATA EXCHANGE Part 2b Transmission of Monoradar Service Messages Edition 1. 27[S]. 2007.

[11]    EUROCONTROL-SPEC-0149-4. EUROCONTROL Speci?fi?cation for Surveillance Data Exchange ASTERIX Part 4 Category 048 Monoradar Target Reports Edition 1. 25[S]. 2019.

[12]    刘彦平. 基于Qt的Windows平台组播通信技术研究[J]. 软件, 2017, 38(01): 135-138.