李 智褚厚斌蔡斐华姜 悦张丽晔
(中国运载火箭技术研究院,北京 100076)
近些年,载人航天工程快速发展,越来越多的有效载荷被计划使用在空间站中,它们在发射前都需要在地面进行完善的测试,由此带来了大量的试验任务,因此需要提高试验效率[1]。此外,第一时间掌握飞行器状态,便于及时做出准确、有效的处置,可以达到降低试验风险、提高试验效率的目的[2]。能够快速、准确、完整地实时解析飞行器测控数据,有助于决策者在具有不确定性的系统和环境中动态地优化各类决策的制定和实施,以更好地达到预期决策目标[3]。传统飞行器数据解析为保证数据的完整性,通常是先存储原始数据,在试验结束后再进行解析和判读,数据判读工作也会因数据解析的时长而滞后。如何快速、准确、完整地实时解析飞行器数据,成为提高飞行器数据判读效率的关键,同时也是一项迫切的需求。
随着计算机网络技术的发展和成熟,应用已经扩展到局域网、广域网甚至互联网,分布式计算成为新的热点[4]。分布式系统作为由多个处理机通过网络互联而构成的松散耦合的系统,具有资源共享、高速并行计算、可靠性高和通信快捷的特点,在多个领域广泛应用。设计一种基于分布式架构的飞行器测控数据实时解析系统,旨在提高飞行器试验中数据解析环节的效率,提升试验质量。
目前传统飞行器测控数据的解析方式根据解析时间不同可分为实时解析和事后解析。
传统飞行器测控数据的实时解析指在收到数据时,将各种不同数据类型的数据源码实时解析成可以供试验人员分析和判读的数据的过程。通常服务器在数据源码解析后,会将解析结果分发到多个显示终端并存储解析结果。传统实时解析可以保证测试人员对数据的即时判读,对数据中表现出的异常现象进行分析和处置。由于实时解析服务器需要同时完成数据接收、存储和实时解析的工作,而飞行器测控数据往往数据量巨大,数据发送速率高,传统实时解析需要解析服务器具备高性能运算速度和高速存储能力,即便如此也无法避免数据丢失的情况发生。所以传统飞行器测控数据的实时解析往往存在数据缺失的情况,试验人员无法对试验结果做出全面、精确的判读。
传统飞行器测控数据的事后解析指在试验结束后,对所有存储的测控数据进行解析,然后试验人员再对数据解析结果进行分析和判读。传统事后解析可以保证数据的完整性,确保所有的测控数据都保存到服务器中,避免出现数据缺失的情况。但数据事后解析不具备实时性,根据数据量和复杂程度不同,数据事后解析往往需要几小时甚至十几个小时才能完成所有数据的解析工作。传统数据事后解析的滞后性直接影响数据判读和决策的效率。
既保证飞行器测控数据存储的完整性,又保证测控数据解析的实时性是目前飞行器试验的迫切需求,也是未来航天事业发展的趋势。
分布式系统是指一个硬件或软件组件分布在不同的网络计算机上,彼此之间仅通过消息传递进行通信和协调的系统[5]。分布式意味着可以采用更多的计算机组成分布式集群对外提供服务[6]。在飞行器测控数据实时解析时,如果可以满足多地部署、数据同步、运行协同和分布式处理的要求,那么数据保存的完整性和数据解析的实时性就可以得到有效保证,而分布式架构则较好地满足了该类需求[7]。
分布式飞行器测控数据实时解析系统可以利用分布式系统自治性、并行性和全局性的优势,将飞行器测控数据实时解析系统分为数据服务层、任务管理层、实时解析层和应用层,如图1 所示。
图1 分布式飞行器测控数据实时解析系统架构图Fig.1 Architecture diagram of distributed aero vehicles'telemetry and control data real-time analysis
数据服务层由多台服务器组成,主要为系统提供飞行器测控原始数据的采集和存储服务。数据源码通常通过网络由TCP 或UDP 协议传输到数据服务中心集群,数据服务中心集群针对不同数据采取不同的存储方式。通常数据采集根据试验数据链路区分,数据存储方式根据试验数据类型区分。
(1)数据采集
试验中产生的数据可能来自不同的数据链路,如天基、地基等,针对每一条数据链路,可以使用一台或多台服务器来执行数据采集工作。
(2)数据存储
试验中产生数据的类型以关系型数据和非关系型数据为主。对于关系型数据,通常使用数据库进行存储,如Oracle、SQL Server 等;对于非关系型数据,通常以本地文件的形式存储。对于试验中存在大量复杂数据类型的情况,可以根据不同的数据类型,分别用不同的服务器进行存储,以保证数据的完整性和存储效率。
在数据服务层收到原始数据后,任务管理层负责管理原始数据的解析任务,主要实现解析策略执行、解析任务派发和解析状态监测等功能。
(1)解析策略执行
解析策略由试验人员事先编辑,策略包括数据筛选、解析规则、优先级设定、重复数据甄别等。系统先将所有已存储的数据进行分析,筛选出满足解析策略的待解析数据,并按照优先级将数据地址加入解析等待队列,等待解析任务的派发。
(2)解析任务派发
基于解析等待队列中数据文件、数据流等不同的数据类型,数据解析任务可以分为多种不同的工作模式。
根据数据类型解析,即对数据流类型、图片类型和视频类型等多种数据类型进行针对性解析,每种数据类型可以有专门的解析集群来完成解析工作,解析任务按照数据类型进行派发。
根据数据源解析,即针对不同的数据源,都有专门的解析集群负责该数据源下所有数据类型的解析工作,解析任务按照数据源进行派发。
根据数据所属分系统解析,即针对每一个分系统,都有专门的解析集群负责该分系统下所有类型数据的解析工作,解析任务按照数据所属分系统进行派发。
(3)解析状态监测
解析状态监测分为数据状态监测和解析服务器状态监测。数据状态一般为未解析、解析中和解析完成三个状态;解析服务器状态一般为空闲、一般和繁忙。数据状态和解析服务器状态的监测,有助于解析任务的制定和派发,可以更合理地利用资源。
实时解析层主要负责解析任务管理层派发的数据解析任务。实时解析层是由多台解析服务器组成的数据解析服务器集群,可以根据数据类型、数据来源、数据所属分系统等多个维度分类解析派发任务中的数据。解析结果也会根据不同的数据类型,存于本地文件和数据库或转发至应用层。
数据解析一般按数据包进行,飞行器下传数据包有很多种,按采集来源可以分为平台采集的数据包、载荷采集的工程数据包和载荷采集的科学数据包[8]。数据解析协议,事先由设计人员编辑,然后保存成系统可读的格式。
在实时解析层完成数据解析后,解析结果会发往应用层。应用层将数据解析结果展示给试验人员,供试验人员完成操作、处理、分析、判读等工作。应用层应具备数据解析结果的实时显示,实时数据曲线绘制,实时图像画面显示,实时数据判读等功能。在未来基于大数据的飞行器数据判读系统中,应用层还应具备可接入大数据分析和数据挖掘等扩展功能。
根据分布式结构的飞行器测控数据实时解析系统架构探究,分布式飞行器测控数据实时解析系统也按照分层式设计,包括数据服务层、任务管理层、实时解析层和应用层,如图2 所示。
图2 分布式飞行器测控数据实时解析系统设计图Fig.2 Design diagram of distributed aero vehicles' telemetry and control data real-time analysis system
在采集和存储试验数据源码时,数据按照不同链路来源进行区分,为每一条链路架设不少于一台(通常主备两台冗余)服务器进行采集和存储,以确保数据的完整性。同时为解析后的数据架设一台服务器,负责数据的存储和数据入库等工作。
架设一台任务管理服务器,负责执行解析策略和解析任务的派发等工作。任务管理服务器将会按照解析策略对采集的数据进行筛选和优先级排序,按照数据所属分系统的形式给每个分系统创建待解析队列,当队列中存在待解析文件时,系统会自动将解析任务派发给状态为空闲或一般的解析服务器。
实时解析集群具备同时按照不同数据类型和数据所属分系统区分解析的能力。对音频、视频、图像等数据分配多台解析服务器,组成多媒体解析集群,进行特殊解码处理;对每个分系统分配多台解析服务器组成分系统解析集群,对各分系统源码类型数据进行实时解析。
应用层实现解析后数据的实时显示功能,具备数值显示、状态显示、曲线显示和视频显示的功能,同时还具备对全部试验数据的判读功能。
在某次模拟试验中,同时使用传统飞行器测控数据解析系统的事后解析和实时解析与分布式飞行器测控数据实时解析系统进行对比。在试验过程中,收到来自多路数据源下发的测控数据,共计1 982 616包,其中,遥测数据415 771 包,数传数据1 566 845 包。表1 为传统飞行器测控数据解析系统的事后解析和实时解析以及分布式飞行器测控数据实时解析系统的数据完整度详情和等待时间。
表1 飞行器测控数据解析系统试验数据详情表Tab.1 Detail table of aero vehicles' telemetry and control data analysis system analyzed test data
经对比可见,传统飞行器测控数据解析系统的事后解析数据完整度较高,可以满足丢包率小于万分之五的试验要求,但等待时间过长,影响数据判读效率;传统飞行器测控数据解析系统的实时解析等待时间较短,但丢包率高,无法满足试验要求;分布式飞行器测控数据实时解析系统在满足丢包率要求的前提下,可以高效运行,等待时间不超过15 s,更好地支撑了试验的完成。在试验过程中,试验人员可以在应用软件中查看实时数据曲线、数值和参数状态等(包括视频图像),可以对数据进行实时判读;试验结束后,所有试验数据解析完毕。
通过使用分布式飞行器数据实时解析系统,在保证数据解析实时性的同时,更好地保证了数据的完整度,可以辅助试验人员对试验过程产生的数据进行准确、快速地判读,大幅提高了判读工作的效率和准确率。
数据解析系统是飞行器数据产品生产中最先进行的一环[9],经过对数据解析系统层次及架构分析,基于“分散控制、集中管理”的分布式结构方案,设计了一种基于分布式飞行器测控数据实时解析系统,充分体现了系统的可靠性、实时性、灵活性及可扩展性等优势[10],大幅提高试验数据判读的工作效率,对飞行器试验和飞行器发射等工作的快速判读和快速决策提供技术保障。基于分布式飞行器测控数据的实时解析系统是未来航天发展的趋势,也为未来相关领域研究提供参考。