目录
0 问题背景
在设备健康监测管理时,我们往往需要对设备运行时的电路参数进行监控,以反映设备的运行状况,通过对设备的运行参数长期统计观察建立设备的状态评估模型 。其中一个典型的场景就是我们需要对设备参数指标,进行趋势分析,比如判断某个指标在某一段时间内呈现递增或是递减的趋势,换句话说设备在一时期某一个参数朝着恶化的趋势发展,我们需要对这种趋势进行预警。解决这种长周期的趋势预警问题,我们往往需要构建设备数仓,在批处理中进行分析。本文以转辙机动作电流为例进行分析,针对转辙机动作电流文中给出了一种设备趋势预警的方法,对一定窗口内,同一设备的同一阶段的动作电流平均值指标变化趋势进行趋势分析,当1个时间窗口内,设备在某一阶段的动作电流水平保持整体性增长,大数据系统进行报警,文中通过批处理的形式对该方法进行了实现。
1 算法分析
趋势预警判断规则如下:
对于n个状态平均点形成动作电流平均值窗口集合:P{ Pt1, Pt2, Pt3…… Ptn} | ||||
求得 | ||||
{d1,d2, ……..dn} | ||||
其中di = (Pt(i+1) - Pt(i)) / Pt(i) | ||||
当 | ||||
1)Σdi /(n-1) ≥ 0.1 (平均变化率,可配置); di ≠dn(最末1日,不计算增长率),反应平均变化速度 | ||||
2)|max(Pi)- Pbase|/Pbase(基线变化率) ≥ 0.5 (可配置),或|min(Pi)- Pbase|/Pbase,反应峰值偏离基线的程度. | ||||
3)|Pn-P1|/P1(最后一天值与第一天值的差值的绝对值/第一天值)反应相对于初始值增长或降低情况,称为首尾变化率 ≥ 0.5(可配置)。反应偏离初始值的程度,或者称为定基发展速度。 | ||||
4)时间窗口内,最多有容忍30%个点没有增长。反向变化率或正向变化率。反向变化率:未增长的点个数/窗口点个数 -1.正向变化率大于0.7或反向变化率小于0.3时预警。反向变化率=1-正向变化率 | ||||
5)1)and 2) and 3)and4) 同时成立时,预警条件符合。 | ||||
注意:这里的Pbase基线暂取为窗口内数据的中位值 |
2 问题描述
现已知动作电流按天分区的天表,其表结构如下(为了便于分析本文以7天窗口为例):
gw_id:表示网关id,sensor_id:表示设备id,switch_dir:转换方向 0表示定到反,1表示反到定。
avg_act_ic:表示计算的指标,动作电流按天的平均值。compute_day:计算日期
gw_id | sensor_id | switch_dir | avg_act_ic | compute_day |
1001 | 123456 | 0 | 5.4 | 2017-07-01 |
1001 | 123456 | 0 | 3.5 | 2017-07-02 |
1001 | 123456 | 0 | 5.8 | 2017-07-03 |
1001 | 123456 | 0 | 8.1 | 2017-07-04 |
1001 | 123456 | 0 | 5.2 | 2017-07-05 |
1001 | 123456 | 0 | 8.5 | 2017-07-06 |
1001 |