1.清华大学电机工程和应用电子系,北京 100084 2.云南工业大学 电力工程学院,云南省昆明市 650051
1 引言
水电机组设备庞大、结构复杂、诱发故障的原因很多。其常见故障有:①机组轴承故障;②机组振动故障(根据振动诱发原因,水电机组振动大致可分为机械振动、水力振动、电气振动);③水轮机汽蚀与泥沙磨损;④水轮发电机故障。
确立恰当的知识表示和推理方式是研制一个故障诊断专家系统的良好基础。迄今为止,设备故障诊断知识的表示多采用产生式规则,但对大型机组而言,大量诊断知识难以归纳为规则。实践证明[1]
纯粹使用产生式规则表示法描述故障诊断的知识远不足以反映引起机组故障原因的全部征兆。近年来,人们提出了一些将规则和神经网络集成表示的方法[1~3],这些方法大多是在规则库的基础上将规则转化为网络表示,对于实时性要求较高、诊断规则较少和推理策略相对稳定的诊断系统具有一定的优势。然而,对于包含水、机、电等多方面因素的高度复杂的水电系统,上述集成方法也暴露出复杂故障诊断困难、知识库的开放性和透明度较低、人机交互能力差等方面的不足。
为充分满足水电机组故障诊断知识的多样性和复杂性对知识表示的要求,本文提出适用于水电系统故障诊断的知识表示方法。利用产生式模糊规则表示、可视化故障知识表示及神经网络表示等多种方法综合集成的知识表示方法,应用于某水电厂水电机组故障诊断专家系统实践中,取得了良好效果。
2 集成知识表示方式
2.1 产生式模糊规则表示法
将水电机组故障诊断领域专家及相关书籍中能用自然语言描述的普通诊断知识归纳为模糊规则,置信度由领域专家给出,典型振动故障规则如
若 0且f=fn (1)
则“定子椭圆度大”,规则置信度为0.8(一般取值范围为0~1)
式中 Az为振动幅值;If为励磁电流;f为振动频率;fn为转速频率。
规则中出现的导数则反映了振动与各状态量之间的相互关系。
为了获得导数关系,可用式(2)近似计算一时间序列的离散采样数据
(2)
式中 Δyi=yi-yi-1,Δxi=xi-xi-1,取算术平均值可有效地减小采样信号的测量噪音干扰。
根据机组故障特点,将诊断规则划分为多个相对独立的规则子集,形成各类规则库,以分类处理较为简单的单一故障,如可将振动故障规则划分为电气振动类规则库、机械振动类规则库和水力振动类规则库。此外,将相互耦合较强的规则单独成库,以处理较为复杂的多重故障。再在分类规则库中对规则进行分层组织。对规则库进行分类分层组织,能减少推理搜索空间,提高推理效率,同时亦有利于实现对规则库的增减和修改,提高系统的开放性和透明度。
2.2 可视化故障知识表示法
人类知识积累的过程一般是从图形和图像开始,并逐渐走向抽象。随着计算机技术的发展,使得我们可以采用图表、声音、图像作为知识的载体,即可视化知识表示。一般来说,一个水电厂的故障记录大多为某些常见故障记录,其故障记录以文字、数据、图表、曲线、照片、录像等多种形式组成。传统知识表示方法仅适用于利用文字和数据方面的知识信息,而在声音和图像等方面知识信息的处理上却表现出明显不足,可视化知识表示方法的引入为表示和利用这些知识信息提供了条件。
本文通过对典型故障的历史记录中有关声音和图像部分的信息进行整理、剪辑和压缩处理,形成大量后缀名为Mov、Avi、Wav等多媒体文件,以实现可视化故障知识表示。然后,针对每一个典型故障设计一个DLL(动态链接库)文件,每一个DLL设置一个入口指针以便于外部的故障诊断专家系统主程序利用API函数进行调用。关于某一个典型故障的各种多媒体文件可看作为隶属该典型故障DLL文件的资源文件,多媒体文件的调用则通过OLE(对象的嵌入和链接)方法在DLL内部的交互式窗口中实现。至此,我们通过利用动态链接的方法和多媒体技术,为电厂中典型故障设计了一个可视化的典型案例库。
实际上,多媒体文件通常比较庞大(以Wav声音文件为例,一个可播放10s的录音文件约有1MB),OLE和DLL方式的引入有利于发挥Windows高级编程的优势,避免可视化文件占用内存过大的缺点,提高专家系统的整体运行速度,满足诊断实时性的要求,确保可视化知识表示在实际系统中得以实现。可视化故障知识表示的引入既有利于增强整个系统知识的表达能力,又为专家系统提供了更为直观、形象、方便的解释方式,同时也为用户培训和实习提供了一条良好的途径。
2.3 神经网络知识表示法
传统知识表示方式,如框架、规则和剧本等表示方式都只能处理类似人类自然语言的逻辑量,并不擅长表示大量的、多路的、数值性的变量,而水电厂中许多诸如振动、温度、流量、水头、效率、尾水脉动、电流和功率等变量的记录往往是进行下一次诊断的极为有用的知识信息。因此,如何对这些知识信息进行恰当地表示和推理一直是困扰传统故障诊断专家系统的一个主要难题。
神经网络的引入为解决以上难题提供了一个有力的工具。本文选择BP(Back Propagation)和PNN(Probabilistic Neural Network)前馈模型作为水电机组数值性知识的载体和指示故障分类的故障分类器。
BP网络是一种已成功获得广泛应用的
ANN前馈模型,其训练方法是典型的外监督 (outer-supervised) 学习。可以证明[4],即使在模式空间中各样本分布相交错的复杂区域内,亦只需三层BP前馈网络就可构成任意复杂的故障分类判别映射。现采用三层BP网络作为可视化典型案例库的故障分类器,其输入节点数等于经过信号预处理后的故障特征个数n,隐层节点数视训练的具体情况决定,输出节点数等于典型案例库中的故障个数K。每一个典型故障对应一个K维导出矢量ui
ui=(0,…,0,1i,0,…,0)i∈K(3)
PNN又称为概率神经网络,其训练方法是典型的自监督(self-supervised)学习,该模型特别适用于分属各个模式的训练样本较少,样本的分类模式属性已知的情况,因此该模型被我们选为类规则库的模式识别分类器,以尽可能全面地覆盖整个故障集。
用于模式识别的PNN,输出层的输出为模式样本后验概率估计的充要条件是隐层单元函数为Parzen窗密度核函数[4]。令X为任一随机输入向量,为某一故障模式的训练样本,如果将X、Xi都归一化成单位矢量,则PNN的第i个节点的输出yi可以表示为
(4)
式中 Hi为PNN中第i个类别对应的隐节点数;K(。)为Parzen窗密度核函数;α为平滑参数;Wi表示第i个需要分类的模式集合;P(X/Wi)为输入矢量的类条件概率。
如果有m个故障模式类别, PNN就有m个输出节点,由式(4)可知,网络的隐层单元数正好等于参加训练的总样本数,输出yi的结果即为随机输入矢量的类条件概率。PNN无需训练,网络能根据每次输入样本的特性,由类别属性标记进行自监督,不断调整网络的连接权值,直至达到精度要求,所以,PNN能够满足训练的实时处理要求。
笔者曾尝试直接用机组历史故障记录中的时序数据对多种神经网络模型进行训练,训练结果均不理想,以某水电厂的某一机组的水轮机振动监测系统为例,非电量监测量(振动、摆度、导叶行程、水压等)就有19路信号,用多层BP网络和自组织映射网络Kohonen模型对上述监测量直接进行故障特征提取,均无法满足收敛性要求。因此在实际运用中,采用信号处理方法(如滤波、FFT、Wavelet分析等)对表征机组状态的故障数据进行预处理和故障特征初步提取,然后再将预处理后提取的特征量作为神经网络的输入。以振动故障诊断为例,首先对振动采样信号进行了滤波处理,然后对其进行FFT分析,最后再将振动信号的频谱作为PNN分类器的训练样本,表1和表2列出了振动故障PNN分类器所用的部分训练样本和测试样本。经过信号预处理后,神经网络的输入节点数大量减少,收敛能力明显增强。由表2可见,训练后的PNN对训练样本和测试样本都能较好地识别。应该指出,神经网络的分类和辩识能力取决于网络的学习水平,而仅仅依靠电厂的历史故障记录进行训练是很难完全覆盖整个故障集的,应不断用新的故障样本对神经网络进行训练更新。
表1 振动故障PNN分类器采用的部分样本和测试样本的输入量
Tab.1 A portion of input array of training and testing patterns of PNN
表2 振动故障PNN分类器采用的部分样本和测试样本的输出量
Tab.2 A portion of output array of training and testing patterns of PNN