Chinese Journal of Ship Research
基于粗糙集和优化DAG-SVM的船舶主机故障诊断方法
摘 要:[目的]船舶主机各子系统之间是复杂的非线性关系,对于监测点在短时间内采集的大量数据,传统的故障诊断方法难以高效地完成任务。以船舶主机的燃油系统为研究对象,提出一种基于粗糙集理论和优化有向无环图—支持向量机( DAG-SVM)的故障诊断方法。[方法]首先,将数据挖掘中的粗糙集理论引入传统的支持向量机( SVM)诊断模型,并通过差别矩阵对离散化数据进行降维,在每2种故障之间建立支持向量机分类器,从而构建DAG-SVM拓扑网络;然后,以类间的分类精度为依据,优化有向无环图中根节点和其他叶节点的位置,从而有效避免“误差累积”;最后,基于某超大型油轮模拟器,开展数值实验分析。[结果]实验结果表明,粗糙集与优化DAG-SVM相结合的故障诊断方法可以对船舶主机故障进行有效的诊断决策,其分类精度比传统的DAG-SVM 方法提高了3.38%,而时间消耗也降低了 2.42 s。[结论]该诊断方法对船舶主机的故障诊断研究具有一定的参考价值,也可为SVM在其他小样本分类中的应用提供数据支撑。关键词:粗糙集属性约简;支持向量机;有向无环图—支持向量机;船舶主机;故障诊断中图分类号: U664.13 文献标志码:A DOI:10.19693/j.issn.1673-3185.01650 Main marine engine fault diagnosis method based on rough set theory and optimized DAG-SVM LIU Guoqiang, LIN Yejin*, ZHANG Zhizheng, PANG Shui Marine Engineering College, Dalian Maritime University, Dalian 116026, China Abstract: [Objectives ] Complicated non-linear relationships exist among the subsystems of a ship's main engine. For a large amount of data collected by monitoring points in a short time, the traditional fault diagnosis method cannot efficiently complete the task. Taking the fuel system of the ship's main engine as the research object, a fault diagnosis method based on rough set theory and optimized Directed Acyclic Graph-Support Vector Machine (DAG-SVM) is proposed.[Methods]First, the rough set theory in data mining is introduced into the traditional Support Vector Machine (SVM) diagnostic model, and the discretized data is reduced by the difference matrix. A SVM classifier is established between every two kinds of faults to construct a DAG-SVM topology network. Then, based on the classification accuracy of the classes, the positions of the root nodes and other leaf nodes in the DAG are optimized, thereby effectively avoiding the "accumulation of errors". Finally, based on a super-large tanker simulation, numerical and experimental analysis is performed. [Results]The experimental results show that the fault diagnosis method based on rough set theory and optimized DAG-SVM can effectively diagnose faults in the main engine of a ship with classification accuracy 3.38% higher than that of traditional DAG-SVM, as well as time consumption reduced by 2.42 seconds. [Conclusions]This diagnosis method has certain reference value for research on the fault diagnosis of the main marine engines, and can also provide data support for the application of SVM in the classification of other small samples. Key words: rough set attribute reduction; Support Vector Machine (SVM); Directed Acyclic Graph-Support Vector Machine (DAG-SVM);marine main engine;fault diagnosis
刘国强,林叶锦*,张志政,庞水大连海事大学轮机工程学院,辽宁大连 116026
0 引 言
随着船舶机舱设备向自动化和智能化方向发展,其故障产生的机理也日趋复杂多变。作为机舱核心设备,主机对船舶的航行安全至关重要。目前,数据挖掘技术已经被广泛应用于各个领域,如果将其作为故障诊断技术,从海量历史运行数据中提取诊断信息,则对机舱内关键设备的故障诊断而言,将具有重大的现实意义[1]。虽然数据挖掘技术可以应用于故障诊断领域,但随着相关研究的深入,逐渐暴露了此类诊断方法的不足。邱正等[2] 通过人工蜂群算法优化了支持向量机( Support Vector Machine,SVM )参数,并将其应用于燃气轮机的故障诊断,虽然提高了分类精度,但没有考虑样本数据中混杂的噪声及冗余特征的影响。马辉等[3] 基于深度神经网络对提升机轴承进行了故障诊断,该方法具有较强的自学习和自适应能力,但是神经网络训练需要大量的样本,且其自身泛化能力较差。史干东等[4]利用随机森林算法诊断了异步电动机的转子断条故障,该方法的泛化能力较强,运算成本较低,但其对噪声较大的分类问题易产生过拟合现象,且在非线性问题上的表现劣于SVM 方法。曹愈远等[5] 将模糊粗糙集与SVM相结合,实现了航空发动机的故障诊断,但没有说明所采用的SVM分类模式,故其实验结果的可靠性有待验证。贺立敏等[6] 提出了随机森林与SVM 相结合的故障诊断方法,由于采用了多分类的1-vs-1 SVM分类模式,所以容易产生分类盲区。孟宏鹏等[7]提出了基于粗糙集属性约简与有向无环图—支持向量机(Directed Acyclic Graph-Support Vector Machine,DAG-SVM)相结合的变压器故障诊断方法,该方法有效解决了类间不可分的问题,但忽视了有向无环图自身的拓扑结构所带来的节点误差传递问题。鉴此,本文拟提出一种基于粗糙集理论和SVM算法的船舶主机故障诊断技术:首先,将粗糙集作为SVM 的前端处理器,去除不重要的信息,以降低信息维度,从而为SVM的分类提供一个简化数据集;然后,构建DAG-SVM,以类间的分类精度为依据,优化有向无环图中根节点及各子节点在拓扑图中的位置,并保证根节点的类间间隔尽可能大,以避免“误差累积”,从而提高分类器的整体性能;最后,通过数值实验验证本文方法的有效性。
1 粗糙集理论和DAG-SVM 1.1 粗糙集属性约简
粗糙集理论作为一种适用于处理不精确、不完全、不一致数据的数学工具,其在保持分类能力不变的前提下,具有良好的知识约简能力[8]。常见的粗糙集属性约简方法包括基于属性重要度约简法和基于差别矩阵约简法,与一般的约简方法相比,基于差别矩阵的约简方法可以降低50%的计算量,故适用于小样本的特征属性提取[9]。假设信息系统L= (U ,A ),且论域 U={x1, x2, … ,xn},即所有讨论个体的集合,其中xn 为论域U 的第n 个样本;属性集合 A={α1,α2, … ,αm},其中 αm 为集合A 的第m个属性。设定信息系统L的差别矩阵 M(L)=[cij]n×n,其中 cij 为矩阵项,且定义如下: { ( ) }
ci j = α ∈ A : α (xi ) , α xj , i, j = 1, 2, 3 ,...,n (1)
式中:cij 为 xi 与 xj 所有不同属性的集合;α 为集合 A 的某一个属性; α(xi) ,α(xj) 分别为论域U中第 i个和第j个样本的属性。通过对 M(L) 的行元素和列元素进行逻辑或和逻辑与运算,即可得到与M(L)相关联的差别函数fM(L);通过析取差别函数,即可得到核属性,然后使用该属性进行决策。采用差别矩阵法进行属性约简的基本步骤如下: 1) 计算信息系统L的差别矩阵 M(L); 2) 计算与 M(L)相关联的差别函数 fM(L); 3) 求得差别函数 fM(L) 的最小析取范式,从而得到所有的属性约简。1.2 有向无环图支持向量机
作为一种有监督的学习方法,SVM 在高维、非线性、小样本的分类问题上表现良好。SVM的主要思想是建立一个最优决策超平面,从而使该平面两侧距离其最近的2类样本点之间的距离最大,故可充分保证分类时具有较好的泛化能力[10]。SVM 的本质是求解一个凸二次规划问题,通过核函数将原本的线性空间映射到一个超高维空间,然后求解该二次规划问题,从而得到最优分类决策函数 F(x),即∑n
F (x) = sgn αi ∗ yi K (xi · X) + b∗ (2) i=1
式中: αi ∗为矩阵的拉格朗日乘子;yi 为 xi 对应的输出;X 为 n 维向量; K (xi · X)为核函数;b*为矩阵
的偏置向量。SVM是一个典型的二类分类器,而在实际应用中往往需要解决多类问题的分类。SVM处理多类分类问题的常用方法包括 1-vs-1 SVM,1-vs-a SVM 和 DAG-SVM[11] ,其中 DAG-SVM 的分类速度最快且分类精度最高。DAG-SVM可以有效解决传统分类模式的类间不可分问题,对于n 类样本只需调用n−1个分类器,所以在很大程度上提高了分类速度,且不会产生分类重合和不可分类的问题。DAG-SVM的拓扑结构如图1 所示,其中数字 1~4 分别代表了4 类标签。以 2-vs-3 为例,即表示标签为2 与标签为3的样本,经训练得到的SVM分类器。将顶层节点记为根节点,从根节点向下分别记为2 层节点,3 层节点, … ,i 层节点。鉴于 DAG-SVM 本身的拓扑结构,若某节点出现了误分现象,则后续节点将无法纠正此错误,最终将得到错误的分类结果,故存在自上而下的“错误累积”现象[12]。为尽量避免此类问题,本文将以类间的分类精度为依据,对DAG-SVM 的拓扑结构进行优化。
2 基于类间分类精度优化的DAGSVM
DAG-SVM拓扑中的节点位置将直接影响最后输出的分类结果,为保证可分性良好的节点尽量靠近上层根节点,本文提出了以类间分类精度优化为依据的DAG-SVM 方法。以图1 为例,对类标签为 1,2,3,4 的 4 类样本进行分类,每2类样本之间训练1 个 SVM 分类器,则将共计得到6 个 SVM 分类器,分别记为2-vs-1,2-vs-3 ,4-vs-3 ,2-vs-4 ,4-vs-1 ,1-vs-3。在相同条件下,对每个SVM 分类器进行分类测试实验,统计每个分类器的平均分类精度。为避免偶然性,本文将采用多次测试取平均值的方法,测试结果的分类精度越高,即表示2类样本的可分性越好。与此同时,在每个分类器下构建一个备选节点方案,并从备选节点方案中选择平均分类
精度较高的节点,将其作为本节点的下层备选节点。若当前节点为 2-vs-3 的 SVM分类器,则其下层的备选节点应为(2-vs-4,1-vs-3)和(2-vs-1,4-vs-3)中平均分类精度较高的节点,其中2-vs-1 的下层可选节点只有(2-vs-4,4-vs-1)。以此类推,即可得到完整的 DAG-SVM 拓扑图。以类间分类精度为依据的DAG-SVM 节点优化法的具体步骤如下:步骤 1:针对 4类样本,共计训练6 个分类器,得到每个SVM分类器的分类精度。假设本文中每个SVM分类器的分类精度如表1所示。步骤 2:选出分类精度最高的一个节点作为DAG-SVM的根节点,并以根节点为依据得到下层备选节点的集合。由表1 可知,1-vs-3 SVM 分类器的分类精度最高,故将1-vs-3 作为根节点,则备选节点的集合包括(1-vs-2,4-vs-3)和(1-vs-4, 2-vs-3 ),其中( 1-vs-2 ,4-vs-3 )的平均分类精度为80% ,而( 1-vs-4 ,2-vs-3 )的平均分类精度为65%,所以应选择(1-vs-2,4-vs-3)为第 2层节点。步骤3:以此类推,得到第 3层节点(1-vs-4,4-vs-2, 2-vs-3 ) ,最终得到基于类间分类精度优化的DAG-SVM 结构,如图2所示。
3 数值实验与结果分析
本文基于某超大型油轮(Very Large Crude Carrier, VLCC)模拟器,在该船主机(8 缸二冲程柴油机)负荷为70%、转速为 60 r/min 的运行条件下,以主机的2号气缸为研究对象,分别模拟喷油器[13] 喷油正时提前、喷油正时延后、喷孔堵塞、喷孔磨损这4种故障状态。实验中采集的故障样本共
计 150 组,包含了上述4 种故障状态下的120 组数据(每种故障状态各30组)和正常状态下的30组数据,每组数据包含6 种特征属性,分别为功率、油耗率、喷油量、排气温度、最大爆发压力、单缸与其他缸排气温度平均值差值。从5种主机运行状态下采集到的150 组样本数据中,各随机抽取20组为训练集,剩余10组为测试集,开展数值实验,其具体流程如图3所示。对于连续型属性,为了提高SVM模型的泛化能力,可以通过K均值聚类法对数据进行离散化[14],从而合并重复的样本数据。基于DAG-SVM 算法,两两故障共计有10种组合,限于篇幅,本文仅以喷油正时延后和喷孔磨损为例,建立信息表并计算差别矩阵[15],分别如表 2和表3所示。表 2 中:条件属性 C'=(a,b,c,d,e,f),a~f分别表示功率、油耗率、喷油量、排气温度、最大爆发压力、单缸与其他缸排气温度的平均值差值这6组特征属性;D为决策属性,其中数字2,4 分别表示喷油正时延后和喷孔磨损。由表2可计算相应的差别矩阵M(L),如表 3所示。根据M(L),即可计算与之相关联的差别函fM(L),即数fM = (a ∨ b ∨ d ∨ f )( b ∨ d ∨ f )( b ∨ f) (L) (a ∨ b ∨ f )( a ∨ b ∨ c ∨ e ∨ f )( b ∨ c ∨ e ∨ f) (a ∨ b ∨ c ∨ d ∨ e ∨ f )( b ∨ c ∨ d ∨ e ∨ f ) = bf (3)将表4 中的约简属性作为训练样本,建立SVM分类器。不同故障之间进行两两组合共可得到 10 个 SVM 分类器。本文采用Matlab 软件的 LIBSVM工具箱开展实验,选择高斯径向基函数作为核函数,通过网格法对惩罚系数C和核函数参数σ进行寻优。鉴于DAG-SVM 自身的层次结构,自根节点开始,每一层分类器都存在错误的向下累积现象。这种“错误累积”的最佳处理
方法是优化根节点的选取,令二者的差别尽可能明显,从而避免在根节点产生错误。除了根节点之外,其他子分类器在DAG-SVM 拓扑结构中的位置也将对系统分类的准确性产生较大影响[16]。本文将每2组故障状态训练得到的分类精度作为尺度,如果分类精度越高,即表示当前训练的 2组数据的可分性越好,则2组样本的空间间隔就越大。为避免偶然误差,每组分类实验将取10次计算的平均值,各故障之间的平均分类精度如表5所示。由表5 可知,故障0 与故障4 之间的分类精度最高,故选择 0-vs-4 作为根节点,其下层节点则可以根据二叉树[17] 下所有可选节点的平均分类精度来确定,具体如表6所示。由表6 可知,下层可选节点(0-vs-1,3-vs-4)的平均分类精度最高,故应选择(0-vs-1, 3-vs -4)作为 2 层节点。同理,逐步求得0-vs-1 和 3-vs-4 的下层节点,最终得到 DAG-SVM的优化拓扑结构,如图 4所示。
最后,以5种状态下分别预留的10 组数据作为测试集,开展数据实验。为了确保实验的有效性,将对同样条件下的 1-vs-1 SVM, 1-vs-a SVM, DAG-SVM 这 3种分类模式与本文的实验结果进行对比,结果如表7所示。由表7 中的实验结果可知: 1-vs-1 SVM 和1-vs-a SVM在分类精度和算法时间上的差别不大;传统的 DAG-SVM因其有向无环图的结构,故分类精度较高,且其在测试阶段只调用了4 个分
类器,所以在时间消耗上的表现优于 1-vs-1 SVM和 1-vs-a SVM,这个结果符合预期;本文方法的分类精度比传统DAG-SVM 提高了 3.38%,而 Matlab算法运行时间消耗也降低了 2.42 s。经过多次实验测试,在多类别的分类问题上,本文方法均取得了较好的效果,可以显著提高故障诊断的精度和效率。
4 结 语
本文通过粗糙集属性约简,得到了两两故障状态之间的约简属性,并剔除了其中的不重要属性,一方面减少了不相关样本的干扰,提高了分类精度;另一方面降低了特征向量的维数,提高了计算效率。同时,针对传统DAG-SVM 算法的“误差累积”问题,基于类间精度的节点优化法对DAG-SVM拓扑中各节点的位置进行了调整,从而进一步降低了“误差累积”对诊断正确率的影