新闻动态
案例剖析 | 基于状态信息的电机轴承健康监测(中)
来源: | 作者:pmod6d781 | 发布时间: 2022-05-17 | 240 次浏览 | 分享到:

上期,我们以一个实例描述了电机工程师用传统方法进行电机轴承状态监测时遇到的困难(点此回顾)。本期,我们将以数据分析师的视角,看看机器学习算法如何服务于故障诊断系统。


机器学习算法如何应用于轴承故障诊断

基于振动信号的旋转机械故障诊断已经发展了几十年。基于振动理论分析,可以给出各种常见故障的特征频率和各种时频特征,例如不平衡、不对中、底座松动、轴承故障、齿轮箱故障等;其中,轴承故障又是其中最常见的类型。


根据轴承尺寸信息,可以在理论上推导出任意滚动体轴承的内圈、外圈、滚动体、保持架所对应的故障特征频率,各大轴承厂商目前也都提供网络版在线计算工具,直接根据轴承型号给出轴承故障的特征频率。
 
然而,虽然振动分析理论上非常漂亮,各大厂商也在过去几十年推出了振动分析的软硬件产品以及各自的专利,其应用场合仍然存在一定的门槛限制。


应用门槛

首先,频谱分析非常依赖于专家知识和现场经验,因此安装在现场的软硬件产品往往不能被现场工程师所充分利用,大多数时候还是需要专业的设备维护工程师、甚至是第三方专家服务,在现场发生报警后,提供专业的频谱分析,并确定故障类型和原因,然而往往此时故障已经相当严重。

 
其次,现场设备运行工况复杂,无论是生产工艺、负荷的调整,还是外界环境变化,都使振动幅值在一个较大的范围波动,阈值设高了就会报警太晚,而阈值设低了又会引发较多的误报警。因此大多数时候,振动在现场的应用主要还是以监控为主,深入的振动分析及故障诊断还是相对较少。
 
于是很早就有人开始研究,是否可以让计算机代替专家人脑,在现场实时数据上进行复杂的故障诊断,学术界和工业界都投入了大量实践,研究如机器学习、神经网络等算法是否可以实现“自动故障诊断”;也在社会上组织了大量的竞赛,通过加速寿命实验产生轴承全生命周期的数据,以模拟现场轴承故障的全过程。
 
我们知道,机器学习算法一般可分为分类、聚类、回归等几大类问题,轴承故障诊断显然属于分类问题。通常分类算法的实施大多遵循如下流程:数据采集 -> 数据预处理 -> 特征工程 -> 模型训练 -> 模型验证 -> 模型部署,而特征工程往往是机器学习算法成功的关键。
   
这方面的研究起步很早,大约90年代就有不少论文,大部分思路也都类似,根据采集信号和需要诊断的故障类型,根据之前的业务机理知识,可对速度、加速度、位移量等数据加工大量的时域和频域特征,常见特征如:

  • 时域特征:均值、标准差、峰值、峰峰值、有效值、偏度、峭度、波形系数、峰值系数等

  • 频域特征:功率谱、故障频率幅值、故障谐波幅值、故障频率能量占比、包络谱分析等

  • 轴心轨迹:摆度、摆度系数、轴心轨迹的形状等

 

后续不少研究工作,一边围绕如何更有效的生成更多新特征,例如EMD、小波变换等,另一边研究各种新的算法及应用。

根据专家经验做好了特征工程,接下来就是机器学习算法的时间。很多明星算法,都被不少研究者做过各种尝试,例如多层神经网络、支持向量机、广义树模型(随机森林,XGBoost等)。近十年又有不少研究者使用深度学习算法,一定程度上试图减少对特征工程的依赖。笔者大约10来年前也加入此研究行列,从研究公开数据集和相关算法,到自己搭建电机实验平台采集振动数据。随着自身研究工作的深入和用户现场的数据调研,发现了越来越多的实践中的问题。
 
从轴承故障的公开数据集可以发现,即使是在实验台上做出来的数据,其实际表现也是千差万别。例如,理想中的浴盆曲线几乎很难看见,还有一些发生故障、振动幅值上升后,又下降再上升的曲线。另一方面,实际表现出来的故障特征和理论推导的有很大差异,同一个体在故障不同阶段的表现差异较大,不同个体间的差异也是巨大。这个造成的实践困难是,本来我们希望通过机器学习算法从数据中大量学习得到模型,以代替专家经验,现实却发现数据特异性超过了算法的能力。而这还仅仅是来源于理想寿命实验的数据。
 
而通过自己进一步搭建电机实验平台,在不同负载、工作模式情况下,对轴承故障进行相应的信号处理、特征加工和算法分析的全过程,又发现了一些新的问题。

新的问题

1、负荷和工况对于振动特征的影响非常大,除了转速对频率的影响,负荷类型、功率大小、环境变量等,都会对振动产生明显的影响。这意味着,几乎不存在一个全局通用模型,很难建立一个24小时监控的故障诊断算法。

2、 一些理论上的特征在实践中也可能不对。例如,一般来说峰值系数和峭度等指标都反应了原始信号中是否存在由故障引起的脉冲信号,特征值越大故障的可能性越大。然而,我们在实验中发现某些类型的电机在正常运转状态下,因为电磁谐波造成的磁场不均匀,使得电机在完全健康状态下也具有4X, 12X等谐波,进而引起相应振动,此时峰值系数和峭度指标反而偏大;而当故障发生早期、幅值较小时,故障信号叠加在这些谐波上反而会使得峰值系数和峭度指标变小。
 
在近年的研究和实践中,笔者越来越疑惑:基于机器学习等数据分析算法,是否真得可以代替专家服务,实现对轴承故障的自动诊断?一个最现实、也是最挑战的问题是:无论是哪种机器学习算法,其基础都是大数据——大数据又要求我们具有尽量均衡的数据样本,然而,现实中从来没有这么多的故障数据,还得分布在不同的故障类型?
 
更尴尬的是,即使在已知数据样本中,无论是公开数据集、还是自己实验产生的数据集、抑或是用户现场采集的实际数据,我们发现的个性化差异远大于“模型共性”。即便假设依托公开数据集和实验室所采集的数据集,我们可以研发出一个有效的模型——到了不同的用户现场,因为负荷、工况、环境的不同,上述模型几乎无法被使用!对于用户现场而言,“大数据的故障样本”就更不可能,即使有一些历史故障记录,也往往缺乏足够充足的数据留存——例如大多数故障记录,并没有当时的原始振动波形数据和基本频谱数据以供算法使用。
 
过去二三十年的研究和实践中发现,试图用大数据分析算法来替代专家经验进行诊断服务,缺乏最基础的条件:数据!我们所遇到的几乎所有场合都是“小数据”加故障样本严重不足的情况。数据样本不足,一方面无法训练出有效的模型,另一方面甚至缺乏足够的测试集用来保证算法的性能。即使能在某个特定场合,例如实验室或某个用户现场实现一定量数据的准备,这套模型几乎很难被直接移植到第二个用户现场:因为新用户那里的负荷、工况、环境等各种条件不同,即使同一型号电机、轴承,在不同场景下其正常运行的基线也都不尽相同。唯一可行的是,在每个用户侧去积累越来越多、具有自身特点的数据。但是,机器学习算法的初衷本来是替代现场做振动分析的专家服务,现在却变成了有关大数据和机器学习算法的现场服务,而且看起来还更复杂……
 
那是否说,大数据和机器学习算法,对于轴承故障诊断而言,真得是很难落地的屠龙术?

下期,K2数据科学DT团队与工业专家OT团队将为大家讲述:如何将先验知识与数据科学统筹兼顾到一个可以工程化实现的路径上,实现系统的“智能”。