删除或更新信息,请邮件至freekaoyan#163.com(#换成@)

一种工业报警相关性数据挖掘算法

本站小编 Free考研考试/2022-01-02

杨润佳,1,*, 刘泽三,21.国家能源集团,秦皇岛发电有限责任公司,发展策划处,河北 秦皇岛 066000
2.国网信息通信产业集团信通研究院,北京 100000

An Data Mining Algorithm for Analyzing Industrial Alarm Data Correlation

Yang Runjia,1,*, Liu Zesan,21. Development planning division, CHN ENERGY Qinhuangdao power generation co. LTD, Qinhuangdao, Hebei 066000, China
2. Research Institute of Information & Telecommunication, State Grid Information & Telecommunication Group Co. Ltd., Beijing 100000, China;

通讯作者: * 杨润佳(E-mail:13811330386@163.com

收稿日期:2020-07-23网络出版日期:2020-10-20

Received:2020-07-23Online:2020-10-20
作者简介 About authors

杨润佳,国家能源集团秦皇岛发电有限责任公司,双学士,发展策划处高级主管。主要工作经历及方向为电力信息化建设及电力营销。
本文中负责收集某电厂报警数据,并完成数据整理;同时,针对电厂报警相关性的应用特点而对凝聚层次聚类算法进行改进,并设计了相关性度量方法。
Yang Runjia, a double bachelor degree holder, is the senior director of the Development Planning Department at CHN ENERGY Qinhuangdao Power Generation Co., LTD. His main work experience and directions are for electric power enterprise information construction and electric power marketing.
In this paper, he is responsible for preparing enough alarm data, and improving the traditional agglomerative hierarchical clustering algorithm for alarm correlation analysis in electric power generation plant.
E-mail: 13811330386@163.com


刘泽三,国网信息通信产业集团信通研究院,研发工程师,硕士,主要研究方向为SOA、云计算、大数据、电力信息系统。
本文中负责报警在时间维度上的矢量相关性度量方法的设计工作。
Liu Zesan, Postgraduates, is an R & D Engineer of State Grid Information & Telecommunication Group Co., Beijing, China. His recent research interest areas are SOA, cloud computing, big data, and power information systems.
In this paper, he is responsible for designing a vector correlation concept and using conditional probability to make the alarm correlation among different tags comparable.
E-mail: liuzesan@sgitg.sgcc.com.cn



摘要
【目的】 报警在工业系统安全管理中具有重要作用。报警之间有些是孤立的,有些相互之间存在着某种关联,报警间相关性的研究是报警预测和防范的重要手段。 【方法】 本文针对某电厂大量时序报警数据,提出了一种基于权重的多态时序通用型相似度算法,应用该相似度算法能提高传统凝聚层次聚类算法在报警数据上聚类的精度;在报警聚类的基础上,以时间维度作为矢量相关,阐述了报警之间相互影响的方向性,提出以条件概率形式量化分析报警矢量相关性,使得不同点位之间报警相关性具有可比性;在此基础上,设计了针对大批量报警数据的挖掘报警矢量相关性的挖掘算法。 【结果】 以某电厂报警数据为实验数据样本测试,该算法能有效地挖掘出报警间的关联关系,可预测相关报警,指导生产。 【结论】 该算法打破了传统报警相关性研究方法的部分局限,在挖掘序列报警和非序列报警、规整报警和非规整报警方面都具有同等效果。为了能更好地展示矢量相关性,本文设计了一种二维矩阵的展示方式。
关键词: 报警;聚类;相似度算法;矢量相关

Abstract
[Objective] Alarms are important in industrial safety management. The technique to capture the correlation information of alarm variables, especially from historical alarm data, is very beneficial for risk prediction and prevention. But the task is very difficult because some alarms are independent while others are coupled mutually. [Methods] In this paper, a general weight-based multi-state sequential algorithm for correlation analysis is applied for alarm data mining to improve the validity and accuracy of alarm clustering when combined with the traditional agglomerative hierarchical clustering algorithm. To measure the directional relations between alarm variables, this paper proposes a vector correlation concept and use conditional probability modeling to make the alarm correlation among different tags comparable. [Results] The proposed data mining algorithm is shown to be able to find out the vector correlation of alarm variables effectively and correctly when applied in the analysis of power plant alarm data. [Conclusions] Some limitations of the traditional research on alarm variables correlation analysis are solved by the proposed method, which works well on all sequential, non-sequential, regular and irregular alarms. Furthermore, a two-dimensional matrix is used to visualize the vector correlation of alarm variables intuitively and visually.
Keywords:alarm;clustering;similarity algorithm;vector correlation


PDF (8583KB)元数据多维度评价相关文章导出EndNote|Ris|Bibtex收藏本文
本文引用格式
杨润佳, 刘泽三. 一种工业报警相关性数据挖掘算法. 数据与计算发展前沿[J], 2020, 2(5): 110-121 doi:10.11871/jfdc.issn.2096-742X.2020.05.011
Yang Runjia, Liu Zesan. An Data Mining Algorithm for Analyzing Industrial Alarm Data Correlation. Frontiers of Data and Computing[J], 2020, 2(5): 110-121 doi:10.11871/jfdc.issn.2096-742X.2020.05.011


开放科学标识码(OSID)

引言

在工业生产过程中,报警系统具有至关重要的作用,其建立的目的是提高生产的安全性。但由于分布式控制系统(Distributed Control System,DCS)、实时监测系统等实时数据采集系统的建立,导致随着实时监测数据量的急剧上升,报警数据量也随之大幅度攀升,进而造成无效报警过多,报警数据泛滥,使得系统操作员工作负担不降反升[1]。文献[2]给出的国际标准是操作员每10 分钟接受的平均报警数不超过1次,异常工况下10 分钟内的报警数不超过10次。而对于一个普通的火力发电厂动辄则是两万多的监测点,报警数量非常庞大。若要提高安全性,除了增加操作员数量外,依托大数据技术,建立报警间相关性,减少无效报警,不失为一条有效途径。

Izadi等[3]提出了报警系统分析、设计、管理的标准与方法,指出合理的报警系统应在漏报率、误报率、报警延迟等指标中做出平衡。Rothenberg[4]指出相关报警应该进行区别分析,为此可将报警分为序列报警与非序列报警较为合理。而对于报警的相关性分析有利于剔除无关报警,使得系统更加简洁、有效地展示报警信息,同时有助于操作员在此基础上分析报警原因,进行异常工况预测。Choi等[5]则提出了一种针对二元序列的相似度计算方法,并指出可以利用凝聚层次聚类算法对报警数据进行分组。凝聚层次算法中最为关键的是相似度算法,因此有的研究者对现有的相似度函数进行总结归纳,提出了各种针对相似度函数性能的不同的评价标准[6,7,8],并指出可以使用互相关函数算法作为计算报警相似度的度量方法[9]。报警聚类是报警相关性分析的前提。有了报警类,才能分析报警类之间的相关性。在报警相关性度量方面,文献[10,12]都提出了一种针对非规整报警的相关性的量化分析方法——以概率形式表示相关性大小。

近年来,由于信息技术,尤其是大数据技术的发展,不同****针对在不同领域的报警之间缺乏联系,容易引发次生灾害的问题,分别提出了各种基于数据分析的报警间关联关系的数据挖掘算法。该研究方法已经成为了近年来报警研究的重点内容之一,很值得进一步深入研究[6,12-17]

但是,我们研究发现,现有的方法几乎都是将报警数据做分类假定,之后研究出针对假定条件的分析相关性的方法。比如,假定研究的报警数据是规整报警,或者假定报警数据是非规整报警,又或者假定报警数据是序列报警,或只针对非序列报警。而现实情况下,我们很难预先得知所研究的系统报警数据到底属于哪一类,是否符合假定条件。文献[10]针对报警问题指出:报警类之间的影响是有方向性的,或者说相关性应该是有矢量关系。比如,现实中A类报警的发生会导致B类报警的发生,即报警A和报警B之间在时间维度上存在着严格的“先后”关联关系。A类报警与B类报警之间有相关性,但是B类报警的发生不一定是A类报警引起的,也可能是其它条件触发的,因此A类报警对B类报警的影响未必等同于B类报警对A类报警的影响。

为了研究类似于上述的两个报警类在时间维度上的关联关系,本文在改进后的传统凝聚层聚类算法的基础上,完成报警聚类;利用大数据分析方法,提出了一种不需对报警数据做类别假定的相关性量化分析算法,并在时间维度上定义了报警的矢量性,全面挖掘并展示报警的相关性。最后,利用某电厂的实际数据进行测试,证明该方法行之有效。

1 报警聚类算法

1.1 报警数据特点

在实际工业生产中,每个测点会设置不同的报警上下限阈值,当点位实际测得的值超过设置的阈值时,就会产生相应报警数据。因此,报警数据与测点设置的阈值有关。

一般情况下,随着工业系统的投运,报警数据会随着工业系统运行而累积,报警数据量十分庞大。

工业报警数据具有如下特点:

(1) 工业系统具有相对的独立性和完整性。一般情况下,工业系统追求稳定,一段时间内不会发生较大的实质性变化,因此报警数据可认为是该段时间内工业系统在某些特性方面的反应。

(2) 报警数据量庞大。随着系统的投运,系统会累积大量报警数据,而且运行越久,数据量越大。

(3) 报警的发生具有一定的随机性。报警数据在时间上是不定期出现的,具有随机性。对于那些定期发生的报警,是极其罕见的。如果报警真的是定期出现,那么该报警肯定会被操作员觉察,进而消除。即使限于条件,未能消除,也会有充足的时间做好预警。因此,此类报警研究价值十分有限。

(4) 对于一个相对稳定运行的工业系统,报警类型是有限的,即报警数据所反应的报警类型具有有限性。可按报警的属性(测点、报警类型等)进行类别划分,或按某种聚类算法进行聚类,可得到有限数量的报警类型。

当然,随着系统的投运,投运设备的更新,新类型的报警会产生,此时需要重新进行聚类。

报警聚类是进行报警相关性分析的前提,只有建立报警分类后,才能对报警类之间的相关性做进一步的分析。

1.2 改进型凝聚层次聚类算法

凝聚层次聚类算法,是一种相对简单且有效的分类算法。利用该算法针对工业报警特性进行改进,进而得到有研究价值的报警类,是可行的。

首先,我们需要分析下工业报警在时间维度上的序列特点。

1.2.1 报警状态序列

图1是一个典型的工业测点报警示意图。用“0”表示正常状态,“1”表示报警状态(包括高报警限与低报警限)。以超出上限为例,报警序列为,高报警阈值为,则报警序列可表示为:

$x_{alarm}(n)=\begin{cases} 1,x(n)\geq x_{threshold}\\ 0,x(n)<x_{threshold}\end{cases}$

图1

新窗口打开|下载原图ZIP|生成PPT
图1过程变量及报警阈值

Fig.1Process variable and the alarm trip points



为了规避连续重复报警现象(误报的一种),需将报警由正常变为超限的时刻记为“1”,其余均记为“0”。

$x_{alarm}(n)=\begin{cases} 1,x(n-1)\leq x_{threshold} \ and \ X(n)\geq x_{threshold}\\ 0,otherwise\end{cases}$
序列化可得到测点的报警状态,并使之数量化,为后续聚类做好准备。这种序列化可以很好地对不同测点的不同状态做出识别,但是并没有对同一测点的报警类型做进一步区分,比如即使是同一个测点,低报和高报是不同的,而且这种不同对与该测点相关的其它测点产生的影响也是不同的,很可能影响我们要研究的报警相关性。因此,需要在凝聚层次聚类之前依据报警类型的不同做出标识。

1.2.2 基于权重的多态报警序列

为了将不同测点、不同报警作区分,可借鉴生物学碱基对标识基因序列的形式,将报警类型做纵向分类,设置不同的标识。如此,每个测点即可形成自己的类“基因”时序序列。

为了便于后续聚类运行,这种标识建议设置成数字。例如:可将纵向报警分类为:低低报警、低报警、正常值、高报、高高报(种类可依据实际情况做增删),对应报警阈值为$x_{thr\_LL}$、$x_{thr\_L}$、$x_{thr\_H}$、$x_{thr\_HH}$,对应数字标识表示为:-2、-1、0、1、2。其中,数值表征报警严重程度,正负号表征报警方向。则上述序列化公式可优化为带权重的序列化公式:

$x_{alarm}(n)=\begin{cases}\ 2,\ x(n-1)\leq x_{thr\_HH}\ and\ x(n)\geq x_{thr\_HH}\\ \ 1,\ x(n-1)\leq x_{thr\_HH}\ and\ x_{thr\_HH} \geq x_(n)\geq x_{thr\_H}\\ \ 0,\ otherwise\\ -1,\ x(n-1)\geq x_{thr\_L}\ and\ x_{thr\_L}\geq x(n)\geq x_{thr\_LL}\\ -2,\ x(n-1)\geq x_{thr\_LL}\ and\ x_{thr\_LL}\geq x(n) \end{cases}$
1.2.3 传统的凝聚层次聚类算法

Choi 等[7]提出了针对二元序列之间的相似度计算方法,进而利用凝聚层次聚类算法进行分类的算法。

凝聚层次聚类算法是一个相对简单的聚类算法,具有相对广泛的性实用与适用性,并且自诞生那一刻开始就在不断的演进[11]。算法的关键是相似度如何进行计算。

Yang等[11]指出,针对报警系统性能最好的相似度函数为Jaccard 函数与Sorgenfrei 函数。其中,Jaccard 函数的形式为:

$s(a,b)=\frac{C}{N_{a}+N_{b}-C}$
Sorgenfrei 函数的形式为:

$s(a,b)=\frac{c^{2}}{N_{a}gN_{b}}$
式中,S表示序列a和序列b的相似度大小;其中Na为序列a中出现报警,即数字“1”的个数,Nb为序列b中出现报警,即数字“1”的个数,而C则表示两个序列中相同位置出现报警时,即同时出现“1”的个数。

因此,有上述公式(4)和公式(5)可知,在NaNb不变的情况下,C的值越大,相似度S的值越大,也就是两个序列中同时出现报警越多,相似度越大。

为处理序列报警可能存在的整体延迟,可以对序列a进行时间长度为τ的整体平移,用平移得到的新序列aτ与b计算相似度S,并选取不同的τ多次计算以使S值最大,即:

$s(a,b)=max_{\tau}(s(a_{\tau},b))$
上述算法是针对规整报警的,但在实际生产过程中,经常会出现延迟时间不固定和非对称的非规整报警。针对非规整报警,在0、1序列化的基础上以概率的形式给出了一种简易可行的相似度算法:

(1) 计算序列a中“1”的数量,记为N;

(2) 设定窗口长度L;

(3) 对于序列a中的每一个“1”,若在序列b对应位置前后各为L的长度内存在一个“1”,则记为一个“A1”,将序列a中“A1”的数量记为m;

(4) 则可得序列b相对于序列a的相关性S(a,b)=m/N ;

(5) 同样的方法可计算序列a对序列b的相关性。

示例如下图2所示,Pn为所选取的点位,取L=1,可得m=2,序列b对序列a的相关性S=2/3=0.66。

图2

新窗口打开|下载原图ZIP|生成PPT
图2相关性计算示例

Fig.2Example for correlation computation



1.2.4 改进后的凝聚层次聚类算法

上述几种凝聚层次聚类算法,无论是传统的针对有固定延时的固定序列形式的Jaccard 函数与Sorgenfrei 函数,还是针对非规整报警的,都是基于一种假设,即事先假定所研究的报警是有固定延时的规整报警,或是非规整报警。这种假定有其合理性,事先熟知所研究的对象系统,且对其中的报警关联关系有一定程度的感知。但是,有很多情况是对所研究对象的内在关系不很熟悉,更多情况是需要从无到有,挖掘出报警间的相关性。此时,往往是只知道所研究的报警数据(当今大数据挖掘既是如此)能得到报警序列,序列是否是固定延时关系,是否是规整的,都不得而知。另外,上述几种方法都没有体现出报警在时间序列上的矢量关联关系,更没有体现出报警不同状态(高报、高高报等)下的高粒度影响。

因此,本文在多态报警序列的基础上,提出了一种基于权重的多态时序通用型相似度算法,该方法如下:

(1)统计报警序列a中非零的状态,并按权值排序,形成序列a的报警状态集合S={S1,S2,…,SN},Sn为序列的一个报警状态;

(2)若集合S为空,则算法结束,否则从集合S中选取某一报警状态Sn(1≤nN),同时从集合中去除Sn;

(3)计算序列a中Sn的数量,记为N;

(4)设定时序窗口长度τ;

(5)对于序列a中的每一个状态Sn,若在序列b对应时序位置后τ的长度内存在一个非零状态,则记为一个“Tag_A1”,将序列a中“Tag_A1”的数量记为m;

(6)则可得序列b相对于序列a的Sn报警状态的相关性Rn(a,b)=m/N;

(7)将Sn加入到序列a的多态相关性集合R(a,b);

(8) 重复步骤(2)~步骤(7),直至集合S为空,可得序列a的多态相关性集合R(a,b)={R1,R2,…,RN};

(9) 去除多态相关性集合R(a,b)中数值小于规定相关性阈值Rthreshold,新的集合R(a,b)={R1,R2,…,RM}中剩余的元素就是序列a相对于序列b相关性的多态聚类结果集。

计算示例如下图3所示,取时间窗口长度τ=3,依据上述算法可得序列a的状态集合S={-2,-1,1,2},相关性R(a,b)={0.5,0,0.67, 0.5},若取相关性阈值Rthreshold=0.6,则可得序列a相对于序列b的相关性聚类是序列a标识为1的一类(其它忽略)。

图3

新窗口打开|下载原图ZIP|生成PPT
图3多态时序相关性聚类方法示例图

Fig.3Example for correlation computation based on multi-alarm-state sequence



上述示例中,会发现一个极为不合理的现象,低低报的相关度为0.5,而低报的相关度为0,这与常识“发生低低报时肯定会发生低报”相违背,即多态序列的状态有“包含”关系,因此可将上述算法借助于“基于权重的多态报警序列”中的权重值做进一步优化。

上述算法的步骤(3)和步骤(5)需要做如下优化:

(3) 优化为:计算序列a中与状态Sn同向且权值不小于Sn的非零的状态数,记为N;

(5) 优化为:对于序列a中的每一个报警方向与Sn同向且权值不小于Sn的,若在序列b对应时序位置后τ的长度内存在一个非零状态,则记为一个“Tag_A1”,将序列a中“Tag_A1”的数量记为m。

优化后,上述示例的相关性集合R(a,b)={0.5, 0.67,0.6,0.5},若取相关性阈值Rthreshold=0.6,则可得序列a相对于序列b的相关性聚类是序列a标识为-1,1的两类。

通过上述基于权重的多态时序通用型相似度算法,我们可以很明显的发现,相较于传统方法,该方法将工业报警按照以权重为依据进行了轻重缓急式的划分,相较于传统方法的粗放式区分,更加明细清晰,便于后续以此为基础进行报警管理;以权重表示的报警的重要程度,数字化报警级别,可以进一步精细化报警管理。

2 报警类矢量相关性挖掘算法

2.1 报警相关性的矢量描述

本文所提及的报警相关性是指在某个运行的系统中,某一类报警发生对另一类报警发生产生的影响。若报警A的发生,在一定程度上会引发报警B的发生,则称报警A与报警B相关;反之,若报警A的发生与报警B的发生毫无关联,则称报警A与报警B无关。

显然,在实际的工业系统中报警A对报警B的影响(或称报警A与报警B相关)不一定与报警B对报警A的影响相同,即两个报警之间的影响是不对称的,具有方向性,本文称这种方向性为两个报警相关的矢量性。

如何度量这种报警矢量相关性的大小较为合适,对后续从数据中查找和表示这种矢量相关性至为重要。经研究发现,很多研究者都采用概率的形式作为相关性度量的形式[10,12,19-20],本文认为借鉴条件概率形式表达这种矢量相关性较为合适。

当报警A发生时,可用报警B发生的概率P(B|A)来表示报警A对报警B矢量相关性的大小,进行度量。当报警A发生时,报警B发生的概率越大,则视为B与A的矢量相关性越强,反之则A与B的相关性越弱。在系统运行的相当长的时间内,在报警A发生时,报警B就没有发生过(或极少发生)时,即B发生的概率P(B|A)≈0,则称报警B与A无关。显然,报警B与报警A的矢量相关性不一定等于报警A与报警B的矢量相关性,即P(B|A)不一定等于P(A|B)。

2.2 报警类相关性的获取算法

在工业系统运行一段时间后,会产生大量的报警数据,如何从这些报警数据中获取报警之间的相关性,对于报警的预防管理和安全生产都具有十分重要的意义。

为了找出这种矢量相关性,我们首先需要获取系统运行相当长时间内的报警数据;然后借助上一章的聚类算法,从系统的报警数据中聚类出报警类;之后在获取的报警类的基础上,才能研究报警类之间的矢量相关性;最后借助挖掘出来的相关性为生产服务。

当下几乎所有的工业系统几乎都安装了DCS系统等工业运行系统,可以十分便利的获得相当丰富的大量报警数据。从这些数据中,利用上一章阐述的基于权重的多态时序通用型相似度算法的改进型凝聚层次聚类算法,不难获得报警类。因此,以下主要阐述在获得的报警类的基础上,如何挖掘报警类之间的矢量相关性。

从上一节报警矢量相关性的定义,不难发现找出这种关系不难,但是确认这种相关性却是比较困难。

理论上,在某一类报警发生后,系统后续一段时间内(以下简称这段时间为时间阀)发生的所有报警都有可能与之相关。当某类报警发生时,在与之相关性的报警中,有些报警经常会发生(强相关,这类相互关联的报警往往已经被标识为报警联动,随着系统的投运,很容易被运行人员察觉),有些可能偶尔发生(弱相关,可能触发条件不充分,或与之无关),甚至有些实际上无关的报警,也恰巧发生了。因此,如何甄别与该类报警相关的所有报警类,将显得至关重要。

从报警矢量相关性的定义可知,与报警A相关的报警应该是在报警A发生后发生的报警,因此可用时间序列拓扑图进行描述,如下图4所示。

图4

新窗口打开|下载原图ZIP|生成PPT
图4与某类报警A相关的报警类分布示意图

Fig.4Sketch map of the correlation between alarm A and others



图中原点表示某类报警A;实心圆点表示与报警A相关的点;空心圆点表示与报警A无关的点;横轴表示时间距离t;圆点与原点A之间的距离表示报警A发生后,该点代表的报警类与报警A发生时的时间维度上的欧氏距离。

理论上,当选取恰当的时间间隔T后,即可涵盖与报警A相关的所有报警类。

假定时间间隔T已知后,可按如下算法获取报警A的矢量相关报警集合CA(与报警A相关的报警类组成的集合):

(1)从大量的报警数据中获取报警A发生的集合CAt=(Ati|i=1,2,3,...,N),Ati表示在ti时刻A类报警发生了一次;

(2)创建与报警A存在矢量相关性的报警集合CA=?,及相对应的关联报警发生次数集合Ccount=?;

(3)若集合CAt=?,则跳转到步骤(8);否则,选取集合CAt中第一个元素At1,即报警A在t1时刻发生的报警实例;

(4)从报警数据中查询得到t1时刻到t1+T时刻发生的所有的报警集合Calarm={a1,a2,...an,且aiaj,1≤in,1≤jn,i j};约定:若从t1时刻到t1+T时刻某报警ai重复发生多次,即报警发生次数≥2,则只记录一次;若从t1时刻到t1+T时刻之间报警A又发生了,则只统计报警A两次发生之间的报警;

(5)若集合Calarm为空,则从集合CAt中去掉元素At1,之后跳转至步骤(3);否则,从集合Calarm中选取第一个元素a1;

(6)查询报警a1是否在矢量相关集合CA中。若不在,则将报警加入到集合CA中,同时在计数集合Ccount中追加一个新元素1;否则,查询报警a1在集合中CA的位置i,并将集合Ccount中的第i个元素ci加1;

(7)从集合Calarm中去掉a1,跳转到步骤(5);

(8)若集合Ccount不为空,则可统计与报警A相关报警的相关度。依次计算集合Calarm中每个报警元素ai在报警A发生时出现的概率P(ai|A),$P(a_{i}|A)=\frac{c_{i}}{N}\times 100\%$ (1 ≤ in,ciCcount,N是集合CAt的度),由P(ai|A)构成新的报警A相关度集合PA;

(9)相关度校正。若集合PA ≠ ?,则可选取合适的经验值Ps(0≤Ps<1),去除集合PA中元素值Pi<Ps的元素,同时去掉集合Calarm中对应的元素ai;

(10)若Calarm ≠ ?,则集合PA ≠ ?(集合PA与Calarm同步,且元素一一对应),集合Calarm即为与报警A矢量相关的报警集合,集合PA为与集合Calarm中元素一一对应的报警矢量相关度。

2.3 时间阈值T

不难理解,上节算法中提及的时间阈值的含义是:报警发生后,它的影响在时间上能传递“多远”。

时间阈值的选取,将直接关系到报警分析模型的时效性与准确性。

很明显,对于一个连续运行的系统,选取不同的时间间隔(时间阀),与某一类报警相关的后续报警类数目变化很大。理论上时间阈值越小,相关报警数据量将减少,计算量越小,时效性越好;时间阈值越大,相关报警数据量越多,计算量越大,时效性越差;而且,每类报警的时间阈值应该是不同的。

一般情况下,可根据报警的具体情况,依据经验进行设定。在一个稳定运行一段时间的系统,某类报警发生时,它的影响能传递多远,是可以依据系统特性以及运行管理人员的经验获取得到的。

当然,若没有恰当的经验值可供参考,可按如下两个公式选取时间阈值T

T = min(ti+1 - ti),
ti来源于报警A的发生集合Cti = (Ati|i = 1,2,...,N)

T = max(ti+1 - ti),
ti来源于报警A的发生集合Cti = (Ati|i = 1,2,...,N)

公式(7)时间阈值T的计算是基于如下假定:假定报警A连续前后两次发生的间隔内,与之相关的报警应该是发生的;而公式(8)时间阈值T的计算是则是假定相关报警不一定发生,以大量计算作为代价,获得尽可能穷尽相关报警为目标。

2.4 报警相关度校正值Ps

应用上面的算法,从报警大数据中可计算获取的某类报警类的矢量相关报警,尽管已经利用“时间阈值”做了过滤,但是经试验数据检验(参见下章“案例研究”),发现数量还是不少。如果相关报警数量过多,可能会影响在运行中应用的时效性和准确性,所以需要依据相关度校正值Ps对做进一步取舍。

如果我们获取了足够多的数据量,可以做如下假设:在某类报警发生时,若与之相关的报警出现的条件概率极低,则可假设该相关报警是偶然发生的,与该报警无关,可以忽略。即使事实上是相关的,鉴于从历史数据上分析得到发生的概率极低,也可视为无关。

算法中用来取舍的报警相关度校正值Ps至关重要。从某种意义上来看,校正值Ps是反应与报警A相关的所有报警中运行系统所关注的相关程度,或者说是报警A的重要程度。若Ps选取较大的值,则是关注与报警A相关性较大报警,属粗放型,显示报警A关联面不是很大;反之,则是关注与报警A相关性尽可能多的报警,细致入微,显示报警A关联面可能很广。

3 案例研究

3.1 数据

本文选取某火电厂2014年1月至2014年8月的14万余条报警数据,采用上述算法进行了试验。部分数据样本如下表1所示。

Table 1
表1
表1部分数据样本列表
Table 1Part of test data
注:tag_id:测点编号;
time_stamp:时间标签;
alarm_type:报警类型;
alarm_prio:报警优先级;
point_dscr:测点描述信息;
tripped_val:报警触发值;
ACK_STAT:报警触发/回归标识,ALM表示报警发生,RTN表示报警处理完毕。

新窗口打开|下载CSV

3.2 算法在实验数据上的应用

在我们获得工业报警数据后,可针对这些数据采用上述方法进行测试实验,挖掘报警之间的相关关系。

3.2.1 报警聚类

采用“基于权重的多态时序通用型相似度算法”,依据测点ID、报警类型和优先级,其中优先级选取低低报警(-2)、低报警(-1)、高报(1)和高高报(2),从给定的数据集中进行聚类分析,可得到该数据集的报警类。聚类结果详见表2

相较于传统报警聚类,只做报警ID和报警与否的分类,将会得到更详尽而精确的报警结果。如此,将更有利于下一步的分析——查找报警之间的相关性。

3.2.2 报警相关性分析

利用报警相关性获取算法,依次查找每个报警类的相关报警;矢量性依据报警在时间上发生的先后关系来定。

时间阈值T取公式(7)的值。

报警相关度校正值Ps取60%,结果如下表3所示。

3.3 算法计算结果

3.3.1 报警聚类结果

应用上述“基于权重的多态时序通用型相似度算法”的改进型凝聚层次聚类算法,得到的报警类部分结果如下表2所示。

Table 2
表2
表2报警聚类结果列表
Table 2Result of alarm cluster
注:Times:发生次数;
avg_dura:报警平均持续时长,从报警发生到报警消除所经历的时间;
offDelayTime:报警消除延迟时间。

新窗口打开|下载CSV

3.3.2 报警矢量相关性结果

采用上述算法,分析得到的部分报警矢量相关结果如下表3所示。

表3中只列出了报警发生次数在10次以上,相关度大于60%的数据,即报警相关度校正值Ps取60%。之所以选择报警次数多余10次的数据,是因为考虑到在大量报警数据中,只发生过几次的报警不具有统计性。

Table 3
表3
表3报警矢量相关结果列表
Table 3Result of alarm vector correlation
注:alarm0_id:第一类报警alarm0的ID;alarm0_times:第一类报警alarm0发生次数;
alarm0_duration:第一类报警alarm0平均持续时长;alarm1_id:由第一类报警alarm0引发的第二类相关报警alarm1的ID;
alarm1_times0:在alarm0报警期间,alarm1发生的次数;alarm1_times1:在alarm0报警解除后,alarm1发生的次数;
time_span0:两类报警alarm0和alarm1发生的前后间隔——alarm1发生时距离Alarm0开始的时刻。该值是一个加权平均值,即每次报警alarm0发生时,alarm1延后发生的时间的平均值,计算公式如下:(alarm1_times*time_span0+alarm1_times)/(alarm1_times+1);
time_span1:两类报警发生的前后间隔——alarm1发生时距离Alarm0解除时的时刻。该值也是一个加权平均值,即每次报警alarm0解除时,alarm1延后发生的时间的平均值,计算公式如下:(alarm1_times*time_span1+alarm1_times)/(alarm1_times+1);
alarm0_alarm1_times:报警alarm_id0引发报警alarm_id1发生的次数;
proba:当alarm0发生时,alarm1发生的概率。即该值计算方式如下:alarm0_alarm1_times/alarm0_times。

新窗口打开|下载CSV

3.4 报警矢量相关性结果的二维矩阵展示

报警矢量相关性展示可以是图形、列表等多种方式,都可以展示某一类报警和与其相关的其它报警之间的关联关系。

表3以列表的方式对报警矢量相关性进行了展示,但是很明显,列表这种罗列的展示方式在矢量相关性的方向性特点的展示上明显不足。为了更准确、直观反映报警之间的矢量关联关系,可借助二维矩阵进行展示。

二维矩阵展示报警类之间的矢量关联关系的规则如下:用二维矩阵行和列表示报警类集合中的元素;矩阵中的数值表示行对应的报警类和列对应的报警类之间的关联度(条件概率),即矩阵中的某个值表示该值所在行对应的报警类发生后,所在列所对应的报警类有多大概率会发生。若值为0,表示无关;矩阵主对角线的值是100,即表示报警类对自己本身的影响是100%。

由上述二维矩阵建立规则可知,所建立的二维矩阵应该是一个非对称矩阵,可以很好地表达报警类之间的矢量关联关系。

上述实验结果的二维矩阵展示如图5所示。

图5

新窗口打开|下载原图ZIP|生成PPT
图5报警矢量相关性的二维矩阵展示图

Fig.5Representation of alarm vector correlation with two-dimensional matrix



4 结论

本文依据工业报警数据的时序特性和报警特点,在传统二元序列的基础上,首次提出了基于权重的多态时序通用型相似度算法,改进了传统的凝聚层次聚类算法。同时,首次提出了报警矢量相关性的概念,并指出采用条件概率形式既可恰当表述矢量相关性的大小,又可以表示其方向性;而且在上述基础上,提出了一种针对大批量报警数据的挖掘报警类之间矢量相关性的算法。

该方法为时间序列报警间关联关系的挖掘提供了量化分析依据。

经生产数据试验表明,该算法确有实效。文中最后还对报警矢量相关性的表示进行了探讨,提出了借助二维矩阵形式可以直观展示此种关联关系。

利益冲突声明

所有作者声明不存在利益冲突关系。

参考文献 原文顺序
文献年度倒序
文中引用次数倒序
被引期刊影响因子

Izadi I, Shah S L, Shook D S, Chen Tongwen. An introduction to alarm analysis and design/The 7th IFAC Symposium on Fault Detection, Supervision and Safety of Technical Processes
[C]. Barcelona, 2009.

[本文引用: 1]

Engineering Equipment and Materials Users' Association (EEMUA). EEMUA Publication 191: alarm systems—a guide to design, management and procurement
[S]. London, 2007.

[本文引用: 1]

Izadi I, Shah S L, Shook D S, Kondaveeti S R, Chen Tongwen. A framework for optimal design of alarm systems//The 7th IFAC Symposium on Fault Detection, Supervision and Safety of Technical Processes
[C]. Barcelona, 2009.

[本文引用: 1]

Rothenberg D H. Alarm Management for Process Control: A Best-Practice Guide for Design, Implementation, and Use of Industrial Alarm System [M]. NewYork: Momentum Press, 2009.
[本文引用: 1]

Choi Seung-Seok, Cha Sung-Hyuk, Tappert C C. A survey of binary similarity and distance measures
[J]. Journal of Systemics, Cybernetics and Informatics, 2010,8(1):43-48.

[本文引用: 1]

李鑫尧. 监控报警间关联性挖掘方法初探
[J]. 中国金融电脑, 2020,4:58-62.

[本文引用: 2]

朱群雄, 高慧慧, 徐圆. 工业过程报警管理研究进展
[J]. 自动化学报, 2017,43(06):955-968.

[本文引用: 2]

Faith D P. Asymmetric binary similarity measures
[J]. Oecologia, 1983,57(3):287-290.

DOI:10.1007/BF00377169URLPMID:28309352 [本文引用: 1]
Asymmetry in binary data arises when one of the two states (e.g. state

Masaru N, Fumitaka H, Tsutomu T, Hirokazu N. Event correlation analysis for alarm system rationalization
[J]. Asia-Pacific Journal of Chemical Engineering, 2011,6(3):497-502.

DOI:10.1002/apj.575URL [本文引用: 1]
Event correlation analysis is a data-mining method that detects statistical similarities among discrete occurrences of alarms or operations. By grouping correlated events based on degree of similarity, a policy for reducing alarms and operations can be designed more easily than by analyzing individual alarms and operations. In this study, event correlation analysis was applied to event log data at an Idemitsu Kosan ethylene plant in Japan to reduce the number of alarms and operations, where events are defined by both tag names and types of tag. The obtained results were helpful for identifying unnecessary alarms and operations, such as sequential alarms and routine operations, buried in a lot of noisy plant data. (C) 2011 Curtin University of Technology and John Wiley & Sons, Ltd.

李元, 章展鹏, . 非规整报警的相关性分析方法
[J]. 化工学报, 2015,8:3153-3160.

DOI:10.11949/j.issn.0438-1157.20150803URL [本文引用: 2]
报警管理在化工过程安全中具有重要地位,而报警相关性挖掘是报警管理的重要组成部分。在传统的基于凝聚层次聚类的报警相关性挖掘方法基础上,提出非规整报警相关性计算方法,弥补了传统方法难以处理延迟时间变化与非对称情况的不足。同时以概率形式表示相关性大小,使不同位点之间的相关性计算结果具有可比性。经过仿真案例与工厂真实生产案例测试,该方法能够有效挖掘过程中出现的报警相关性,进而指导报警系统合 理化。

张振宇, 林杰, 苗润生. 犹豫模糊语言凝聚式层次聚类算法与应用
[J]. 统计与决策, 2019,21:71-74.

[本文引用: 2]

王海清, 何乃翘, 赵竹. 基于数据驱动的石化装置静态报警抑制策略研究
[J]. 安全与环境学报, 2017,17(05):1705-1709.

[本文引用: 2]

李增乐. 数据驱动的多变量报警系统分析与设计
[D]. 大连理工大学, 2019.



梁宇. 面向专用网络拥塞诊断的关联规则挖掘算法研究
[D]. 电子科技大学, 2020.



李可一. 基于报警关联的多步攻击场景挖掘方法的研究与实现
[D]. 北京邮电大学, 2019.



李俊杰. 基于报警时间序列挖掘的报警关联分析方法
[D]. 北京化工大学, 2018.



赵宇皓, 郝晓光, 耿少博, . 智能变电站二次设备安全措施在线预演及防误预警的研究与实现
[J]. 电力科学与技术学报, 2020,05:173-178.

[本文引用: 1]

滕予非, 冯世林, 张真源, . 基于数据驱动的500 kV高压并联电抗器过流误报警在线判别方法研究
[J]. 电力系统保护与控制, 2019,3(47):146-153.



李俊杰, 杨博, 李宏光. 基于报警时序信息挖掘的报警关联分析方法
[J]. 信息与控制, 2019,48(01):29-34.

[本文引用: 1]

相关话题/数据 序列 系统 计算 工业