发明内容
本发明的目的是提供一种底盘发动机故障预测方法及系统,利用KLDA对原始数据进行降维,结合SVM对发动机进行故障识别预测,有效提高了预测发动机故障的准确度。
为实现上述目的,本发明提供了如下方案:
一种底盘发动机故障预测方法,所述方法包括:
分别获取发动机的正常运行情况下与故障运行状态下的状态数据,得到正常运行状态数据和故障运行状态数据;
利用KLDA分别对所述正常运行状态数据和所述故障运行状态数据进行降维处理,得到降维正常运行状态数据和降维故障运行状态数据;
利用优化后的惩罚因子c和核函数参数g建立SVM模型,利用RBF作为所述SVM模型的分类核函数;
以所述降维正常运行状态数据和所述降维故障运行状态数据为输入,以正常运行或者故障运行为输出,训练所述SVM模型,得到SVM预测模型;
利用所述SVM预测模型预测发动机是否故障。
在一些实施例中,所述状态数据包括:温度,水活性,磨粒(ppm),粘度,密度和介电常数。
在一些实施例中,所述分别获取发动机的正常运行情况下与故障运行状态下的状态数据,得到正常运行状态数据和故障运行状态数据,具体包括:
获取发动机正常运行情况下的状态数据,得到正常运行状态数据;
进行发动机故障模拟,并获取此时的状态数据,得到故障运行状态数据。
在一些实施例中,所述利用KLDA分别对所述正常运行状态数据和所述故障运行状态数据进行降维处理,得到降维正常运行状态数据和降维故障运行状态数据,具体包括:
利用高斯核函数分别将所述正常运行状态数据和所述故障运行状态数据映射到高维空间;
分别将映射到高维空间后的正常运行状态数据和故障运行状态数据作为样本,计算LDA的类内散射矩阵A
b和类间散射矩阵A
w;
其中,k表示样本类别的总数,n
c表示第c类样本,
表示第c类的样本平均重心值;
表示整个样本的平均值;
寻找LDA的最佳投影方向:
其中,A表示LDA的投影方向,W表示投影矩阵;
利用拉格朗日算子将寻找LDA的最佳投影方向转化为:Aw -1AbW=λW;其中,λ表示拉格朗日算子;
计算Aw -1Ab的特征值和对应的特征向量;
选取累积特征贡献率大于预设阈值的特征值个数为处理后的特征维度个数;
利用样本乘以累积特征贡献率大于预设阈值的特征值对应的特征向量,得到降维后的样本。
在一些实施例中,所述高斯核函数为
其中,K(x,x′)是核矩阵,x′表示观测向量,τ是核参数。
在一些实施例中,在所述利用KLDA分别对所述正常运行状态数据和所述故障运行状态数据进行降维处理,得到降维正常运行状态数据和降维故障运行状态数据之后,还包括:
利用归一化公式分别对所述降维正常运行状态数据和所述降维故障运行状态数据进行归一化处理;所述归一化公式为:
其中x”表示归一化之后的数据,x表示被归一化的数据,x
max表示被归一化的数据的最大值,x
min表示被归一化的数据的最小值。
在一些实施例中,在所述利用KLDA分别对所述正常运行状态数据和所述故障运行状态数据进行降维处理,得到降维正常运行状态数据和降维故障运行状态数据之后,还包括:
利用网格式搜索法优化SVM的惩罚因子c和核函数参数g。
在一些实施例中,所述以所述降维正常运行状态数据和所述降维故障运行状态数据为输入,以正常运行或者故障运行为输出,训练所述SVM模型,得到SVM预测模型,具体包括
将所述降维正常运行状态数据和所述降维故障运行状态数据按比例分为训练集和测试集;
利用所述训练集训练所述SVM模型;输入为训练集中的降维正常运行状态数据和降维故障运行状态数据,输出为正常运行或者故障运行,训练所述SVM模型,得到SVM预测模型;
利用所述测试集测试所述SVM预测模型的预测准确率。
在一些实施例中,所述利用所述SVM预测模型预测发动机是否故障,具体包括:
获取发动机运行状态数据;
利用KLDA对所述发动机运行状态数据进行降维处理,得到降维运行状态数据;
将所述降维运行状态数据输入所述SVM预测模型,得到发动机是否故障的预测结果。
本发明还提供了一种底盘发动机故障预测系统,所述系统包括:
数据获取单元,用于分别获取发动机的正常运行情况下与故障运行状态下的状态数据,得到正常运行状态数据和故障运行状态数据;
降维处理单元,用于利用KLDA分别对所述正常运行状态数据和所述故障运行状态数据进行降维处理,得到降维正常运行状态数据和降维故障运行状态数据;
模型建立单元,用于利用优化后的惩罚因子c和核函数参数g建立SVM模型,利用RBF作为所述SVM模型的分类核函数;
模型训练单元,用于以所述降维正常运行状态数据和所述降维故障运行状态数据为输入,以正常运行或者故障运行为输出,训练所述SVM模型,得到SVM预测模型;
预测单元,用于利用所述SVM预测模型预测发动机是否故障。
根据本发明提供的具体实施例,本发明公开了以下技术效果:
本发明用于提供一种底盘发动机故障预测方法及系统,利用KLDA分别对正常运行状态数据和故障运行状态数据进行降维处理,并利用优化后的惩罚因子c和核函数参数g建立SVM模型,利用RBF作为SVM模型的分类核函数,用降维后的正常运行状态数据和降维后的故障运行状态数据训练SVM模型,对发动机是否故障进行预测。由于其利用KLDA对原始数据进行降维,并结合SVM对降维后的特征集进行预测处理,使得特征集中,获得了最佳的预测性能,有效实现了对发动机健康状态进行预测,并有效提高了预测发动机故障的准确度。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的目的是提供一种底盘发动机故障预测方法及系统,利用KLDA对原始数据进行降维,结合SVM对发动机进行故障识别预测,有效提高了预测发动机故障的准确度。
本发明的数据来源于油液传感器系统采集得到的油液理化指标,主要包括油液磨粒在线监测模块、油液品质在线监测模块、在线润滑油磨粒传感器、粘度、混水、温度、污染和密度传感器以及传感采集调理与传输模块。原始数据处理采用核化的线性判别分析(KLDA)方法进行降维处理,以上述采集得到的油液理化指标作为参数,然后对数据进行归一化处理,故障预测方法基于支持向量机(SVM)算法,预测发动机的健康状况。该方法能够高精度的预测发动机的健康状况。
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
实施例一:
如图1所示,本发明提供了一种底盘发动机故障预测方法,该方法包括:
S1、分别获取发动机的正常运行情况下与故障运行状态下的状态数据,得到正常运行状态数据和故障运行状态数据。
发动机的运行状态数据由温度,水活性,磨粒(ppm),粘度,密度和介电常数这六个参数构成,在对装甲车底盘发动机运行状态的数据进行获取时,对于正常运行状态的数据每一分钟采集一组数据,分6天进行采集,每天采集1小时,共计获得360组正常运行状态数据。然后,进行了发动机故障模拟,模拟方法为在不损害发动机的前提下停止了润滑油系统的过滤器工作,分4天进行采集,每天采集30分钟,共计获得120组的故障运行状态数据。
为了有效实现装甲车底盘发动机运行状态的智能预测,本实施例首先对影响发动机运行状态的六个参数进行相关性分析,六种参数分别为温度,水活性,磨粒(ppm),粘度,密度和介电常数。本实施例采用皮尔逊相关系数对变量间的相关性进行表征。图2为相关性可视化热图。相关性值为正值表示变量之间呈现正相关,越接近于1说明相关性越强,相关性值为负值表示变量之间呈现负相关,越接近于-1说明相关性越强。可以看出,水活性与介电常数,ppm与粘度,温度与介电常数等变量间具有较强的相关性。因此,采取有效的特征处理方法来去除变量间的相关性和非线性至关重要。
S2、利用KLDA分别对所述正常运行状态数据和所述故障运行状态数据进行降维处理,得到降维正常运行状态数据和降维故障运行状态数据。
线性判别分析(LDA)是一种有监督的降维方法,它遵循降维投影后类内方差最小,类间方差最大的原则,希望每一种类别数据的投影点尽可能的接近,而不同类别的数据的类别中心之间的距离尽可能的大。首先,类间(A
b)和类内(A
w)的散射矩阵分别被计算。然后,计算
A
b,得到满足贡献率要求的多个特征对应的特征向量来构成投影矩阵(W)。最后,将原始装甲车底盘发动机的运行状态数据与特征向量相乘,得到降维后的特征矩阵。
具体包括:
利用高斯核函数分别将所述正常运行状态数据和所述故障运行状态数据映射到高维空间。
分别将映射到高维空间后的正常运行状态数据和故障运行状态数据作为样本,计算LDA的类内散射矩阵A
b和类间散射矩阵A
w;
其中,k表示样本类别的总数,n
c表示第c类样本,
表示第c类的样本平均重心值;
表示整个样本的平均值。
寻找LDA的最佳投影方向:
其中,A表示LDA的投影方向,W表示投影矩阵。
利用拉格朗日算子将寻找LDA的最佳投影方向转化为:Aw -1AbW=λW;其中,λ表示拉格朗日算子。
计算Aw -1Ab的特征值和对应的特征向量。
选取累积特征贡献率大于预设阈值的特征值个数为处理后的特征维度个数。
利用样本乘以累积特征贡献率大于预设阈值的特征值对应的特征向量,得到降维后的样本。
作为一种具体的实施例,将装甲车底盘发动机的正常运行状态数据和故障运行状态数据作为样本,具体降维过程如下:
设变量
表示样本,第c类用n
c表示,n表示第c类包含的样本总数。
是第c类的样本平均重心值。由于,运行状态数据包含两种,因此,LDA包含两个平均重心,分别为正常运行的样本平均重心,以及故障运行的样本平均重心。
是整个样本的平均值。在传统的LDA中,类间(A
b)和类内(A
w)的散射矩阵计算如下:
其中,k表示样本类别的总数,nc表示第c类样本的数量。
寻找LDA的最佳投影方向的优化问题可以表示为:
其中,A表示LDA的投影方向,W表示投影矩阵;
在引入拉格朗日算子之后,最佳投影方向可由以下特征值问题求解:
Aw -1AbW=λW (4)
其中,λ表示拉格朗日算子;
优化问题可以转化为:
Aw -1AbW=λW (5)
因此,求得Aw -1Ab的特征值和对应的特征向量,特征值越大,映射方向越有利于分类。W由对应于m个最大特征值的特征向量组成。为了获得能代表原始特征的整体信息,本实施例取累积特征贡献率大于90%时的特征值个数为处理后的特征维度个数。最后,用原始影响装甲车底盘发动机工作状态的特征乘以特征值对应的特征向量就获得了投影后的新的特征集。
然而,通过皮尔逊相关系数的分析。影响装甲车底盘发动机工作状态的特征间有较强的相关性和非线性,这不利于LDA的直接降维。因此,本实施例首先利用核函数将影响装甲车底盘发动机的六个特征数据映射到高维空间,使其尽可能线性化。在这项工作中,采用高斯核函数来映射低维数据,函数表达式为:
其中,K(x,x′)是核矩阵,x′表示观测向量,τ是核参数。在核空间中,高维的特征维度取决于样本数。首先,KLDA将原始特征映射到高维空间后来减少特征间的非线性。然后,对核矩阵进行LDA降维处理,在KLDA降维过程中,核函数参数τ直接影响KLDA的降维有效性。因此,本实施例在τ在0.1-1内以0.1为间隔进行讨论,在1-5内以0.5为间隔进行讨论,5-80内以5为间隔进行讨论。本实施例为了明显对比出降维效果,给出了核函数参数为0.1,0.5,1,5,10,20,50和80的降维效果。图3为KLDA降维的可视化图。当τ小于1时,KLDA的降维效果很差,正常运行和故障与运行的数据样本也重叠在一起,无法对两类样本的进行有效区分。同样,当τ大于1时,随着参数的增加,降维效果逐渐加强,当核函数参数为50时,降维效果达到最优,KLDA已经明显的将两类样本进行聚类,并且类间差异明显。仅有很少部分样本重叠。当核函数参数进一步增加,降维效果略微变差,降维效果没有进一步提升。因此,本实施例选择核函数参数为50时进行KLDA降维。经过公式(6)及公式(1)-(5)计算最佳投影方向进而计算特征累计贡献度,本实施例取累计方差贡献率达90%以上的前10个主成分对应的特征向量为投影方向,并与原始特征相乘形成新的特征集用于后续数据分析。
得到降维正常运行状态数据和降维故障运行状态数据之后,为加快训练模型的收敛速度,需将其进行归一化处理,归一化区间为(-1,1)。
利用归一化公式分别对所述降维正常运行状态数据和所述降维故障运行状态数据进行归一化处理;所述归一化公式为:
其中x”表示归一化之后的数据,x表示被归一化的数据,xmax表示被归一化的数据的最大值,xmin表示被归一化的数据的最小值。
该方法是将数据按比例缩放,对原始数据的线性变换,标准化处理之后的数据结果落到(-1,1)区间。
S3、利用优化后的惩罚因子c和核函数参数g建立SVM模型,利用RBF作为所述SVM模型的分类核函数;
支持向量机(Support Vector Machine,SVM)它的主要思想是建立一个分类决策面。SVM利用核函数将数据映射到高维空间,使其尽可能的线性可分。常用的核函数包括线性核函数、多项式核、径向基核(RBF)、傅里叶核、样条核和Sigmoid核函数等。通过比较这些核函数适用的数据特点,无论样本数据特点是高维还是低维,数据量大还是小,RBF核函数展现了很好的分类性能。因此,选择RBF作为SVM的分类核函数。
SVM数据处理过程如下:
影响装甲车底盘发动机运行状态的特征有6个,因此,数据的维度为6,即r=6,共n组数据,即(x1,y1),…,(xn,yn)∈Rr。
SVM分类过程的决策面可表示为:
式中
表示决策面的权重系数,g(x)表示非线性映射函数,x表示发动机运行状态数据,b表示阈值。
为了最小化结构风险,最优分类超平面应满足以下条件:
引入非负松弛变量ξi,这样分类误差就在一个规定的范围内。因此,确定最优决策面的优化问题就被转变为:
式中c表示惩罚因子,控制模型的复杂程度和泛化能力。
引入拉格朗日算法,优化问题被转换为对偶形式
式中a—拉格朗日乘子。其中
K(xi,xj)=(g(xi)·g(xj)) (12)
引入RBF核函数
K(xi,xj)=exp(-g||xi-xj||)2 (13)
式中g表示核函数参数,控制输入空间的范围。
上述优化问题转变为
SVM分类问题取决于两个重要参数惩罚因子c和核函数参数g,这两个参数会影响SVM的分类性能。为了提高模型的预测性能,引入网格式搜索法(GS)优化模型建立过程中的两个重要参数。同时避免模型过学习和欠学习的现象发生,采用5倍交叉验证法以训练集最高验证准确率为适应度函数来进行参数寻优。当达到最高验证准确率时,所得到的c和g为最佳参数。GS中,以0.5为间隔进行全局搜索,c和g的范围均是(2-10,210)。
S4、以所述降维正常运行状态数据和所述降维故障运行状态数据为输入,以正常运行或者故障运行为输出,训练所述SVM模型,得到SVM预测模型。
具体的:
将所述降维正常运行状态数据和降维故障运行状态数据按比例分为训练集和测试集;将所述训练集作为样本训练所述SVM模型,得到SVM预测模型,所述SVM预测模型输入为运行状态数据,输出为正常运行或者故障运行;利用所述测试集测试所述SVM预测模型的预测准确率。
作为一种具体的实施例,将降维正常运行状态数据和降维故障运行状态数据随机取80%作为训练集,20%作为测试集。根据公式(8)-(14),以及GS对SVM中的参数优化过程得到模型的训练和预测结果。图4为SVM在原始特征集和KLDA降维后特征集下的参数寻优过程和分类结果。在分类结果的运行状态标签中,1代表正常运行,2代表故障运行。当训练集在五倍交叉验证下获得最高预测准确率是获得最佳参数c和g,然后利用这两个最佳参数建立SVM预测模型,然后得到预测集的分类结果。在原始特征集中,当五倍交叉验证准确率为88.80%时,获得最佳参数c为4,最佳参数g为0.25,最终得到了预测准确率为88.54%。在KLDA特征集中,当五倍交叉验证准确率为93.23%时,获得最佳参数c为9.9644,最佳参数g为0.1235,最终得到了预测准确率为97.67%。
可以看出,SVM在KLDA的预测性能优于原始特征集的预测性能,说明了特征预处理方法有效性,有效提升了9.13%的预测性能,实现了装甲车底盘发动机工作状态的有效预测。
S5、利用所述SVM预测模型预测发动机是否故障。
具体的:
获取发动机运行状态数据;
利用KLDA对所述发动机运行状态数据进行降维处理,得到降维运行状态数据;
将所述降维运行状态数据输入所述SVM预测模型,得到发动机是否故障的预测结果。
影响发动机正常运行的特征变量共包含六个,而特征之间的相关性和非线性直接影响后续的发动机正常运行的预测精度。因此,本实施例选择了KLDA的有监督降维方法对原始特征进行处理,并可视化的降维效果。下一步将对降维后的特征集进行预测处理,结合了SVM进行预测分析,得到了在KLDA的降维特征集中,获得了最佳的预测性能,有效实现了对发动机健康状态进行预测。
实施例二:
如图5所示,本发明实施例提供了一种底盘发动机故障预测系统,该系统包括:
数据获取单元M1,用于分别获取发动机的正常运行情况下与故障运行状态下的状态数据,得到正常运行状态数据和故障运行状态数据;
降维处理单元M2,用于利用KLDA分别对所述正常运行状态数据和所述故障运行状态数据进行降维处理,得到降维正常运行状态数据和降维故障运行状态数据;
模型建立单元M3,用于利用优化后的惩罚因子c和核函数参数g建立SVM模型,利用RBF作为所述SVM模型的分类核函数;
模型训练单元M4,用于以所述降维正常运行状态数据和所述降维故障运行状态数据为输入,以正常运行或者故障运行为输出,训练所述SVM模型,得到SVM预测模型;
预测单元M5,用于利用所述SVM预测模型预测发动机是否故障。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。