面向飞行器的自主保障寿命管理软件设计

2019-07-25 09:21
计算机测量与控制 2019年7期
关键词:飞行器寿命数据库

(中国运载火箭技术研究院,北京 100076)

0 引言

随着飞行器性能的不断提高及系统组成的复杂性的不断增加,各种信息技术和智能技术被广泛应用其中,使其可靠性、维修性、故障预测与诊断及维修保障等问题日渐突出。一旦装备发生故障或健康状态劣化,则会严重影响生产效率[1-3]。自主保障寿命管理作为飞行器健康诊断与故障推理的重要部分存在以下需要解决的问题:(1)飞行器产品信息多数以光盘、文件形式存在,分散在不同人员和单位中,且产品信息未能与飞行器布局进行关联,难以实现产品数据的安全共享和快速查找,影响了数据的有效分析和合理利用,需要对飞行器产品信息进行统一规范化管理。(2)为实现飞行器健康状态的诊断及预测,需要大量的产品自主保障数据、产品寿命数据、故障维修保障数据、历史试验数据等,涉及的数据种类繁多、格式多样,管理与使用方式各有不同,需要以能够灵活定制数据模型,建立各类数据模型,提供数据信息的有效管理。(3)寿命信息是监控产品健康状态的重要参数,通过人工记录效率低,难度大,且无法为产品寿命预测、状态监控提供数据支撑,需要结合试验数据、产品使用状态自动实时监控产品的寿命数据[4-7]。

本文结合目前自主保障寿命管理的业务需求,对基于B/S的自主保障软件开发框架和实时分布式数据库存储技术进行研究,设计实现了一套面向飞行器的自主保障寿命管理软件,对软件的组成架构、各功能模块以及关键技术的实现进行了描述。

1 软件设计与实现

1.1 软件总体架构设计

该软件以项目研制中对飞行器自主保障与健康管理的需求为牵引,形成一套具有自主知识产权的面向飞行器的自主保障寿命管理软件,为项目研制服务。

面向飞行器的自主保障寿命管理软件组成架构如图1所示,包含三个层次:系统服务层、系统功能层和系统管理层。

图1 自主保障寿命管理软件总体架构图

系统服务层主要负责对系统的数据服务。数据采用分库存储,文件存储与数据库管理均采用统一服务模式,数据库主要用来管理试验数据、产品数据、业务逻辑数据等,分布式文件存储系统主要负责管理文档、图片、试验源文件等。

系统功能层主要分为全生命周期配置管理、试验数据管理与寿命管理模块,负责实现系统的业务功能需求。系统功能层应具有易拓展、耦合度低不易相互影响等优点,MVC层次清晰,促进数据的管理效率。

系统管理层主要负责控制用户对数据的访问与操作权限,并提供日志查看服务。

1.2 功能模块

1.2.1 全生命周期配置管理

1)飞行器PBS结构树管理:

PBS是针对研制项目最终产品(软硬件交付物),从整机、系统、子系统到部组件、零件级进行的层次化树状结构分解。PBS定义了产品中最终的产品及产品的组成单元,确定了产品中应包含的功能和结构[7]。飞行器PBS结构树管理可对飞行器历史总体布局情况进行统一管理,并对当前PBS结构树进行查看。依据PBS码文件的层级结构,建立相应的产品结构树,通过导入PBS码文件,创建PBS码信息,初始化产品结构树。PBS码文件中包含层级、每个节点名称和唯一的PBS编码。产品结构树第零层级为项目名称,第一层级为分系统,第二层级为子系统,第三层级为单机产品,第四层级为安装。

2)产品信息配置与管理:

产品信息配置与管理模块对飞行器所有单机产品进行统一管理,包含装机件及备用件。所有产品件均以产品代号为关联,挂在相应的PBS结构树第三级(单机级)下。产品管理可对产品进行查看、新增、删除、版本更新自动关联等。产品基本信息包括产品名称、产品编号、产品代号、产品重量、产品功耗、生产厂家、工作电压、工作电流、生产时间、产品描述、工作环境、研制阶段等出厂信息,以及所属PBS、仓位、占位等位置信息。该模块中产品标签生成及打印功能可将产品的基本属性编辑生成标签,并驱动打印机打印。生成的标签包括产品名称、PBS编码、产品编号、产品代号以及二维码。

3)维修与保障信息管理管理:

维修与保障信息管理管理功能模块主要对产品的维修记录及维修保障信息进行管理。维修记录主要包括维修时间、维修地点、维修工序、试验验证状态等,可以查看、新增、修改和删除产品维修信息。维修保障信息主要包括维修或更换需求、维修级别、人力和人员需求、备件和消耗品供应情况、保障设备需求、技术资料需求、训练与训练保障需求、计算机资源保障需求、保障设施需求、包装/装卸/储存/运输保障需求等。保障信息以产品代号为关联,与单机一一对应。可对产品保障信息进行查看、新增、修改、删除等操作。对某一产品的保障信息进行操作,操作会自动更新到同一单机下的其他产品的保障信息。当PBS版本发生变化时,保障信息会自动更新到新版本PBS结构树的相应位置。

4)故障信息管理:

产品故障信息管理功能模块主要对产品的故障记录进行管理,故障记录主要包括故障名称、故障位置、故障模式、故障性质、故障等级、故障原因、故障发生时间、影响分析、解决措施等,可以查看、新增、修改和删除产品故障信息。

1.2.2 试验数据管理

1)试验数据导入与转换:

试验数据存储支持实时存储和事后文件导入两种方式。实时存储即试验过程中,接收解析后的试验数据包,并通过函数实时写入数据表中;事后导入指试验结束后,可调用软件中文件格式解析器对多种试验数据格式进行解析导入,可支持文件解析器的扩展,以支持不同的试验数据格式。能够实现多层结构试验数据复合包的试验数据导入,根据试验数据包层级结构自动创建节点层级,进行试验数据的批量导入,提高用户体验与使用效率。试验数据库分为临时库和受控库两部分,实时存储和事后文件导入都可以先存入临时库中,然后通过在试验数据结构树上进行关联,将数据从临时库导入到受控库中。

2)数据浏览:

试验数据浏览模块提供已上传入库数据的查看功能。用户登录进入系统后,按照所需查看数据的隶属关系,点击结构树上的相应节点,隶属于该节点的数据将会按文件类型显示在主界面中。入库的试验数据以列表形式显示,并能追溯到试验原始文件进行查看和下载操作。所有数据能够按照不同属性进行排序,便于用户快速查看。

3)数据查询与搜索:

试验查询搜索功能允许用户通过关键字来快速查询和搜索数据。对于查询的结果,可以通过添加检索条件,对试验数据每项属性值进行条件筛选,以缩小搜索范围,提高检索效率,并能够对查询结果进行数据导出。

4)数据统一处理:

试验数据处理控件能够显示试验数据,导入的试验数据能够以表格、曲线、散点图、柱状图等不同的形式显示,以方便用户直接查看。支持多次试验数据的对比分析,并可通过滚动条对数据范围进行设置。同时可对分析结果进行截取存储。

1.2.3 寿命管理

1)寿命策略配置:

该功能模块实现对寿命策略进行配置管理,包括单机产品设计寿命时间、设计动作次数、寿命消耗计算策略、寿命预测计算策略、寿命与飞行器遥测参数的关联关系等。通过标准的寿命计算策略配置文件对以上寿命策略进行统一配置管理。

2)寿命记录分析:

寿命记录分析功能能够对单机产品的已消耗寿命时间和已使用动作次数寿命数据进行记录,通过建立产品与飞行器遥测参数关联关系,利用试验结果遥测数据和寿命消耗计算策略对产品的剩余寿命进行计算。支持手动录入和修改产品的已使用寿命信息。

3)寿命预测与提醒:

在一次试验开始前,根据试验的类型、性质、时间,利用寿命预测计算策略对飞行器的剩余寿命进行预测。根据单机产品设定的使用时间、动作次数等寿命信息,当产品将要到达产品使用寿命时,系统自动推送提醒消息。

1.3 关键技术实现

1.3.1 基于B/S的自主保障软件开发框架

面向飞行器的自主保障寿命管理软件是基于B/S的自主保障软件开发框架进行业务功能定制和设计开发的。用户可以通过该软件开发框架快速搭建基于B/S架构的业务系统,并高度自定义开发系统核心逻辑。该软件开发框架包含五个层次:储存层、数据访问层、应用层、控制层和视图层,如图 2所示。其中储存层负责不同类型数据的储存,包括结构化数据与非结构化数据储存、结构化数据储存采用关系型数据库,支持多种常用关系型数据库,非结构化数据库储存采用分布式文件储存。数据访问负责封装不同类型数据访问接口,通过数据访问基础组件,尽量屏蔽储存层采用的技术差异性。通过数据连接池、数据访问(ORM)和文件访问(FS)提供存取的数据。应用层封装必要的应用逻辑,负责根据应用逻辑决定数据的显示,并根据输入数据进行计算或查询。采用可选组件根据具体业务逻辑需求开发扩展相应的业务控制器。控制层负责对数据访问权限、界面显示方式、前端使用技术等进行控制,将前端的不同应用需求转发到相应应用层模块,并在执行完所需任务之后将结果返回到显示层。视图层负责前端人机交互界面的展示,可应用JSP、FreeMarker、Bootstrap等技术满足前端界面的个性化需求设计与开发。

图2 基于B/S的自主保障软件开发框架图

基于B/S的自主保障软件开发框架使用Jfinal框架为基础搭建,Jfinal在开发中具有开发速度快、轻量级等特点,可以与众多技术结合进行方便快捷的使用,从后台的数据交互到前端的视图渲染、均在Jfinal框架的控制拦截体系之下,可以快速进行Aop操作、日志操作、热启动等。

应对面向飞行器的自主保障寿命管理软件中较强的交互性需求,以及关于试验数据管理中一些特殊的显示效果,该软件开发框架采用了前端框架Bootstrap,通过其丰富的Web组件,使前端和用户的交互逻辑最简化,操作更快捷方便,符合目前先进的软件设计理念。

应用Freemarker作为模板引擎做MVC中视图渲染部分,使用Freemarker前端模板引擎技术将数据与前端模板文件进行结合,再返回至response流中,Freemaker可以支持各种基本Java数据类型以及扩展数据类型,非jsp的渲染也天生的屏蔽了文件上传漏洞,增强了安全性,且语法简单易用,使项目开发快速、低错误率。

1.3.2 实时分布式数据库存储技术

该软件的另一项关键技术是实时分布式数据库存储技术。飞行器在地面试验和在轨运行阶段,会产生大量实时数据,因此如何实现海量试验数据实时存储成为自保软件的一项关键核心技术。结合本单位项目的数据情况,地面试验阶段测控通信速率最大包络数据为100 Mbps,一次总检查所获得的原始数据可达22.5 G,按照解析后数据量增至50倍的数据容量统计,每次总检查数据达到1125 G,在综合试验、匹配试验、热平衡、热真空、总装测试过程中累计需要经历上百次总检查,产生的总数据为110 T,试验数据包括源码、结构化数据、图片、图像、文本等异构数据,保障这些试验数据的高效存储至关重要。该软件的实时分布式数据库存储技术以基于Hadoop自主研发的分布式文件系统和基于MyCat的分布式Mysql数据库系统实现海量试验数据存储,封装内置ZBUS的消息队列服务,持续导入Mycat。支持持续的大量不间断遥测数据源码以及解析后数据的入库。Jfinal自动ORM映射模型,数据库结构化数据ORM映射为Java对象。以Mycat数据库实现分布式文件系统和数据库存储海量数据,通过数据切分实现了海量数据存放的问题,通过中间代理层规避了多数据源处理的问题。

图3 软件实现流程图

分布式文件系统集群由元数据服务器集群和基于对象的存储设备集群两大部分组成。集群中的每个节点都可以是运行着Linux或者Windows系统的计算机,服务器进程是用户级别的进程,能够实现资源节点的快速添加和存储规模的扩展。元数据服务器集群负责管理和维护文件系统的元数据,维护逻辑文件到对象物理存储的映射关系,提供访问权限控制,为用户提供统一的命名空间服务。元数据服务器集群具体包括远程调用服务,权限管理模块、负载迁移模块、备份恢复模块、系统监控管理模块、节点管理模块和元数据管理模块等。对象存储服务器集群由若干个对象存储服务器组成,通过对象存储池集中管理。基于对象的存储设备集群提供统一的存储接口,底层存储系统的实现对用户是透明的,用户只需使用对象接口操作就能完成高效的数据IO操作。基于对象的存储设备集群具体包括故障检测模块、文件副本管理、存储缓存池、存储分配服务、对象存取服务和底层存储设备模块等。

对于结构化数据的存储,软件使用了MyCat分布数据库中间件,对数据库进行水平和垂直切分到多个物理数据库的方式进行数据库扩容。每个数据库的数据结构完全相同,但是数据各不相同。当用户发起查询请求时,并发搜索服务先通过主DB的分表信息表查询表分布位置,再同时请求多表发起查询,得到所有结果集时异步响应用户的查询请求,完成查询任务。针对工作流引擎的分析选择工作流流程定义ID作为标记字段进行数据分割,将同一个流程的数据放在同一个数据表中。这样保证了同一流程的所有数据处于同一个数据库中,在流程调度操作进行时只需要操作同一个数据源中的数据,提高性能的同时也简化了事务处理的难度。对于与开发人员来说,整个分布式数据库对于传统单数据库的操作完全相同,从二次开发的角度讲,完全可以将整个数据库系统当做一个单一的数据库。

2 应用结果与分析

面向飞行器的自主保障寿命管理软件搭建了基于B/S的多层开发框架,实现了丰富的前端设计、后端数据处理、数据存储等多方面开发组件与技术的集成,实现了飞行器全生命周期配置管理、试验数据管理及寿命管理等功能。软件实现流程图如图3所示。

目前该软件已经应用于某演示验证项目的地面试验阶段,实现了该项目5个系统近百个单机产品的生命周期配置管理,约20次综合匹配试验的实时源码数据存储以及试验后约100 G解析数据的事后导入存储,并且在地面实验中对具备寿命管理策略的单机产品进行了寿命记录。

该软件基于B/S的自主保障软件开发框架能够在框架基础上快速设计开发软件新的业务逻辑及修改优化功能,提高了软件后期维护更新的效率。历经项目多次地面试验的运行使用,该软件的功能设计和实现已得到了初步的验证。

图4 产品配置信息

图5 产品寿命信息

3 结束语

本文在分析目前飞行器在工程应用中存在的客观现实问题的基础上,以PBS结构树为基础,设计并实现了一套面向飞行器的自主保障寿命管理软件,介绍了软件的总体架构组成以及各功能模块的业务功能设计,实现了基于B/S的自主保障软件开发框架和实时分布式数据库存储技术,可精准定位飞行器产品,快速提供产品所有相关自主保障数据、寿命信息、更换维修记录、试验数据等,为飞行器故障诊断及维护决策提供了有效支撑。

猜你喜欢
飞行器寿命数据库
高超声速飞行器
人类寿命极限应在120~150岁之间
基于支持向量机的飞行器多余物信号识别
仓鼠的寿命知多少
马烈光养生之悟 自静其心延寿命
人类正常寿命为175岁
数据库
数据库
数据库
数据库