主要内容

滚动轴承故障诊断

这个例子展示了如何基于加速度信号进行滚动轴承的故障诊断,特别是在来自其他机器部件的强屏蔽信号存在的情况下。该实例将演示如何应用包络谱分析和谱峭度诊断轴承故障,并能够扩大到大数据应用。

问题概述

滚动体轴承的局部故障可能发生在外圈、内圈、保持架或滚动体上。当滚动元件在外圈或内圈发生局部故障,或滚动元件的故障在外圈或内圈[1]发生故障时,轴承和响应传感器之间产生高频共振。下面的图片显示了一个滚动元件在内部滚道处发生了局部故障。问题是如何检测和识别各种类型的故障。

机械故障预防技术(MFPT)挑战数据

MFPT Challenge数据[4]包含从各种故障条件下的机器收集的23个数据集。前20组数据来自一个轴承试验台,3组在良好状态下,3组在恒定负载下有外圈故障,7组在各种负载下有外圈故障,7组在各种负载下有内圈故障。剩下的3个数据集来自真实的机器:一个油泵轴承,一个中速轴承,和一个行星轴承。故障位置未知。在本例中,只使用从已知条件的测试平台收集的数据。

每个数据集包含一个加速度信号“gs”,采样率“sr”,轴转速“rate”,负载重量“load”,和四个代表不同故障位置的关键频率:球通频率外赛道(bfo),球通频率内赛道(BPFI),基础列车频率(FTF),和球自旋频率(BSF)。这是那些临界频率[1]的公式。

  • 传球频率,外圈(bfo)

B P F O n f r 2 1 - d D 因为 ϕ

  • 内座圈的传球频率(BPFI)

B P F n f r 2 1 + d D 因为 ϕ

  • 基本列车频率(FTF),也称为保持架速度

F T F f r 2 1 - d D 因为 ϕ

  • 球(滚子)自旋频率

B 年代 F D 2 d 1 - d D 因为 ϕ 2

如图所示, d 为球的直径, D 为节径。的变量 f r 为轴转速, n 为滚动元素的个数, ϕ 为轴承接触角[1]。

轴承诊断的包络谱分析

在MFPT数据集中,轴速度是恒定的,因此无需执行订单跟踪作为预处理步骤,以消除轴速度变化的影响。

当滚动元件碰到外圈或内圈的局部故障时,或者当滚动元件的故障碰到外圈或内圈时,这种冲击将调节相应的临界频率,如bfo、BPFI、FTF、BSF。因此,由振幅解调产生的包络信号传递了更多的诊断信息,而这些信息是无法从原始信号的频谱分析中获得的。以MFPT数据集中的内部竞争故障信号为例。

dataInner =负载(fullfile (matlabroot“工具箱”“predmaint”...“predmaintdemos”“bearingFaultDiagnosis”...“列车数据”“内线故障负载1.垫”));

在时域可视化原始内部竞赛故障数据。

xInner=dataInner.bearing.gs;fsInner=dataInner.bearing.sr;tInner=(0:length(xInner)-1)/fsInner;图形绘图(tInner,xInner)xlabel(‘时间’)伊拉贝尔(‘加速度(g)’)标题(“原始信号:内部种族故障”0.1) xlim ([0])

在频域中可视化原始数据。

figure [pInner, fpInner] = pspectrum(xInner, fsInner);平纳= 10 * log10(平纳);情节(fpInner平纳)包含(的频率(赫兹))伊拉贝尔(‘功率谱(dB)’)标题(“原始信号:内部种族故障”)传说(的功率谱

现在放大低频范围内原始信号的功率谱,以更仔细地观察BPFI的频率响应及其最初的几个谐波。

figure plot(fpInner, pInner) ncomb = 10;helperPlotCombs (ncomb dataInner.BPFI)包含(的频率(赫兹))伊拉贝尔(‘功率谱(dB)’)标题(“原始信号:内部种族故障”)传说(的功率谱“BPFI谐波”1000) xlim ([0])

没有清晰的模式是可见的BPFI及其谐波。对原始信号的频率分析不能提供有用的诊断信息。

查看时域数据,可以观察到原始信号的振幅在特定频率下被调制,并且调制的主频约为1/0.009 Hz 111赫兹。已知滚动元件在内圈处撞击局部故障的频率为118.875 Hz,即BPFI。这表明轴承可能存在内部滚道故障。

图subplot(2,1,1) plot(tInner, xInner) xlim([0.04 0.06]) title(“原始信号:内部种族故障”)伊拉贝尔(‘加速度(g)’)注释(“双箭头”,[0.37 0.71],[0.8 0.8])文本(0.047,20,['0.009 sec \约1/ bpf, bpf = 'num2str (dataInner.BPFI)))

提取调制幅度,计算原始信号的包络线,并在底部的子图上可视化它。

subplot(2, 1, 2) [pEnvInner, fEnvInner, xEnvInner, tEnvInner] = envspectrum(xInner, fsInner);plot(tEnvInner, xEnvInner) xlim([0.04 0.06]) xlabel(“时间(s)”)伊拉贝尔(‘加速度(g)’)标题(“包络信号”

现在计算包络信号的功率谱,并查看BPFI的频率响应及其谐波。

figure plot(fEnvInner, pEnvInner) xlim([0 1000]) ncomb = 10;helperPlotCombs (ncomb dataInner.BPFI)包含(的频率(赫兹))伊拉贝尔(“峰值振幅”)标题(“包络谱:内部种族断层”)传说(“包络谱”“BPFI谐波”

结果表明,大部分能量集中在BPFI及其谐波上。表示轴承的内圈故障,这与数据的故障类型相匹配。

包络谱分析在其他故障类型中的应用

现在对正常数据和外圈故障数据重复相同的包络谱分析。

dataNormal =负载(fullfile (matlabroot“工具箱”“predmaint”...“predmaintdemos”“bearingFaultDiagnosis”...“列车数据”“baseline_1.mat”));xNormal = dataNormal.bearing.gs;fsNormal = dataNormal.bearing.sr;tNormal =(0:长度(xNormal) 1) / fsNormal;[pEnvNormal, fEnvNormal] = envspectrum(xNormal, fsNormal);figure plot(fEnvNormal, pEnvNormal) ncomb = 10;helperPlotCombs (ncomb [dataNormal。BPFOdataNormal.BPFI]) xlim([0 1000]) xlabel(的频率(赫兹))伊拉贝尔(“峰值振幅”)标题(包络谱:正常的)传说(“包络谱”“BPFO谐波”“BPFI谐波”

正如预期的那样,正常轴承信号的包络谱在bfo或BPFI没有显示任何显著的峰值。

dataOuter=加载(完整文件(matlabroot,“工具箱”“predmaint”...“predmaintdemos”“bearingFaultDiagnosis”...“列车数据”“外部故障2.垫”));xOuter = dataOuter.bearing.gs;fsOuter = dataOuter.bearing.sr;招徕顾客者=(0:长度(xOuter) 1) / fsOuter;[pEnvOuter, fEnvOuter, xEnvOuter, tEnvOuter] = envspectrum(xOuter, fsOuter);figure plot(fEnvOuter, pEnvOuter) ncomb = 10;helperPlotCombs(ncomb, dataouter . bfo) xlim([0 1000]) xlabel(的频率(赫兹))伊拉贝尔(“峰值振幅”)标题(“包络谱:外种族断层”)传说(“包络谱”“BPFO谐波”

对于外race故障信号,bfo谐波也没有明显的峰值。包络谱分析是否不能区分出外圈故障轴承和健康轴承?让我们回过头来看看不同条件下的时域信号。

首先,让我们再次在时域中可视化信号并计算它们的峰度。峰度是随机变量的第四个标准化矩。它表征了信号的脉冲性或随机变量尾部的沉重性。

图subplot(3,1,1) kurtInner =峰度(xInner);情节(锡矿工,鑫)ylabel (‘加速度(g)’)标题('内种族断层,峰度= 'num2str(kurtInner)]) xlim([0 0.1]) subplot(3,1,2) kurtNormal = kurtosis(xNormal);情节(tNormal xNormal) ylabel (‘加速度(g)’)标题('正常,峰度= 'num2str(kurtNormal)]) xlim([0 0.1]) subplot(3,1, 3) kurtOuter = kurtosis(xOuter);情节(鼓吹者,xOuter)包含(“时间(s)”)伊拉贝尔(‘加速度(g)’)标题('外种族断层,峰度= 'num2str (kurtOuter)]) xlim (0.1 [0])

结果表明,内race故障信号具有较大的冲动性,使得包络谱分析能够有效地捕获BPFI故障特征。对于外圈故障信号,bfo的幅度调制略显明显,但被强噪声掩盖。正常的信号没有显示任何调幅。在bfo(或提高信噪比)处提取调幅脉冲信号是包络谱分析前的关键预处理步骤。下一节将引入峰度图和谱峰度,提取峰度最高的信号,并对滤波后的信号进行包络谱分析。

用于波段选择的峭度图和光谱峭度

峰度图和谱峰度计算的是局部频带内的峰度。它们是定位具有最高峰度(或最高信噪比)[2]的频带的强大工具。在确定峰度最高的频带后,对原始信号进行带通滤波器处理,得到更脉冲的信号进行包络谱分析。

水平= 9;图峰度图(xOuter, fsOuter, level)

峰度图显示,以2.67 kHz为中心的频带,带宽为0.763 kHz,峰度最高,为2.71。

现在用峰度图所建议的最佳窗长来计算谱的峰度。

图wc = 128;pkurtosis (xOuter fsOuter wc)

要在谱图上可视化频带,计算谱图并将谱峰度放置在侧面。用另一种方法解释谱峰度,高谱峰度值表明相应频率的功率方差高,这使得谱峰度成为定位信号[3]非平稳分量的有用工具。

助手光谱和光谱性荨麻疹(xOuter、fsOuter、level)

通过对给定中心频率和带宽的信号进行带通滤波,可以提高信号的峰度,并能得到外圈故障的调制幅度。

[~, ~, ~, fc, ~, BW] =峰度图(xOuter, fsOuter, level);带通滤波器= designfilt (“bandpassfir”“过滤器订单”, 200,“截止频率1”fc-BW / 2,...“截止频率2”,fc+BW/2,“SampleRate”, fsOuter);xOuterBpf = filter(bpf, xOuter);[pEnvOuterBpf, fEnvOuterBpf, xEnvOuterBpf, tEnvBpfOuter] = envspectrum(xOuter, fsOuter,...“过滤器订单”, 200,“乐队”, (fc-BW / 2 fc + BW / 2));图subplot(2,1,1) plot(tOuter, xOuter, tEnvOuter, xEnvOuter) ylabel(‘加速度(g)’)标题('Raw Signal: Outer Race Fault,峰度= ', num2str(kurtOuter)) xlim([0 0.1]) legend(“信号”“信封”)子地块(2,1,2)峭度BPF=峭度(xOuterBpf);地块(峭度、xOuterBpf、tEnvBpfOuter、XenOuterBPF)ylabel(‘加速度(g)’) xlim([0 0.1]) xlabel(“时间(s)”)标题('带通滤波信号:外Race故障,峰度= 'num2str (kurtOuterBpf)])传说(“信号”“信封”

可以看出,带通滤波后峰度值增加。现在在频域中可视化包络信号。

图绘制(fEnvOuterBpf pEnvOuterBpf);ncomb = 10;helperPlotCombs(ncomb, dataouter . bfo) xlim([0 1000]) xlabel(的频率(赫兹))伊拉贝尔(“峰值振幅”)标题(“带通滤波信号的包络谱:外部种族故障”)传说(“包络谱”“BPFO谐波”

结果表明,在峰图和谱峰态建议的频带内对原始信号进行带通滤波,包络谱分析能够揭示bfo处的故障特征及其谐波。

批处理

现在,让我们使用文件集成数据存储将算法应用于一批训练数据。

工具箱中有数据集的有限部分可用。复制数据集到当前文件夹并启用写权限:

复制文件(...fullfile (matlabroot“工具箱”“predmaint”“predmaintdemos”...“bearingFaultDiagnosis”),...“RollingElementBearingFaultDiagnosis-Data-master”) fileattrib (fullfile (“RollingElementBearingFaultDiagnosis-Data-master”“列车数据”‘* .mat‘),“+w”) fileattrib (fullfile (“RollingElementBearingFaultDiagnosis-Data-master”“测试数据”‘* .mat‘),“+w”

有关完整数据集,请转到此链接https://github.com/mathworks/RollingElementBearingFaultDiagnosis-Data将整个存储库下载为zip文件,并将其保存在与活动脚本相同的目录中。使用以下命令解压文件:

如果存在(“RollingElementBearingFaultDiagnosis-Data-master.zip”“文件”)解压缩(“RollingElementBearingFaultDiagnosis-Data-master.zip”结束

本例中的结果是从完整的数据集生成的。完整的数据集包含14个mat文件(2个正常,4个内部故障,7个外部故障)的训练数据集和6个mat文件(1个正常,2个内部故障,3个外部故障)的测试数据集。

的函数句柄ReadFcnWriteToMemberFcn,文件集成数据存储将能够导航到文件中,以检索所需格式的数据轴承储存振动信号gs,抽样率sr,等等。而不是返回轴承结构本身READMFPT轴承函数,使文件集成数据存储返回振动信号gs内部轴承数据结构。

fileLocation = fullfile (“。”“RollingElementBearingFaultDiagnosis-Data-master”“列车数据”);fileExtension =“.mat”;ensembleTrain = fileEnsembleDatastore(fileLocation, fileExtension);ensembleTrain。ReadFcn=@readMFPTBearing; ensembleTrain.DataVariables = [“gs”“sr”“速度”“负载”“BPFO”“BPFI”““保障未来粮食供给””“BSF”];ensembleTrain.ConditionVariables=[“标签”“文件名”];ensembleTrain。WriteToMemberFcn = @writeMFPTBearing;ensembleTrain。挑选edVariables = [“gs”“sr”“速度”“负载”“BPFO”“BPFI”““保障未来粮食供给””“BSF”“标签”“文件名”
ensembleTrain = fileEnsembleDatastore with properties: ReadFcn: @readMFPTBearing WriteToMemberFcn: @writeMFPTBearing datavvariables: [8×1 string] IndependentVariables: [0×0 string] ConditionVariables: [2×1 string] SelectedVariables: [10×1 string] ReadSize: 1 NumMembers: 14 LastMemberRead: [0×0 string] Files: [14×1 string]
ensembleTrainTable =高(ensembleTrain)
使用“local”配置文件启动并行池(parpool)…连接到6个工人。ensembleTrainTable = M×10高表gs sr速率加载BPFO BPFI“保障未来粮食供给”BSF标签文件名  _________________ _____ ____ ____ ______ ______ ______ _____ __________________ ________________________ [ 25 146484×1双)48828 0 81.125 118.88 14.838 63.91“内座圈的错”“InnerRaceFault_vload_1”(146484×1双)48828 25 50 81.125 118.88 14.838 63.91InnerRaceFault_vload_2“内心的种族的错”(146484×1双)48828 25 100 81.125 118.88 14.838 63.91“内座圈的错”“InnerRaceFault_vload_3”(146484×1双)48828 25 150 81.125 118.88 14.838 63.91“内座圈的错”“InnerRaceFault_vload_4”(146484×1双)48828 25 200 81.125 118.88 14.838 63.91“内座圈的错”“InnerRaceFault_vload_5”25(585936×1双)97656 270 81.125 118.88 14.838 63.91“外环的错”“OuterRaceFault_1”(585936×1双)97656 25 270 81.125 118.88 14.838 63.91“外环的错”“OuterRaceFault_2”(146484×1双)48828 25 25 81.125 118.88 14.838 63.91“外环的错”“OuterRaceFault_vload_1 " : : : : : : : : : : : : : : : : : : : :

从最后一节的分析可以看出,bpf处和bpf处的带通滤波包络谱幅值是轴承故障诊断的两个条件指标。因此,下一步就是从所有的训练数据中提取出这两个条件指标。为了使算法更健壮,设置一个窄带(带宽= 10 Δ f ,在那里 Δ f 是功率谱的频率分辨率)在BPFO和BPFI附近,然后在这个狭窄的频段内找到最大振幅。算法包含在承载特征提取下面列出的功能。注意,在示例的其余部分中,围绕BPFI和BPFO的信封频谱振幅被称为“BPFIAmplitude”和“BPFOAmplitude”。

%要并行处理数据,请使用以下代码% pool = gcp;% n = numpartitions(ensembleTrain, pool);ct = 1:n% subEnsembleTrain = partition(ensembleTrain, n, ct);%重置(subEnsembleTrain);%,而hasdata (subEnsembleTrain)% bearingFeatureExtraction (subEnsembleTrain);%结束%结束ensembleTrain.DataVariables=[ensembleTrain.DataVariables;“BPFIAmplitude”“BPFOAmplitude”];重置(集成列车)hasdata (ensembleTrain) bearingFeatureExtraction (ensembleTrain)结束

一旦将新的条件指示器添加到文件集成数据存储中,请指定SelectedVariables从文件集成数据存储中读取相关数据,并创建包含提取的条件指示器的特性表。

ensembleTrain。挑选edVariables = [“BPFIAmplitude”“BPFOAmplitude”“标签”];featureTableTrain=高(集成列车);featureTableTrain=聚集(featureTableTrain);
使用Parallel Pool 'local'计算tall表达式

3秒内完成评估
featureTableTrain
featureTableTrain =14×3表一家报纸一家报纸一家报纸一家报纸一家报纸一家报纸一家报纸一家报纸一家报纸一家报纸一家报纸一家报纸一家报纸一家报纸一家报纸一家报纸一家报纸一家报纸一家报纸一家报纸一家报纸一家报纸一家报纸一家报纸一家报纸一家报纸一家报纸一家报纸一家报纸一家报纸一家报纸一家报纸一家报纸一家报纸一家报纸一家报纸一家报纸一家报纸一家报纸一家报纸一家报纸一家报纸一家报纸一家报纸一家报纸一家报纸一家报纸一家报纸一家报纸一家报纸一家报纸一家报纸一家报纸一家报纸一家报纸一家报纸一家报纸一家报纸一家报纸一家报纸一家报纸一家报纸一家报纸一家报纸一家报纸一家报纸一家报纸一家报纸一家报纸一家报纸一家报纸一家报纸一家报纸一家报纸一家报纸一家报纸一家报纸一家报纸一家报纸一家报纸一“0.0044918 0.1835”外座圈故障0.0074993 0.30166“外圈故障”0.013662 0.12468“外圈故障”0.0070963 0.28215“外圈故障”0.0060772 0.35241“外圈故障”0.011244 0.17975“外圈故障”0.0036798 0.0050208“正常”0.00359 0.0069449“正常”

可视化已创建的要素表。

图gscatter (featureTableTrain。BPFIAmplitude featureTableTrain。BPFOAmplitude featureTableTrain。标签、[]“牛+”)xlabel(“BPFI振幅”)伊拉贝尔(“BPFO振幅”

BPFI振幅和BPFO振幅的相对值可能是不同故障类型的有效指示器。这里创建了一个新特征,即两个现有特征的对数比,并在按不同故障类型分组的直方图中可视化。

featureTableTrain.IOLogRatio=log(featureTableTrain.bpf振幅./featureTableTrain.bpf振幅);数字保持直方图(featureTableTrain.IOLogRatio (featureTableTrain.Label = =“内座圈的错”),“BinWidth”, 0.5)直方图(featureTableTrain.IOLogRatio (featureTableTrain.Label = =“外环的错”),“BinWidth”, 0.5)直方图(featureTableTrain.IOLogRatio (featureTableTrain.Label = =“正常”),“BinWidth”情节,0.5)(-1.5[-1.5南0.5 - 0.5],[0 3南0 3],“k——”)举行ylabel (“数”)xlabel(“对数(BPFIAmplitude/BPFOAmplitude)”)传说(“内套的错”“外环的错”“正常”“分类界限”

直方图显示了三种不同的轴承条件之间的明显分离。BPFI和bfo振幅之间的对数比是轴承故障分类的有效特征。为了简化示例,派生了一个非常简单的分类器:if 日志 BPFIAmp litude BPFOAmp litude - 1 5 ,轴承有外滚道故障;如果 - 1 5 < 日志 BPFIAmp litude BPFOAmp litude 0 5 ,轴承正常;如果 日志 BPFIAmp litude BPFOAmp litude > 0 5 ,轴承内圈故障。

使用测试数据集进行验证

现在,让我们将工作流应用到一个测试数据集,并验证上一节中获得的分类器。这里的测试数据包含1个正常数据集,2个内部比赛故障数据集,和3个外部比赛故障数据集。

fileLocation = fullfile (“。”“RollingElementBearingFaultDiagnosis-Data-master”“测试数据”);fileExtension =“.mat”;ensembleTest=fileEnsembleDatastore(文件位置,文件扩展名);ensembleTest.ReadFcn=@readMFPTBearing;ensembleTest.DataVariables=[“gs”“sr”“速度”“负载”“BPFO”“BPFI”““保障未来粮食供给””“BSF”];ensembleTest。ConditionVariables = [“标签”“文件名”];ensembleTest。WriteToMemberFcn = @writeMFPTBearing;ensembleTest。挑选edVariables = [“gs”“sr”“速度”“负载”“BPFO”“BPFI”““保障未来粮食供给””“BSF”“标签”“文件名”
ensembleTest=fileEnsembleDatastore,其属性为:ReadFcn:@readMFPTBearing writeMemberfcn:@writeMFPTBearing DataVariables:[8×1字符串]独立变量:[0×0字符串]条件变量:[2×1字符串]所选变量:[10×1字符串]读取大小:1个成员:6个LastMemberRead:[0×0字符串]文件:[6×1字符串]
ensembleTest。DataVariables = [ensembleTest.DataVariables;“BPFIAmplitude”“BPFOAmplitude”];重置(ensembleTest)hasdata (ensembleTest) bearingFeatureExtraction (ensembleTest)结束
ensembleTest。挑选edVariables = [“BPFIAmplitude”“BPFOAmplitude”“标签”];featureTableTest =高(ensembleTest);featureTableTest =收集(featureTableTest);
通过1 of 1: Completed in 1 sec在1秒内完成
featureTableTest。我OLogRatio = log(featureTableTest.BPFIAmplitude./featureTableTest.BPFOAmplitude); figure hold直方图(featureTableTrain.IOLogRatio (featureTableTrain.Label = =“内座圈的错”),“BinWidth”, 0.5)直方图(featureTableTrain.IOLogRatio (featureTableTrain.Label = =“外环的错”),“BinWidth”, 0.5)直方图(featureTableTrain.IOLogRatio (featureTableTrain.Label = =“正常”),“BinWidth”,0.5)直方图(featureTableTest.IOLogRatio(featureTableTest.Label==“内座圈的错”),“BinWidth”, 0.1)直方图(featureTableTest.IOLogRatio (featureTableTest.Label = =“外环的错”),“BinWidth”, 0.1)直方图(featureTableTest.IOLogRatio (featureTableTest.Label = =“正常”),“BinWidth”情节,0.1)(-1.5[-1.5南0.5 - 0.5],[0 3南0 3],“k——”)举行ylabel (“数”)xlabel(“对数(BPFIAmplitude/BPFOAmplitude)”)传说(“赛车内部故障-列车”“外场故障-列车”“正常——火车”...'内圈故障-测试'“外种族故障-测试”“正常-测试”...“分类界限”

测试数据集的BPFI和bfo振幅的对数比与训练数据集的对数比分布一致。上一节得到的朴素分类器在测试数据集上达到了完美的精度。

应该注意的是,单个特征通常不足以得到一个很好的泛化分类器。更复杂的分类器可以通过将数据分割成多个片段(以创建更多的数据点),提取多个诊断相关的特征,根据其重要性排名选择特征子集,并使用统计学和机器学习工具箱中的分类学习器应用程序训练各种分类器来获得。有关该工作流的更多细节,请参考示例“Using Simulink to generate fault data”。金宝app

总结

这个例子展示了如何使用峰度图、谱峰度和包络谱来识别滚动轴承不同类型的故障。将该算法应用于磁盘数据集,结果表明,BPFI和bfo处的带通滤波包络谱幅值是轴承诊断的两个重要条件指标。

参考文献

[1] 《滚动轴承诊断教程》机械系统和信号处理.第25卷,第2期,2011年,第485-520页。

sncf的杰罗姆[2]。快速计算峰度图以检测暂态故障机械系统和信号处理.第21卷,第1期,2007年,108-124页。

sncf的杰罗姆[3]。谱峰度:描述非平稳信号的有用工具。机械系统和信号处理.第20卷第2期,2006年,282-307页。

[4] Bechhoefer,埃里克。测试诊断和预测算法的基于条件的维护故障数据库。2013.https://www.mfpt.org/fault-data-sets/

辅助函数

函数bearingFeatureExtraction(整体)从轴承数据中提取状态指标data =阅读(套装);x = data.gs {1};fs = data.sr;%临界频率BPFO = data.BPFO;BPFI = data.BPFI;水平= 9;[~, ~, ~, fc, ~, BW] =峰度图(x, fs, level);带通滤波包络谱[pEnvpBpf, fEnvBpf] = envspectrum(x, fs,“过滤器订单”, 200,“乐队”,[max([fc BW/20])min([fc+BW/20.999*fs/2]);deltaf=fEnvBpf(2)-fEnvBpf(1);bpf振幅=max(pEnvpBpf((fEnvBpf>(BPFI-5*deltaf))和(fEnvBpf<(BPFI+5*deltaf));BPFOAmplitude=max(pEnvpBpf((fEnvBpf>(BPFO-5*deltaf))和(fEnvBpf<(BPFO+5*deltaf));writeToLastMemberRead(整体、表格、泡沫振幅、,“变化无常”, {“BPF振幅”“泡沫度”}));结束

另请参阅

相关话题