传感器震动信号的分析
共 1 个回答
俗语说,“一切编程语言从 "hello world" 开始”,信号分析的 "hello world" 就是频谱分析。我们只能从时间序列中提取少量的统计信息,比如均值(能量),方差(能量变化量)等信息,大量的信息都隐藏在通过简单变化无法观测到的地方。信号分析的程咬金三板斧:频谱分析、滤波器设计、滤波,在传感器分析中还适用么?
传感器数据和原理
这个传感器分析的目的是用这批采集的打了标签的数据分析轴承中概率最高的两类错误,内圈裂缝和外圈裂缝问题的诊断。一个轴承,就是 N 个滚珠贴着内圈和外圈滚动,因为二者之间有周长差。如果内圈有裂缝,每次小钢珠路过裂缝的时候,会产生一个异常的震动;反正,外圈的裂缝也同样会有同样的效果。大家可以回忆一下初中的物理知识,内圈周长小,所以碰到裂缝的频率比正常轴承高一点点;外圈周长大,裂缝产生的频率比正常低一点点。
如果能够从频谱上找到对应内圈对应频率的谐波上出现尖峰,可以断定为内圈故障;外圈处理方法一样。是不是很简单!
频谱分析
通常,我们会采用分段滑动的方法对系统进行扫描。这里隐含着一个简单的假设:在滑动窗的小范围之内的数据是平稳的。最常见的应用是短时傅立叶变换(STFT),针对每个滑窗进行一次傅立叶变换,沿着时间轴画出来,就是一个时频图。傅立叶方法万能,二大爷在哪儿都是二大爷。
如果能够提取到多个谐波上的尖峰值,我们完全可以把一个单一的时间序列变换成多个具有明确物理含义的时间序列。这就是特征工程。
给大家看一段小视频,直观感受一下震动信号的谱长啥样的。
托尔斯泰大爷曾经说过,幸福的家庭都一样,不幸的家庭各有各的不幸!眼睁睁地看到信号分析的三板斧跳进了火坑!
包络分析
我们只要对前面的内圈信号进行一个包络变换,包络信号分析果然姓包,立马见效,上一个姓包的名人叫包拯!
在我们分析的频率点上,可以清楚地看到谱线!
一鼓作气
我们找到了震动分析的大杀器:包络分析。现在,我们只需要把前面对内圈裂缝分析的内容移植到外圈之中。一鼓作气,提早下班。
我去滴个眼药水再回来!
理想是丰满的,现实是骨感的。我们啥也没找到!作为一个算法工程师,怎么能说不行了。我们来搬出统计学看看数据的分布。
>> kurtInner = kurtosis(xInner)
51.0544
>> kurtNormal = kurtosis(xNormal)
3.0136
>> kurtOuter = kurtosis(xOuter)
3.5008
再而衰,三而竭
数据的峰度,代表着数据在统计分布的山峰的是否很尖。人人喜爱的高斯分布的峰度为 3;越大的数代表山峰很窄,尾巴很大,信号集中;越小的峰度值代表山峰很宽,尾巴很小,大山里除了我军,还有大量特务。谁说统计学只能用来做金融和数据分析的?做信号分析也很有用!一个很牛 X 的叫做 MATLAB 的工具里,带了更加高级的峰度函数叫做峰度谱分析,可以计算出不同频率下的峰度分布。我们看一下峰度谱是啥样的:
作为架在马屁股后面的那门大炮,果不其然,我们发现了信息原来集中在低频部分。如果有了峰度分布,如果再想不起怎么做下一步的话,大家只需要沐浴更衣,翻出信号处理的课本,点柱香,磕个头。稍等一下,插个广告,磕个头就回来!
信号处理托梦说:先设计一个滤波器,保留峰度高的部分,滤除峰度低的频段,再来一遍包络分析。胡汉三又回来了。
有如神助!
大功告成,回家吃鸡
本集完!
- 1