这个例子展示了一种基于模型的方法来检测和诊断泵系统中发生的不同类型的故障。该实例遵循Rolf Isermann[1]所著的《故障诊断应用》一书中的离心泵分析。gydF4y2Ba
泵是许多行业的基本设备,包括电力和化工,矿产和采矿,制造,加热,空调和冷却。离心泵是通过将旋转动能转换为流体流动的流体动力能来输送流体的。旋转能量通常来自内燃机或电动机。流体沿旋转轴或接近旋转轴进入泵叶轮,被叶轮加速,径向向外流动进入扩散器。gydF4y2Ba
泵的液压或机械部件会受到损坏。最常见的故障部件是滑动环密封和球轴承,尽管其他部件包括驱动电机、叶轮叶片和滑动轴承也不罕见。下表列出了最常见的故障类型。gydF4y2Ba
空化:gydF4y2Ba当静压降至蒸汽压以下时,流体内汽泡的形成。气泡突然崩塌,导致叶轮受损。gydF4y2Ba
气液:gydF4y2Ba压降导致流体中的溶解气体。分离气体和液体和下部头部结果。gydF4y2Ba
演练:gydF4y2Ba缺少液体导致轴承冷却不足和过热。对于开始阶段很重要。gydF4y2Ba
侵蚀:gydF4y2Ba由于硬颗粒或空化而对壁造成的机械破坏gydF4y2Ba
腐蚀:gydF4y2Ba侵蚀性液体损害gydF4y2Ba
轴承磨损:gydF4y2Ba机械损伤通过疲劳和金属摩擦,产生点蚀和撕裂gydF4y2Ba
卸载浮雕孔洞:gydF4y2Ba导致轴向轴承的过载/损坏gydF4y2Ba
滑动环密封封堵:gydF4y2Ba导致更高的摩擦力和更小的效率gydF4y2Ba
分裂密封的增加:gydF4y2Ba导致效率的损失gydF4y2Ba
存款:gydF4y2Ba有机物质的沉积或通过化学反应在转子入口或出口降低效率和增加温度。gydF4y2Ba
振动:gydF4y2Ba转子通过转子损坏或沉积物不平衡。会导致轴承损坏。gydF4y2Ba
可用的传感器gydF4y2Ba
通常测量以下信号:gydF4y2Ba
进口和出口之间的压力差gydF4y2Ba
转速gydF4y2Ba
电动机转矩gydF4y2Ba 和泵的转矩gydF4y2Ba
泵出口处的流体放电(流量)速率gydF4y2Ba
驱动电机电流、电压、温度(此处不考虑)gydF4y2Ba
流体温度、沉积物(此处不考虑)gydF4y2Ba
扭矩gydF4y2Ba 应用到径向离心泵的转子上,就会产生转速gydF4y2Ba 将泵流体的动量增量从半径较小的转子进口传递到半径较大的转子出口。欧拉涡轮方程给出了压差之间的关系gydF4y2Ba , 速度gydF4y2Ba 和流体排量(流量)gydF4y2Ba :gydF4y2Ba
在哪里gydF4y2Ba 是理论的(理想的;无损失)泵头以米和gydF4y2Ba ,gydF4y2Ba 是比例常数。当考虑有限数量的叶轮叶片、摩擦损失和非切向流动造成的冲击损失时,泵的实际扬程为:gydF4y2Ba
在哪里gydF4y2Ba ,gydF4y2Ba 和gydF4y2Ba 是要视为模型参数的比例常数。相应的泵扭矩是:gydF4y2Ba
电机和泵的机械部件导致扭矩根据:gydF4y2Ba
在哪里gydF4y2Ba 电机和泵的惯量比,和gydF4y2Ba 是由库仑摩擦组成的摩擦扭矩gydF4y2Ba 和粘滞摩擦gydF4y2Ba 根据:gydF4y2Ba
泵与管道系统相连,管道系统将流体从下储罐输送到上储罐。动量平衡方程得到:gydF4y2Ba
在哪里gydF4y2Ba 是管道的电阻系数,gydF4y2Ba 管长度gydF4y2Ba 和横截面积gydF4y2Ba ,gydF4y2Ba 是泵上存储的高度。模型参数gydF4y2Ba 可以从物理上知道,也可以通过将测量到的传感器信号拟合到模型的输入/输出来估计。所使用的型号可能取决于泵运行的操作条件。例如,如果泵总是以恒定的角速度运行,则可能不需要泵管系统的全非线性模型。gydF4y2Ba
通过检查从测量中提取的某些特征并将其与已知的可接受行为的阈值进行比较来检测故障。不同故障的可检测性和隔离性取决于实验的性质和测量的可用性。例如,具有压力测量的恒定速度分析仅可以检测导致大压力变化的故障。此外,它不能可靠地评估失败的原因。然而,具有测量压差,电动机扭矩和流速的多速实验可以检测和隔离许多源的故障来源,例如源自燃气外壳,干式运行,大沉积物,电机缺陷等。gydF4y2Ba
基于模型的方法采用以下技术:gydF4y2Ba
参数估计:利用机器正常(标称)运行时的测量值,估计模型的参数,并量化其不确定性。然后使用测试系统测量值重新估计参数值,并将结果估计值与它们的标称值进行比较。此技术是本示例的主要主题。gydF4y2Ba
残留生成:用于健康机器的培训型培训。将模型的输出与测试系统的测量观测进行比较,并且计算残余信号。分析该信号的幅度,方差和其他属性以检测故障。可以设计大量残留物并用于区分不同的故障来源。该技术在讨论中gydF4y2Ba使用残余分析对离心泵的故障诊断gydF4y2Ba例子。gydF4y2Ba
校准和监督泵的常用方法是使泵以恒定速度运行,并记录泵的静态扬程和流体排量。通过改变阀门在管道系统中的位置,可以调节流体排量(GPM)。排量的增加使泵扬程减小。泵的测量扬程特性可以与制造商提供的值进行比较。任何差异都表明存在故障的可能性。在Simulink中对泵管系统模型进行了仿真,得到了泵头和流量的测量值。万博1manbetxgydF4y2Ba
在额定转速为2900 RPM时,由制造商提供的健康泵的理想泵头特性如图所示。gydF4y2Ba
负载gydF4y2Ba碰撞仪DADA.gydF4y2BaQ0处gydF4y2BaH0gydF4y2BaM0gydF4y2Ba%制造商提供泵送头的数据gydF4y2Ba图绘制(H0 Q0处,gydF4y2Ba“——”gydF4y2Ba);包含(gydF4y2Ba'流量Q (m^3/h)'gydF4y2Ba) ylabel (gydF4y2Ba泵头(m)的gydF4y2Ba) 标题(gydF4y2Ba“泵输出压头特性在2900 RPM”gydF4y2Ba) 网格gydF4y2Ba在gydF4y2Ba传奇(gydF4y2Ba“健康泵”gydF4y2Ba)gydF4y2Ba
导致泵特性发生明显变化的故障有:gydF4y2Ba
间隙处磨损gydF4y2Ba
在叶轮出口磨损gydF4y2Ba
沉积在叶轮出口处gydF4y2Ba
用于分析故障泵,收集速度,扭矩和流量测量,用于受不同故障影响的泵。例如,当引入的故障在间隙环中时,用于泵的测量头特性显示出特性曲线的清晰偏移。gydF4y2Ba
负载gydF4y2Ba碰撞仪DADA.gydF4y2Ba第一季度gydF4y2BaH1gydF4y2BaM1gydF4y2Ba对于具有较大间隙的泵测量的%信号gydF4y2Ba持有gydF4y2Ba在gydF4y2Ba情节(Q1, H1);负载gydF4y2Ba碰撞仪DADA.gydF4y2Ba第二季gydF4y2BaH2gydF4y2Ba平方米gydF4y2Ba用小间隙泵测量的信号gydF4y2Ba图(Q2,H2);传奇(gydF4y2Ba“健康泵”gydF4y2Ba,gydF4y2Ba“大通关”gydF4y2Ba,gydF4y2Ba'小清关'gydF4y2Ba)举行gydF4y2Ba从gydF4y2Ba
在扭矩流动特性和其他故障类型中也可以看到类似的变化。gydF4y2Ba
对于故障诊断的自动化,您将观察到的定量信息变为。可靠的方法是将参数化曲线拟合到上面绘制的头流特性数据。使用泵管动力学控制方程,并使用简化的扭矩关系,获得以下等式:gydF4y2Ba
是要估计的参数。如果你衡量gydF4y2Ba 和gydF4y2Ba 时,可用线性最小二乘估计参数。这些参数是gydF4y2Ba特征gydF4y2Ba可用于开发故障检测和诊断算法。gydF4y2Ba
计算并绘制上述3条曲线的估计值。使用的测量值gydF4y2Ba 和gydF4y2Ba 数据和gydF4y2Ba 为泵的额定转速。gydF4y2Ba
w = 2900;gydF4y2Ba% RPMgydF4y2Ba%健康泵gydF4y2Ba[hnn_0, hnv_0 hvv_0、k0_0 k1_0, k2_0] = linearFit (0, {w Q0 H0, M0});gydF4y2Ba%泵间隙大gydF4y2Ba[hnn_1, hnv_1 hvv_1、k0_1 k1_1, k2_1] = linearFit (0, {w, Q1, H1, M1});gydF4y2Ba泵间隙小gydF4y2Ba[hnn_2, hnv_2 hvv_2、k0_2 k1_2, k2_2] = linearFit (0, {w, Q2, H2, M2});X = [hnn_0 hnn_1 hnn_2;hnv_0 hnv_1 hnv_2;hvv_0 hvv_1 hvv_2]”;disp (array2table (X,gydF4y2Ba'variablenames'gydF4y2Ba,{gydF4y2Ba'hnn'gydF4y2Ba,gydF4y2Ba“hnv”gydF4y2Ba,gydF4y2Ba'hvv'gydF4y2Ba},gydF4y2Ba......gydF4y2Ba'rownames'gydF4y2Ba,{gydF4y2Ba'健康'gydF4y2Ba,gydF4y2Ba“大清”gydF4y2Ba,gydF4y2Ba“小间隙”gydF4y2Ba})))gydF4y2Ba
HNN HNV HVV __________ __________ _________健康5.1164E-06 8.6148E-05 0.010421大型清关4.849E-06 8.362E-05 0.011082小清关5.3677E-05 0.0094656gydF4y2Ba
Y = [k0_0 k0_1 k0_2;k1_0 k1_1 k1_2;k2_0 k2_1 k2_2]”;disp (array2table (Y,gydF4y2Ba'variablenames'gydF4y2Ba,{gydF4y2Ba“k0”gydF4y2Ba,gydF4y2Ba“k1”gydF4y2Ba,gydF4y2Ba“k2”gydF4y2Ba},gydF4y2Ba......gydF4y2Ba'rownames'gydF4y2Ba,{gydF4y2Ba'健康'gydF4y2Ba,gydF4y2Ba“大清”gydF4y2Ba,gydF4y2Ba“小间隙”gydF4y2Ba})))gydF4y2Ba
k0 k1 k2 __________ ________ __________ Healthy 0.00033347 0.016535 2.8212e-07大间隙0.00031571 0.016471 3.0285e-07小间隙0.00034604 0.015886 2.6669e-07gydF4y2Ba
这些表格显示gydF4y2Ba 和gydF4y2Ba 当间隙差距大于较小间隙的标称值时,值减少。另一方面,gydF4y2Ba 和gydF4y2Ba 间隙大时值增大,间隙小时值减小。的依赖gydF4y2Ba 和gydF4y2Ba 清关差距不太清晰。gydF4y2Ba
初步分析表明,参数变化是如何指示故障的。然而,即使是健康的泵,由于测量噪音、流体污染和粘度变化以及运行泵的电机的滑转矩特性,测量值也会发生变化。这些测量变化在参数估计中引入不确定度。gydF4y2Ba
通过以2900 RPM运行10个放电节流阀位置,从无故障条件下运行的泵收集5套测量。gydF4y2Ba
负载gydF4y2BaFaultDiagnosisdata.gydF4y2Ba健康gydF4y2Bah = cellfun(@(x)x.head,hyperalensemble,gydF4y2Ba'uni'gydF4y2Ba, 0);Q = cellfun (@ x (x)。HealthyEnsemble放电,gydF4y2Ba'uni'gydF4y2Ba, 0);情节(猫(2 Q{:}),猫(2 H {:}),gydF4y2Ba“k”。gydF4y2Ba) 标题(gydF4y2Ba“用于5次试车的泵头特性集成”gydF4y2Ba)包含(gydF4y2Ba的流量(m ^ 3 / hed)”gydF4y2Ba) ylabel (gydF4y2Ba泵头(m)的gydF4y2Ba)gydF4y2Ba
该曲线表明了即使在现实条件下为健康泵也是特性的变化。必须考虑这些变化,以使故障诊断可靠。下一节讨论了噪声数据的故障检测和隔离技术。gydF4y2Ba
在许多情况下,只有健康机器的度量值可用。在这种情况下,可以使用可用的测量值创建健康状态的统计描述,其中包含参数向量的平均值和协方差。测试泵的测量值可以与名义统计值进行比较,以检验测试泵是否是健康泵是否可信。从检测特征来看,故障泵被认为是异常。gydF4y2Ba
泵头和扭矩参数的估计平均值和协方差。gydF4y2Ba
负载gydF4y2BaFaultDiagnosisdata.gydF4y2Ba健康gydF4y2Ba[健康赛,健康赛] = LineArfit(1,Hyperalensemble);Meantheta1 =平均值(HealtalTheta1,1);Meantheta2 =平均值(健康赛2,1);covtheta1 = cov(健康atheta1);Covtheta2 = COV(健康赛2);gydF4y2Ba
可视化参数不确定性为74%的置信区,这对应于2个标准偏差(gydF4y2Ba
).看到helper函数gydF4y2BaHelperplotConfidenceCheriid.gydF4y2Ba
获取详细信息。gydF4y2Ba
泵头参数的置信椭球gydF4y2Baf =图;f.Position (3) = f.Position (3) * 2;次要情节(121)helperPlotConfidenceEllipsoid (meanTheta1 covTheta1 2, 0.6);包含(gydF4y2Ba'hnn'gydF4y2Ba) ylabel (gydF4y2Ba“hnv”gydF4y2Ba) zlabel (gydF4y2Ba'hvv'gydF4y2Ba) 标题(gydF4y2Ba“泵头参数的2-sd置信椭球”gydF4y2Ba)举行gydF4y2Ba在gydF4y2Ba
泵扭矩参数的置信椭球gydF4y2Ba次要情节(122)helperPlotConfidenceEllipsoid (meanTheta2 covTheta2 2, 0.6);包含(gydF4y2Ba“k0”gydF4y2Ba) ylabel (gydF4y2Ba“k1”gydF4y2Ba) zlabel (gydF4y2Ba“k2”gydF4y2Ba) 标题(gydF4y2Ba'泵扭矩参数的2-SD信心椭圆体'gydF4y2Ba)举行gydF4y2Ba在gydF4y2Ba
灰色椭圆体显示健康泵参数的置信区。加载未标记的测试数据以进行健康区域的比较。gydF4y2Ba
负载gydF4y2BaFaultDiagnosisdata.gydF4y2BatesteSemble.gydF4y2Ba
TesteSemble包含一组泵速,扭矩,头部和流量测量,在各种阀门位置处。所有测量都包含不同大小的间隙故障。gydF4y2Ba
%测试数据预览gydF4y2BaDISP(TESTESSEMBLE {1}(1:5,:))gydF4y2Ba从第一集合成员的%前5个测量行gydF4y2Ba
时间运行ValvePosition速度头放电扭矩 _________ ___ _____________ ______ ______ _________ _______ 180秒1 10 3034.6 12.367 35.339 0.35288 180.1秒1 10 2922.1 9.6762 36.556 4.6953 180.2秒1 2636.1 11.168 36.835 9.8898 180.3秒1 10 2717.4 10.562 40.22 -12.598 180.4秒1 3183.7 10.55 40.553 14.672gydF4y2Ba
计算测试参数。看到helper函数gydF4y2Balinearfit.gydF4y2Ba
.gydF4y2Ba
%testtheta1:泵头参数gydF4y2Ba% TestTheta2:泵扭矩参数gydF4y2Ba[testtheta1,testtheta2] = LineArfit(1,TestseSemble);子图(121)Plot3(testtheta1(:,1),testtheta1(:,2),testtheta1(:,3),gydF4y2Ba'G*'gydF4y2Ba)查看([ - 42.7 10])子图(122)Plot3(testtheta2(:,1),testtheta2(:,2),testtheta2(:,3),gydF4y2Ba'G*'gydF4y2Ba)视图(-28.3 [18])gydF4y2Ba
每个绿色星形标记由一个测试泵贡献。置信度范围外的标记可以被视为异常值,而置信度范围内的标记要么来自健康泵,要么未被发现。请注意,来自特定泵的标记可能会在泵扬程视图中被标记为异常,但在泵扭矩视图中则不会。这可能是由于这些视图检测到的不同来源的故障,或压力和扭矩测量的潜在可靠性。gydF4y2Ba
在本节中,讨论了利用置信区信息进行检测和评估故障严重程度的方式。该技术是从健康区域分布的平均值或中值计算测试样品的“距离”。距离必须相对于由其协方差所代表的健康参数数据的正常“扩展”。该功能玛哈尔计算测试样品的Mahalanobis距离从参考样品集的分布(此处的健康泵参数):gydF4y2Ba
Pardist1 =玛哈尔(Testtheta1,Healtaltheta1);gydF4y2Ba%为泵扬程参数gydF4y2Ba
如果假设74%置信范围(2个标准差)是健康数据的可接受变化,则ParDist1中任何大于2^2 = 4的值都应被标记为异常,从而指示错误行为。gydF4y2Ba
将距离值添加到绘图中。红线表示异常测试样品。看到helper函数gydF4y2BaHelperadddistancelines.gydF4y2Ba
.gydF4y2Ba
阈值= 2;DISP(表((1:lengthist1))',Pardist1,Pardist1>阈值^ 2,gydF4y2Ba......gydF4y2Ba'variablenames'gydF4y2Ba,{gydF4y2Ba'pumpnumber'gydF4y2Ba,gydF4y2Ba“SampleDistance”gydF4y2Ba,gydF4y2Ba“异常”gydF4y2Ba})))gydF4y2Ba
泵编号SampleDistance异常__________ ______________ _________ 1 58.874真2 24.051真3 6.281真4 3.7179假5 13.58真6 3.0723假7 2.0958假8 4.7127真9 26.829真10 0.74682假gydF4y2Ba
helperadddistelines (1, ParDist1, meanTheta1, TestTheta1, Threshold);gydF4y2Ba
类似地,对于泵扭矩:gydF4y2Ba
ParDist2 = mahal(TestTheta2, HealthyTheta2);gydF4y2Ba泵扭矩参数的%gydF4y2Badisp(表((1:长度(ParDist2))、ParDist2 ParDist2 >阈值^ 2,gydF4y2Ba......gydF4y2Ba'variablenames'gydF4y2Ba,{gydF4y2Ba'pumpnumber'gydF4y2Ba,gydF4y2Ba“SampleDistance”gydF4y2Ba,gydF4y2Ba“异常”gydF4y2Ba})))gydF4y2Ba
Pumpnnumber Samplediacherance异常__________ ___________________ 1 9.1381 TRUE 2 5.4249 TRUE 3 3.0565 FALSE 4 3.775 FALSE 5 0.77961 FALSE 6 7.5508 TRUE 7 3.3368 FALSE 8 0.74834 FALSE 9 3.6478 FALSE 10 1.0241 FALSEgydF4y2Ba
HelperAdddistancelines(2,Pardist2,Meantheta2,TestTheta2,阈值);查看([8.1 17.2])gydF4y2Ba
现在的图不仅显示了异常样本的检测,而且还量化了它们的严重程度。gydF4y2Ba
标记异常的另一种有效技术是为健康参数数据集构建一个类分类器。使用健康泵参数数据训练SVM分类器。由于没有使用错误标签,因此将所有示例视为来自同一个(健康)类。由于参数的变化gydF4y2Ba 和gydF4y2Ba 是最能指示潜在故障的参数,仅使用这些参数来训练SVM分类器。gydF4y2Ba
nc =尺寸(健康atheta1,1);RNG(2)gydF4y2Ba%的再现性gydF4y2Basvmoneclass1 = fitcsvm(HealtalTheta1(:,[1 3]),(NC,1),gydF4y2Ba......gydF4y2Ba'kernelscale'gydF4y2Ba,gydF4y2Ba“汽车”gydF4y2Ba,gydF4y2Ba......gydF4y2Ba'标准化'gydF4y2Ba,真的,gydF4y2Ba......gydF4y2Ba“OutlierFraction”gydF4y2Ba, 0.0455);gydF4y2Ba
绘制测试观察结果和决策边界。标记支持向量和潜在万博1manbetx异常值。看到helper函数gydF4y2BahelperPlotSVMgydF4y2Ba
.gydF4y2Ba
图HelperplotsVM(SVMONeclass1,TestTheta1(:,[1 3]))标题(gydF4y2Ba'SVM异常检测泵头参数'gydF4y2Ba)包含(gydF4y2Ba'hnn'gydF4y2Ba) ylabel (gydF4y2Ba'hvv'gydF4y2Ba)gydF4y2Ba
当轮廓值为0时,将异常值与其余数据分离的边界出现;这是在图中标记为“0”的水平曲线。离群值用红圈标出。扭矩参数也可以进行类似的分析。gydF4y2Ba
SVMOneClass2 = fitcsvm(HealthyTheta2(:,[1 3]),ones(nc,1),gydF4y2Ba......gydF4y2Ba'kernelscale'gydF4y2Ba,gydF4y2Ba“汽车”gydF4y2Ba,gydF4y2Ba......gydF4y2Ba'标准化'gydF4y2Ba,真的,gydF4y2Ba......gydF4y2Ba“OutlierFraction”gydF4y2Ba, 0.0455);图helperPlotSVM(SVMOneClass2,TestTheta2(:,[1 3])) title(gydF4y2Ba'SVM异常检测扭矩参数'gydF4y2Ba)包含(gydF4y2Ba“k0”gydF4y2Ba) ylabel (gydF4y2Ba“k2”gydF4y2Ba)gydF4y2Ba
可以进行类似的分析,用于检测其他类型的断层,例如在故障隔离的背景下讨论的叶轮出口处的磨损或沉积物。gydF4y2Ba
如果测试系统中关于故障类型的信息是可用的,那么就可以使用这些信息来创建算法,这些算法不仅可以检测故障,还可以表明故障的类型。gydF4y2Ba
A.通过似然比检验区分间隙故障gydF4y2Ba
间隙间隙的变化可以分为两种类型——小于预期间隙(泵扬程特性图中的黄线)和大于预期间隙(红线)。预先知道故障性质(大或小)的间隙故障的负载泵测试数据集。通过故障标签可以实现以下三种类型的分类:gydF4y2Ba
模式1:正常间隙(健康行为)gydF4y2Ba
模式2:大间隙差距gydF4y2Ba
模式3:小间隙差距gydF4y2Ba
负载gydF4y2Balabeledgapcolleandata.gydF4y2Ba健康gydF4y2BaLargeGapEnsemblegydF4y2BaSmallgapysemble.gydF4y2Ba
这些集合包含了来自50个独立实验的数据。与之前一样,拟合稳态线性模型,以参数化泵头和扭矩数据。gydF4y2Ba
[健康赛,健康赛] = LineArfit(1,Hyperalensemble);[Largetheta1,Largetheta2] = LineArfit(1,大淀粉);[SmallTheta1,SmallTheta2] = LineArfit(1,SmallgapyseMble);gydF4y2Ba
绘制参数直方图,检查3种模式是否可分离。这个函数gydF4y2BahistfitgydF4y2Ba
用于绘制直方图和相应的拟合正态分布曲线。看到helper函数gydF4y2BahelperPlotHistogramgydF4y2Ba
.gydF4y2Ba
水泵扬程参数gydF4y2Ba:gydF4y2Ba
Helperplothistogram(HealtalTheta1,Largetheta1,Smalltheta1,{gydF4y2Ba'hnn'gydF4y2Ba,gydF4y2Ba“hnv”gydF4y2Ba,gydF4y2Ba'hvv'gydF4y2Ba})gydF4y2Ba
从直方图可以看出gydF4y2Ba 在三种模式之间提供了良好的可分离性gydF4y2Ba 参数具有重叠的概率分布函数(PDF)。gydF4y2Ba
泵扭矩参数gydF4y2Ba:gydF4y2Ba
helperplothistgram (HealthyTheta2, LargeTheta2, SmallTheta2, {)gydF4y2Ba“k0”gydF4y2Ba,gydF4y2Ba“k1”gydF4y2Ba,gydF4y2Ba“k2”gydF4y2Ba})gydF4y2Ba
对于扭矩参数,各个可分离性不是很好。仍然可以通过训练的3模式分类器利用的均值和差异变化。如果PDF在均值或方差中显示出良好的分离,则可以设计似然比测试以快速将测试数据集分配给最可能的模式。这是泵头参数的接下来的。gydF4y2Ba
让:gydF4y2Ba
:假设扬程参数属于健康泵模式gydF4y2Ba
:假设头参数属于泵,具有大的间隙gydF4y2Ba
:假设头参数属于具有小间隙的泵gydF4y2Ba
将可用参数集视为用于模式预测的测试样本。将预测模式分配为属于关节PDF具有最高值的模式(假设gydF4y2Ba
选择了gydF4y2Ba
如果gydF4y2Ba
).然后在一个混淆矩阵中绘制真实模式和预测模式的比较结果。函数gydF4y2Bamvnpdf.gydF4y2Ba
用于计算PDF值和功能gydF4y2BaconfusionmatrixgydF4y2Ba
和gydF4y2Ba的热图gydF4y2Ba
用于混淆矩阵的可视化。看到helper函数gydF4y2BapumpModeLikelihoodTestgydF4y2Ba
.gydF4y2Ba
%泵头混淆矩阵gydF4y2BaFigure PumpModelikelihieTest(HealtalTheta1,Largetheta1,SmallTheta1)gydF4y2Ba
混淆图显示了三种模式之间的完美分离,这并不奇怪,因为在直方图之间有明确的分离gydF4y2Ba 参数。gydF4y2Ba
%泵扭矩混淆矩阵gydF4y2BaPumpModelikelihountTest(健康赛,Largetheta2,SmallTheta2)gydF4y2Ba
结果稍差的扭矩参数。尽管三种模式的pdf文件有很大的重叠,但成功率仍然很高(97%)。这是因为PDF值的计算既受位置(平均值)的影响,也受振幅(方差)的影响。gydF4y2Ba
B.使用树袋装的故障模式多级分类gydF4y2Ba
在该部分中,讨论了另一种分类技术,其在需要较大数量的模式之间的分类时更适合。考虑以下故障操作模式:gydF4y2Ba
健康的操作gydF4y2Ba
间隙磨损gydF4y2Ba
叶轮出口有少量沉积物gydF4y2Ba
叶轮进口处沉积gydF4y2Ba
叶轮出口磨料磨损gydF4y2Ba
破碎的叶片gydF4y2Ba
空化gydF4y2Ba
分类问题比较困难,因为只计算了三个参数,您需要区分7种操作模式。因此,您不仅必须将每个故障模式的估计参数与健康模式进行比较,而且还必须相互比较——两者都是gydF4y2Ba方向gydF4y2Ba(增加或减少价值)和gydF4y2Ba级gydF4y2Ba(10%变化与70%的变化)必须考虑参数变化。gydF4y2Ba
这里,显示了使用TreeBagger分类器进行此问题。树架是一个合奏学习技术,它使用引导集合(袋装)功能来创建分类标记数据的决策树。为7个操作模式收集了50个标记的数据集。估计每个数据集的泵头参数,并使用来自每个模式的参数估计的子集训练分类器。gydF4y2Ba
负载gydF4y2Bamultifultsdata.gydF4y2Ba%Compute Pump头参数gydF4y2BaHealtaltheta = Linearfit(1,Hyperalensemble);Fault1theta = linearfit(1,故障1 ussemble);Fault2theta = linearfit(1,故障2 ussemble);Fault3Theta = LineArfit(1,故障3ssemble);Fault4Theta = Linearfit(1,故障4 ussemble);Fault5theta = Linearfit(1,故障5ssemble);FAULT6THETA = LineARFIT(1,故障6ssemble);gydF4y2Ba%为每种操作模式生成标签gydF4y2Ba标签= {gydF4y2Ba'健康'gydF4y2Ba,gydF4y2Ba'lexancegapwear'gydF4y2Ba,gydF4y2Ba“ImpellerOutletDeposit”gydF4y2Ba,gydF4y2Ba......gydF4y2Ba'ImpellerInletEdeposit'gydF4y2Ba,gydF4y2Ba'磨石wear'gydF4y2Ba,gydF4y2Ba“BrokenBlade”gydF4y2Ba,gydF4y2Ba“空化”gydF4y2Ba};varnames = {gydF4y2Ba'hnn'gydF4y2Ba,gydF4y2Ba“hnv”gydF4y2Ba,gydF4y2Ba'hvv'gydF4y2Ba,gydF4y2Ba'状况'gydF4y2Ba};gydF4y2Ba%将结果与参数和相应的标签组合成一个表gydF4y2BaN = 50;T0 = [array2table (HealthyTheta)、repmat(标签(1)[N, 1]));T0.Properties。VariableNames = VarNames;T1 = [array2table(Fault1Theta), repmat(Label(2),[N,1])];T1.Properties。VariableNames = VarNames;T2 = [array2table(Fault2Theta), repmat(Label(3),[N,1])];T2.Properties。VariableNames = VarNames; T3 = [array2table(Fault3Theta), repmat(Label(4),[N,1])]; T3.Properties.VariableNames = VarNames; T4 = [array2table(Fault4Theta), repmat(Label(5),[N,1])]; T4.Properties.VariableNames = VarNames; T5 = [array2table(Fault5Theta), repmat(Label(6),[N,1])]; T5.Properties.VariableNames = VarNames; T6 = [array2table(Fault6Theta), repmat(Label(7),[N,1])]; T6.Properties.VariableNames = VarNames;%堆栈所有数据gydF4y2Ba50个数据集中的30%用于模型创建gydF4y2BaTrainingData = [T0 (1:30,:); T1 (1:30,:), T2 (1:30,:), T3 (1:30,:), T4 (1:30,:), T5 (1:30:); T6 (1:30:)];gydF4y2Ba%创建20个决策树的集成Mdl,用于预测gydF4y2Ba使用参数值的%标签gydF4y2Ba提高(3)gydF4y2Ba%的再现性gydF4y2BaMdl = TreeBagger(20, TrainingData,gydF4y2Ba'状况'gydF4y2Ba,gydF4y2Ba......gydF4y2Ba'Oobprediction'gydF4y2Ba,gydF4y2Ba“上”gydF4y2Ba,gydF4y2Ba......gydF4y2Ba'Oobpredictorimportance'gydF4y2Ba,gydF4y2Ba“上”gydF4y2Ba)gydF4y2Ba
Mdl = TreeBagger Ensemble with 20 bagged decision trees: Training X: [210x3] Training Y: [210x1] Method: classification NumPredictors: 3 NumPredictorsToSample: 2 MinLeafSize: 1 InBagFraction: 1 SampleWithReplacement: 1 ComputeOOBPrediction: 1 ComputeOOBPredictorImportance: 1 Proximity: [] ClassNames:'AbrasiveWear' 'BrokenBlade' 'Cavitation' 'ClearanceGapWear' 'Healthy' 'ImpellerInletDeposit' 'ImpellerOutletDeposit'属性,方法gydF4y2Ba
通过研究其作为决策树数量的函数来研究其错误分类概率,可以通过研究其错误分类概率来计算TreeBagger模型的性能。gydF4y2Ba
%计算出袋子错误gydF4y2Ba图绘制(oobError (Mdl))包含(gydF4y2Ba'树的数量'gydF4y2Ba) ylabel (gydF4y2Ba“误分类概率”gydF4y2Ba)gydF4y2Ba
最后,对从未用于生成决策树的测试样本计算模型的预测性能。gydF4y2Ba
ValidationData = [T0 (31:50:); T1 (31:50:); T2 (31:50:); T3 (31:50:); T4 (31:50:); T5 (31:50:); T6 (31:50:)];ValidationData PredictedClass =预测(Mdl);E = 0 (7);gydF4y2Ba%健康数据误分类gydF4y2BaE(1) = sum(~strcmp(PredictedClass(1:20), Label{1}));gydF4y2Ba%间隙错误分类gydF4y2Bae(2)= sum(〜strcmp(predictedClass(21:40),标签{2}));gydF4y2Ba%叶轮出口沉积故障分类错误gydF4y2BaE(3) = sum(~strcmp(PredictedClass(41:60), Label{3}));gydF4y2Ba叶轮进口沉积故障分类错误gydF4y2BaE(4) = sum(~strcmp(PredictedClass(61:80), Label{4}));gydF4y2Ba%磨料磨损故障分类错误gydF4y2Bae(5)= sum(〜strcmp(predictictClass(81:100),标签{5}));gydF4y2Ba%断片故障分类错误gydF4y2BaE(6) = sum(~strcmp(PredictedClass(101:120), Label{6}));gydF4y2Ba%空化故障分类错误gydF4y2BaE(7) = sum(~strcmp(PredictedClass(121:140), Label{7}));图条(E/20*100) xticklabels(Label) set(gca,gydF4y2Ba“XTickLabelRotation”gydF4y2Ba,45)ylabel(gydF4y2Ba“误分类(%)'gydF4y2Ba)gydF4y2Ba
该图表明磨料磨损和损坏的叶片断层被错误分类为验证样品的30%。仔细看看预测的标签显示,在错误分类的情况下,“磨碎的人”和“Branslblade”标签仅在彼此之间混合。这表明这些故障类别的症状对于该分类器来说并不充分区分。gydF4y2Ba
精心设计的故障诊断策略可以通过最小化服务停机时间和组件更换成本来节省运营成本。该策略从关于操作机器的动态的良好知识中获益,这些动力学与传感器测量结合使用以检测和隔离不同类型的故障。gydF4y2Ba
本实例讨论了一种基于稳态实验的参数化故障检测与隔离方法。这种方法需要仔细的系统动力学建模,并使用参数(或其转换)作为设计故障诊断算法的特征。这些参数用于异常检测器的训练、似然比测试和多类分类器的训练。gydF4y2Ba
如何利用泵的现实寿命测试中的分类技术gydF4y2Ba
遵循故障诊断工作流程的摘要。gydF4y2Ba
以额定转速运行试验泵。将排放阀调到不同的设置,以控制流量。对于每个阀门位置,记录下泵速、流量、压差和扭矩。gydF4y2Ba
泵头和泵扭矩特性(稳态)方程的估计参数。gydF4y2Ba
如果不确定性/噪声低并且参数估计是可靠的,则可以将估计的参数直接与其标称值进行比较。它们的相对幅度将表示故障的性质。gydF4y2Ba
在一般的嘈杂情况下,使用异常的检测技术首先检查系统中是否存在故障。通过将估计的参数值与从健康泵的历史数据库获得的平均值和协方差值进行比较,可以非常快地完成。gydF4y2Ba
如果指示故障,请使用故障分类技术(例如似然比测试或分类器的输出)隔离最可能的原因。分类技术的选择将取决于可用的传感器数据,其可靠性,故障的严重性以及关于故障模式的历史信息的可用性。gydF4y2Ba
基于残差分析的故障诊断方法请参见gydF4y2Ba基于残差分析的离心泵故障诊断gydF4y2Ba例子。gydF4y2Ba
Isermann,罗尔夫,gydF4y2Ba故障诊断的应用。基于模型的状态监测:执行机构,驱动器,机械,工厂,传感器和容错系统gydF4y2Ba,第1版,施普林格-弗拉格柏林海德堡,2011。gydF4y2Ba
与泵参数线性匹配。gydF4y2Ba
函数gydF4y2Bavarargout = linearfit(表格,数据)gydF4y2Ba泵头和扭矩参数的%LineArfit线性最小二乘解。gydF4y2Ba%gydF4y2Ba%如果Form==0,接受单独的输入并返回单独的输出。只对一个实验有效。gydF4y2Ba%IF FORM == 1,接受合并并返回紧凑的参数向量。几个实验(合奏)。gydF4y2Ba如果gydF4y2BaForm==0 w = Data{1};Q ={2}数据;H ={3}数据;M =数据{4};n =长度(Q);gydF4y2Ba如果gydF4y2BaIsscalar (w), w = w*ones(n,1);gydF4y2Ba结束gydF4y2Baq = q(:);h = h(:);m = m(:);预测器= [w。^ 2,w。* q,q. ^ 2];theta1 = predictor \ h;hnn = theta1(1);hnv = -theta1(2);hvv = -theta1(3);theta2 = predictor \ m;k0 = theta2(2); k1 = -Theta2(3); k2 = Theta2(1); varargout = {hnn, hnv, hvv, k0, k1, k2};其他的gydF4y2Bah = cellfun(@(x)x.head,数据,gydF4y2Ba'uni'gydF4y2Ba, 0);Q = cellfun (@ x (x)。放电、数据gydF4y2Ba'uni'gydF4y2Ba, 0);M = cellfun (@ x (x)。转矩、数据gydF4y2Ba'uni'gydF4y2Ba, 0);w = cellfun(@(x)x.speed,数据,gydF4y2Ba'uni'gydF4y2Ba, 0);N =元素个数(H);θ₁= 0 (N);θ= 0 (N);gydF4y2Ba为gydF4y2Bakexp = 1:n predictor = [w {kexp}。^ 2,w {kexp}。* q {kexp},q {kexp}。^ 2];x1 = predictor \ h {kexp};hnn = x1(1);HNV = -X1(2);HVV = -X1(3);x2 = predictor \ m {kexp};k0 = x2(2);K1 = -X2(3);K2 = x2(1);theta1(:,kexp)= [hnn; hnv; hvv]; Theta2(:,kexp) = [k0; k1; k2];结束gydF4y2Bavarargout = {Theta1', Theta2'};gydF4y2Ba结束gydF4y2Ba结束gydF4y2Ba
会员可能性测试。gydF4y2Ba
函数gydF4y2BaPumpModelikelihountTest(健康赛,Largetheta,Smalltheta)gydF4y2Ba根据PDF值和图混淆矩阵生成预测。gydF4y2Bam1 =平均值(健康赛);C1 = COV(健康赛);m2 =平均值(Largetheta);C2 = COV(Largetheta);m3 =平均值(smalltheta);C3 = COV(SmallTheta);n =尺寸(健康赛,1);gydF4y2Ba%真课程gydF4y2Ba% 1:正常:组标签为1。gydF4y2Bax1t = x(n,1);gydF4y2Ba%2:大差距:组标签为2。gydF4y2BaX2t = 2 * 1 (N, 1);gydF4y2Ba% 3:小间隙:组标签为3。gydF4y2BaX3t = 3 *的(N - 1);gydF4y2Ba%计算预测类作为关节PDF具有最大值的类。gydF4y2Bax1 =零(n,3);x2 =零(n,3);x3 =零(n,3);gydF4y2Ba为gydF4y2Bact = 1: NgydF4y2Ba健康参数样本的隶属度概率密度gydF4y2Ba: HealthySample = HealthyTheta (ct);x1 = mvnpdf(HealthySample, m1, c1);x2 = mvnpdf(healthsample, m2, c2);x3 = mvnpdf(healthsample, m3, c3);X1(ct,:) = [X1 x2 x3];gydF4y2Ba%大间隙泵参数的隶属概率密度gydF4y2Ba: LargeSample = LargeTheta (ct);m1 = mvnref (m1, 1);x2 = mvnpdf(LargeSample, m2, c2);x3 = mvnpdf(LargeSample, m3, c3);X2(ct,:) = [x1 X2 x3];gydF4y2Ba%小间隙泵参数的隶属概率密度gydF4y2Ba: SmallSample = SmallTheta (ct);if (mvnpdf = mvnpdf, m1, c1);x2 = mvnpdf(SmallSample, m2, c2);x3 = mvnpdf(SmallSample, m3, c3);x (ct,:) = [x1 x2 X3];gydF4y2Ba结束gydF4y2Ba[~, PredictedGroup] = max ([X1, X2, X3], [], 2);TrueGroup = [X1t;X2t;X3t];C = confusionmat (TrueGroup PredictedGroup);热图(C,gydF4y2Ba......gydF4y2Ba“YLabel”gydF4y2Ba,gydF4y2Ba“实际情况”gydF4y2Ba,gydF4y2Ba......gydF4y2Ba“YDisplayLabels”gydF4y2Ba,{gydF4y2Ba'健康'gydF4y2Ba,gydF4y2Ba'大差距'gydF4y2Ba,gydF4y2Ba“小缺口”gydF4y2Ba},gydF4y2Ba......gydF4y2Ba“包含”gydF4y2Ba,gydF4y2Ba“预测条件”gydF4y2Ba,gydF4y2Ba......gydF4y2Ba“XDisplayLabels”gydF4y2Ba,{gydF4y2Ba'健康'gydF4y2Ba,gydF4y2Ba'大差距'gydF4y2Ba,gydF4y2Ba“小缺口”gydF4y2Ba},gydF4y2Ba......gydF4y2Ba“ColorbarVisible”gydF4y2Ba,gydF4y2Ba'离开'gydF4y2Ba);gydF4y2Ba结束gydF4y2Ba