基于SVM-BP 集成学习的舰船蒸汽动力系统故障诊断
2023-05-04王瑞涵
郑 鑫,陈 辉,管 聪,王瑞涵
(1.武汉理工大学 高性能船舶技术教育部重点试验室,湖北 武汉 430063;2.武汉理工大学 船海与能源动力工程学院,湖北 武汉 430063)
0 引 言
蒸汽动力系统设备众多、结构复杂,设备运行参数之间耦合度高,关联性强。传统的舰船故障识别只能依靠船员的经验判断,故障识别的及时性及准确率很难得到保障,无法满足实际要求[1]。因此,对于舰船蒸汽动力系统的智能化故障诊断意义重大。
随着机器学习在工业领域的发展与应用,舰船故障诊断领域的研究也大量开展。高建强等[2]提出多维BP 神经网络的方法用于锅炉故障诊断,以锅炉管路泄漏为例,进行故障仿真试验,得出多维BP 神经网络能快速有效地对故障进行诊断与响应。徐鹏等[3]提出采用附加动量-自适应学习速率调整,运用“小网络集群”的思路分别构建网络以进行故障识别和故障溯源的方法,并将提出的方法用于船舶动力系统给水泵转速异常的相关故障诊断,最后得出优化的算法明显优于普通的BP 神经网络。受数学原理的限制,单一分类器在解决工业领域故障诊断问题时表现一般,虽通过对算法的超参数寻优得到最优诊断模型,但不能使模型突破准确率上限,最终的准确率不高,且单一分类器的诊断结果存在偶然因素的影响。此外舰船设备不可能长期处于故障工况运行,因此面对舰船领域故障诊断时存在非均衡数据集的问题。在面对非均衡数据集时单一分类器的故障识别准确率更低。
集成学习在舰船领域中的应用较少,主要集中在其他工业领域。许玉格等[4]提出了一种基于Bagging 集成算法的故障诊断模型,利用虚拟少数过采样算法(SMOTE)增加少数类样本的数量,保证样本分布的均衡性以及分类器间的多样性,提高了故障的识别率。张展等[5]将包括K 近邻算法、支持向量机算法、决策树算法、随机森林算法及逻辑斯谛回归算法在内的5 种子分类器,使用投票方法进行集成,将集成算法和单一算法进行比较分析。结果显示,集成算法的故障诊断的准确率有明显的提升。传统的集成算法并没有考虑到非均衡数据集这一问题,导致出现少数类样本学习力度不够,最终模型的准确率不高、误分类等情况。通过算法改进,将非均衡数据集纳入考虑,但是改进算法复杂,且诊断流程耗时过长。为此,本文提出将多个SVM 算法并行运行,利用BP 神经网络替代传统集成算法对诊断结果融合,实现原始数据集的二次学习,进行二次诊断,加强对非均衡数据集中少数类样本的学习力度,最终提高了少数类样本的召回率,还提升了模型的准确率及稳定性。
1 诊断模型
本文针对舰船蒸汽动力系统中锅炉端燃油辅助系统的故障问题设计了故障诊断模型。故障数据来源于GenSystem 一体化仿真平台开发的蒸汽动力系统操作平台。该平台仿真了某一舰船完整的动力系统,具有模块管理及数据管理等功能模块,采用基于共享内存的数据通信模式,仿真平台构成如图1 所示。
图1 GenSystem 模拟器仿真平台Fig.1 GenSystem simulator emulation platform
故障诊断模型由三大部分构成:1)原始数据预处理模块,完成数据预处理工作;2)第一层故障诊断模块,各分类器单独诊断并输出结果;3)第二层故障诊断模块,完成数据融合并基于融合结果完成最终诊断,获得模型诊断结果。诊断模型运行流程如图2 所示。
图2 故障诊断模型流程图Fig.2 Troubleshooting model flowchart
2 案例分析
2.1 非均衡数据集获取
以GenSystem 舰船蒸汽动力系统仿真平台采集的状态参数作为原始数据集,利用数据管理模块中的实时与历史数据管理功能,将数据导出到本地使用。在实际运行过程中,舰船长时间处于正常工况运行,因此在采集试验数据时,做到与实际一致,即大部分为正常工况数据,少量为故障工况样本[6]。
以锅炉燃烧供油量不足这一故障现象为例进行故障诊断,锅炉燃油系统如图3 所示。在GenSystem 仿真平台上进行全局化仿真,分别设置了燃油过滤器堵塞、汽轮燃油泵本体故障、汽轮燃油泵进气卡死、燃油总管泄漏4 种工作中常见故障。根据图3 分析,燃油供给与燃烧锅炉及风烟系统具有强耦合关系,在选择指标参数时应选择包含信息量全面的参数。在相应工作状态下,采集了汽包压力、汽包液位、过热蒸汽产量、饱和蒸汽产量、燃油总管流量、燃油总管温度、燃油总管压力、燃油泵出口压力、燃油泵汽轮机转速、燃油泵喷嘴前压力、炉膛进口燃油量、炉膛实际燃油消耗量12 个参数。将采集的样本数据按照故障种类分为5 组,分别为:正常工况(0)、燃油过滤器堵塞(1)、汽轮燃油泵本体故障(2)、汽轮燃油泵进气卡死(3)、燃油总管泄漏(4),样本分布如表1 所示。
图3 蒸汽动力燃油系统Fig.3 Steam-powered fuel system
表1 原始数据样本分布Tab.1 Sample distribution of raw data
2.2 数据预处理与分析
考虑到12 种系统参数具有很大的量纲和数量级差异,对样本的特征数据集进行标准化处理,将样本数据映射到[0,1]的区间上,以避免样本数据的量纲单位或数量级相差太大对模型分类的准确率带来影响。
参数之间的相关性导致信息量堆叠冗余,会影响模型收敛的速度,采用PCA 降低原始特征矩阵的维度,通过计算累计贡献率来确定降维后特征空间的维度。降维后,各个向量的主成分对应贡献率如表2 所示。前3 个主成分的累计贡献率达到了98.65%,包含了绝大部分原始特征数据集的信息。同时为了更好地进行数据分析,将原始12 维空间经PCA 降维到3 维空间,不仅避开信息量的冗余,且信息量得到最大化保留,大大提高了模型的运算效率。
表2 PCA-主成分累计贡献率Tab.2 PCA - principal component cumulative contribution rate
图4 为降维后5 种工况的特征数据在三维空间中的分布。可以看出,工况3 样本空间分布集中,且远离其他4 组,故障诊断时容易识别;而其他4 组中,工况1、工况2 与工况0、工况4 互相远离,有明显的分界,但工况1、工况2 之间,工况0、工况4 组之间不存在明显的间隙,尤其是工况0、工况4 之间存在明显的交叉分布,故障诊断时容易出现误分类的情况。
图4 样本的空间分布Fig.4 Spatial distribution of samples
2.3 试验对比
SVM 在解决非线性问题时,需要通过核函数将数据映射到另一个高维空间上,以此为基础进行分类操作,SVM 的核函数可分为:RBF(径向基函数)、Poly(多项式核函数)、Linear(线性核函数)。SVM 在对非均衡数据集进行分类时容易出现误分类,导致召回率低的现象[7]。经过研究发现,是因为少数类样本量有限,算法对其学习的力度不够,不能完全挖掘出样本包含的信息量。因此,设计3 个并行的以核函数种类为区分的SVM,通过不同的方式挖掘数据集的特征信息,保证提取信息的多样性,加大对数据集包含信息的挖掘程度,将3 个并行的SVM 的预测结果融合,将融合结果作为BP 神经网络的输入,对数据的信息进行二次挖掘学习,得到最终的诊断结果。作为对比,与3 个SVM 单独诊断、常规Bagging 集成算法和单一BP 神经网络诊断的结果进行比较。3 个弱分类器更多的参数选择如表3 所示。
表3 SVM-参数设置Tab.3 SVM-parameter settings
将样本数据按8∶2 的比例划分训练集和测试集,模型分别训练后,得到3 个单独的SVM 故障诊断模型,将测试集代入进行验证,得到模型的故障识别准确率,并绘制混淆矩阵,评估模型性能,如图5 所示。
图5 3 个SVM 弱分类器的混淆举证Fig.5 The confusion matrixes of the three SVM weak classifiers
使用Bagging 法对3 个弱分类器的预测结果集成,依据集成模型的诊断结果绘制混淆矩阵,如图6 所示。
图6 Bagging 集成算法的混淆举证Fig.6 The confusing matrixes of bagging integration algorithms
设计单独试验的BP 神经网络的参数,如表4 所示。用划分的训练集训练模型后用测试集进行模型验证,依据测试集诊断结果绘制混淆矩阵,如图7 所示。
图7 BP 神经网络模型的混淆举证Fig.7 The Confusing matrixes of BP neural network models
表4 BP 神经网络参数设置Tab.4 BP-parameter settings
验证本文提出的故障诊断模型,将上述的3 个SVM 并行运行,将划分好的训练集通过K 折验证获取子训练集,分别用于训练3 个SVM,用训练好的3 个SVM 对测试集进行特征提取,得到3 组特征提取结果,将得到的结果通过矩阵拼接融合,最后将融合得到的新特征矩阵作为BP 神经网络的输入,进行深层次的数据挖掘,进行二次诊断,最后得到模型故障诊断的结果,绘制混淆矩阵如图8 所示。
图8 基于SVM-BP 集成模型的混淆举证Fig.8 The confusing matrixes based on the SVM-BP integration model
重复上述测试30 次,来对比各个诊断模型的稳定性,表5 为各个诊断模型的平均准确率、准确率的方差及对工况4 的平均召回率,图9 为各个模型的准确率曲线。
图9 各个模型准确率曲线Fig.9 The accuracy curves for each model
表5 各模型的分类结果Tab.5 The classification results for each model
通过以上混淆矩阵对比可以看出,对工况0~工况3,参与对比的6 种诊断模型很好地识别分类出来。根据图4 可知,因为前4 种工况的空间分布分散,意味着4 种工况的数据样本之间差异性很大,各模型根据已有的样本能够充分挖掘每种工况的信息量,故前4 种工况的召回率都很高。但是对于工况4,6 种诊断模型的区别很大,参与对比的5 种诊断模型都存在很严重的误分类现象。分析图4 可知,工况4 和工况0 的空间分布比较重合,说明工况4 和工况0 样本所包含的信息具有很强相似性,在故障样本数量远少于正常工况样本数量的情况下,模型对工况4 样本的数据特征学习力度不够,容易出现将工况4 样本学习分类为工况0 的情况,即容易出现误分类现象。传统的Bagging 集成学习算法中,通过对并行的SVM 的结果进行投票筛选,遵循少数服从多数原则,该方法一定程度上提高了工况4 的分类正确率,但总的来说,3 个并行的分类器学习力度都不足,会出现3 个SVM同时分类错误的情况,因此传统的Bagging 集成法诊断时通常是对3 个错误的分类结果进行投票,并没有加强对原始数据集的学习力度,故集成诊断的结果也是错误的,所以虽有提升,但幅度很小,诊断结果依旧不佳。而本文提出的利用BP 神经网络替代传统的集成手段,将3 个SVM 的输出的概率分布矩阵进行融合,进一步学习提取融合矩阵的特征,利用BP 神经网络的误差反向传播、不停迭代更新权值及阈值,对概率分布矩阵进行线性运算,实现对原始数据的特征二次挖掘,进一步对数据的特征进行学习,得到最后的诊断结果。通过以上混淆矩阵的对比可知,此方法很大程度上提高了模型对相似度高的少数样本类工况的分类正确率。
图9 和表5 表明,本文提出的基于SVM-BP 集成学习的故障诊断模型针对蒸汽动力燃油系统故障诊断有好的效果,工况4 的平均召回率达到了84%,较SVM算法提成了一倍有余,较常用的Bagging 集成学习算法提升了16%,模型的准确率也明显优于其他模型。
3 结 语
本文以舰船蒸汽动力系统锅炉的燃油辅助系统故障为对象,针对非均衡数据集故障识别存在的准确率低及少数类样本误分类等问题,通过对样本空间分布以及传统故障诊断方法出现问题的原因进行分析,提出了基于SVM-BP 集成学习的故障诊断模型。经过试验分析并对比证明,最终得到了如下结论:
1)原始非均衡数据集中的各个特征参数数据存在信息堆叠冗余的问题,使用PCA 能在降低原始特征维度及复杂度的同时很好地保留原始数据集包含的信息量。经过PCA 降维后保留了3 个主成分,累计贡献率为98.65%。
2)本文提出的基于SVM-BP 集成算法在非均衡数据集上表现良好,通过对数据集的多次信息挖掘,得到最终的诊断结果。经过30 次重复试验,对少数类样本(工况4)的平均召回率为84%,模型的平均准确率为95.04%,相较参与对比的诊断模型,该方法的准确率及少数类样本的召回率明显高于其他诊断方法。
基于SVM-BP 集成算法的准确率以及少数类样本的召回率明显高于其他诊断方法,该方法提高了蒸汽动力系统锅炉燃油供给故障诊断准确率,具有一定的理论参考和应用价值。