风电遇上数据科学家 | 一种异常检测的方法

供稿:北京天泽智云科技有限公司

风电机组运行工况复杂多变,机组状态监测数据量大、来源多且杂,现有的异常检测方法面对如此海量的数据很难保证预测的精度并进行快速处理。


天泽智云资深数据科学家谢鹏从全新视角出发,以温度数据进行故障预测为例,呈现新的建模方法。


数据科学家

21世纪“最性感职业”之一

他们懂数据、懂算法、懂软件

懂行业专业知识、懂市场应用、懂决策分析

具备过人的沟通协调能力

也具备超高的设计能力

……

他们练就十八般武艺

解决各种可见不可见的问题


一、数据科学处理问题的思路


我们处理问题的一般思路是,首先根据问题的需求提出假设/理论,发现并构建出特征,之后基于假设和特征构建模型将其转化为数学问题,最后通过测试、优化模型,实现算法来进行工程上的部署。




其中,特征是指可以抽象化问题的一些表征,特征有来自于表征的,比如基于机理的、基于统计的以及基于图形的等。


有的故障、失效的机理并没有研究清楚,这种情况下我们需要通过实验研究建立统计模型,比如队列(Cohort)/案例对照(Case-control)研究、生存分析等。


二、聚焦到风电领域如何应用


聚焦到传统风电数据分析领域,经常从其变量间的关系,尤其是以功率曲线为基础的图形入手进行分析。风机的控制为工程师设定的具有固定逻辑的算法,具有特定的规律性,所以很多机组中的异常都会在功率曲线中有所体现。


除风功率曲线外,转速、桨叶角、对风角、叶尖速比等都是我们经常用来观察的变量。




实际工作中,我们研究的故障在这些变量间两两关系并不能观察到异常。




对于没有任何表征的模型,我们有以下两个思路:识别特定故障发生前模式及识别特定故障发生时模式。


从方法角度,这两者均属于模式识别,我们希望通过建立可以描述故障发生前或者故障发生时的特征,利用机械工程上的方法、信号处理的方法、统计学方法以及机器学习的方法构建一个或多个可以识别一种或多种故障模式的模型。


路径1:识别特定故障发生前模式


在此,我们先来探讨一下故障发生前是否有征兆?对于这个问题,天泽智云几位数据科学家发表了自己的看法。


  • A博士:故障发生前不会有任何表征。


  • B博士:用户想要避免的失效一般都为故障非常严重的失效状态,所以有时把早期故障预测也简称为故障预测。


  • C博士:故障和失效没有准确定义,一般说的有没有表征只是指能不能监测到数据,但故障的演进是一直存在的。


  • D博士:故障既然被称之为故障,证明故障已经表征出来了。而故障表现出来需要经历一定的时间,各个内在已经磨耗到一定的阶段才能表现出来。


经过讨论,我们认为在故障发生之前,会存在很多因素影响一个部件的寿命(称之为危险因素),比如空气的酸碱度、沙尘、恶劣的环境温度、共振载荷会对叶片材料寿命造成显著的危害,通过对这些因素进行受控实验或者长时的队列/案例研究可以通过统计模型描述其剩余寿命。


在故障完全发生前,进行寿命预测是一种可行的方法,但是这种方法需要的实验、数据、时间的代价都很大。


对于部件来说,其故障发生前没有明确的表征,因此我们着重研究故障早期的表征。


路径2:识别故障发生早期的表征


Q:我们有什么数据?


SCADA数据,秒级/分钟级

无故障标签/无准确故障产生时间

有限传感器测点,大多数为温度测点数据

能获取的数据可能并不满足对特定故障模式的建模。


Q:在这种情况下如何做故障预测?


有限数据,尤其是没有标签数据的情况下,对特定故障模式建模难以实现。退而求其次,我们对部件进行异常检测。对此,我们提出一个理论:


定义什么是异常:

偏离正常就是异常


如何描述正常:

用正常状态的物理过程来定义


如何测量对正常的偏离

有了正常状态的定义之后,用数学上或者其他方法来描述对正常的偏离:使用分类模型,或者使用距离来度量


以上是我们从以前的研究中总结的研究方法。研究发现,热传导和温度是物理系统的最基本的变量,基于热力学第一定律,可以建立温度变化和风机输出功率或转速的变量关系。如果风机在大部件失效的状态下,这种线性关系就会遭到破坏,从而服从不同于正常状态下的温度分布情况。在很多情况下,温度关系的变化是部件失效的一种直接表征。如下图研究中表示油温温升分布与齿轮箱失效的关系。




基于以上,我们认为可以将温度、温升作为建模的依据,将温度、温升分布的改变作为故障发生(早期)的表征。


当然,通常做异常检测我们有很多可以用的其他统计和机器学习模型,比如使用PCA-T2/SPE、SOM-MQE、Isolation Forest等方法进行建模。在本例中,我们关注于特定温度的异常检测,呈现另外的建模方法。


三、建模的思路是什么


对于轴承,我们认为发电机前后轴承温度存在一定差异并在正常情况下保持动态的稳态,热传导的过程需要时间并且逐渐变化。由于发电机轴承失效或故障导致这种稳态的破坏,并将体现在基线的偏离上。我们用以下几种方式定义基线。


定义基线方式1:


我们用一种函数关系来描述一种温度量,建立模型来预测温度,比如建立油温的模型对温度进行预测。将预测的温度作为基线,如果预测的数据和实际获得的数据相差很大,我们认为偏离正常状态。


我们可以使用回归模型来拟合,比如ANN、SVR、ANFIS,这很多情况下我们观察的变量具备一定的时间序列上的关联,则可以使用NARX/LSTM模型。之后使用距离(比如MD)度量一段时间内预测值与实际值的差异,使用单机组无故障数据训练建立基线。


这种方法存在一种缺陷:对实际值的拟合的模型精度会放大后续建模的误差




定义基线方式2:用直方图描述分布


我们认为在健康情况下,温升存在特定的分布。描述一种分布最常用的图形是直方图。从数学的角度看,直方图是一种离散化数据进行统计的方法。


直方图这种方法虽然简单,但是在很多领域都有着广泛的用途。


比如:

xgboost - 其中应用到直方图算法,用于高效地生成候选的分割点,运算非常快

方向梯度直方图(HOG) – 机器视觉领域的特征方法

使用离散化权重的方法优化深度学习性能等


在实际应用到工业场景中,对数据离散化的参数需要根据其业务属性来约束。


直方图方法的变种


使用直方图方法可以获得对变量的特征向量,这种方法通常可以描述数据的分布。但是在很多情况中,数据的噪声,尤其是传感器的测量误差,会淹没异常模式的表征。为提高信噪比,我们采用一种来自被自然语言处理(NLP)领域广泛使用的加权方法TF-IDF。


获得特征向量后,有了基线及实时数据特征矩阵后,我们可以使用欧式距离来描述实时数据与基线特征向量的距离。当然,我们也可以应用其他的模型,比如可以进行聚类。


TF-IDF训练案例


案例:变桨电机温度的异常检测。

我们以三个变桨电机编组为三组,计算三组特征向量与基线的距离。


下图为正常的变桨电机温度状态。


下图为异常的变桨电机温度状态。


在所应用到的各种案例中,该方法对各部件温度的异常检测具备良好的准确性(>90%)。


定义基线方式3:符号化的特征表示


使用直方图或者是TF-IDF,其中的一个重要的步骤是对连续数据的离散化。离散化可以看成一种对信号中的信号进行平滑的过程,损失了一定的信息换取更高的信噪比。


在获得离散化的数据后,使用固定维度对原始数据进行重新表达。在自然语言处理中,这种技术称为词的分布式表示(Distributional Representation)。


我们继续把这种离散化的连续数据视为“符号”,这种处理在很多领域都有应用,比如在信号处理领域的SAX方法。使用NLP的方法,比如word2vec来训练这些“词”或“文档”的向量。同样,我们利用训练的基线向量来进行异常检测或其他任务。


高维数据中,我们可以拓展这种方法到更多的故障模式的学习中。


四、结 语


在这里,我们提出了一种对于连续数据的符号化的特征表示的方法用于异常检测,作为常规异常检测技术的补充。


这种方法使用对连续数据离散化处理,使之符号化,进而寻找符号映射到数学空间的表达。在文章的例子中,“符号”表示了一种两种变量间的统计关系,并且,在这种方法中,我们认为这些“符号”和词语在语料库中一样,具有稳定的统计分布。这种方法之所以可以用于异常检测,在于从物理模型上,该“符号”表达了我们关注量的物理关系。


更多精彩内容欢迎关注我们:天泽智云CyberInsight(微信ID:CPS-China)


发布时间:2018年4月9日 18:01 人气: 审核编辑:刘婷
更多内容请访问(北京天泽智云科技有限公司

我有需求