APP下载

数据驱动的船载外测数据实时处理软件架构设计与实现*

2021-11-22张煜昕李永刚史鸣谦郭力兵杨海民胡上成

计算机工程与科学 2021年11期
关键词:测数据数据处理时延

张煜昕,李永刚,史鸣谦,郭力兵,杨海民,胡上成

(1.中国卫星海上测控部,江苏 江阴 214431;2.上海航天控制技术研究所,上海 201109)

1 引言

船载外测数据处理主要是对外测设备的测量数据进行量纲复原和系统误差修正,用精确的计算方法进行处理,以获取飞行器精确的弹道参数。船载外测数据处理和陆基外测数据处理很多方面是相同的,但因前者有其特殊性,增加了数据处理的复杂性,它还必须对船摇引起的船体姿态变化、风浪引起的船体变形和船位移动进行处理,才能获取精确的外测数据[1,2]。船载外测设备主要包括单脉冲雷达、C波段微波统一系统(UCB(Union C Band))、经纬仪以及惯性导航和变形测量等辅助测量设备[3]。现有的外测数据实时处理方法[4,5]采用基于时间驱动的软件架构,即每一个数据处理周期是根据设备数据采样周期来中断触发的,其处理模式简单有效,避免了复杂的时序问题。但是,随着航天测控任务的多样性和复杂性不断增加,特别是数据采样频率的变化调整,原有的时间驱动处理模式已经逐渐不能满足需求,以致于时间驱动的软件架构开发的外测软件日益复杂,维护难度不断增加。这种情况下,船载外测软件需要一种适应性和可扩展性更强的软件架构,以满足不同测控体制下外测数据的处理需求,并且可通过配置适应不同的任务模式。

数据驱动的船载外测数据实时处理方法以采集到的不同来源和不同类型的数据作为基础,首先进行数据预处理,然后通过不同计算方法求解精确的弹道参数。数据驱动的数据处理方法在很多领域得到了应用。文献[6]提出一种基于Hadoop架构的数据驱动的Adaboost-SVM增量学习算法,利用不同的分类器对不同分区的数据进行处理,在保证分类精度的基础上提高了SVM算法对大规模数据的处理能力。文献[7]对基于数据驱动的微小故障诊断方法进行了综述,主要包括基于统计分析、基于信号处理和基于人工智能的方法。朱锐等[8]以软件过程数据为研究对象,提出了一种双层次的软件过程挖掘方法,解决了软件过程数据因活动信息和案例属性的缺失而无法应用传统过程挖掘方法的问题,实验结果表明了该方法的可行性和正确性。文丹艳等[9]以新闻文本数据与股价技术指标数为基础,基于人工神经网络方法设计了一种多源数据驱动的股票自动交易决策模型,实验表明该方法在预测准确率上得到了提升。刘昊俣等[10]利用安装于高铁沿线的风速传感器所包含的时空信息,提出一种新颖的依靠风速预测的风速报警解除时间调整方案,能够适应复杂多变的环境,有效减少了报警冗余时长,提高了列车运行效率。结合上述分析,数据驱动的思想可以应用到船载外测数据实时处理软件架构设计与实现方面。

本文提出了一种数据驱动的外测数据实时处理软件架构,该架构没有固定的数据处理周期,收到数据即开始相应的处理流程。在银河麒麟操作系统下,基于该架构实现了外测软件,该软件包含多个由数据驱动的功能组件,各组件之间使用服务总线来实现数据交互与集成。实验表明,基于该架构实现的外测数据实时处理软件很好地解决了时延过大和时序交替的问题,能够满足当前航天任务需求。

2 船载外测数据实时处理软件功能及特点

船载外测数据实时处理软件的主要任务是接收外测设备原始数据,然后对数据进行处理并生成引导数据,最后发送引导数据引导至外测设备。具体功能主要包括以固定周期接收各外测设备的原码,进行量纲转换、零值和轴系误差修正以及合理性检择等预处理,根据惯导、变形数据计算各外测设备等效船摇,将外测数据进行船摇修正,得到目标惯导地平系坐标;对外测数据进行平滑修正,得到外测弹道,并进行积分预报;在飞行器入轨段,用积累的定轨数据计算初轨根数,对多组初轨根数进行优选;积累外测弹道数据,在飞行器运行段,依据一段较长的测轨数据进行轨道改进。

船载外测数据实时处理软件具有以下特点:

(1) 接收数据种类多。各种外测设备以及辅助测量设备决定了软件接收多种外测数据,包括单脉冲雷达、UCB、经纬仪、惯性导航和变形测量等设备获取的原始测量信息,且随着新型外测设备的增加,接收的数据类型也会进一步增多。

(2) 数据处理方法多[11,12]。由于外测数据种类多,不同的数据类型对应不同的数据处理方法,船载外测数据实时处理软件需要根据不同数据类型选择不同的数据处理方法。

3 现有船载外测数据实时处理软件架构分析

现有船载外测数据实时处理软件架构是以时间驱动为基础的,时间驱动指的就是软件处理流程由时统中断信号触发,也就是接收到时间信号后再进行数据接收和数据处理,两者的频率严格保持一致。现有船载外测数据实时处理软件的处理过程示意图如图1所示。

Figure 1 Schematic diagram of time-driven software processing process图1 时间驱动的软件处理过程示意图

现有的船载外测数据实时处理软件使用A、B2个缓冲区,数据采样周期为T,开始时A缓冲区负责数据接收,B缓冲区负责数据处理,T时间后收到时统中断信号,2个缓冲区功能互换,即A缓冲区负责数据处理,B缓冲区负责数据接收。在时间驱动模型下,当前周期处理的数据总是上一个周期已经接收完成的各类测量数据,这样能够避免复杂的时序问题,简单高效。不足之处有以下几点:

(1) 数据处理有T时延;

(2) 只能处理采样周期固定为T的数据;

(3) 对网络环境的要求较高,时延较大、重帧和丢帧等情况对数据处理的精度有一定影响;

(4) 软件的耦合度高,不能敏捷地适应任务需求的变化,对于不同类型的任务,需要管理多个软件配置项版本,软件的维护与扩展成本较高。

4 数据驱动的船载外测数据实时处理软件架构设计

针对现有时间驱动软件架构的不足,本文提出了基于数据驱动的船载外测数据实时处理软件架构。数据驱动指的是处理流程由数据本身直接触发,没有固定的数据处理周期,收到数据即开始相应的处理流程。数据驱动的数据处理方式时延小,对网络环境要求不高。数据驱动模型的核心是组件化,组件是指精确定义、封装完善、独立于其他组件所处环境和状态的功能单元,各组件接收并处理特定类型的数据。根据船载外测数据的处理流程,本文将船载外测数据实时处理软件分解为7个基于数据驱动处理的功能组件,包括船姿船位数据处理功能组件、引导数据处理功能组件、通信数据处理功能组件、脉冲雷达数据处理功能组件、UCB数据处理功能组件、经纬仪数据处理功能组件和界面显示与操作功能组件。各个组件功能如表1所示。

Table 1 Function component name and function description表1 功能组件名称和功能说明

整个软件架构主要包括组件内的数据驱动处理和组件间的数据驱动处理。组件内数据驱动处理主要关注组件内数据处理流程,而组件间数据驱动处理主要关注组件之间的数据交互。

4.1 组件内的数据驱动处理

各个功能组件内的数据驱动处理流程可以分为以下几个步骤:

(1) 时标检验。时标检验是指根据数据时标判断重帧、丢帧和乱序等情况,及时进行剔除异常数据、内插补帧等处理。以设备数据发送周期T为例,其时标检验流程如图2所示,其中,tk和tk-1是2个变量,分别用于记录收到当前数据时标时刻和收到上一个数据时标时刻。

(2) 数据预处理。该流程与现有船载外测数据实时处理软件的数据预处理流程一致,对测量数据进行零值修正、连续化、合检和轴系误差修正等处理。

(3) 数据积累。保存预处理之后的数据,与其他组件进行数据交互时使用。

Figure 2 Flow chart of time scale inspection 图2 时标检验流程图

与时间驱动模式相比,组件内的数据驱动处理不需要等待周期为T的时统中断信号,收到数据即开始相应的数据处理流程,具有更强的实时性,并且增加的时标检验流程,能够对网络异常数据进行甄别和处理,一定程度上提高了系统的稳定性和数据处理精度。

4.2 组件间的数据驱动处理

如果各个组件采取点对点的直接交互方式,势必增加系统的复杂度和耦合性,本文采取服务总线[13 - 16]对各组件之间的关系进行解耦。服务总线将应用程序的不同功能单元(即服务),通过服务之间定义的良好接口和契约联系起来。所谓服务,就是精确定义、封装完善、独立于其它服务所处环境和状态的功能单元。服务一般独立于具体实现技术细节,封装了可复用的业务功能,通常是大粒度业务,如业务过程、业务活动等;接口是采用中立的方式进行定义的,它应该独立于实现服务的硬件平台、操作系统和编程语言。这使得构建在各种各样系统中的服务可以以一种统一和通用的方式进行交互。

组件间的数据驱动处理示意图如图3所示。

Figure 3 Architecture of the measured data’s real-time processing 图3 外测数据实时处理架构图

数据驱动的船载外测数据实时处理软件架构的关键是服务抽象。应用程序的不同功能单元被包装为服务,每个服务带有明确可调用的接口,它们可以通过统一、通用的方式进行交互。本文中各功能组件的服务接口定义如表2所示。

Table 2 Description of function component service interface表2 功能组件服务接口说明

在总线式集成方式下,各功能组件只需关心自身功能和服务接口的实现,而不必关心数据交互的具体细节,大量的编程问题局部化,软件的更新和维护变得快速和容易,通过部署不同的组件类型与数量即可适应飞船外测、卫星外测、校飞外测和探月外测等不同的任务模式;在需求变更时,可通过修改已有的组件实现或者加入新的功能组件来实现新的功能,可扩展性强;各组件是独立运行的,具有标准的服务接口,提供了更高粒度的可重用性。

4.3 数据驱动软件架构下的软件实现

本文在麒麟操作系统下,利用Qt Creator平台采用C++语言编程实现了数据驱动的船载外测数据实时处理软件,具体包括服务端的服务注册和服务运行、客户端的服务请求。服务总线为服务端提供了服务注册、服务运行的接口,使用的关键技术包括多路复用技术和线程池技术。其中,多路复用指的是在一个统一的事件循环中监听给定的多个文件描述符,当其中某一个或多个文件描述符发生可读、可写和关闭等事件时,系统会唤醒事件循环并给出发生的事件集合。

麒麟操作系统提供的多路复用接口函数为:intepoll_wait(int_epfd,structepoll_event*__events,int __maxevents,int __timeout),其中,__epfd为统一的文件描述符,用来监控预先给定的多个文件描述符所发生的事件,__maxevents为每一次事件循环唤醒时返回事件个数的最大值,__timeout为超时时间,取值为-1时表示永久等待,直到有事件发生。当函数返回时,所发生的事件集合会写入__events参数。基于麒麟操作系统所提供的多路复用接口,服务总线架构会为每一个注册的服务生成一个文件描述符,并将它们加入到epoll_wait的等待队列中,当客户端发来服务请求时,对应的文件描述符会发生可读事件,事件循环线程会被唤醒并执行相应的服务函数。服务注册、运行和请求示意图如图4所示。

Figure 4 Service registration,operation and request图4 服务注册、运行和请求

5 实验

本节以某型号任务理论弹道为数据源进行外测数据仿真,分别采用时间驱动的软件和数据驱动的软件进行外测数据处理,对处理结果进行对比验证。

5.1 时间驱动的软件测试

以UCB数据处理为例,具体测试方案为:

(1) 启动仿真软件发送惯性导航、变形以及UCB测角、测距和测速数据,其中数据采样周期为T,惯性导航和变形数据的时延波动范围设置为0~T/2 ms,UCB测角、测距和测速数据的发送周期为Tms,共发送6 000Tms的有效数据,时延波动范围均设置为0~T+5 ms;

(2) 启动卫星外测软件,接收仿真数据并进行实时处理,记录数据处理情况,测试结果如表3所示,其中,数据积累每50Tms一次,UCB弹道是由各测量数据综合计算得出的。

Table 3 Time-driven software testing results表3 时间驱动的软件测试结果

5.2 数据驱动的软件测试

以UCB设备数据处理为例,具体测试方案为:

(1) 启动仿真软件发送惯性导航、变形和UCB测角、UCB测距和UCB测速数据,仿真设置与第3节相同;

(2) 由于数据驱动模型采用组件化系统架构,这里选用船姿船位数据处理组件处理惯导数据和变形数据,选用UCB数据处理组件处理UCB数据即可,记录数据处理情况,测试结果如表4所示,其中,数据积累每50Tms一次,UCB弹道是由各测量数据综合计算得出。

Table 4 Data-driven software testing results表4 数据驱动的软件测试结果

通过实验结果可以看出,由于UCB设备测量数据的波动范围超过了设置的帧频T,并且测角、测距和测速数据的时序出现了交替,相对于数据驱动模型,时间驱动模型不能进行适应性处理,数据积累出现了较多丢点。

经分析确认,时间驱动模型中出现的无效帧数是因为在网络时延0~T+5 ms波动下,前后帧的数据有可能出现乱序,例如k时刻采样的数据时延为T+5 ms,而k+T时刻采样的数据时延为0 ms。目前时间驱动模型还不能很好地解决同类测量数据乱序的问题,而数据驱动模型很好地解决了时延过大和时序交替的问题,保证了数据处理的实时性。

6 结束语

本文在介绍船载外测数据实时处理软件功能及特点的基础上,分析了目前时间驱动的外测数据实时处理软件的特点与局限性,提出了一种数据驱动的船载外测数据实时处理软件架构,在银河麒麟操作系统下,基于该架构实现了外测数据实时处理软件。在数据驱动架构下,逻辑复杂、时序严格的外测数据实时处理流程被分解为多个由数据驱动处理的功能组件,各组件基于服务总线进行数据交互与集成,提高了系统的实时性、可移植性、可扩展性和可重用性,有效降低了系统开发和维护难度。实验表明,基于该架构实现的外测数据实时处理软件很好地解决了时延过大和时序交替的问题,能够满足当前航天任务需求。

猜你喜欢

测数据数据处理时延
认知诊断缺失数据处理方法的比较:零替换、多重插补与极大似然估计法*
ILWT-EEMD数据处理的ELM滚动轴承故障诊断
基于GCC-nearest时延估计的室内声源定位
基于改进二次相关算法的TDOA时延估计
基于SCADA和WAMS的线路参数辨识研究
FRFT在水声信道时延频移联合估计中的应用
基于分段CEEMD降噪的时延估计研究
基于PMU/SCADA混合量测数据兼容性的船舶系统状态估计研究
基于希尔伯特- 黄变换的去噪法在外测数据处理中的应用
提高变电站基础量测数据时间同步性的方法