基于Spark流处理的轴承剩余使用寿命预测*
2021-11-29马荣杰吴文江
马荣杰,吴文江,胡 毅
(1.中国科学院大学,北京 100049;2.中国科学院沈阳计算技术研究所,沈阳 110168)
0 引言
数控机床是高端制造业的一个基本资源,减少故障时间,增加机床的使用效率,为企业创造了更多的经济效益[1],是一个紧迫的问题[2]。滚动轴承由滚动体、保持架、轴承内圈和轴承外圈组成[3]。数控机床系统产生的运行数据正逐渐出现高容量、高速度、多样性和低值的“4V”大数据特性[4]。故障具有隐蔽性及复杂性的特点[5],如何从大量历史数据中提取关键信息并预测设备的运行状况,对于设备的预先维修和正常运行至关重要[6]。文献[7]利用基于广泛数据的存储和管理技术、数据检索和分析技术,收集机床运行期间产生的大量数据,并对历史数据进行在线存储和分析。文献[8]对工业能耗大数据分析平台进行研究,对能耗数据进行离线分析,实现了能耗与设备综合信息的聚类与影响分析。当前,工业大数据处理技术的应用主要集中在以Hadoop为核心的离线处理框架上。然而,对数控机床海量运行数据的实时监测要求处理系统更加高效[9]。基于机床运行数据的特殊性,传统的离线数据处理框架难以满足实时流处理和动态弹性计算等需求。
目前主流的大数据流处理框架有Storm、Spark Streaming和Flink[10]。Spark Streaming在实时性方面不如Strom。然而Spark Streaming的集成性更好,通过RDD不仅可以和Spark进行衔接,也可以很容易的与Kafka结合。同时Spark Streaming的吞吐量也远远高于Strom。Spark Streaming可以支持秒级计算,它属于微小批次处理框架,Flink属于准实时处理框架,它支持毫秒级计算,然而本文对轴承剩余寿命的预测精度为分钟量级,所以都可以满足条件,同时Spark对SQL的支持比Flink要多一些,而且支持对SQL的优化。鉴于以上研究,选择Spark Streaming作为流处理框架。
1 设计思想系统框架的核心定位如下
(1)数据采集层:通过传感器等组件采集数控机床关键部件的运行数据。
(2)数据接入层:通过Kafka将数控机床产生的数据进行缓存,弥补数控机床发送数据与服务器接收数据之间的速度差异。
(3)数据流处理层:主要通过Spark Streaming微批次处理框架对采集到的数据进行批次处理。做到分钟级别的预测精度。
(4)数据存储与可视化层:Spark将处理完成的数据进行保存,存储到Mysql数据库中,方便后续可视化组件的使用。采用WEB可视化组件来访问数据库中的数据,从而对预测数据进行可视化处理。
Spark Streaming结合Kafka分布式日志收集框架进行数据缓存。由于多台数控机床设备同时运行会产生大量数据,如果不使用消息缓存机制,容易造成数据过时或数据丢失等问题,使用Kafka消息缓存框架可以以生产者消费者模式对数据进行缓存,解决速度差异问题。同时Kafka作为分布式的框架,更加适合于同时对多台数控机床设备进行数据采集的任务。
对数控机床信息进行采集和动态监控等技术进行探索[11]。Spark对数据进行处理,建立轴承剩余使用寿命的模型。Spark Streaming接收来自Kafka的数据,利用得到的预测模型对接收的数据进行预测,并将结果保存到Mysql数据库中,通过web将结果进行可视化处理。在设备出现故障之前系统会给出对应提示[12],方便数控机床维护人员及时了解数控机床的健康状态。实现数控机床的预防性维护[13]。
2 剩余使用寿命预测实验
2.1 实验数据
采用法国FEMTO-ST实验室提供的轴承加速度数据作为实验数据集。该数据集含有6个轴承全生命周期的水平振动加速和垂直振动加速度数据。数据如表1所示排列。
表1 数据排列
2.2 Spark Streaming窗口大小的选择
Spark Streaming对于数据的接收是实时的,但是对于数据的处理是分批次进行的。所以,应该将数据按照一定的时间间隔进行划分,把这个时间间隔称为批处理时间间隔。数据是源源不断发送来的,Spark Streaming将数据进行切分,数据流每被切分一次就生成一个对应的RDD,RDD包含了该时间片段内所有的数据。
窗口时间间隔决定了RDD的切分粒度。
如图1所示,可以看到窗口内RDD的数量为5,也就是每次对5个RDD的数据进行处理分析。考虑到服务器的性能以及每次处理完成的时间不到1 min,所以将批处理时间间隔设置为1 min,考虑到轴承的加速度数据在5 min为时间间隔的时候较为平稳,所以设置窗口时间间隔为5 min。在系统启动的前5 min内,进入窗口的RDD数量不足5个,但是会随着时间的推移,满足条件。
图1 窗口时间间隔示意图
滑动时间间隔代表了数据分析的频率。滑动时间间隔是基于批处理时间间隔提出的。对应图中两个透明框之间的时间间隔,这里将滑动时间间隔设置为1 min,即每隔1 min,对数据进行一次处理分析。
2.3 线性预测方法
首先将数据以图表的形式显示出来,方便发现振动加速度和剩余使用寿命的关系。利用知识发现的维护方式对关键设备进行维护[14]。作图API生成的水平加速度的每秒平均值如图所示。
可以发现,能够将数据整体分为三部分(由黑色粗线进行划分),在第Ⅰ阶段,数据呈现平稳状态,几乎没有变化,此阶段称为平稳期;在第Ⅱ阶段,加速度的平方和呈现缓慢的上升状态,但是变化的幅度没有太大,此阶段称为退化期;在第Ⅲ部分,加速度的平方和呈现快速上升的状态,意味着轴承迅速损坏,此阶段称为失效期。
通过图2可以发现,轴承的水平振动加速度和剩余使用寿命呈现线性相关的关系,所以可以利用线性相关性来生成对应的线性模型来对剩余使用寿命进行预测。首先对于阶段Ⅰ,因为数据几乎呈现平稳无变化的状态,所以不进行预测,对于阶段Ⅲ,我们认为此轴承已经损坏,所以无需继续预测。主要使用第Ⅱ阶段根据机器学习线性回归的思路对剩余使用寿命进行预测。对数控机床的故障特征进行分析并建立故障模型,为后续的数控机床故障诊断系统的开发建立支撑[15]。
图2 水平振动加速度图
首先获取到n组数控机床的水平加速度和剩余使用寿命的数据,然后对这n组数据进行过滤,得到他们的水平加速度大于0.55且小于1.4之间的数据,即第Ⅱ阶段的数据。
利用hθ(x)=θ0+θ1x1+θ2x2+…θnxn来表示水平加速度和轴承剩余使用寿命的线性关系,从而可以通过公式对后续接收到的数据进行预测。在此基础上构建损失函数,即:
其中,α为学习率。J(θ)对θ的偏导决定了梯度下降的方向。J(θ)对θ的偏导为:
将J(θ)对θ的偏导带入更新规则中得到:
由于本实验只涉及到一个变量,即轴承水平振动加速度,那么预测模型的公式为hθ(x)=θ0+θ1x1,只涉及到两个未知参数θ0和θ1,将其带入更新规则中得到:
然后不断迭代改变θ的值使其损失函数J(θ)根据梯度下降的方向减小,直至收敛。即可得到最终θ0的和θ1,也就是得到了线性预测模型。并以此线性预测模型对数控机床的剩余使用寿命进行预测,按照批处理时间间隔将数据切分为多个RDD,方便后续处理,每次同时处理最近接收到的5个RDD,即每次处理最近5 min内的全部数据。前期接收到的数据处于第Ⅰ阶段平稳期,Spark每分钟都会计算最近5 min内接收到数据的平均值,如果小于0.55,那么就会认为当前轴承处于平稳期,所以不会进行预测。当接收到的数据平均值大于等于0.55以后,系统认为当前处于第二阶段,即退化期,此时Spark会根据之前得到的线性模型对当前接收到的数据进行预测,将加速度的平均值作为自变量x输入到公式中,得到一个预测的剩余使用寿命。随后当接收到的数据平均值大于1.4时,系统认为当前轴承水平振动加速度进入第Ⅲ阶段失效期,即认为此轴承已经损坏,剩余使用寿命为0,无需再将数据输入公式进行预测。通过阶段Ⅱ得到的轴承实际已使用时间和预测已使用时间如图3所示。
图3 线性预测图
按照轴承实际已使用时间和预测已使用时间之差是否大于5 min为基准,大于5 min,则认为预测错误,小于等于5min则认为预测正确。按照此基准得到的剩余使用寿命的预测准确度为0.806 1。
2.4 相似度预测方法
首先将数据以图表的形式显示出来,方便对数据的整体了解。作图API生成的水平加速度和垂直加速度平方和的每秒平均值如图4所示。
图4 振动加速度平方和图
可以很容易的发现第Ⅱ和第Ⅲ阶段的分界线为加速度的平方和等于5g的时候。第Ⅰ阶段和第Ⅱ阶段的分界线可以设置为加速度平方和等于0.4g。然后过滤掉加速度小于0.4g和大于5g的数据得到图表如图5所示。
图5 振动加速度平方和图
从图中可以发现轴承振动加速度存在很多的毛刺,所以对数据进行平滑处理。首先获取接收到数据的总条数n,利用小顶堆存放总条数n×0.1个最小数据集之和summin,利用大顶堆存放总条数n×0.1个的最大数据集之和summax。同时记录全部数据的总和sum。利用如下公式得到去毛刺的效果:
同时将数据的时间粒度进行扩大,通过多组数据的对比,发现将时间粒度设置为5 min比较合适。即得到水平加速度和垂直加速度平方和的每5 min的平均值如下图所示。
图6 振动加速度平方和图
通过对图表的观察可以发现,轴承的水平加速度和垂直加速度的平方和与轴承剩余使用寿命呈现正相关性。可以利用此相关性,对轴承剩余使用寿命进行预测。同样,对于第Ⅰ阶段平稳期,不会对该阶段的数据进行预测,所以会对该阶段的数据进行过滤;随后数据进入第二阶段退化期,样本数据平均值大于0.5了,Spark会对数据进行预测,所以保留该阶段的数据,并根据该阶段数据进行建模,方便后续的预测工作;当样本数据平均值大于1.5以后,数据进入第三阶段失效期,系统认为该轴承已经失效,所以同样会对该阶段的数据进行过滤。基于相似度的方法也主要利用第二阶段对剩余使用寿命进行预测。
首先对样本数据进行过滤,获取样本数据的第Ⅱ阶段的数据,并计算每隔5 min内数据的平均值,由于Spark大数据框架本身就会以多线程的方式运行,所以利用线程安全的Map键值对的形式对模型进行保存。因为前面已经执行了去毛刺工作,所以这里的平均值是所有数据的平均值即可,Map键值对的键就是该时间的前5 min内所有数据的平均值,值就是轴承剩余使用寿命的时间。最终通过样本得到的预测工具就是“Map<该时间段内加速度平方和的平均值, 时间>”的形式。
得到每5 min数据的平均值后,即可用此模型对数据进行预测。对于要预测数据,系统每隔1 min都会计算出一个最近5 min内数据的平均值,并且会将该平均值与Map的键进行比较,会选择出与该平均值之差的绝对值最小的键,然后可以得到该键对应的值,也就是剩余使用寿命的时间。最终得到的预测效果如下(蓝色为预测数据,红色为实际数据)。
图7 预测图
按照和线性预测同样的准确度计算方法得到基于相似度的预测准确度为0.860 6。
3 总结
通过轴承加速度和剩余使用寿命的关系,研究了基于线性模型和基于相似度的剩余使用寿命预测方法,对比发现基于相似度的预测方法要比线性预测的准确率要高一些,所以将基于相似度的预测方法得到的数据保存到数据库中。
可视化组件主要通过WEB端实现,WEB程序通过访问存储了剩余使用寿命的Mysql数据库来获取相应的数据,随后将数据进行显示,方便数控机床维护人员进行健康维护。