基于数据驱动的航天器演训任务可视化方法
2021-03-03王佳伟罗毓芳邱瑞
王佳伟 罗毓芳 邱瑞
(北京空间飞行器总体设计部,北京 100094)
航天器仿真可视化是仿真领域研究的重要课题,其中针对航天器演训任务特点进行的可视化,是用户进行业务追踪和决策的重要内容。随着航天器数量的不断增加,演训任务的复杂性不断提升,任务范围包括测控事件、故障处理、特定演练、联合作战等。可视化的时效性、直观性及交互性要求不断提高,因此仅对航天器任务过程的遥测信息进行列表显示,已经无法满足当前航天器演训任务可视化的需求。
在过去几十年中,围绕工程任务需求,国内外已经开展了航天器演训仿真任务可视化方法的相关研究。研究的重点主要集中在系统架构设计及面向信息流的可视化方法等方面,提出了基于时间序列、层次信息、随机分布等方法。
随着航天器演训仿真任务的复杂性与动态性不断提高,仿真系统需要对多源异构的仿真数据,包括仿真遥测信息、仿真控制信息、仿真流程信息等类型数据进行显示。能否全面、快速、动态显示演训任务信息是航天器可视化系统亟待解决的问题。通过演训任务的实时动态可视化,用户可更为直观的掌握仿真任务状态,及时有效的进行决策分析。
本文通过分析航天器演训任务特点,在多源异构仿真数据基础上,提出了一种基于数据驱动的航天器演训任务可视化方法,并结合某航天器演练训任务仿真实例进行了试验验证,为航天器仿真系统可视化提供了新的方法手段。
1 动态可视化方法
在仿真系统中,航天器演训任务可视化的内容与显示形式应能够实现对演训任务全流程的完整描述,满足仿真演训的要求。用户可通过可视化的显示内容,完成对演训任务流程的正确认知和分析评估。目前可视化方法对任务信息显示以数据列表为主,对数据之间关联性显示较少[1]。针对任务多源数据的可视化,缺少以场景为主导的交互数据动态实时显示[2]。针对复杂航天器演训任务,涉及任务环节多,任务进行过程中交互数据量大,当数据交互关系复杂时,单一的可视化手段无法满足高效仿真决策的要求。
为进一步增加演训任务现实丰富性,解决关联数据可视化问题,本文提出了基于仿真实时数据驱动的动态可视化方法,包括对演训任务结构化分析、基于任务场景的数据生成和封装、对任务环节关联性显示分析及任务全过程的动态展示。该方法根据航天器演训任务规范和操作人员的训练习惯,将演训任务可视化分为任务流程时序可视化、任务遥测数据可视化、交互数据可视化等方面。演训任务流程通过各子任务环节之间的时序关系进行表示,显示过程中采用动态可视化模式。
1.1 可视化方法流程
演训任务仿真可视化过程中,有两个主要问题需要解决:一是将多源分散的仿真数据和任务的整个流程转变为时序的结构化模型;二是实现可视化数据的关联分析和动态显示[3]。对于第一个问题,本文提出一种结构化树形语言模型,对任务数据进行转换;对于第二个问题需要进行多层次的任务流程数据动态可视化实现。动态可视化方法过程如图1所示。
(1)演训任务结构化语言描述模块,通过接收用户设定的演训任务,并根据指定的结构化语言对仿真任务进行处理。将任务数据转换成表格结构或网络结构数据,通过结构化语言转换成可视化层次树结构存储,用于支持后续可视化的操作。
(2)关联属性展示模块,对演训任务结构化转换后的数据进行关联属性分析,对多个任务节点之间的关联关系进行配置,同时根据遍历算法,按照时序流程遍历显示所有任务节点。
(3)场景化数据封装模块,根据数据处理引擎生成的任务树形结构,对可视化节点进行各种配置,最终生成可视化的数据包。包括节点布局配置、类型配置、可视化配置和关联配置。其中布局配置用以指定可视化节点整体的布局;类型配置用以指定各个节点可视化使用的图形或控件类型;可视化配置用以详细配置各个可视化图形的具体参数,如坐标轴对应的数据、可视化图形元素的颜色、尺寸等属性;关联配置用以配置多个不同的可视化节点之间的关联关系。所有场景数据最终作为动态可视化显示的输入。
(4)动态可视化模块,对已经生成的任务数据树进行遍历和渲染的过程,确保能够实时动态地显示用户交互数据和任务数据。
图1 动态可视化方法过程Fig.1 Dynamic visualization method flow
1.2 可视化方法架构
可视化过程按照演训任务的时序流程进行,每个任务环节按照结构化语言规则对环节包含的数据进行建模,同时整个环节的可视化数据进行“容器”封装。根据时序规划,对任务节点进行遍历显示,并根据用户的交互信息作实时动态调整。
演训任务过程中会包含众多的仿真节点,每个节点数据包括用户交互操作数据、仿真遥测数据、可视化属性相关数据等信息,这些数据的格式不同,在可视化实现过程中首先要对任务涉及的数据进行融合处理,格式归一化。
演训任务经过结构化分析表示后,形成了各种功能的仿真数据包。进行可视化实现时,按场景对可视化进行服务级组装,系统保存的仿真任务场景结构化文件经过一定的仿真模拟算法转化为时序数据,然后以一定频率发送给可视化模块。在场景化的数据文件中,保存了仿真任务场景中涉及的可视化模型实例及各实例的表达式形式。场景化数据生成架构如图2所示。
(1)根据结构化处理后的演训任务节点,将同一个可视化节点的相关数据放在同一个服务中,一个场景对应一个服务,确保拆分的可视化节点是可独立部署升级的服务单元。
(2)根据仿真任务类型、任务规模选择合适的服务架构模式,确定服务纵向分区、横向分层的原则,确定分区之间与分层之间的交互方式与通信机制。
(3)确定场景化服务中内部服务通信接口和外部服务通信接口,为了降低服务间耦合,服务对外暴露的信息应尽可能少,并充分利用服务发现机制实现服务之间的透明通信。
(4)针对特定子任务的场景化封装,将不同的子任务设定为主题选择,通过选择不同的主题风格,可以实现对演训任务的组装。提供对多数据源的支持以及对多可视化图形之间关联的支持。在可视化设计的过程中,可以随时选择新的数据源进行加载。
图2 场景可视化数据生成架构Fig.2 Scene visualization data generation architecture
2 关键技术研究
针对航天器演训任务的可视化方法,必须结合航天器演训任务自身特点,对仿真流程及各节点之间的关联性进行分析,再通过结构化语言规则进行描述[4]。可视化过程中,不仅要对每个节点相关数据进行结构化转换,还需要显示各节点间的关联关系,对各关联数据的可视化是要解决的重要问题。
2.1 任务结构化描述方法
航天器演训任务包括常规演训任务、应急演训任务、故障处置任务等类型。演训任务仿真所涉及的可视化数据包括:任务流程节点数据、任务相关遥测数据、任务交互数据和可视化属性数据。针对任务过程的动态可视化就是基于数据驱动,将任务时序执行过程中各节点的数据信息进行动态可视化显示,演训任务过程中涉及的仿真数据如图3所示。
图3 演训任务数据分类Fig.3 Classification of training task data
本文设计了树形结构可视化语言描述方法,通过树形结构描述演训任务过程和可视化相关数据。演训任务和树形结构化语言数据之间为一一对应的映射关系,通过可视化方法实现语义层的数据业务含义与任务数据实体之间的关联关系。[5]
任务流程数据可表示为一组节点Qi的集合{Q1,Q2,…,Qn}。节点的数据通过属性子节点T1、T2、T3、T4的树形结构表示,如图4所示。
(1)Qi是演训任务流程的一个节点,作为节点结构化数据的根节点。
(2)Qi节点的任务树划分为4个子树,包括节点任务功能描述子树T1、可视化属性子树模块T2、遥测数据子树T3和关联关系描述子树T4。根节点与每个子树均为一对多的关系,即根节点可以包括0个或多个子树的实体。
(3)演训仿真任务划分为多个子任务节点Qi的组合,其中T1是Qi的任务功能角度的分解,每个功能项对应一个树节点,节点数据组成功能描述数据包;T2是任务可视化相关属性的描述,包括可视状态、可视属性,节点数据组成可视化属性数据包;T3是每个任务节点所涉及的遥测数据,根据规定的协议组成可视化遥测数据包;T4是各任务节点数据之间关联关系数据包,实现演训任务不同维度可视化数据的联动。[6]
(4)以图4中T2节点为例,T2节点为可视化属性节点,划分为节点形状、节点颜色、节点相邻边和节点位置等数据包。通过结构化描述规则将数据与相应的节点属性进行绑定,后续进行可视化显示时对T2包含的所有数据包进行遍历。[7]
2.2 关联特性可视化方法
演训任务中包含多个可视化图形,则需要对多个图形之间的关联关系配置。关联配置允许在结果包含多个可视化图形时,将两个图形对应的数据中的某个维度的数据进行关联。当具有关联关系的子任务中数据发生变化,具有关联性的任务节点均会根据数据的变化而重新绘制。
通过设置的关联关系,可以查看仿真任务节点的邻居节点。关联关系通过节点之间的边结构进行描述,基于边数据的树形展示提供系统归属编辑的参考依据[8]。针对仿真任务流程进行展示时,则需要快速查找基于仿真节点的边数据。树形展示算法的输入为任务节点的编号,根据节点中的输入边与输出边属性获取树形关联关系可视化的数据,如图5所示。
在关联关系可视化阶段,T1、T2、T3、T4存在一个节点具有相同关联节点情况:例如节点T1有邻居,节点T2有邻居T4、T5、T6。当用户双击节点T1时,展示T3、T4、T5节点;用户继续双击节点T2,展示T4、T5、T6节点,此时不需要再对节点T4与T5进行展示,仅需要绘制T2和T4、T2和T5之间的边。可视化过程中,同时定义一个对象用于记录已展示节点与上一级节点的关系[9]。该对象的目的是为了解决邻居节点已添加后避免二次添加的问题。
图5 任务节点关联属性配置Fig.5 Task node association attribute configuration
关联属性可视化主要步骤如下:
(1)传入用户点击的任务节点编号;
(2)获取被点击点的关联关系链表结构;
(3)构建节点的输入、输出边关系;
(4)判定邻居中是否有节点被添加至界面中,根据结果添加/删除节点与边;
(5)根据节点上下级关系,获取上级节点的坐标,并进行布局计算。
3 可视化实例分析
本文依据某航天器实际演训任务,根据可视化方法,实现整个演训任务可视化系统,验证动态可视化方法的有效性和实用性。
选取航天器演训任务中“某航天器规避演训任务”作为可视化实例,该任务是通过地面发送干扰信号,仿真航天器识别干扰信号、处理信号、预警规避的过程,任务过程如图6所示。
演训任务开始,地面模拟干扰信息,并发送至航天器综合电子分系统;综合电子分系统中的中心管理单元(SMU)收到地面发出的干扰信号后,形成预警数据包;在自主预警规避功能使能的前提下,对姿态进行适当调整,规避干扰信号,任务结束。利用本文的动态可视化方法,首先对演训任务的流程进行结构化分解和描述,将任务的每部动作转化为节点数据,并通过结构化规则进行数据描述;然后分析各环节间的关联属性,形成关联数据,并将节点相关可视化数据封装为可视化数据包;最后根据动态可视化方法对任务进行遍历显示。
(1)将演训任务转换为一系列节点链接图的遍历显示,通过节点链接图的信息组合来解决可视化过程多信息展示的问题,数据节点信息描述及实现如图7所示。
图6 某航天器规避演训任务流程Fig.6 Process of a spacecraft evasion training mission
图7 任务节点结构化代码Fig.7 Task node structured code
(2)遍历演训任务节点列表,读取每个节点数据包,并按照动态显示方法进行显示。读取任务节点Qi数据,包括节点的功能数据、遥测数据和关联关系数据。
(3)若节点存在关联关系数据,检查遍历节点相关的边是否存在。根据检查进行维护上下级关系并进行画布上的节点与边的操作。在可视化插件中,所有的节点均默认添加至画布中央原点的位置再进行弹力布局,在此基础上根据上下级关系修正了树形节点的坐标,代码实现如图8所示。
图8 关联特性可视化代码Fig.8 Visualization code of association characteristics
(4)根据用户实时的交互信息,更新任务节点信息。基于数据的动态可视化方法应用在航天器演训任务仿真中,能够实时显示任务流程,帮助用户在演训过程中迅速发现和掌握任务执行情况。
4 结束语
本文提出了一种基于仿真数据驱动的演训任务可视化方法,对航天器演训任务的流程显示形式进行了规范和设计。将演训任务过程按照结构化的方式进行描述,并封装成场景化数据包,对任务流程进行动态可视化。该方法将航天器演训任务操作人员的交互需求,融入到可视化过程中,对于提高演训人员操作效率起到关键作用。提出的层次化任务数据描述方法,符合航天器演训任务可视化的实际需求,实现了可视化数据的快速生成;关联性可视化方法支持多可视化图形之间的交互配置,可以实现多个任务节点之间的关联显示;场景化的数据封装,可以设计随时间、随参数变化的可视化图形。按照该方法开发的的软件系统,经过试验验证,在性能和应用效果方面达到了预期效果,证明该方法可行且有效,能够对航天器演训任务决策和实施起到较好的辅助作用。