一种基于不均衡数据的柴油发动机故障诊断方法

allin2024-05-18  171



1.本发明属于故障诊断技术领域,具体涉及一种基于不均衡数据的柴油发动机故障诊断方法。


背景技术:

2.柴油发动机作为一种复杂的动力机械,其运行状态及机械性能的优劣直接影响到载具的性能和安全。柴油发动机的故障预测缺乏量化分析,当发动机在发生故障后,现阶段的故障数据没有结构化,维护人员很难针对可靠性数据、指标数据等的综合分析,进行明确的故障诊断,从而很难找到最优的故障诊断方法,使得柴油发动机维修成本增大,导致资源的浪费。
3.不平衡数据是指数据的不同类别的样本数量之间相差较大,现实生活中也存在大量不平衡数据预测,如网络异常流量预测、欺诈检测、病理诊断等。在故障诊断方面,主要有灰度模型、层次分析、神经网络和深度学习等,其中,灰色模型与层次分析需要人为设定的因素较多,主观性过强;人工神经网络、深度学习的模型较为复杂,训练时间长,且有过拟合的问题。准确的状态评估需要足够多的历史故障样本作为支撑,目前国内的柴油发动机可靠性较高,异常运行的样本较少,不均衡的数据集导致模型难以训练至理想水平,而传统算法在数据不均衡时会更倾向于多数类,使得在预测时大量少数类被预测为多数类,导致对少数类的学习效果很差,从而不能够对柴油发动机的故障进行很好的预测。


技术实现要素:

4.本发明的目的在于克服现有技术的不足,提供一种基于不均衡数据的柴油发动机故障诊断方法,本方法通过smoteenn-xgboost算法,改善数据不均衡和数据分布边缘化的问题,能有效对采油发动机参数中的异常进行检测。
5.为实现上述目的,本发明采用的技术方案是:
6.一种基于不均衡数据的柴油发动机故障诊断方法,包括以下步骤:
7.s1、分别采集若干个正常运行和故障运行的柴油发动机状态参数组成数据集;
8.s2、对步骤s1得到的数据集进行预处理,得到预处理数据集;
9.s3、对步骤s2得到的预处理数据集进行故障标记,得到不均衡训练集;
10.s4、利用smoteenn混合采样算法对步骤s3得到的训练集进行处理,得到均衡化数据集;
11.s5、基于xgboost模型对步骤s4得到的均衡化数据集进行训练,在训练过程中采用k折交叉验证法与网格搜索算法进行模型参数优化,即得到柴油发动机故障诊断模型,所述柴油发动机故障诊断模型如下所示:
12.13.其中:为预测值,t为树的数量,fk为第k棵独立的树,xi为第i个数据集样本;
14.s6、将待诊断的柴油发动机真实数据输入步骤s6得到的柴油发动机故障诊断模型中,发动机的健康状态诊断结果。
15.优选的,步骤s1中,所述柴油发动机状态参数包含进气总管温度、进气管压强、排气管温度、排气管压强、气缸温度、气缸压强、油冷却器入口温度、油冷却器出口温度、油冷却器出口压强、冷却水进口温度,冷却水出口温度、冷却水进口压强和冷却水出口压强。
16.优选的,步骤s2中,所述预处理包括以下步骤:将步骤s1得到的数据集去除异常值,采用中值滤波的方法进行数据去噪,采用同类均值插补方法进行缺失数据填补,对所采集的数据集进行归一化处理,得到预处理数据集,归一化公式如下:
[0017][0018]
其中:x
*
为归一化后的数据,x为原始数据,μ为所有样本的均值,σ为所有样本数据的标准差。
[0019]
优选的,步骤s4中,所述均衡化数据集通过以下步骤得到:
[0020]
s41、遍历步骤s3得到的训练集,设多数类样本集合为n,少数类为p,xi为p中的一个样本,通过knn算法在整个训练集中搜索离样本xi最近的k个样本,k个样本中少数类记为ki;
[0021]
s42、若ki=0,即xi附近k个最近邻都是多数类,则认为xi是噪点,不做处理,若ki≥1/2k,则认为是内部点,也不做任何处理,若0《ki《1/2k,则认为xi是容易被错分的边界点,对xi执行第s33步骤;
[0022]
s43、重复从xi的k的近邻中随机选择一个样本,在它们之间随机合成一个点作为新的少数类样本并添加到训练集中,得到新训练集,所采用的公式如下:
[0023]
xn=xi+ξ(x
i-ki)
[0024]
其中,xn为,xi为少数类样本点,ki为xi的近邻,ξ为0到1之间的随机数;
[0025]
s44、对新训练集使用knn算法,去除预测结果与实际类别不符的样本点,减少生成的少数样本和多数样本重叠的概率,得到均衡化数据集。
[0026]
优选的,步骤s5中,所述柴油发动机故障诊断模型通过以下步骤得到:
[0027]
s51、输入特征数为m,样本数为n的步骤s4得到的均衡化数据集d={(xi,yi)|xi∈rm,yi∈r},其预测值为每棵树的打分累加和,通过以下公式得到:
[0028][0029]
其中,t为数的数量,fk为第k棵独立的树,xi为第i个数据集样本;
[0030]
加入正则化后的目标损失函数为:
[0031][0032]
正则化项为:
[0033][0034]
其中,为第i个目标样本的预测值,yi为真实值,为损失函数,wk为第k棵树的叶子节点权重,ω(fk)为树复杂度,γ为惩罚项,tk为第k棵树叶子节点的数量,λ为正则项系数;
[0035]
s52、每颗树通过贪心算法选择不同的特征进行分裂,通过泰勒展开式计算分裂后的损失函数比单个叶子节点的增益,分裂的增益函数为:
[0036][0037]
其中,gr和g
l
为节点分裂后左右子树关于的一阶导数和,h
l
和hr为左右子树关于的二阶导数和,λ为正则项系数;
[0038]
s53、不断重复步骤s52迭代生成新的cart树来拟合上一棵树的残差,当样本权重和小于设定阈值时,则停止建树;
[0039]
s54、将步骤s53中所有生成树合并,即得到柴油发动机故障诊断模型。
[0040]
6、根据权利要求5所述的基于不均衡数据的柴油发动机故障诊断方法,其特征在于,步骤s5中,所述参数优化包括以下步骤:
[0041]
(1)选择0.3作为初始的学习速率,使用默认值作为集成参数初始值,在步骤s53中的每一次迭代中使用k-fold交叉验证,确定最优决策树数量;
[0042]
(2)根据确定的学习速率与决策树数量,采用k折交叉验证法与网格搜索法进行决策树特定参数调优;
[0043]
(3)基于已有数据,调整正则化参数,降低过拟合;
[0044]
(4)降低学习速率,确定模型的最佳参数组合。
[0045]
本发明与现有技术相比,其有益效果在于:
[0046]
本发明提供的基于不均衡数据的柴油发动机故障诊断方法,通过smoteenn混合采样算法在现有的少数类样本的基础上合成新样本,并剔除噪声点,有效克服了传统过采样方法导致模型过拟合的缺点,对不均衡的发动机故障数据集进行均衡化,并将均衡后的数据集输入xgboost集成学习算法训练得到故障诊断模型,有效提高了少数类故障样本诊断的准确性和有效性。
附图说明
[0047]
图1为本发明实施例提供的基于不均衡数据的柴油发动机故障诊断方法的流程图;
[0048]
图2为本发明实施例提供的数据集在均衡化处理之前的样本分布图;
[0049]
图3为本发明实施例提供的数据集在均衡化处理之后的样本分布图。
具体实施方式
[0050]
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开
的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
[0051]
如图1所示,本发明实施例提供的基于不均衡数据的柴油发动机故障诊断方法,具体包括以下步骤:
[0052]
s1、分别采集若干个一定转速下的正常运行和故障运行的柴油发动机状态参数数据组成数据集;柴油发动机状态参数包含进气总管温度、进气管压强、排气管温度、排气管压强、气缸温度、气缸压强、油冷却器入口温度、油冷却器出口温度、油冷却器出口压强、冷却水进口温度,冷却水出口温度、冷却水进口压强和冷却水出口压强;
[0053]
s2、对步骤s1得到的数据集进行预处理,得到预处理数据集;
[0054]
其中,预处理过程具体包括以下步骤:将步骤s1得到的数据集去除异常值,采用中值滤波的方法进行数据去噪,采用同类均值插补方法进行缺失数据填补,对所采集的数据集进行归一化处理,其目的主要是将所有需要计算的数据都缩小到0-1之间,有效地简化计算,节约计算资源,然后得到预处理数据集,归一化公式如下:
[0055][0056]
其中,x
*
为归一化后的数据,x为原始数据,μ为所有样本的均值,σ为所有样本数据的标准差。
[0057]
s3、对步骤s2得到的预处理数据集进行故障标记,得到训练集;
[0058]
其中,0表示柴油发动机运行正常,1表示柴油发动机出现故障。
[0059]
s4、利用smoteenn混合采样算法对步骤s3得到的训练集进行处理,增加故障数据样本个数,得到两种类别较为均衡的均衡化数据集;
[0060]
其中,均衡化数据集具体通过以下步骤得到:
[0061]
s41、遍历步骤s3得到的训练集,设多数类样本集合为n,少数类为p,xi为p中的一个样本,通过knn算法在整个训练集中搜索离样本xi最近的k个样本,k个样本中少数类记为ki;
[0062]
s42、若ki=0,即xi附近k个最近邻都是多数类,则认为xi是噪点,不做处理,若ki≥1/2,则认为是内部点,也不做任何处理,若0《ki《1/2,则认为xi是容易被错分的边界点,对xi执行第s33步骤;
[0063]
s43、重复从xi的k的近邻中随机选择一个样本,在它们之间随机合成一个点作为新的少数类样本并添加到训练集中,得到新训练集,所采用的公式如下:
[0064]
xn=xi+ξ(x
i-ki)
[0065]
其中,xi为少数类样本点,ki为xi的近邻,ξ为0到1之间的随机数。
[0066]
s44、对新训练集使用knn算法,去除预测结果与实际类别不符的样本点,即得到均衡化数据集。
[0067]
s5、基于xgboost模型对步骤s4得到的均衡化数据集进行训练,在训练过程中采用k折交叉验证法与网格搜索算法进行模型参数优化,即得到柴油发动机故障诊断模型;
[0068]
其中,柴油发动机故障诊断模型具体通过以下步骤得到:
[0069]
s51、输入特征数为m,样本数为n的步骤s4得到的均衡化数据集d={(xi,yi)|xi∈rm
,yi∈r},其预测值为每棵树的打分累加和,通过以下公式得到:
[0070][0071]
其中,t为数的数量,fk为第k棵独立的树;
[0072]
加入正则化后的目标损失函数为:
[0073][0074]
正则化项为:
[0075][0076]
其中,为第i个目标样本的预测值,yi为真实值,为损失函数,wk为第k棵树的叶子节点权重,ω(fk)为树复杂度,γ为惩罚项,tk为第k棵树叶子节点的数量;
[0077]
s52、每颗树通过贪心算法选择不同的特征进行分裂,计算分裂后的损失函数比单个叶子节点的增益,分裂的增益函数为:
[0078][0079]
其中,gr和g
l
为节点分裂后左右子树关于的一阶导数和,h
l
和hr为左右子树关于的二阶导数和;
[0080]
s53、不断重复步骤s52迭代生成新的cart树来拟合上一棵树的残差,当样本权重和小于设定阈值时,则停止建树;
[0081]
xgboost算法中包含了常规参数、树集成参数、任务参数等。其中,树集成参数控制每次迭代中树的生长方式;任务参数控制模型的复杂度,避免过拟合。参数的调整对xgboost的分类效果具有直接影响,因此参数寻优十分必要。使用网格搜索算法(gridsearching,gs)和k折交叉验证来进行模型参数优化,xgboost优化的参数如下表1所示:
[0082]
表1 xgboost优化的参数
[0083][0084]
参数优化具体包括以下步骤:
[0085]
(1)选择0.3作为初始的学习速率,使用默认值作为集成参数初始值,在步骤s53中的每一次迭代中使用k-fold交叉验证,确定最优决策树数量;
[0086]
(2)根据确定的学习速率与决策树数量,采用k折交叉验证法与网格搜索法进行决策树特定参数调优(max_depth,min_child_weight,gamma,subsample,colsample_bytree);
[0087]
(3)基于已有数据,调整正则化参数,降低过拟合;
[0088]
(4)降低学习速率,确定模型的最佳参数组合;
[0089]
s54、将步骤s53中所有生成树合并,即得到柴油发动机故障诊断模型;
[0090]
s6、将待诊断的柴油发动机真实数据输入步骤s6得到的柴油发动机故障诊断模型中,得到发动机的健康状态诊断结果。
[0091]
下面通过仿真实例对训练完成的柴油发动机故障诊断模型的效果进行分析,对模型的有效性和有效性进行验证。
[0092]
仿真数据集基于零维热力学模型的故障仿真模型。所采用的特征向量是从热力学模型中选取,在电机旋转频率为2500rpm的条件下,通过对气缸内进气总管温度、进气管压强、排气管温度、排气管压强、气缸温度、气缸压强、油冷却器入口温度、油冷却器出口温度、油冷却器出口压强、冷却水进口温度,冷却水出口温度、冷却水进口压强和冷却水出口压强的信号依次进行处理,得到一一对应的预处理后的数据f1-f13,如下表2所示:
[0093]
表2预处理后的数据
[0094][0095]
并将上述预处理后的数据作为测试机的输入分别输入到本发明的smoteenn-xgboost模型以及xgboost模型和随机森林(randomforest)模型中来进行预测和模型性能的评估。
[0096]
为了综合评价比较各个算法的预测精度,采用准确率(accuracy)、召回率(recall)和auc三项评价指标对各模型进行综合评价,如下表3所示:
[0097]
表3不同诊断模型预测精度对比
[0098]
[0099]
通过表3的结果可以看出,与其他两种模型相比,本发明实施例提供的smoteenn-xgboost模型在准确率、召回率以及auc值上均有较大的提升,证明了本发明实施例提供的诊断方法的有效性和准确性,因而,本发明提出的基于不均衡数据的柴油发动机故障诊断方法,能有效提高数类故障样本诊断的准确性和有效性。
[0100]
图2为本发明实施例提供的数据集在均衡化处理之前的样本分布图,图3为本发明实施例提供的数据集在均衡化处理之后的样本分布图,通过图2可以看出故障样本点远远小于正常样本点,样本数据之间不均衡率较高,通过图3可以看出两种类型之间的采样数近似相等,样本数据之间的不均衡得到改善,说明均衡化处理可以避免了噪声点的产生,有效克服样本数据之间的不均衡与边缘化问题。
[0101]
尽管已经示出和描述了本发明的实施例,本领域的普通技术人员可以理解:在不脱离本发明的原理和宗旨的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由权利要求及其等同物限定。

技术特征:
1.一种基于不均衡数据的柴油发动机故障诊断方法,其特征在于,包括以下步骤:s1、分别采集若干个正常运行和故障运行的柴油发动机状态参数组成数据集;s2、对步骤s1得到的数据集进行预处理,得到预处理数据集;s3、对步骤s2得到的预处理数据集进行故障标记,得到训练集;s4、利用smoteenn混合采样算法对步骤s3得到的训练集进行处理,得到均衡化数据集;s5、基于xgboost模型对步骤s4得到的均衡化数据集进行训练,在训练过程中采用k折交叉验证法与网格搜索算法进行模型参数优化,即得到柴油发动机故障诊断模型,所述柴油发动机故障诊断模型如下所示:其中:为预测值,t为树的数量,f
k
为第k棵独立的树,x
i
为第i个数据集样本;s6、将待诊断的柴油发动机真实数据输入步骤s6得到的柴油发动机故障诊断模型中,得到发动机的健康状态诊断结果。2.根据权利要求1所述的基于不均衡数据的柴油发动机故障诊断方法,其特征在于,步骤s1中,所述柴油发动机状态参数包含进气总管温度、进气管压强、排气管温度、排气管压强、气缸温度、气缸压强、油冷却器入口温度、油冷却器出口温度、油冷却器出口压强、冷却水进口温度,冷却水出口温度、冷却水进口压强和冷却水出口压强。3.根据权利要求1所述的基于不均衡数据的柴油发动机故障诊断方法,其特征在于,步骤s2中,所述预处理包括以下步骤:将步骤s1得到的数据集去除异常值,采用中值滤波的方法进行数据去噪,采用同类均值插补方法进行缺失数据填补,对所采集的数据集进行归一化处理,得到预处理数据集,归一化公式如下:其中:x
*
为归一化后的数据,x为原始数据,μ为所有样本的均值,σ为所有样本数据的标准差。4.根据权利要求1所述的基于不均衡数据的柴油发动机故障诊断方法,其特征在于,步骤s4中,所述均衡化数据集通过以下步骤得到:s41、遍历步骤s3得到的训练集,设多数类样本集合为n,少数类为p,x
i
为p中的一个样本,通过knn算法在整个训练集中搜索离样本x
i
最近的k个样本,k个样本中少数类记为k
i
;s42、若k
i
=0,即x
i
附近k个最近邻都是多数类,则认为x
i
是噪点,不做处理,若k
i
≥1/2k,则认为是内部点,也不做任何处理,若0<k
i
<1/2k,则认为x
i
是容易被错分的边界点,对x
i
执行第s33步骤;s43、重复从x
i
的k的近邻中随机选择一个样本,在它们之间随机合成一个点作为新的少数类样本并添加到训练集中,得到新训练集,所采用的公式如下:x
n
=x
i
+ξ(x
i-k
i
)其中,x
i
为少数类样本点,k
i
为x
i
的近邻,ξ为0到1之间的随机数;s44、对新训练集使用knn算法,去除预测结果与实际类别不符的样本点,减少生成的少数样本和多数样本重叠的概率,得到均衡化数据集。5.根据权利要求1所述的基于不均衡数据的柴油发动机故障诊断方法,其特征在于,步
骤s5中,所述柴油发动机故障诊断模型通过以下步骤得到:s51、输入特征数为m,样本数为n的步骤s4得到的均衡化数据集d={(x
i
,y
i
)|x
i
∈r
m
,y
i
∈r},其预测值为每棵树的打分累加和,通过以下公式得到:其中,t为数的数量,f
k
为第k棵独立的树,x
i
为第i个数据集样本;加入正则化后的目标损失函数为:正则化项为:其中,为第i个目标样本的预测值,y
i
为真实值,为损失函数,w
k
为第k棵树的叶子节点权重,ω(f
k
)为树复杂度,γ为惩罚项,t
k
为第k棵树叶子节点的数量,λ为正则项系数;s52、每颗树通过贪心算法选择不同的特征进行分裂,通过泰勒展开式计算分裂后的损失函数比单个叶子节点的增益,分裂的增益函数为:其中,g
r
和g
l
为节点分裂后左右子树关于的一阶导数和,h
l
和h
r
为左右子树关于的二阶导数和,λ为正则项系数;s53、不断重复步骤s52迭代生成新的cart树来拟合上一棵树的残差,当样本权重和小于设定阈值时,则停止建树;s54、将步骤s53中所有生成树合并,即得到柴油发动机故障诊断模型。6.根据权利要求5所述的基于不均衡数据的柴油发动机故障诊断方法,其特征在于,步骤s5中,所述参数优化包括以下步骤:(1)选择0.3作为初始的学习速率,使用默认值作为集成参数初始值,在步骤s53中的每一次迭代中使用k-fold交叉验证,确定最优决策树数量;(2)根据确定的学习速率与决策树数量,采用k折交叉验证法与网格搜索法进行决策树特定参数调优;(3)基于已有数据,调整正则化参数,降低过拟合;(4)降低学习速率,确定模型的最佳参数组合。

技术总结
本发明公开了一种基于不均衡数据的柴油发动机故障诊断方法,包括以下步骤:S1、分别采集若干个正常运行和故障运行的柴油发动机状态参数组成数据集;S2、对数据集进行预处理,得到预处理数据集;S3、对预处理数据集进行故障标记,得到训练集;S4、利用SMOTEENN混合采样算法对训练集进行处理,得到均衡化数据集;S5、基于Xgboost模型对均衡化数据集进行训练,并进行模型参数优化,即得到柴油发动机故障诊断模型;S6、将待诊断的柴油发动机真实数据输入柴油发动机故障诊断模型中,得到发动机的健康状态诊断结果。本发明提出的柴油发动机故障诊断方法,能有效提高数类故障样本诊断的准确性和有效性。有效性。有效性。


技术研发人员:杨颖 杨磊 刘旒
受保护的技术使用者:广西大学
技术研发日:2022.03.17
技术公布日:2022/7/5
转载请注明原文地址: https://www.8miu.com/read-13704.html

最新回复(0)