基于安全私有云的虚拟化综合测试平台设计及应用
2019-05-08
(北京宇航系统工程研究所,北京 100076)
0 引言
运载火箭电气系统是供电和用电各系统、设备的总称,由多个分电气分系统组成。如:用于控制火箭按预定轨道平稳飞行和精确入轨的控制系统;用于监测火箭飞行轨道和飞行过程中工作状态的外测、遥测系统;用于飞行故障时使火箭自毁的安全控制系统;用于发动机混合比偏差控制、推进剂液位测量与关机的利用系统等。地面也出现了与之相应的多个测试分系统。
电气系统测试是对运载火箭电气系统性能进行评估的最重要的手段,其测试的全面性、可靠性和有效性与飞行试验成败直接相关。在运载火箭交付总装前,需要对电气系统开展综合试验,考核电气系统工作的正确性。目前,电气系统性能评估多依赖于各型号各系统自身的测试项目,缺乏统一的测试平台和评估系统。同时,所获得的测试数据分布在各自的服务器中,缺乏统一的数据管理。随着型号进入高密度时期,这些缺陷严重影响了运载火箭的测试效率和测试可靠性,无法实现电气系统的整体性能评估,给传统的运载火箭电气系统综合试验模式带来了挑战[1]。
本文借助当前“互联网+”和云计算技术理念,以标准测试系统为平台,全面升级测试保障体系,拟通过建立一种基于安全私有云的虚拟化综合试验平台,实现多任务的并行测试,实现跨型号的数据共享与应用,提升试验效率,充分挖掘试验数据的应用,为提升运载火箭的可靠性提供支撑。
1 总体方案设计
1.1 测试平台组成
综合测试平台主要由数据综合管理系统、系统配置管理软件、自动化测试软件、过程监视终端软件、数据处理与分析软件、故障诊断和预测软件六大部分组成。综合测试平台组成如图1所示。
图1 测试平台组成框图
数据综合管理系统为试验管理、试验控制、数据管理中心,实现对整个测试平台的任务调度、数据管理、数据分析、决策支撑、结果呈现。数据综合管理系统基于私有云平台实现,采用虚拟化技术实现分布式管理和控制。
系统配置管理软件通过与其他平台软件的映射关系,实现各软件间接口调用的协议配置[2]。
自动化测试软件负责仪测试器设备配置,以及测试流程编辑、测试任务执行等工作。
过程监视终端软件负责显示测试设备各类型参数的判读结果。
数据处理与分析软件负责测试数据回放、数据挖掘及分析等工作。
故障诊断和预测软件针对测试数据进行大数据分析诊断,进一步给出故障的预测信息。
1.2 云平台架构设计
总体方案设计上采用经典云平台三层架构[3],如图2所示。云平台包含提供物理硬件资源的基础设施层;提供云存储、数据库、云计算等服务的基础平台层;提供各类业务应用服务的业务应用层。其中业务应用层包含两个逻辑分层,一是核心业务模块,包括设备挂接、数据采集、数据管理、用户等基础业务能力层,二是聚合业务应用,对外提供服务,对外服务层具备自适应终端能力,提供台式计算机、笔记本电脑、平板电脑、手机等多种访问模式。
图2 云平台架构
2 主要软件模块设计
2.1 自动化测试软件
图形化测试序列编辑界面可以像利用Visio绘制软件流程图一样描述测试需求,即通过连线关系描述测试流程,通过对图元输出项的不同结果进行判断,按照预先设定的值执行不同的测试序列走向,再通过编辑图元的属性,实现对测试判读范围等参数的设置,然后由软件自动将图形化测试需求转化为类ATML文本,具体实施时以基本图元搭建测试项图元,最终以测试项图元构成测试流程[4]。因此测试程序开发人员只要了解测试需求,无须编码即可生成Test Description文件,同时该软件支持测试报表模板的自动生成功能。
图3 软件架构
2.2 过程监视终端软件
测试过程的监视是整个测试环节中非常重要的一项,其主要功能是完成数据的解析与呈现。试验中的数据包含有线数据和无线数据,经过数据采集设备和解调解析设备的处理,形成统一化的网络接口协议数据包,传输至数据采集服务器。过程监视终端软件设计了通用的数据解析算法,设定通用判据模式,对测试过程中地面和箭上设备的状态进行实时监控。
图4 过程监视终端软件流程图
图4中,过程监测程序在启动时刻开始,将实时获取数据采集服务器的数据,进行解析判读,并且把处理结果一方面保存到数据库,另一方面实时推送到前台界面进行呈现[5]。
2.3 数据处理与分析软件
数据处理与分析软件主要对数据进行回访以及挖掘,涵盖设备各阶段试验数据综合分析和处理。在各阶段会持续产生海量测试及状态数据。需要对这些数据进行存储,便于后续对其进行数据挖掘,提取有价值、有意义的数据。
数据挖掘基于云平台的数据库系统存储参数包括:设备状态、电流、电压、压力、温度、功耗、计数、燃料等,参数种类涵盖:模拟量、数字量、环境参量、状态参量等,具体状态可由用户自定义添加。
数据挖掘算法库需要具备以下数据处理功能:如频率参量数据分析支持奇异值剔除、关键参数提取、长期稳定性分析以及统计分析等,功率参量数据分析支持功率特性统计、趋势拟合和分析,时间参量数据分析支持时标、时间间隔的稳定性分析等各类功能。
图5 数据处理与分析软件框架图
2.4 故障诊断和预测软件
故障诊断软件对测点信息进行初步诊断与分析,得到设备的早期预警或报警信息,对专家系统知识库进行管理,根据历史数据、案例、专家知识等建立故障模型,进行实时故障诊断与定位。建立具备开放式、迭代特征的设备故障诊断软件模块,针对设备采用的状态监测技术和提取的状态特征参数,提供成熟的诊断处理算法,实现基于规则和案例的诊断软件,建立诊断专家知识库,并设计用户操作接口,使专家知识库可以持续、快速的增添和修改完善[6]。处理流程如图6所示。
图6 故障诊断和预测软件流程图
根据图6,故障诊断和预测软件核心功能为数据获取、数据处理、数据诊断。故障诊断程序在启动时刻开始,将实时获取数据采集服务器的数据,进行数据处理,诊断,并且把处理结果一方面保存到数据库,另一方面实时推送到前台界面进行呈现。后台数据处理部分是通过将样本数据与系统正常时的数据进行比较,通过二者的差值和相应节点的阈值确定测试节点的归一化数据。该部分中用户只需要输入所有测试节点的阈值,通过计算后直接生成用于层次有向图模型和用于贝叶斯网络模型的两种归一化数据,以备故障诊断软件部分使用。
3 关键技术
3.1 数据交互处理
本平台采用数据综合管理平台为数据中心,统一对数据存储、处理、转发、以及实现调度功能,这样做的目的是可以对所接入的其他设备统一规范的管理,以及为日后大数据分析提供最小颗粒度的数据原型,此处数据交互处理通过运用java虚拟机的调度机制,采用多线程进行数据交互,保障数据完整性的同时也极大的提高了运行效率。
3.2 虚拟化应用
平台采用服务器虚拟化的方式,实现系统并行测试。虚拟化技术的应用使得测试服务器资源充分利用,本平台所采用的是XenServer,它是在云计算环境中经过验证的企业级虚拟化平台, Xen技术被看作是业界最快速、最安全的虚拟化软件。
3.3 仪器驱动管理
本平台的设计思想是让设备驱动与应用软件相互分离,使其解耦,这样做的优点是不用考虑上层应用软件的使用方式,例如台式机、笔记本、其他智能终端设备等,同时不用限制应用软件的开发语言,例如C++、java、Android等等。
3.4 智能调度执行
程序根据任务,主线程自动创建需要的处理线程,线程间运行相对独立,通过内存变量进行关联,运行时采用抢占式调度模型。在任务执行过程中,程序根据优先级判断是否允许线程插队,其他线程让步,并且在参数判读方面,采用逻辑判读、四则运算、三角函数公式运算、对数公式运算等,另外还支持关联判读、跳变判读等形式,尽可能多的满足判读需求。
3.5 UI设计
软件界面UI设计采用当前主流前段框架BootStrap,该前端框架采用HTML5+CSS3为主要技术,该框架的主要优势是支持同步异步数据传输、清晰明了、记忆负担最小化、设计的一致性、美观大方、用户习惯、灵活等设计原则。另外,在显示上使用Web Worker线程处理,此线程的主要目的是可以快速的进行大量的数据交互处理,极大提高显示效率。
4 平台实现
4.1 图形化测试序列配置
图形化较列表方式的测试序列的优势是它可以构建较为复杂了测试流程,不止是顺序执行,它可以接受条件分支、并行分支等,另外它可以是一条指令、一个等待时间条件、一个计数器、一个判读条件、一个板块的函数,后续还可以扩展成更多的方式,为以后更加智能更加复杂的测试留有足够的扩展空间,编辑完测试序列以后统一保存在数据库中,这样它可以方便的导出任意需要的文件进行跨平台交互使用,例如可以是json、xml、atml等。图7为某型运载火箭综合试验中进行测试序列配置。
图7 测试序列配置图
4.2 一键自动化测试
测试软件与硬件的交互主要由JAVA写前台配置、执行层,由C语言写底层驱动层。通过UDP组播的方式进行数据传输交互,数据交互格式以XML 通用标记语言进行数据传输。
自动测试流程执行如图8所示。执行测试序列,对左侧将指令进行勾选。右侧显示已勾选的指令,通过单选按钮决定从任意指令开始执行,可从任意位置进行单步执行或连续执行。执行成功的呈现绿色,执行失败的呈现红色。如果执行中想要停止则点击暂停按钮即可。执行出现错误的时候连续执行的任务将停止执行。
测试任务可自动化调度执行,测试完成后可自动导出测试报告,同时也可对测试数据回放分析。
4.3 实验结果与分析
通过在多型号运载火箭综合试验中的应用情况来分析,平台各项性能包括用户管理、数据解调分析、精度误差分析、故障分析、设备通讯、测试流程配置、自动化测试、数据存储与管理等均工作正常。该平台的应用实现了多型号试验的同步测试,节省了人力资源,大幅度提高了测试效率和测试覆盖性。
图8 自动测试流程图
5 结论
本文基于安全私有云设计虚拟化综合试验平台,该平台具有通用的软硬件架构,可支持多任务的并行测试,可实现跨型号的数据共享与应用。经过在多型号运载火箭电气系统综合试验中的应用,该平台很好的完成了综合试验需求,并且较传统的测试模式,在测试效率,测试有效性上有了较大的突破。