随着煤矿智能化的发展,数据量的增长异常迅猛。采煤机是综采“三机”之一,其工作环境复杂,自身安装有多个传感器,采样频率高,数据量大[1-2]。采煤机运行状态数据属于动态的时间序列数据,可用于采煤机运行状态的实时分析判断及预测。对采煤机运行状态数据进行实时采集与分析处理,可一定程度上保障采煤机及人员安全,对采煤机智能化运行具有重要意义[3]。
目前机械设备的状态预测方法仍然大量使用传统机器学习方法,如自回归模型[4]、隐马尔科夫模型[5]、BP神经网络预测模型[6]等。这些模型在预测少量数据时取得了不错的效果,但面对大量数据应用时往往效果不理想。
Storm是一种开源的分布式实时大数据处理框架,具有适用场景广泛、可伸缩性高、无数据丢失的特点,适用于大量时间序列流数据的实时处理[7-8]。因此,本文在Storm框架基础上进行采煤机运行状态预测。循环神经网络在处理与时间序列相关的数据方面取得了良好效果,但在反向传播过程中,随着层数增多,会出现梯度消失或者爆炸现象,对模型的拟合程度有较大影响。门控循环单元(Gate Recurrent Unit,GRU)是循环神经网络的一种变体,其解决了长距离时序数据预测中容易出现的梯度爆炸和消失问题,应用于金融时间序列预测[9]、电力负荷预测[10]等领域时取得了良好效果。因此,本文采用GRU预测采煤机的时序数据,结合Storm框架和GRU实现采煤机运行状态预测。
Storm的核心组件主要包括主控节点(Nimbus)和从节点(Supervisor)。Nimbus节点主要负责资源分配和任务调度,Supervisor节点负责接收Nimbus分配的任务,管理和启动所有的工作(Worker)。1个Supervisor对应4个Worker,1个Worker对应1个拓扑(Topology),Topology由Stream、Spout和Bolt组成。Stream即数据流;Spout充当采集器的角色,实现与数据源的连接;Bolt为业务逻辑运算节点,订阅多个Spout,实现业务处理、连接运算等操作。Storm数据流模型基本结构如图1所示。
图1 Storm数据流模型基本结构
Fig.1 Basic structure of Storm data flow model
GRU结构如图2所示。其中xt为t时刻的输入值,ct为记忆细胞,ht为t时刻隐藏单元的历史信息,at为重写的记忆细胞的候选值,ot为t时刻的输出值,rt为重置门,ut为更新门。GRU通过记忆细胞ct将历史数据信息保存下来,用于数据预测。当t时刻实际数据xt到达时,结合隐藏单元历史信息ht-1,通过更新门和重置门控制上一个单元有多少信息可以保留,当前单元有多少信息可以添加到记忆细胞ct并传递给下一个单元,通过激活函数输出当前时刻的预测值ot。常用的激活函数为tanh,K类别分类问题可以选用softmax作为激活函数。为了简化描述,设置输出的激活函数为softmax函数,隐藏层的激活函数为tanh函数。
图2 GRU结构
Fig.2 GRU structure
更新门ut用于确定上一隐藏层中的记忆信息,重置门rt用于确定上一隐藏层中的遗忘信息,记忆细胞候选值at用于确定当前的记忆内容,记忆细胞ct用于确定当前要保留的信息,其计算公式分别为
ut=σ(wu[ct-1,xt]+bu)
(1)
rt=σ(wr[ct-1,xt]+br)
(2)
at=tanh(wh[rtct-1,xt]+bc)
(3)
ct=utat+(1-ut)ct-1
(4)
式中:σ为sigmoid函数;wu,wr,wh分别为更新门ut、重置门rt和记忆细胞候选值at的更新权值;bu,br,bc分别为更新门ut、重置门rt和记忆细胞候选值at的偏差值。
基于Storm的采煤机运行状态数据分布式实时预测模型如图3所示。采煤机运行状态数据是以固定时间间隔源源不断地产生,本文结合在煤矿收集的采煤机运行状态数据,在Hadoop分布式存储数据库中通过crontab编写定时读取数据的脚本,用来模拟采煤机的实时数据流。将流数据传送到不同的消息队列Spout中,Spout将数据以元组流的形式发送给相应Bolt,通过多个Bolt实现对数据的预处理、预测、误差计算及存储,最终实现对采煤机运行状态数据的实时预测[11]。
图3 基于Storm的采煤机运行状态数据分布式实时预测模型
Fig.3 Distributed real time prediction model of shearer operating state data based on Storm
为方便管理海量的采煤机运行状态数据,基于Hadoop[12]设计数据存储结构,包括1张索引表和多张数据表[13]。索引表包括监测点位置、预测模型、预警阈值上界TUBn(n为监测点数)和下界TLBn,见表1。数据表通过行增长的方式模拟时间序列,每一列代表某个监测点所采集的时间序列数据,见表2,其中m为时间点数,Datanm为监测数据。在实际生产中,各个测点的实时运行数据会以固定时间间隔存入Hadoop中,经主控节点Nimbus的调配传入 Spout中进行处理。
表1 索引表
Table 1 Index table
位置预测模型预警上界预警下界监测点1GRUTUB1TLB1监测点2GRUTUB2TLB2︙︙︙︙监测点nGRUTUBnTLBn
表2 数据表
Table 2 Data table
时间监测数据时间点1Data11Data21…Datan1时间点2Data12Data22…Datan2︙︙︙︙时间点mData1mData2m…Datanm
Spout通过调用nextTuple()方法从Hadoop中提取相应监测点的信息,将信息封装后传递给Bolt,具体步骤如下:
(1) 连接Hadoop,从相应监测点的数据表中读取n个数据。
(2) 判断数据序列长度是否达到预测的历史数据样本容量N,达到则进行步骤(4),否则进行步骤(3)。
(3) 从数据库读取新数据,将新数据添加到序列末尾,跳回步骤(2)。
(4) 将数据封装成元组形式发送到预处理Bolt。
Bolt接收Spout传递的元组,通过多个Bolt调用execute()方法,分别实现数据的预处理、预测、误差计算和存储,具体步骤[14]如下:
(1) 预处理Bolt接收从Spout传递来的元组,解析对应监测点的N个数据;导入python包处理异常值,并将数据标准化,以元组形式发送到GRU预测Bolt。
(2) 预测Bolt接收预处理Bolt传递的标准化后的数据,导入训练好的GRU模型,预测下一时刻的数据,并等待该时刻实际数据,将预测数据和实际数据一起发送到预警Bolt。
(3) 预警Bolt根据设定的阈值判断是否要预警,将预测结果和预警信息发送到存储Bolt。
(4) 存储Bolt接收数据并存储。
选用3台配置相同的计算机搭建Storm分布式集群环境,每台机器部署1台虚拟机。3台虚拟机的操作系统为CentOS6.8,其中1台作为Master布置Nimbus节点,另外2台布置Supervisor节点。主控节点Nimbus为双核单处理器,4 GB内存,40 GB硬盘;从节点Supervisor为单核单处理器,2 GB内存,20 GB硬盘。Nimbus节点接收Storm集群的任务后,通过Zookeeper实现对Supervisor的资源分配。
以某矿综采工作面MG400930-WD电牵引采煤机的数据为例,取采煤机中的截割部电动机电流、截割部电动机温度、牵引部电动机电流、牵引部电动机转速、调高泵工作压力、调高泵工作转速、冷却水压、变频器电流8种监测数据(依次用a—h表示)各1 000条作为实验数据。
首先进行GRU模型训练。对原始数据中的缺失值、异常值及噪声进行预处理,将预处理后的数据作为输入数据。将输入数据以7∶3的比例分为训练集和测试集。隐藏层针对训练集进行训练,通过优化函数Adam、损失函数MSE调节模型的超参数,以损失值最小作为调优准则对模型进行优化。
通过训练找到GRU的最优参数,在Hadoop上模拟实时数据流,设置基本时间窗口为1 min。在主控节点Nimbus调控下,将8种测试集数据并行输入8个Worker中,在各自的拓扑中完成对数据的预测和预警。
GRU超参数寻优结果见表3,其中C1—C7分别为寻优训练次数、学习率、神经元数量、权重衰减、时间步数、每次训练样本数、隐藏层数。从表3可看出,8种监测数据在GRU模型中收敛的训练次数不同,但均小于500次,收敛速度较快。
表3 GRU超参数寻优结果
Table 3 GRU hyperparameter optimization results
数据类型C1C2C3C4C5C6C7a4890.01640.00182561b3410.01640.00182561c4180.01640.00182561d3250.01640.00182561e4550.01640.00182561f4810.01640.00182561g3640.01640.00182561h4780.01640.00182561
将训练好的GRU导入Bolt中,用测试集模拟实时数据流,各测试集中300个点的真实值和预测结果对比如图4所示。
a) 截割部电动机电流
(b) 截割部电动机温度
(c) 牵引部电动机电流
(d) 牵引部电动机转速
(e) 调高泵工作压力
(f) 调高泵工作转速
(g) 冷却水压
(h) 变频器电流
图4 真实值和预测结果对比
Fig.4 Comparison of real values and predicted results
4.3.1 GRU预测结果评价
采用平均绝对误差(MAE)、均方根误差(RMSE)及拟合优度(R2)作为GRU拟合程度的评价指标,其计算公式分别为
(5)
(6)
(7)
式中:p为数据量;为预测值;yi为真实值;为所有真实数据的平均值。
GRU预测结果评价指标对比见表4。
表4 评价指标对比
Table 4 Comparison of evaluation indexes
数据类型MAERMSER2a0.7380.9110.941b0.8081.0490.943c0.9381.2040.928d3.3464.1680.930e0.1050.1340.955f2.7273.3980.943g0.0190.0250.911h1.2081.4860.937
拟合优度R2的值越接近1,MAE和RMSE的值越接近0,效果越好。由表4可知,因为原始数据较大,数据类型d和f的MAE和RMSE的值相对较大,而其余类型的原始数据较小,误差也相对较小。8种数据的MAE和RMSE均接近0,初步判断GRU可作为预测模型。8种数据的R2均达到0.9以上,说明基于Storm的分布式时间序列实时预测模型适用于采煤机运行状态数据的预测。
4.3.2 预警的准确性
根据经验和误差要求,设定各类实验数据的阈值,见表5,其中Ie1,Ie2分别截割部电动机、牵引部电动机的额定电流,Ie1=87 A,Ie2=105 A。
表5 数据阈值设定
Table 5 Data thresholds setting
参数注意值故障阈值截割部电动机电流0.9Ie11.1Ie1截割部电动机温度/℃135155牵引部电动机电流0.9Ie21.1Ie2牵引部电动机转速/(r·min-1)1 4701 550调高泵工作压力/MPa2023调高泵工作转速/(r·min-1)1 4701 550冷却水压/MPa1.52变频器电流/A97150
根据阈值设定,将各类数据的状态分为正常、注意和故障3种。当采煤机运行时,若数据未达到注意值,则状态为正常,工作性能稳定,无需采取措施;若数据达到注意值而未达到故障阈值,则状态为注意;若数据达到故障阈值,则状态为故障。预测Bolt在得到预测数据而实际数据未到时,对数据状态进行预测并作出相应预警[15]。测试集的各数据预测状态与实际状态的对比结果如图5所示,其中纵坐标1,2,3分别表示正常、注意和故障3种状态。各类数据的预警准确率见表6。
(a) 截割部电动机电流
(b) 截割部电动机温度
(c) 牵引部电动机电流
(d) 牵引部电动机转速
(e) 调高泵工作压力
(f) 调高泵工作转速
(g) 冷却水压
(h) 变频器电流
图5 数据状态对比
Fig.5 Data state comparison
从表6可看出,除冷却水压外,其余数据的预警准确率均达到95%以上,满足实际应用要求。由于冷却水压数据值较小,注意值和故障阈值间隔很小,预测时误差偏大,但也达到85%以上,准确率较高,具有一定的实用价值。
表6 预警准确率
Table 6 Early warning accuracy
数据类型准确率/%数据类型准确率/%a96.0e98.7b96.7f95.7c96.0g88.7d96.0h95.7
4.3.3 处理时间
实验模拟从传感器得到数据并传入Hadoop中,Storm从Hadoop中读取数据,主控节点Nimbus通过Zookeeper监控和分配任务,通过Supervisor节点将具体的处理逻辑交由Worker完成。分别测量将流数据传入Spout中所需要的时间,Spout将数据分发给Bolt所需要的时间,预处理Bolt、预测Bolt、预警Bolt和存储Bolt所需要的总时间,结果见表7。
表7 预测模型处理时间
Table 7 Processing time of prediction model
数据类型数据库处理时间/msSpout处理时间/msBolt处理时间/msa5 4504 4260.956b5 4124 5160.962c5 4694 4840.944d5 5104 5340.972e5 5624 4151.056f5 5934 5801.182g5 4104 5321.132h5 4354 5201.152均值5 480.1254 500.8751.044 5
从表7可看出,数据库、Worker中Spout和各Bolt针对流数据的处理速度较快,整个预警过程共10 s左右,远低于测点数据采集间隔(1 min), 因此,可满足应用要求。
(1) 提出基于Storm的采煤机运行状态数据分布式实时预测模型,结合Hadoop 数据库,模拟实际生产中采煤机时间序列运行数据,采用深度学习中的GRU对数据进行处理,实现对采煤机运行状态数据的预测和预警。
(2) 实验结果表明:GRU收敛速度较快,且拟合优度达到0.9以上;各种数据状态预测的准确率均达到85%以上,整个预警过程仅需10 s左右,远低于测点数据采集间隔(1 min),模型的预警准确率和效率均能满足要求。
(3) Storm框架仍需进行包括负载均衡、集群调优等优化,以更好地满足应用要求,下一步将对此进行研究。
[1] 王国法,赵国瑞,任怀伟.智慧煤矿与智能化开采关键核心技术分析[J].煤炭学报,2019,44(1):34-41.
WANG Guofa,ZHAO Guorui,REN Huaiwei.Analysis on key technologies of intelligent coal mine and intelligent mining[J].Journal of China Coal Society,2019,44(1):34-41.
[2] 谭章禄,马营营.煤炭大数据研究及发展方向[J].工矿自动化,2018,44(3):49-52.
TAN Zhanglu,MA Yingying.Research on coal big data and its developing direction[J].Industry and Mine Automation,2018,44(3):49-52.
[3] 王国法,杜毅博.智慧煤矿与智能化开采技术的发展方向[J].煤炭科学技术,2019,47(1):1-10.
WANG Guofa,DU Yibo.Development direction of intelligent coal mine and intelligent mining technology[J].Coal Science and Technology,2019,47(1):1-10.
[4] 李永耀,韩捷,陈磊,等.基于AR-Kalman的机械设备状态趋势预测方法研究[J].制造业自动化,2014,36(12):95-96.
LI Yongyao,HAN Jie,CHEN Lei,et al.Research on condition trend prediction method of mechanical equipment based on AR-Kalman[J].Manufacturing Automation,2014,36(12):95-96.
[5] 季云,王恒,朱龙彪,等.基于HMM的机械设备运行状态评估与故障预测研究综述[J].机械强度,2017,39(3):511-517.
JI Yun,WANG Heng,ZHU Longbiao,et al.Review on operation state assessment and prognostics for mechanical equipment based on hidden Markov model[J].Journal of Mechanical Strength,2017,39(3):511-517.
[6] 马宏伟,吴少杰,曹现刚,等.煤矿综采设备运行状态大数据清洗建模[J].工矿自动化,2018,44(11):80-83.
MA Hongwei,WU Shaojie,CAO Xiangang,et al.Big data cleaning modeling of operation status of coal mine fully-mechanized coal mining equipment[J].Industry and Mine Automation,2018,44(11):80-83.
[7] 曹现刚,姜韦光,张国祯.采煤机运行状态数据实时清洗技术研究[J].煤炭工程,2020,52(3):127-131.
CAO Xiangang,JIANG Weiguang,ZHANG Guozhen.Real-time data cleaning of coal mining machine operating status[J].Coal Engineering,2020,52(3):127-131.
[8] 杨丽,吴雨茜,王俊丽,等.循环神经网络研究综述[J].计算机应用,2018,38(增刊2):1-6.
YANG Li,WU Yuxi,WANG Junli,et al.Research on recurrent neural network[J].Journal of Computer Applications,2018,38(S2):1-6.
[9] 张金磊,罗玉玲,付强.基于门控循环单元神经网络的金融时间序列预测[J].广西师范大学学报(自然科学版),2019,37(2):82-89.
ZHANG Jinlei,LUO Yuling,FU Qiang.Predicting financial time series based on gated recurrent unit neural network[J].Journal of Guangxi Normal University(Natural Science Edition),2019,37(2):82-89.
[10] 王增平,赵兵,纪维佳,等.基于GRU-NN模型的短期负荷预测方法[J].电力系统自动化,2019,43(5):53-58.
WANG Zengping,ZHAO Bing,JI Weijia,et al.Short-term load forecasting method based on GRU-NN model[J].Automation of Electric Power Systems,2019,43(5):53-58.
[11] 翁小松,张征.基于Storm的流媒体实时传输系统[J].计算机系统应用,2020,29(6):64-72.
WENG Xiaosong,ZHANG Zheng.Real-time streaming media transmission system based on Storm[J].Computer Systems & Applications,2020,29(6):64-72.
[12] 陈红.基于Hadoop的分布式SQL数据库索引设计与实践[J].舰船电子工程,2018,38(4):73-77.
CHEN Hong.Design and practice of distributed SQL database index based on Hadoop[J].Ship Electronic Engineering,2018,38(4):73-77.
[13] 王远,陶烨,袁军,等.一种基于HBase的智能电网时序大数据处理方法[J].系统仿真学报,2016,28(3):559-568.
WANG Yuan,TAO Ye,YUAN Jun,et al.Approach to process smart grid time-serial big data based on HBase[J].Journal of System Simulation,2016,28(3):559-568.
[14] 寇元宝,汪崇建,贠瑞光.采煤机运行数据预处理算法研究[J].煤矿机械,2020,41(10):41-43.
KOU Yuanbao,WANG Chongjian,YUN Ruiguang.Research on preprocessing algorithm of shearer operation data[J].Coal Mine Machinery,2020,41(10):41-43.
[15] 曹现刚,李彦川,雷卓,等.采煤机健康状态智能评估方法研究[J].工矿自动化,2020,46(6):41-47.
CAO Xiangang,LI Yanchuan,LEI Zhuo,et al.Research on intelligent evaluation method of health state of shearer[J].Industry and Mine Automation,2020,46(6):41-47.
ZHANG Jianrang,LIU Ruiqing,LI Xuewen,et al.Distributed real time prediction model of shearer operating state data[J].Industry and Mine Automation,2021,47(7):21-28.