传感器震动信号的分析

共 1 个回答

切换为时间排序
.2.3

2020-07-24 04:50:28
一切语言从 “Hello world!” 开始!
任何算法,包括控制算法、分析算法,都只能接受特定类型的数据。几乎不存在真正通用的算法适应一切任意采集的裸数据。在做控制和数据分析之前,我们需要把从监控设备,比如传感器,采集的连续时间信号,变换成算法能够识别的数值,才有可能让后续的算法正常工作。
这正是本文要讨论的内容 —— 如何从传感器采集的时间序列中提取出系统所需的信号。

俗语说,“一切编程语言从 "hello world" 开始”,信号分析的 "hello world" 就是频谱分析。我们只能从时间序列中提取少量的统计信息,比如均值(能量),方差(能量变化量)等信息,大量的信息都隐藏在通过简单变化无法观测到的地方。信号分析的程咬金三板斧:频谱分析、滤波器设计、滤波,在传感器分析中还适用么?

传感器数据和原理

前面的文章,我们讨论过如何处理非均匀采用的原始数据,以及这些原始数据对系统的影响。本文中,我们假设信号数据已经经过初步处理,满足了必要的香农-奈奎斯特采样定理。数据来源是机械故障防护技术 MFPT 挑战赛的数据(听着像全国牙防组),这是一批来自于台架的轴承全生命周期时间序列。众所周知,完整生命周期的机械设备的疲劳过程的数据采集是非常困难的,既费时,又费钱。

这个传感器分析的目的是用这批采集的打了标签的数据分析轴承中概率最高的两类错误,内圈裂缝和外圈裂缝问题的诊断。一个轴承,就是 N 个滚珠贴着内圈和外圈滚动,因为二者之间有周长差。如果内圈有裂缝,每次小钢珠路过裂缝的时候,会产生一个异常的震动;反正,外圈的裂缝也同样会有同样的效果。大家可以回忆一下初中的物理知识,内圈周长小,所以碰到裂缝的频率比正常轴承高一点点;外圈周长大,裂缝产生的频率比正常低一点点。


如果能够从频谱上找到对应内圈对应频率的谐波上出现尖峰,可以断定为内圈故障;外圈处理方法一样。是不是很简单!

频谱分析

信号分析三板斧可以上场了,我们从第一招频谱分析开始。原理上来说,这种可能存在故障的数据,不是一个平稳的随机过程,比如,随着设备的疲劳,振幅会加大,还可能随温度发生漂移,我们无法对全生命周期进行直接变换来提取信息。

通常,我们会采用分段滑动的方法对系统进行扫描。这里隐含着一个简单的假设:在滑动窗的小范围之内的数据是平稳的。最常见的应用是短时傅立叶变换(STFT),针对每个滑窗进行一次傅立叶变换,沿着时间轴画出来,就是一个时频图。傅立叶方法万能,二大爷在哪儿都是二大爷。

如果能够提取到多个谐波上的尖峰值,我们完全可以把一个单一的时间序列变换成多个具有明确物理含义的时间序列。这就是特征工程。

给大家看一段小视频,直观感受一下震动信号的谱长啥样的。

看出故障数据在频谱上的分布了吗?还没看到吗?再凑近一点!反正我连 900 读的近视眼睛都摘了,贴着屏幕都没看出来模式。信号分析出了需要好数学外,还需要一副好眼睛!

托尔斯泰大爷曾经说过,幸福的家庭都一样,不幸的家庭各有各的不幸!眼睁睁地看到信号分析的三板斧跳进了火坑!

包络分析

通用的频谱分析手段对震动信号看起来没啥大用途,但是我们对统计学家和一百年来的各位大师有信心。如果看不到有效的信息,一定是我们没用对方法,或者是敌人实在太狡猾。二营长,拉出我们的意大利炮来。在震动信号分析中,还有一个大杀器,叫做包络谱分析,对于这种有大量谐波的淹没在噪声中的信号有奇效。所谓包络分析就是把信号拆解成缓变和快变的过程,一般来说,快变部分往往代表着噪声;缓变部分可能才是信号所在。

我们只要对前面的内圈信号进行一个包络变换,包络信号分析果然姓包,立马见效,上一个姓包的名人叫包拯!

在我们分析的频率点上,可以清楚地看到谱线!

一鼓作气

我们找到了震动分析的大杀器:包络分析。现在,我们只需要把前面对内圈裂缝分析的内容移植到外圈之中。一鼓作气,提早下班。


我去滴个眼药水再回来!

理想是丰满的,现实是骨感的。我们啥也没找到!作为一个算法工程师,怎么能说不行了。我们来搬出统计学看看数据的分布。

>> kurtInner = kurtosis(xInner)

kurtInner =

   51.0544

>> kurtNormal = kurtosis(xNormal)

kurtNormal =

    3.0136

>> kurtOuter = kurtosis(xOuter)

kurtOuter =

    3.5008

再而衰,三而竭

看到问题了没有,在内圈故障、正常、外圈故障三种情况下,统计分布都不一样。指望着用同样的方法做出一样好的结果,这是在做美国白日梦?

数据的峰度,代表着数据在统计分布的山峰的是否很尖。人人喜爱的高斯分布的峰度为 3;越大的数代表山峰很窄,尾巴很大,信号集中;越小的峰度值代表山峰很宽,尾巴很小,大山里除了我军,还有大量特务。谁说统计学只能用来做金融和数据分析的?做信号分析也很有用!一个很牛 X 的叫做 MATLAB 的工具里,带了更加高级的峰度函数叫做峰度谱分析,可以计算出不同频率下的峰度分布。我们看一下峰度谱是啥样的:

作为架在马屁股后面的那门大炮,果不其然,我们发现了信息原来集中在低频部分。如果有了峰度分布,如果再想不起怎么做下一步的话,大家只需要沐浴更衣,翻出信号处理的课本,点柱香,磕个头。稍等一下,插个广告,磕个头就回来!

信号处理托梦说:先设计一个滤波器,保留峰度高的部分,滤除峰度低的频段,再来一遍包络分析。胡汉三又回来了。

有如神助!

大功告成,回家吃鸡

信号分析三板斧:观测频谱 -> 滤波器设计 -> 滤波,是从时间序列中提取有效信息的大杀器。在传感器数据特征提取过程中,我们还会采用统计分析、频谱分析、包络分析等多种手段,简直不要太酸爽了。做统计学中信号处理最牛的,信号处理中统计学最好的,老板都不好意思扣你薪水。

本集完!

人生苦短,我用 MATLAB。

微信只能发3个小视屏,其它视频可以点击阅读原文查看,也可以查看作者的更多精彩文章。
共 1 条
前往
60回答数