面向特种车辆状态监控和故障诊断的数据库索引结构构建

2021-08-06 11:08樊辉锦欧阳中辉陈青华胡道畅
兵器装备工程学报 2021年7期
关键词:数据库系统时空故障诊断

樊辉锦,欧阳中辉,陈青华,胡道畅

(1.海军航空大学岸防兵学院,山东 烟台 264001;2. 92635部队,山东 青岛 266001)

1 引言

随着军事装备的发展,特种车辆已经发展成为集机械、电子、液压和武器系统于一体的信息化作战系统,其组成结构十分复杂,作战环境涉及沙滩、海岛、荒漠和高原等,使得维护与故障诊断较普通车辆也更为复杂[1]。随着特种车辆可靠性、维修性和安全性等技战术指标不断提高,对车辆维护保障和故障诊断提出更高的要求[2]。故障诊断技术利用各种先进传感器和智能诊断模型算法对车辆及部件进行诊断、监控和预测,其准确性和实效性在装备保障体系中尤为重要,而且特种车辆故障诊断系统中数据库系统性能的好坏对诊断结果的准确性和诊断效率产生直接影响。

国内车辆故障诊断技术及其数据库设计的相关文献中,卢玉传等[3]对无人车类特种车辆的故障预测与健康管理进行了可行性分析,给出了数据库总体设计原则;陈伟等[4]针对特种车辆液压系统建立综合诊断和健康管理系统,运用SOM神经网络进行故障的诊断,给出了数据中心功能;王威杰等[5]改进车辆故障维修数据库中数据查询算法,采用模糊粗糙集方法提高查询效率并仿真验证;吴婷婷等[6]针对特种车辆机电系统故障提出了一套测试方法,支持全寿命周期的故障诊断和监控管理,给出了数据库功能分类;赵媛媛等[7]对国外特种车辆故障预测系统最新发展给出了介绍,并展示了各类车载系统解决方案(包括数据库组成)。上述研究主要针对状态监控和故障诊断中各类系统架构设计或诊断方法模型的研究,在实现过程中部分给出了数据库功能设计,并未结合车辆状态监控和故障实际进行数据库系统深入研究。

本文分析了特种车辆状态监控和故障诊断的底层数据需求特点,利用统一建模语言(unified modeling language,UML)对数据库系统整体功能进行描述[8],给出以特种车辆和故障诊断为中心的E-R图模型[9]及关键实体字段示例;在索引结构方面,对时空R树进行改进,并结合B*树构建索引数据库,并利用MySQL5.6完成数据库系统搭建和测试。

2 数据库系统设计

在特种车辆远程状态监控管理和故障诊断系统中,故障诊断不仅需要故障点时刻的数据,还需要故障点附近相关数据来判断故障。本节主要从数据库系统功能分析、E-R模型设计和索引结构等3个方面进行研究。

2.1 基于UML的系统功能设计

数据库系统主要为各功能模块提供数据存储、共享和快速查询,利用UML语言对系统功能进行描述,如图1所示。状态监测终端主要将各传感器采集到的数据存入数据库,并为指挥员提供车辆状态实时显示,包括任务执行状态、健康状态、位置信息和武器系统信息等;故障诊断功能从数据库中查询预先建立的各类故障诊断模型(神经网络模型、专家系统、故障树和SVM等)[10],并根据相关状态监控信息做出判断,得出故障结论并进行报警提醒;维修保障人员根据故障报警和保养提醒进行故障排除和定期保养,将故障处理过程和结果反馈存储到数据库系统中。

图1 数据库系统功能模块框图

不同用户角色拥有不同的数据库操作权限。专家可更新维护故障诊断模型相关表;维修保障人员可以查询调用故障诊断模型给出诊断结论,并录入处理过程;指挥员可以实时查看车辆状态,掌握装备完好率和执行任务情况;系统管理员分配角色维护用户信息;兵工厂人员针对返回厂维修的车辆制定针对性维修计划。整个业务流程核心以数据库操作为中心,各项功能运行效率取决于数据库操作的性能。

存储的数据主要分为以下几个方面:

1) 特种车辆状态数据。车载状态信息采集终端主要对车辆动力系统、底盘总成、电气系统和武器系统等进行监控,监控产生大量实时数据,采用不同的传输方式和采样频率添加到数据库中。

2) 状态数据索引库。考虑到建立索引会降低数据入库效率,将索引更新与数据更新采用分布式的方式分开,并引入缓存机制,这部分将在后文重点阐述。

3) 故障诊断模型库。主要存储经过训练的智能诊断算法模型,算法模型再利用收集到的各类故障状态数据进行自身更新和不断完善。

4) 专家系统知识库。专家系统运用产生式规则作为主要表示形式,存储的数据主要包括事实库和规则库。事实库存储现象和故障结论,规则库分为规则前件库和规则结论库[11]。

2.2 E-R模型

数据库系统性能的优劣关键在于数据库实体关系模型(E-R模型)建立,根据系统功能需求的设计,分析业务逻辑,本节给出系统全局E-R图模型表述实体与实体的关系,如图2所示,2.1节实现部分通过表结构示例表述部分关键实体与属性之间的关系。以故障诊断模型和状态监控为中心表述与其他实体之间的关系,更有利于故障诊断的准确性,同时,模型可根据实际需求数据和诊断模型的不同进行调整。

图2 系统全局E-R模型框图

2.3 基于R树和B*树的索引构建

数据库索引的设计不仅要结合数据本身特点,更要紧贴查询需求,创建效率、存储利用率、查询效率和缓存机制等都是设计索引结构需要考虑的因素[12]。目前,MySql数据库自带的索引类型主要包括全文索引、哈希索引、B树索引和R树索引等4种,其并未提供混合索引机制,在处理时空特性较强的车辆数据和故障的能力较弱[13-15]。

本文数据库系统主要为特种车辆的状态监测和故障诊断提供索引支持,实现快速高效的查询,针对数据时空特性较为明显、种类较多的特点,利用改进的时空R树+B*树的混合索引方法。其中,主体索引结构为改进的时空R树,用于实现时空范围内故障信息的高效查询;B*树为次要索引,主要实现对单一目标的时序一维索引[16],可以用于故障点数据精确查询,如图3所示。

图3 改进的时空R树和B*树混合索引原理框图

改进的时空R树是N+1维的R树,其中N是指空间维数、1指时间维,R树中叶子节点最小包围盒MBR(minimal bounding rectangle)是其孩子集合的时空坐标轴最小范围[17],以此来改进R树的结构。

具体为:利用节点插入算法优化特征车辆实时状态信息时空R树结构,同时引入节点分裂算法改进时空R树结构。改进的时空R树对某范围的车辆监控状态集合、车辆轨迹,或者某时刻的车辆状态合集(或故障点状态)、车辆位置等有较好的支持。

采用节点对象标识符OID和Start-Time组成一维关键码构建B*树,高效精确定位特种车辆在某时刻的状态信息,进而利用B*树节点双向指针进行车辆轨迹追溯[18],相比于不采用树结构的索引,能节约75%的存储空间。

2.4 索引缓存机制

在应用过程中,由于车辆状态信息和故障表象与时间空间紧密相关,索引的创建同样按照数据元组的有效时间顺序进行。故障点是查询访问的重点,被查询的故障点时刻数据及其附近时刻数据,近期被再次访问的几率较大,将这部分数据加入缓存中可减少从外存调入时间。状态数据和故障诊断模型库的元组数目庞大,很难在内存中构建全部索引。利用LRU算法(近期最少使用算法)设计索引的缓存实现机制,根据数据量大小设定一个时间阈值T,一个时间周期T内被访问到的数据维持在缓存中,将一个时间周期T内未被访问的数据从缓存中释放,当再次需要时从外存中调取,如图4所示。

图4 时空R树+B*树索引缓存机制框图

在索引节点结构中,定义变量TL记录该节点最近被访问的时刻,被访问时更新变量TL为被访问时刻[19]。树形索引的查询通常以根节点或父节点起始,访问子节点的同时一定已访问父节点,若父节点在缓存中超时,其子树中的所有节点也均超时,与父节点一同释放[19],TLRU置为0。

3 系统实现和关键技术

3.1 故障诊断关键表字段示例

3.1.1状态监控字段

车辆状态数据是故障诊断的基础,状态监控信息如表1所示。

表1 特种车辆状态信息

3.1.2故障诊断模型

专家系统利用专家知识对故障进行定性的诊断,故障诊断模型准确定位故障发生的具体部位,算法所涉及参数需要结合具体的诊断对象存储在数据库中,且保持特征提取、特征降维、诊断模型之间参数的一致性。以神经网络为例,设计一个故障诊断模型和一系列子实体(神经网络、支持向量机等)[20],如表2~3所示。

表2 神经网络数据

表3 神经网络权值

3.2 分布式主从架构

将索引结构单独存储在独立从服务器上,利用MySQL的binlog功能实现主从同步和读写分离,提高查询效率,架构设计如图5所示。主库Master在执行完SQL语句之后会把语句记录在binlog中,当从库Slave连接主库Master时,将得到主库中的binlog文件并存于本地,然后从中读取上次同步时的位置节点,执行SQL语句[21]。

图5 分布式主从架构框图

4 实验测试及性能分析

4.1 测试环境

数据库系统平台选用MySQL版本为5.6,操作系统为64位Windows Server 2012,服务器硬件配置信息如表4所示。车辆状态数据库选用现役某型装甲车真实数据集,专家系统和故障诊断模型库均经过该型车故障数据集的训练。索引方面,叶节点采用双向链表指针[22]。

表4 数据库服务器配置信息

4.2 压力测试及分析

在数据存储过程中,考虑处理器线程阻塞、存储器缓存、网络延迟等多种因素的影响,测试数据存储或读取速度为在持续存储请求压力下系统单位时间内处理存储或读取请求的能力[23],即:

Zmax=Qs/T

(1)

式(1)中:Qs为存储或读取成功的数据点数量;T为总耗时。

通过编写脚本,测试本文设计的数据库系统插入10、100、1 000、10 000、100 000条数据的耗时(数据结构参考数据库设计部分),对于因阻塞超时未能成功存储的数据记录,再次发出存储请求,根据机器性能发出存入系统的请求后,统计存储全部数据耗时[24],将结果与同样实验条件下Mysql自带索引结构相关性能进行对比(见图6),计算每秒处理速度,如图7所示。数据库的读取测试,在100 000条数据集中分别查询1、10、100、1 000、10 000条数据的查询耗时如图8所示。

图6 数据库写入速度直方图

图7 数据库处理速度直方图

图6、图7表明本文索引结构数据库写入速度、处理速度与Mysql相差不大。图8表明,在数据量较大时,在数据库查询耗时上,以本文索引结构构建的数据库性能要优于Mysql自带索引结构。

图8 数据库读取时间直方图

4.3 索引创建的时间性能和存储效率

目前,TB*树在时空数据索引方面综合性能较优,选择将其与本文索引方法(索引创建和时空查询处理方面)进行对比分析[25]。以1 000数据样本为例,两者均采用经典R树的平方级分裂策略,设索引树的创建算法时间复杂度均为O(N/M),其中,M是叶子节点的扇出参数,N是故障时刻点数量[26],索引创建的试验结果如表5所示,其中包括时间开销和存储代价。

表5 索引创建试验结果

时间开销方面,改进的时空R树在创建和插入叶子节点时包括节点选择和节点分裂等2个操作[27]。创建改进的时空R树过程中节点选择与节点分裂算法使得时间开销较高,如图9所示。

存储代价方面,本文索引结构数据量为R树和B*树二者之和,改进的时空R树节点中,绝大多数超过83.7%的是叶节点,结合了B*数据,并采用独立数据库后,在数据集为 100 000数据量时存储空间为865.3MByte,其存储代价远小于TB*树。

5 结论

本文数据库系统为特种车辆的状态监控和故障诊断提供支持,从系统功能模型出发,利用UML完成功能建模,建立实体关系模型,并设计了索引结构实现高效快速查询检索。在系统实现上,结合故障诊断需求和特点,给出数据库字段示例,引入索引缓存机制,并设计主从服务器集群实现读写分离。测试结果表明,数据库系统整体性能可满足故障诊断需求,可提高装备保障效率,适用于工程实践。

猜你喜欢
数据库系统时空故障诊断
比亚迪秦EV充电系统故障诊断与排除
基于神经网络的船舶电力系统故障诊断方法
迈腾B81.8T起动机无法启动故障诊断分析
跨越时空的相遇
玩一次时空大“穿越”
对分布式数据库系统的安全分析
基于众包的数据库信息查询处理方法
数据库系统在信息管理中的使用
时空守护者之宇宙空间站
时空之门