星基ADS-B信号模拟与显示软件的设计实现
2019-08-01胡铁乔李阳波张露露
胡铁乔,李阳波,张露露
(中国民航大学天津市智能信号与图像处理重点实验室,天津 300300)
星基ADS-B 系统是一种把ADS-B 接收机安装在卫星上的新型ADS-B 技术。与地基ADS-B 系统相比,星基ADS-B 系统具有以下优势:系统运行于近地轨道,单一卫星接收机的覆盖范围可达3 000 km,远大于地面接收机的覆盖范围;使用多星组网可实现全球无缝覆盖[1],减少了地面站的建设数量;可实现对地基ADS-B 系统无法覆盖的极区、洋区等区域的覆盖[2]。世界各国正大力发展星基ADS-B 技术,2015年,中国国防科技大学自主研发的“天拓三号”卫星成功发射,其搭载的星基ADS-B 接收机可完成对报文中目标位置、速度、ICAO 地址等信息的解析[3];美国铱星公司2013年提出将星基ADS-B 接收机搭载到其铱星二代卫星上,目前其在轨星基ADS-B 卫星,已达30 颗,预计2020年前提供全球商业化服务[4]。
星基ADS-B 系统的研究处于起步阶段,尚未投入实际应用。为保证系统的可靠性,利用星基ADS-B模拟信号对星基ADS-B 接收机进行地面测试,在星基ADS-B 接收机的设计和研制过程中有着重要作用。电子科技大学的胡晨波设计了一款S 模式ADS-B多目标模拟器[5]。艾法斯公司生产的IFR 6000 设备可用于测试MODE A/C/S 应答机、DME、TCAS、ADS-B和TIS 等航空电子系统[6]。这些设备都是针对地基ADS-B系统,还没有专门针对星基ADS-B 信号特性而设计的ADS-B 信号模拟设备问世。
星基ADS-B 信号,顾名思义就是星基ADS-B 接收机接收到的ADS-B 信号。对星基ADS-B 信号的模拟主要是对信号多普勒频移和功率的模拟。近地轨道卫星的运行速度可达7 400 m/s,卫星与目标间的相对速度很大,信号多普勒频移十分可观[7];星基ADS-B接收机部署在卫星上,覆盖范围广、监控目标较多,信号经过卫星通信链路损耗,功率较低(-110~-90 dBm)。针对星基ADS-B 信号的特点,设计了一款星基ADSB 信号模拟与显示软件:对一颗四天线低轨道卫星建模,仿真多个目标的航迹,仿真目标发送ADS-B 信号的多普勒频移和功率,实现对星基ADS-B 信号的模拟;完成对卫星覆盖区域、目标航迹、背景地图显示;将星基ADS-B 数据发送给下位机,下位机实时生成星基ADS-B 模拟信号。
1 星基ADS-B 信号模拟与显示软件设计方案
1.1 星基ADS-B 信号模拟原理
对星基ADS-B 信号的模拟是对信号多普勒频移和功率的模拟。星基ADS-B 系统多采用多波束天线,每个波束分割一部分覆盖区[8]。为实现对星基ADS-B信号的模拟,对一颗载有4 个定向天线,处于瞬时运动状态的低轨道卫星建模,每个天线波束形成一个覆盖区,通过对文献[9]中卫星瞬时覆盖区域算法的分析,对四波束覆盖区域边界进行解算;对波束内飞行目标的航迹进行仿真,仿真目标按照大圆航线飞行[10]。已知目标相对于卫星的径向速度,可利用多普勒频移公式计算信号的多普勒频移,已知目标与卫星之间的距离,可利用卫星上行链路公式[11]求得信号功率。信号模拟算法原理如图1所示。
图1 星基ADS-B 信号模拟原理Fig.1 Simulation principle of satellite-based ADS-B signal
1.2 软件系统架构
多目标星基ADS-B 信号模拟与显示软件基于Visual Studio 2012 开发平台,使用MFC 建立交互界面。主要有以下功能:完成对4 个波束内1 000 个目标航迹的仿真和对目标发送的星基ADS-B 信号的模拟;完成对四波束覆盖区、背景地图和目标航迹的显示;将星基ADS-B 数据发送给下位机,下位机实时生成星基ADS-B 模拟信号。为实现上述功能,设计软件系统架构如图2所示。
软件系统由参数设置模块、数据生成模块、显示模块和通信模块4 部分组成。数据生成模块根据参数设置模块设置的参数生成各类数据作为通信模块和显示模块的数据源。外部依赖于地图数据文件作为背景地图显示的数据源。与1 台下位机相连,下位机接收到软件发送的星基ADS-B 数据,根据数据信息生成星基ADS-B 模拟信号。各模块功能如图3所示。
图2 多目标星基ADS-B 信号模拟与显示软件系统架构Fig.2 System architecture of multi-target satellite-based ADS-B signal simulation and display software
图3 多目标星基ADS-B 信号模拟与显示软件功能模块设计Fig.3 Functional module design of multi-target satellite-based ADS-B signal simulation and display software
1.3 参数设置模块
参数设置模块用于设置仿真参数包括:卫星参数、仿真航迹参数、仿真时间。仿真时间为整个仿真过程的时长,取值范围是1~600 s。卫星参数包括:卫星高度、星下点位置、卫星轨道倾角。通过这3 个参数,数据生成模块可生成卫星位置、卫星速度和四波束覆盖区边界数据。航迹参数包括:波束选择、目标个数、飞行高度。波束选择确定需要仿真的波束;目标个数表示所选波束内仿真目标个数,取值范围是1~250,4个波束最多可选择1 000 个目标;飞行高度表示仿真目标的飞行高度。
1.4 数据生成模块
数据生成模块是星基ADS-B 信号模拟与显示软件的核心模块,根据参数配置模块所提供的参数可生成卫星数据、航迹数据和星基ADS-B 数据。其中卫星数据包含卫星的位置、速度和四波束覆盖区边界数据。航迹数据包含目标每个航迹点的位置信息、速度信息、时间信息、波束信息、信号多普勒频移信息和功率信息。星基ADS-B 数据包含目标在航迹点处发送的星基ADS-B 信号信息:波束信息、时间信息、信号多普勒频移信息、功率信息和ADS-B 报文。
1.5 显示模块
显示模块用于对四波束覆盖区、背景地图和目标航迹的显示。覆盖区域和目标航迹的显示以数据生成模块生成的四波束覆盖区边界数据和航迹数据作为数据来源,背景地图显示以内存初始化文件(MIF)作为数据来源。MIF 是地理信息系统软件(MapInfo)通用数据交换格式,用来保存图形信息。软件启动时自动加载预设的MIF 文件,可实现对中国地理边界、省、市、县级行政单位的显示。在仿真开始后将目标航迹动态显示在地图背景上。
1.6 通信模块
通信模块用于实现软件和下位机的数据交互。仿真开始后,软件系统通过通信模块把数据生成模块生成的星基ADS-B 数据发送给下位机。根据数据信息,下位机实时生成星基ADS-B 模拟信号,同时显示模块将目标航迹显示在背景地图上。为保证显示模块和通信模块同时工作,采用多线程技术。
1.7 软件系统的工作流程
软件系统通过参数设置模块、数据生成模块、显示模块和通信模块这4 个模块共同完成对星基ADSB 信号模拟和显示功能,其工作流程如图4所示。
图4 系统工作流程Fig.4 System working procedure
2 星基ADS-B 信号模拟与显示软件实现方案
2.1 数据处理
软件数据生成模块生成3 类数据:卫星数据、航迹数据和星基ADS-B 数据,3 种数据生成原理如图5所示。对航迹数据中航迹点的位置信息、速度信息进行编码得到ADS-B 报文,ADS-B 报文、多普勒频移信息、功率信息等可构成星基ADS-B 数据。
图5 数据生成流程Fig.5 Data generation procedure
卫星数据用结构体变量来存储,定义数据类型如下:
星基ADS-B 数据的存储使用STL vector 实现,vector 是一种能够存放多种数据类型的动态数组。将星基ADS-B 数据结构体类型保存在动态数组vector中,即可用vector 实现对星基ADS-B 数据的存储。建立vector 对象sate_ads_b_date 的代码如下:
2.2 显示功能的实现
1)大地坐标到客户区坐标的转换
显示模块用于对四波束覆盖区、背景地图和目标航迹的显示。四波束覆盖区、背景地图和目标航迹的显示是在客户区显示,实现以上信息的绘制工作需要把其对应像素点的大地坐标转换为客户区坐标。其转换流程如图6所示。
图6 坐标转换流程Fig.6 Coordinate transformation procedure
采用墨卡托投影作为投影方式,墨卡托投影公式[12]为
其中:(lon,lat)为像素点大地坐标;(x,y)为像素点经过墨卡托投影后在墨卡托直角坐标系的位置;a 为地球椭球长半轴值;e 为地球椭球第一偏心率。再由墨卡托直角坐标系转化到客户区坐标系为
其中:(sx,sy)为客户区坐标系坐标值;(x,y)为墨卡托直角坐标系坐标值;(x0,y0)为墨卡托直角坐标系原点;(sx0,sy0)为客户区坐标系原点坐标;g 为比例尺,完成坐标转换。四波束覆盖区的经纬度信息来源于卫星数据;背景地图的经纬度信息来源于外部MIF 文件,其中包含中国地图边界、省、市、县级行政单位的经纬
度信息;目标航迹的经纬度信息来源于航迹数据。
2)绘制流程
显示模块对四波束覆盖区、背景地图和目标航迹的绘制流程图如图7所示。通过调用画笔类(CPen)、画刷类(CBrush)和设备上下文类(CDC)的成员函数来完成绘制。重要函数包括:设置背景函数SetBkMode()、文本输出函数ExtTextOut()、画线函数Polyline()、绘制封闭图形函数Polygon()。在对航迹进行绘制时,通过周期性调用消息处理函数OnPaint()刷新界面,将目标航迹动态显示在地图上。
图7 绘制流程Fig.7 Drawing procedure
2.3 通信功能的实现
TCP/IP 协议具有开放性强,可靠性高的特点。为保证数据的可靠传输,软件与下位机的通信采用TCP/IP 协议来实现。上位机采用Windows Socket 编程[13]实现客户端功能,获得与下位机(服务器)的通信。服务器与客户端建立通信的流程如图8所示。
图8 TCP/IP 通信协议建立流程Fig.8 Building procedure of TCP/IP communication protocol
服务器端先通过socket()函数创建套接字,然后使用bind()函数将套接字绑定在服务器的IP 地址和端口上。通过listen()函数设置服务器为监听模式,等待客户端的请求。当客户端向服务器发送连接请求时,执行accept()函数,可获得客户端的socket 地址,accept()函数执行成功时返回1 个新的连接socket,该socket 唯一地标识了被接受的连接,服务器和客户端可通过读写该socket 来实现通信。
3 软件系统功能验证
3.1 信号模拟功能验证
信号模拟功能指软件向下位机发送的星基ADSB 数据能够被下位机接收,下位机正确读取数据中的多普勒频移信息、功率信息,生成对应的星基ADS-B模拟信号。ADS-B 信号是脉冲信号,无法直接通过频谱分析仪测得信号频率和功率。下位机系统有载波输出功能,启动这项功能,可直接输出星基ADS-B 模拟信号的载波。
软件向下位机发送固定频移、固定功率的星基ADS-B 数据,通过频谱分析仪测试星基ADS-B 模拟信号载波频率和功率,完成对信号模拟功能的验证。使用的频谱分析仪为鼎阳公司生产的SIGLENT SSA3201X。软件向下位机发送频移-10 000 Hz,功率-90 dBm 和频移10 000 Hz,功率-100 dBm 星基ADSB 数据。
经测试可知当发送频移为-10 000 Hz,功率为-90 dBm 数据时,生成信号的载波频率为1 089.990 000 MHz,功率为-90.05 dBm;当发送频移为10 000 Hz,功率为-100 dBm 数据时,生成信号的载波频率为1 090.010 001 MHz,功率为-100.01 dBm。生成信号的频偏和功率误差很小,频偏误差小于10 Hz,功率误差小于0.5 dBm,说明此系统可实现对星基ADS-B 信号的模拟功能。
3.2 显示功能验证
参数设置部分如图9、图10 所示,设置卫星轨道高度为600 km,星下点位置为(112.550 663 48°N,37.870 585 713°E)(太原机场),轨道倾角为90°。设置目标飞行高度为9 000 m,在波束一内仿真5 个目标,波束二内仿真10 个目标,波束三内仿真80 个目标,波束四内仿真250 个目标,仿真时间为600 s。仿真开始后软件运行效果如图11 所示。
图9 卫星参数设置Fig.9 Satellite parameter setting
图10 目标航迹参数设置Fig.10 Target trajectory parameter setting
图11 星基ADS-B 信号模拟与显示软件运行效果Fig.11 Operation effect of multi-target satellite-based ADS-B signal simulation and display software
波束一、波束二覆盖区局部放大图如图12、图13所示,可看到波束一内的5 个目标和波束二内的10个目标。每个目标的标牌上显示了此刻发送信号的多普勒频移和功率。
图12 波束1 覆盖区局部放大图Fig.12 Local enlargement of Beam One coverage
图13 波束2 覆盖区局部放大图Fig.13 Local enlargement of Beam Two coverage
4 结语
针对星基ADS-B 信号的特点设计了星基ADS-B信号模拟与显示软件。为了仿真目标所发送信号的多普勒频移和功率值,对四天线低轨道卫星进行建模,对目标航迹进行仿真,通过计算目标相对于卫星的径向速度来求得多普勒频移,通过卫星与目标间的距离计算信号功率,实现对星基ADS-B 信号的模拟。利用墨卡托投影原理和绘制函数实现了对四波束覆盖区、背景地图、目标航迹的显示。测试结果证明软件运行正常,可实现对星基ADS-B 信号的模拟和显示功能。