文/黄成甲
设备健康预测
在提设备故障预测之前,我们先来说说设备健康预测,因为设备故障预测是PHM(故障预测与健康管理)的组成部分。设备健康预测是指根据系统现在或历史性能状态预测性地诊断部件或系统完成其功能的状态(未来的健康状态),包括确定部件或系统的剩余寿命或正常工作的时间长度;其中剩余寿命研究可分为两种:一种是估计或预测平均剩余寿命,另一种是计算剩余寿命的概率分布。
在整个PHM(故障预测与健康管理)方法体系中,预测是实现设备性能退化状态和剩余寿命预测的核心方法。故障预测方法的分类,按照主流技术和应用研究有如下三类:基于可靠性模型的方法,基于物理模型的方法,基于数据驱动的方法。
故障预测方法分类
1.基于可靠性模型的故障预测方法
通常,基于可靠性模型或基于概率的PHM方法适用于从过去故障历史数据的统计特性角度进行故障预测。相比于其他两类方法,这种方法需要更少的细节信息,因为预测所需要的信息包含在一系列的不同概率密度函数(Probability Density Functions,PDFs,例如指数分布、正态分布、威布尔分布) 中,而不需要特定的数据或数学模型的表述形式。基于可靠性模型这一类方法的优势就是所需要的概率密度函数可以通过对统计数据进行分析获得,而所获得的PDF能够对预测提供足够的支持。另外,这种方法所给出的预测结果含有置信度,这个参数也能够很好地表征预测结果的准确度。
典型的基于统计可靠性的故障概率曲线就是著名的“浴盆曲线”。即在设备或系统运行之初,故障率相对较高,经过一段时间稳定运行后,故障率一般可以保持在相对比较低的水准,而后,再经过一段时间的运转,故障率又开始增加,直到所有的部件或设备出现故障或失效。
浴盆曲线
基于可靠性的故障预测方法应用领域非常广泛。例如,预测汽车的可靠性,对整车的故障间隔里程进行预测——分析各零部件失效的分布规律,采用威布尔分布(一般产品或系统的失效与时间数据趋势很好的符合威布尔分布)来预测汽车部件的寿命。
2.基于物理模型的故障预测方法
基于(物理)模型的故障预测技术一般要求对象系统的数学模型是已知的。这种方法应用的典型例子是电池的容量预测,根据已有的历史数据建立容量预测模型,预测模型的输入是电池的循环充放电周期,训练目标值是电池的容量。剩余寿命根据设定的失效阈值(电池的某个容量值)推算出电池还能有效充放电的周期数。此外,采用这种方法还可以通过对功能损伤的计算评估关键零部件的损耗程度,实现设备的寿命预测,笔记本电脑的电池就是采用这种方式进行预测的。
基于物理模型的故障预测方法,与对象的物理、电气等属性密切相关,不同的对象部件或单元,其物理模型差异很大。因此,此种方法用在具有相对比较成熟的物理模型的对象包括机械材料或旋转机械部件、锂离子电池、大功率电子元器件、电子机械传动装置等。为什么叫基于物理模型的预测方式呢?因为它真的是对物理设备更有效些,对于复杂的电子系统进行故障预测,嘿嘿,基本无效。
基于物理模型的故障预测方法
3. 基于数据驱动的故障预测方法
在许多情况下,对于由很多不同的信号引发的历史故障数据或者统计数据集,很难确认何种预测模型适用于预测。或者在研究许多实际的故障预测问题时,建立复杂部件或者系统的数学模型是很困难的甚至是不可能的,因此,部件或者系统设计、仿真、运行和维护等各个阶段的测试、传感器历史数据就成为掌握系统性能下降的主要手段,这种基于测试或者传感器数据进行预测的方法称为数据驱动的故障预测技术。
通过对象系统的状态监测,从历史数据中认识或学习对象系统的健康/非健康行为,将原始监测数据转化为相关信息和行为模型,以对未来对象系统行为进行诊断及预测。故障诊断方法分为定性诊断方法和定量诊断方法。
基于定性分析方法的故障诊断主要通过对系统运行机理、故障特性以及故障行为与成因之间因果关系等先验信息的分析,然后利用逻辑推理的方法实现故障识别与分类。定性分析方法中常见的有专家系统、图搜索(又叫图论方法,包括符号有向图、故障树)、定性仿真。
(1)专家系统:专家系统利用长期积累的专家经验来建立针对某一领域的知识库,基于知识库并结合智能计算机程序模拟专家的推理与决策过程,从而实现故障诊断。专家系统是对实际经验的总结,使用简洁,无需建模,能够得到易于理解的诊断结果,因此被广泛使用。但专家系统的缺陷在于:知识库构建比较困难;标准统一性差;对于规则较多的复杂系统,会有规则冲突与推理漏洞等问题;
(2)图论方法:图论方法是利用图来对设备之间的某种特定的关系进行描述,符号有向图方法和故障树方法是故障诊断领域中的典型图论方法。符号有向图根据图中各节点的因果关系变化来进行系统故障原因与演化过程的推理。故障树则模仿树的根、节点和枝的生长规律,根据因果关系将事件排列成树形图,再利用反向推理确定故障发生的原因、影响程度及其发生概率。图论方法具有建模简单、应用简便的优点,但缺点是比较适用于简单系统,对于复杂系统的故障诊断,诊断精度会随着系统复杂度的上升而降低。
(3)定性仿真:定性仿真首先通过表征系统物理参数的定性变量以及各变量之间的定性方程构建系统定性模型,再运用仿真手段获得系统在各类状态下的定性行为描述。定性仿真的优点在于能够对系统的动态行为进行推理,缺点在于无法对未知故障进行准确的诊断。
基于定量分析的故障诊断方法可以分为基于分析模型的方法(又叫基于解析模型的方法)和基于数据驱动的方法属于定量分析方法。
(1)基于分析模型的方法通过被研究对象的数学模型和可观测输入输出量构造残差信号,在此基础上进行故障诊断。此类方法需要建立在精准数学模型的基础上,进行故障诊断。但是在实际中,复杂的系统难以精确建模,因此该类方法在实际应用中会有很大的局限。
(2)基于数据驱动的方法通过对系统运行过程中的监测数据进行分析,从而在无精准系统数学模型情况下,对系统进行故障诊断。数据驱动方法包括机器学习(定量的人工智能方法)和统计分析法和信号分析法等等。
故障诊断(预测)方法的分类
其中机器学习的方法是今天的一个热点,其实机器学习就是在利用更多信息产生机器智能来消除不确定性。这种机器智能是如何产生的?其实它在机理上和人类的智能没有半点关系。事实上,现在的机器智能都只是在那些能够利用数据消除不确定性的问题上,比人类聪明。
机器智能
比如让机器下围棋这种难题,对机器智能来说,就是在最多361个点位选择一个地方落子,是一个361选1的问题。而对于语音识别,不过是在几十个发音相似的单词(词组)中选一个匹配,人脸识别呢,则是在几百万人中选一个匹配。至于今日头条的推荐,也是从若干篇新闻中匹配一些你感兴趣的。
以上这些难题的答案其实都是从信息论中来的。信息论就是通信的理论,也是一种方法论。我们今天常说的大数据思维,其科学基础就是信息论。我们知道,对于一个你一无所知的黑盒子,要想了解里面的状态,就需要信息;又比如:我们我们经常提到的信号,信号就是表示消息的物理量,如电信号可以通过幅度、频率、相位的变化来表示不同的消息。这些就是信息论最基本的思想。用比较专业一点的话讲,叫做消除不确定性。
具体到数据驱动的故障诊断所采用的技术,例如:信号处理、降维、特征提取、模式识别都是为了消除不确定性。
数据驱动的故障建模方法
1.数据驱动故障诊断的原理
诊断是指通过检查观察到的症状来确定问题的本质。数据驱动故障诊断的目标是通过信号处理、特征提取、特征降维、模式识别四步将高维特征向量降维处理转换为判别性能更好的状态标识(低维特征向量或者叫敏感特征),再输入模式识别分类器,实现故障状态的识别与分类,即标识出健康/故障,其中故障又分为多种失效模式。
数据驱动的故障诊断分为两个阶段:训练阶段和测试阶段。
训练阶段:训练故障诊断模型
在训练阶段,需要大量的历史数据、样本及多维特征。有些历史数据可以通过机理/经验丰富专家的经验对当前状态打标签(如是否健康/故障是什么等级等),但工业领域的数据多数情况都缺少标签,要么全部都是健康数据,要么根本不知道是故障/健康数据。这两种情况分别对应有监督学习和无监督学习,可以运用相应算法训练出故障诊断模型。
测试阶段:测试当前状态识别
在测试阶段,将设备的特征提取出来,放到训练好的故障诊断模型里,从而计算出当前的状态标识。
2.故障诊断常用算法
支持向量机(SVM)
支持向量机(SVM)最早于1963年由VladimirN. Vapnik和Alexey Ya. Chervonenkis提出,利用VC维理论与结构风险最小化原则,利用核函数,将低维空间中线性不可分的点映射到可以能够线性可分的高维空间中,非常适合解决小样本与高维非线性模式识别问题,在故障诊断领域具有非常广泛的应用。
>>线性问题
支持向量机(SVM)可以实现线性问题分类,有效解决二分类问题。
核心思想:找到最优分类面将正负样本分开,使得样本到分类面的距离尽可能远。
SVM解决线性二分类问题
如上图所示,在二维图中是一条直线,在多维高维空间里则是一个超平面。通过运用数学规划和优化算法,让正负样本到超平面的距离尽可能的远,从而找到最优分类面。
>>非线性可分问题
支持向量机算法除了能对线性问题进行分类之外,还可以对非线性可分的问题进行分类,我们可以使用1992年提出的核函数技巧(The Kernel Trick)的方法,利用函数把低维特征映射到高维的空间。
SVM解决非线性可分问题
如图所示,左边图样本特征在二维空间里是不可线性可分的,但是把它映射到高维空间中,就以找到一个平面将其分开。
常用的核函数包括多项式函数(Polynomial)、高斯函数(Gaussian)、径向基函数(Radial Basis Function)、Sigmoid函数等。在Python和Matlab中都有非常成熟的算法包供大家调用,而且也可以选择不同的核函数来解决线性不可分的问题。
>>多分类的故障诊断问题
SVM虽然是二分类问题,但是也可以解决多分类的故障诊断问题,具体如何实现?
举例而言,比如说已知共有ABCD四类,A是健康,BCD是三种不同故障模式,首先可以用一个分类器去分类是健康/故障,即是A/不是A;之后在不是A的部分中再训练一个分类器来分类,是B故障/不是B故障。简言之就是用层层迭代的方法,通过多种SVM分类器的组合来实现多分类问题。
除了SVM支持向量机的方法,机器学习中还有许多其他常用的分类算法,如随机森林、AdaBoosting、人工神经网络等,这些都是能非常强大的工具,可以更清晰地解决分类问题。
以上几种方法都需要有明确的故障标签,是一个有监督的学习过程。而在工业场景中的数据大多是无标签的/健康的,无法满足以上方法的基础条件,这就需要通过其他方法来进行解决。
自组织特征映射神经网络(SOM)
SOM是一类“无监督学习”模型,一般的用法是将高维的输入数据在低维的空间表示,因此SOM天然是一种降维方法。除了降维,SOM还可以用于数据可视化,以及聚类等应用中。这种神经网络的典型结构如下图,由输入层和竞争层组成。主要用于完成的任务基本还是“分类”和“聚类”,前者有监督,后者无监督。聚类的时候也可以看成将目标样本分类,只是是没有任何先验知识的,目的是将相似的样本聚合在一起,而不相似的样本分离。
SOM网络结构
SOM的优点在于能够不断学习训练数据的内在模态和模式,形成神经网络模型,把高维特征矩阵转化为二维蜂窝状的映射图,实现整个故障的分类。
自组织映射神经网络
其核心机制是竞争学习。首先根据训练数据的样本大小和特征的维度,来构造初始SOM网络的模型结构,上面的每一个神经元通过不同的群众向量来表达;之后基于竞争学习的更新策略不断迭代更新,移动神经元的位置形成不同的BMU(Best Matching Unit最佳匹配神经元),最大程度靠近所属聚类。
SOM在进行故障诊断和健康评估时并非完全相同,区别如下:
(1)在进行故障诊断时,把状态样本放到训练好的SOM模型中计算出BMU,找到所属类别,则认为是当前状态的故障类别。
(2)而在健康评估的时候,需要在此基础上进一步计算当前状态和BMU之间的距离,作为健康状态的评价指标。
SOM的数据可视化的效果非常好,可以把高维的数据转化为一个蜂窝状的映射图。
U-matrix
映射图是如上所示的U-matrix,其中的不同颜色表示相邻神经元之间的距离,越偏蓝色距离越近,越偏红色距离越远,当出现一片红色的时候就表示是一个分类面。
在实际应用中,通常采用Hit map,将测试数据放到训练好的U-matrix中,找到Hit Point所在位置,从而确定故障诊断的分类。
>>SOM的优缺点
优点:
(1)SOM的主要优点是能够进行无监督学习,即训练样本中不需要知道有多少分类,也无需故障和健康的标签,就可以将其分类出来;
(2)纯粹的数据驱动,可以将数据分类到不同的集群中,不需要数据的先验知识;
(3)SOM在许多不同的场景中得到了广泛的应用,并具有广泛的用途;
缺点:
(1)为了生成一个没有缺失值的映射图,需要为每个样本的每个维度设置一个值;
(2)每个SOM模型都是不同的,从同样的样本向量中可能会发现不同的相似性,有一些随机性的干扰;
(3)为了得到一个好的映射图,需要构建许多映射图;
(4)需要非常大的计算量;
贝叶斯网络(BBN)
上面的几种算法都是从数据本身出发,无需任何的数据的先验知识。而工业领域老专家们的经验是非常重要的一部分,有些老师傅通过听声音/看某些指标的方式就可以判断出设备的故障类型。
在贝叶斯网络中,可以把老专家们的经验统计起来,形成条件概率(A=j | B=i)来描述不同时间之间的因果关系。
贝叶斯定理:P(A|B)=P(A,B)/P(B)
贝叶斯网络是用图模型(Graphical Model)的结构,把整个复杂系统中所有可能发生的情况结构化地表达出来。
>>有向无环图
有向无环图
如上图所示,节点表示随机变量,箭头表示条件依赖,有向边给出因果关系。通过统计所有的依赖关系,得出条件概率分布图。
家庭报警系统
通过一个例子来具体说明,在某家庭报警系统中,地震和入室盗窃都可能引发报警,地震报警的同时会有广播提醒。当地震和入室盗窃同时发生时,90%的概率会报警,而同时不发生的时候,99%的概率不报警,这就是基于经验或机理所得。当系统更为复杂时,上表也随之更为庞大。
案例分析:轴承故障诊断
轴承作为典型的旋转类设备,一般通过振动信号进行故障诊断。如下图所示,图a是采集到的多种模式的振动信号,可能由有多种故障耦合在一起,无法直观地判断其故障。下面通过自组织映射神经网络(SOM)的方法进行故障诊断。
轴承振动图谱
准备数据集,确定类标签(如下图所示,共八种故障类型)
滚动轴承常见的八种故障类型
1)根据需要的详细程度确定显示大小;
2)选择SOM模型的网格模式;
3)设备SOM超参数,包括初始权重、学习率等;
4)训练数据生成SOM模型;
5)训练SOM模型,并用Hit-point测试SOM模型;
其中,训练出的模型如下图左所示,可以通过SOM将八类故障清晰地区分出来(亮色代表分界线)。
模式识别—外圈故障
在模型测试时,将新的特征数据(即需要测试的样本)放到SOM U-matrix模型计算后,其位置如上图右红点所示,与八种故障类型的标签进行对比可判断出其属于第四类——外圈故障。
总结
故障诊断问题就是将高维的特征向量转换为状态标识(健康状态、故障模式1、故障模式2、故障模式3……)。
故障分类方法
对于有标签的数据,通常采用分类算法,其中最常见的是支持向量机(SVM),但是在SVM中如果遇到一些线性不可分的情况,可以用核函数的技巧把低维特征映射到高维空间中,此外也可以拓展到多分类问题。
面对类别数量未知、无标签的数据,通常采用自组织映射神经网络(SOM),可视化效果好。
以上两者均是单纯从数据驱动的角度得到模型,如果要加入先验知识(机理),则采用贝叶斯网络,可以将每种特征和故障类型之间的关联关系,通过机理给固化下来。
参考资料
1.《数据驱动的故障预测》
2.基于数据驱动的滚动轴承故障诊断研究
3.CPS:新一代工业智能
4.PHM算法|故障诊断建模方法