唐杰阳,唐 凡,杨 东,丁仁山,石东明,章逸舟,孙国强
(1.雅砻江流域水电开发有限公司,四川 成都 610051; 2.河海大学 能源与电气学院,江苏 南京 210098)
水电站计算机监控系统接入了机组运行过程中产生的海量数据[1]。数据结构复杂,形式多样[2]。其中,包含能够反映出电站设备、线路异常或故障运行状态的监控告警信息,此类信息以非结构化的文本形式进行输出。利用计算机技术对这些文本数据进行分析与挖掘,能够实现水电站故障智能告警,为电力生产安全稳定运行提供技术保障。
近年来,随着计算机技术的不断发展与跨行业融合,水电站故障诊断技术已逐步向智能化方向发展。专家系统是研究最早的一种故障诊断方法[3],文献[4]利用专家知识与工程经验,构建知识库,生成水电站故障诊断专家系统,为机组运行提供技术指导。由于故障事件类型和告警信息特征之间的映射关系十分复杂,专家系统难以满足流域电站集控中心对监控运行的高精度与智能化要求。因此,基于机器学习的技术应用成为了行业研究热点[5]。文献[6-7]基于人工神经网络分别对水电机组振动信号和空化信号进行识别,作为故障诊断的依据;文献[8]利用支持向量机(Support Vector Machine,SVM)实现了机组故障智能识别;文献[9-10]对SVM模型进行改进,前者通过优化模型参数,提出一种改进SVM水电机组故障诊断技术,后者利用遗传算法提高了SVM模型的识别准确率。由于传统机器学习算法结构简单,难以充分学习告警信息中的隐含特征。深度学习作为机器学习的重要分支,通过扩展神经元层的方式构建出更加深层的神经网络,能够挖掘出输入数据中的隐含关键特征[11-12],从而提高模型的识别能力与泛化能力,但需要更大规模样本为模型训练做支撑。由于水电站运行状态稳定,难以获得足量历史样本,因此,如何将人工智能算法有效应用于水电站故障诊断中,仍是该领域的重要研究方向。
为了进一步提高水电站故障智能诊断技术的准确性与可靠性,本文提出一种将深度学习算法和规则推理相结合的综合智能告警方法。首先,介绍了前期数据处理流程,并以CNN为基础,构建基于深度学习的故障诊断模型;再针对水电站的特点,整合出几种较为宽泛的故障类型,利用历史样本训练CNN模型;然后结合基于专家经验的规则推理,完成对故障事件诊断结果的校核、细化与补充;最后,通过算例分析,证明了所提综合智能告警方法的可行性和优越性。
2.1 文本数据预处理水电站计算机监控系统采集的告警信息以中文文本形式进行输出,只能以标点或换行进行语句分割,这样不利于计算机理解和学习其中的语义,因此有必要先对监控信息进行预处理,将其转化为标准的数字化表达,才能用于CNN模型训练学习,挖掘其中的特征。数据预处理过程如图1所示。
图1 数据预处理过程
具体步骤如下:
(1)中文分词。中文分词目的是根据一定的规范将连续的中文语句划分成按字、词或词组构成的片段化序列。本文首先从水电站集控中心数据库中导出所有监控告警语句,从中提取出专业词汇,加入到通用分词词典中,构成水电站自定义用户词典,该用户词典包含了电站中的机组运行信息、设备名称、进出线路名称、设备状态等数据,将其作为分词参考的规范词组,利用Jieba分词工具的精确模式[13]生成由中文字词组成的片段化监控告警信息。
(2)停用词过滤。停用词过滤的目的是删除干扰信息以实现数据清洗。监控告警信息的分词结果中,会包含一些无意义的字词、不规范的字符或标点符号,这些信息不仅没有实质性含义,还会对后续模型训练起到不利的影响,属于干扰信息。从历史监控告警信息中提取出此类干扰信息,加入到通用中文停用词表中,生成完整的停用词表,进行停用词过滤。
(3)故障样本向量化。故障样本中的监控告警信息经过分词和停用词过滤后,转化为由字词组成的片段化文本,同时剔除了与特征学习无关的干扰信息。在输入CNN模型之前,还需要将其转化为结构化数据,实现模型对故障样本的特征提取与学习。
本文采用Word2vec模型对故障样本的进行向量化表达,将其转化为结构化数字形式。Word2vec是一款应用范围较广的词向量计算工具[14],其基本思想是通过神经网络完成由中文词语或符号等对象到实数向量之间的映射,同时能够保留初始对象中的语义信息。训练得到词向量后,对单条故障样本中所有词向量求平均,即可得到固定维数的故障样本句向量。
以单条故障样本为例,预处理过程如图2所示。
图2 故障样本
2.2 卷积神经网络原理CNN提出于1998年,是指一种至少在网络的一层将矩阵乘法替换为卷积操作的神经网络,具有局部感知能力强、权值共享等特点,能够有效降低模型训练参数量,从而提高复杂神经网络的计算效率。CNN作为分类器,最早用于解决手写体数字识别任务,经过改进可对向量化后的故障样本进行特征提取,并输出相应分类结果。本文构建的CNN模型结构共4层,分别为输入层、卷积层、池化层、输出层,如图3所示。
图3 CNN网络结构图
(1)输入层。输入层为一个由故障事件触发的监控告警信息排列的矩阵I∈Rs×n,矩阵每一行代表一例故障样本对应的句向量,行数s表示训练样本总数,列数n表示句向量维数。
(2)卷积层。设置行数h、列数与输入层矩阵I相同的卷积窗口W∈Rh×n,由上至下滑动卷积窗口,与输入层矩阵中的故障样本句向量依次进行卷积运算,得到初步卷积结果ri。卷积计算过程如下:
式中:i=1,2,...,s-h+1;Ii:i+h-1表示输入矩阵I从上到下第i个与卷积窗口相同尺寸的子矩阵;“·”代表矩阵点乘运算,即将两个矩阵相同位置元素相乘后求和。
每次卷积后通过激活函数进行非线性化处理,得到卷积层提取的特征:
式中:b表示偏置量,数值在模型训练过程中自动进行适应性调整;ReLU代表激活函数。卷积层计算得到的所有实数ci排列构成卷积层特征向量c,c∈ Rs-h+1。
为了更全面地提取故障文本特征信息,本文设置3种不同行数的卷积窗口进行卷积操作,每类卷积窗口选取一定数量的卷积矩阵,各卷积矩阵之间参数值各不相同,从而提取出更多隐含特征。
(3)池化层。池化层目的是对卷积层提取的特征向量进行降维,提高后续计算效率,同时发现并保留样本关键特征。通常采用最大池化和平均池化两种降维方法,本文采用最大池化法。对于每次卷积操作得到的特征矩阵c,取其中最大元素max(c)作为新的特征值。把池化操作后的所有特征值重新拼接得到池化层的输出向量p∈Rw,其中w表示卷积窗口的数量。
(4)输出层。池化层输出特征向量p经过softmax分类器与输出层实现全连接,得到故障样本的最终分类结果。
3.1 基于深度学习的故障智能诊断技术深度学习是一种大数据挖掘技术,能够从海量数据中提取信息特征,完成预测或分类任务。而在水电站中,除抽水蓄能电站外,一般水电机组启停变化频率低,处于长期稳定运行状态,因此发生严重事故的概率较低,无法从历史数据中获取足量重要故障样本,导致深度学习难以有效应用于水电站故障诊断领域。
针对此问题,本文首先梳理出水电站计算机监控系统能够检测到的所有异常或故障事件;然后基于工程需要,剔除无需主动告警的事件;再结合告警信息特点,将几种相似度高的事件归为一类,从而达到扩充各类别样本数量的目的,如可将发电机转子接地、发电机定子接地、发电机失步、发电机频率异常、发电机绕组故障等事件统一归为发电机故障;最后将各类事件样本按图2进行预处理后,结合所属类别标签,输入CNN训练出能够识别故障样本对应事件类型的知识映射模型。完整流程如图4所示。
图4 基于深度学习的故障诊断技术
3.2 基于规则推理的故障智能诊断技术基于专家系统的故障诊断技术是目前理论体系最为成熟、应用最为广泛的智能方法,规则推理是专家系统最常见的一种实现方式,主要依靠专业知识表示和逻辑推理机制对信息进行推理。它通过逻辑语言将该领域内专家知识与工程经验进行有机结合并概括性总结,存储于规则库中,在线诊断时,输入信息中的关键特征首先转化为符号语言形式的表达式,然后通过匹配规则库中的逻辑运算完成对结果的判断。
本文从实际业务出发,分析水电站计算机监控系统收集的所有告警信息,梳理信息特征,构建规则库。规则库建立了监控告警信息、信息特征和故障事件之间的对应关系,包含事件特征规则和事件规则,具体内容如下:
(1)事件特征规则。事件特征规则建立了监控告警信息与信息特征之间的映射,不同告警信息根据事件特征规则组合成一个特征。信息特征包括设备运行特征与采集量特征,设备运行特征如装置动作、开关联跳、压力低、温度高、开关拒动、备自投装置动作、切负荷、绝缘故障、故障跳闸、异常停机等;采集量特征如信号的动作、频动、瞬动或动作异常等。
(2)事件规则。事件规则建立了信息特征与事件类型之间的映射,每一类规则包含了事件成立的必要条件,如厂站出线永久故障的条件为线路跳闸、线路保护装置动作、线路开关重合闸失败同时成立。在一定时间内,告警信息中的所有特征严格满足规定的拓扑关系时,则判定事件发生,得到对应事件类型。
实际应用时,首先根据事件特征规则提取出故障样本中的所有信息特征,再根据事件规则将多个特征依据一定的逻辑关系进行组合,判断是否满足事件成立的条件,从而输出故障诊断结果。相比于CNN模型,规则推理得到的事件类型更为具体。
3.3 结合深度学习和规则推理的水电站综合智能告警方法深度学习通过数学运算发现数据中的隐含关键特征,并推理得到所属故障类型,在干扰信息较多的情况下仍有很大概率输出正确识别结果,但由于模型训练过程中参数学习具有随机性,并且历史样本有限、深度学习模型能够识别的事件类型不够全面,因此实际应用时会有误判、漏判等情况发生。规则推理的故障识别过程更为严格,但受技术经验与主观性影响,难以正确判别出复杂事件的类型。提出一种水电站综合智能告警方法,通过深度学习与规则推理的结合,实现两者诊断结果的互相校正,同时规则推理对深度学习的输出进行细化与补充。
该方法流程如图5所示,首先提取规则库中与深度学习模型输出事件类型相关的规则作为触发深度学习模型的条件,监控告警信息只有在满足该条件时,才会输入CNN进行识别。后续步骤如下:
图5 综合智能告警方法流程
(1)判断故障样本中的监控告警信息是否能够触发深度学习模型,若能触发,转步骤(2);若不能,则通过规则推理直接得到故障诊断结果。
(2)对故障样本进行预处理,并输入深度学习模型得到识别结果1,同时通过规则推理得到识别结果2,判断结果2是否属于结果1中的一类,如果属于,则输出结果2作为该故障样本的具体事件类型;如果不属于,人工介入分析判断,得到正确事件类型。
4.1 算例说明为验证方法可行性与有效性,本章选取某流域水电站集控中心计算机监控系统导出的2018—2019年历史监控告警信息进行算例测试。从中整合出6种重要事件类型,每种类型对应几种异常或故障事件,共提取5030例事件样本。从每类样本中随机选取5例,共30例作为验证综合智能告警方法的测试样本,其余取90%作为CNN及对比模型的训练集,10%作为模型测试集,并在训练过程中随机抽取训练集的5%作为验证样本,以优化模型参数。样本分布情况如表1。
表1 事件样本统计
4.2 模型设计与参数设置CNN作为深度学习算法,能够自动提取数据特征,在训练过程中,参数能够自适应调整。因此,词向量维度、卷积窗口尺寸等网络参数在适当范围内调整时,对模型分类效果影响不大。经过多次实验对比,CNN模型最优参数设置如表2所示。
表2 CNN模型参数
另外,通过python设置了三组对比实验,与本文所提方法进行比对分析。对比实验首先利用词频-逆文档频率(Term Frequency-Inverse Document Frequency, TF-IDF)方法[15]完成文本数字化表示,再分别采用朴素贝叶斯、SVM和随机森林算法训练事件识别模型。参数设置为:朴素贝叶斯模型中α=0.0001;SVM中C=1000,kernel=‘linear’;随机森林模型中n=150。
4.3 模型测试结果与分析CNN与对比模型测试结果如表3所示。将准确率作为评估模型分类效果的指标,即得到正确识别结果的样本数量占样本总数的比例。
表3 模型测试结果
由表3可以看出,本文提出的卷积神经网络模型,由于神经元层数更深,准确率显著高于传统机器学习分类模型。传统模型中识别效果最好的为随机森林分类器,准确率达到91.43%,其他机器学习模型识别准确率均未达到90%。而本文模型在随机森林分类器的基础上准确率提升约4%,达到了95.75%,能够保证故障事件的准确识别。
而在耗时方面,由于TF-IDF是通过简单的词频统计的方式进行词向量表达,Word2vec模型则需要以所有语料为基础,迭代学习各词语语义,并且卷积神经网络相比于传统机器学习模型结构更复杂、网络层数更深、参数更多,所以本文方法训练耗时更长,达到传统模型百倍以上,但模型采用的是离线训练的方式,因此较长的训练时长并不影响实际工程应用;虽然卷积神经网络的模型测试耗时最长,但500例样本测试用时也仅为5.89s,能够满足工程需求。所以,本文所提的基于卷积神经网络的故障诊断模型具有较好的应用效果。
4.4 综合智能告警方法测试结果与分析最后,将预留的30例测试样本按图5进行测试,结果如表4。
表4 综合智能告警方法测试结果
由表4可以看出,由于深度学习模型训练过程具有随机性,以及故障事件具有不确定性,尽管模型准确率较高,实际应用中仍有一定概率出现识别错误的情况。测试样本中,深度学习模型错误识别3例样本,有一定的误判率,并且由于每类具体事件对应样本量不足,无法直接根据事件类型训练模型。
综合智能告警方法在深度学习的基础上引入规则推理机制,准确对单一CNN模型的错误判别结果进行纠正,实现了规则推理与深度学习模型的互相校核;同时,规则推理能够直接推理得到具体事件类型,在校正模型识别结果的同时完成对事件类型的进一步细化,如将5例发电机故障样本准确细分为3例发电机转子接地与2例发电机定子接地。
对于几种对电厂运行影响较大但发生概率很低的事件,可整理出相应的映射规则添加于规则库中,通过规则推理的方式进行判别,从而作为深度学习模型的补充。本文通过规则推理的方式,辨识具体事件中与类别相关联的告警语句特征,从历史监控信息中判别出2例水淹厂房事件、3例顶盖水位过高事件和23例设备火灾事件。
4.5 实际工程应用为了测试所提方法的应用效果,本文最后以2017年6月10日该水电站“水库水位低于下限水位”发生的某信息密集时段21∶10—21∶50内所提取的告警事件作为应用对象,从该时段内2536条监控告警信息中提取出5个适用于本文方法的告警事件,经模型最终识别全部正确,识别时间为0.4 s。虽然在线应用样本量较少,但是本文方法在实际应用中的事件识别准确率已达到较高程度,具有良好的实际工程应用价值。部分典型应用事件识别结果如表5所示。
本文针对水电站的运行特点,提出一种结合深度学习和规则推理的综合智能告警方法,实现了水电站故障智能诊断。基于对某流域水电站集控中心监控告警历史信息的实验测试,所得结论如下:
(1)通过将几种关联性强的具体事件整合为一种宽泛的故障类型,能够有效扩展水电站故障样本量,从而使得深度学习方法在水电站故障诊断中有效可行,增强了诊断系统的泛化能力。
(2)本文提出的CNN模型对事件类别的识别准确率要优于部分机器学习算法,相比于朴素贝叶斯,支持向量机和随机森林三种算法,判别精度分别提高了11.86%,7.65%和4.14%。
(3)本文提出了一种结合CNN模型和规则推理的综合智能告警方法。首先利用了深度学习算法高效和高精度的特性,对告警事件类别进行预判断。并引入规则推理机制,完成对深度学习模型诊断结果的校正与细化,同时对模型无法辨识的小概率事件进行补充识别,有效保证了诊断结果的可靠性与诊断范围的全面性,实现了水电站异常或故障事件的智能自主识别。