基于免疫算法的水轮发电机组振动故障检测
2021-07-20吾买尔·吐尔逊穆哈西夏庆成
吾买尔·吐尔逊 穆哈西 夏庆成
摘要:故障诊断技术是水轮发电机组安全稳定运行的关键技术之一。针对水轮发电机组传统故障诊断方法诊断效率较低的问题,提出了一种基于免疫算法(Immune Algorithm,IA)的水轮发电机组故障诊断方法。对已采集好的水轮发电机组故障样本数据进行预处理构成故障类型编码,并设置算法的相关参数,在此基础上运用MATLAB开发的免疫算法程序进行故障预测。结果表明:采用模块化编程技术来开发程序,具有操作简单、便于扩容等优点;程序的计算结果比较接近实际的故障类型。
关 键 词:
机组振动; 故障检测; 免疫算法; 水轮发电机组
中图法分类号: TV7
文献标志码: A
DOI:10.16232/j.cnki.1001-4179.2021.05.033
水能是世界上最早开发的可再生能源,也是人类最早使用的机械能“生产机”[1]。水力发电在20世纪初期得到迅速发展,目前它仍然是主要的生产电能的可再生能源之一。国际能源署(International Energy Agency,IEA)2019年初发布的相关数据显示,2018年,全球水力发电量已达42 392亿kW·h,其中中国以11 027.5亿kW·h的发电量位居首榜[2]。改革开放40多年来,中国水力发电行业取得了突出的成绩,水电技术不断成熟,水电政策不断完善,水电设备制造国产化水平不断提升,为全球的绿色能源发展贡献着正能量[3]。
水轮发电机组是水力发电的核心部件,它的故障不仅能导致巨大的经济损失,还可能会带来灾难性事故。2009年8月17日,俄罗斯舒申斯克水电站由于水轮发电机组振动幅值超标却没有按照规程减少负荷亦没有停机,导致了严重事故,造成直接经济损失约130亿美元[4]。因此,通过研究水电站水轮发电机组设备状态监测与故障诊断技术,能及时掌握机组的运行状态,预测故障,有效降低设备损坏率,减少维护成本,提高水輪发电机组运行的安全可靠性[5-6]。
水轮发电机组是结构复杂的大型设备之一,工作环境复杂,故障表现形式也千变万化。其中振动对水轮发电机组的影响很大,大约80%的水轮发电机组故障都反映于振动信号中[7],水轮发电机组在运转过程中往往产生交变载荷,振动不断受到机械、电磁、水力等因素的联合影响。在故障出现初期,在振动摆度幅值上很难表现出来,通过常规的在线监测系统根本无法及时发现故障。本文介绍了基于人工免疫算法的故障检测方法的步骤,并针对国内托海水电站由水力振动引起的水轮机故障开展检测。
1 人工免疫算法
免疫算法(Immune Algorithm,IA)是人工免疫算法的简称,它是模仿生物学的免疫系统机制,利用免疫系统原理及其模型启发而提出一种智能搜索算法[8]。它不仅可以解决性能优化问题,还可用于解决复杂的非线性优化问题。在免疫算法中,需要解决目标函数及其约束条件代替生物学免疫系统的抗原问题,而对于用函数的解来代替免疫系统的抗体,并没有统一的模型和算法结构,目前常用的有免疫遗传算法、免疫规划算法、免疫策略算法、免疫克隆算法等[9]。
1.1 免疫算法的基本原理
免疫算法的工作原理和计算流程如图1所示。
(1) 抗原识别及参数设定。将需要解决的问题变成符合免疫系统处理的抗原形式,输入目标函数及其约束条件;设定群规模、迭代次数、交叉概率及变异概率等相关参数。
(2) 产生初始化抗体群。将抗体的群体定义为问题解的集,程序运行时先检查记忆库,如果记忆库为空,则随机产生初始抗体群体;否则,从记忆库中选择初始抗体群体,不足部分会随机生成。
(3) 计算亲和力。按给定的条件,计算抗体和抗原之间的亲和力。亲和力越高,说明问题的解越好,亲和力计算也称为适应度评价。
2 实例分析
水轮发电机组运转过程中,所发生的故障会在对应的振动信号中体现出来[11]。本文将采用MATLAB开发的免疫算法程序,对拓海水电站其中一台水轮发电机组在一定的水头和负荷条件下发生的故障进行诊断。
2.1 样本数据和参数设计
首先对已经采集好的故障数据进行预处理,通过去噪、筛选得到故障样本的数据,具体数据如表1所列。
程序运行之前,先对免疫算法的群体大小、迭代次数、交叉概率、变异概率等参数进行初始化,如表2所列。
2.2 部分代码
采用函数式编程方法来开发此免疫算法程序,用二进制编码方式来表达目标函数和它的解。
根据给定的条件,先构成故障样本数据矩阵并对算法的相关参数进行初始化,再进行相关计算,主要的计算函数如下。
(1) 亲和力计算函数calqinheli():主要功能是用二进制编码方式对群体中每个个体的亲和力进行相关计算。
(2) 交叉计算函数jiaocha():主要功能是对抗体群里选中的成对个体,以交叉概率替换它们之间的部分染色体,生成新的个体,通过它可以有效提高免疫算法的全局搜索能力。
(3) 变异计算函数bianyi():主要功能是对群体中的所有个体按事先设定的变异概率判断是否进行变异,若需要对个体进行二进制变异。通过变异函数促进免疫算法的局部搜索能力。
程序的部分计算代码如下:
……
globalqunti
global length
……
globalyangben;
N=10; %每个染色体段数
M=100;%迭代次数
qunti=20;%群体大小
pc=0.8;%设置交叉概率,pm=0.1; %设置变异概率
……
%故障类型编码
yangben =[1.912,9.533,1.534,16.742,12.731,8.332;0.767,9.551,1.498,14.759,11.501,7.691;0.817,9.041,1.486,14.321,11.112,7.497;1.432,8.911,1.519,15.748,12.009,7.901];
%待检测的故障数据编码
Ceshi=[0.661,8.874,1.509,13.002,10.517,6.981];
……
for i=1:4
%判断每种模式适应值
for k=1:M
%用二进制编码方式计算目标函数
[qinheli]=calqinheli(pop,i); fitvalue=calfitvalue(qinheli);
%计算群体中每个个体的亲和力
avg(k)=sum(fitvalue)/qunti; newpop=selection(pop,fitvalue);
……
qinheli=calqinheli(newpop,i);
newpop=jiaocha(newpop,pc,k);
%交叉
qinheli=calqinheli(newpop,i);
newpop=bianyi(newpop,pm);
%变异
qinheli=calqinheli(newpop,i);
……
程序运行结果如图2所示。从图2可以看出:待诊断的故障属于故障1的概率为0,属于故障2的概率为70%,属于故障3的概率为95%,属于故障4的概率为53%。
3 结 论
故障诊断技术是提高水轮发电机组运行效率、进行预知维修及科学管理的重要基础。本文提出了一种基于免疫算法的水轮发电机组故障诊断方法,针对托海水电站其中一台机组在一定水头和负荷条件下发生的故障运用该方法进行实际诊断,可以得出如下结论。
(1) 在人工免疫算法的理论基础上,讲述了水轮发电机组故障分类的计算步骤,计算时要适当地设置群体大小、迭代次数、交叉概率、变异概率等参数的初始值。
(2) 利用MATLAB开发了水轮发电机组故障分类程序,它主要包括样本数据的预处理、免疫算法相关参数的设置和人工免疫计算等部分。只要按要求输入样本数据,合理设置相关参数,能得到满意的结果。
(3) 利用该程序对水电机组的典型故障进行预测时能得到满意的结果,但是对复杂的故障还是存在一些故障难以区分的情况,这主要是程序难以区分复杂故障所对应的特征量,这也是下一步开展深入研究的方向。
参考文献:
[1] PAUL BREEZE.Hydropower[M].Berlin:Elsevier Academic Press,2018:1-12.
[2] International Energy Agency.Global Energy & CO2 Status Report 2018[EB/OL].https:∥www.iea.org/geco /,2019.3.26.
[3] 肖新建.改革開放40年能源发展成就报告[EB/OL].http:∥www.jyteg.com/zixun/5142.html,2018.9.2.
[4] 李运辉,杨立信.俄罗斯萨杨舒申斯克水电站事故原因分析[M].郑州:黄河水利出版社,2010:1-10.
[5] 陈珊珊,杨耿杰.水轮发电机组振动故障诊断方法综述[J].电气技术,2019,20(6):1-5.
[6] 王富超.水轮发电机组振动监测与故障诊断系统的设计与实现[J].中国设备工程,2018(14):98-99.
[7] 罗萌.水轮发电机组振动故障诊断与趋势预测研究[D].武汉:华中科技大学,2017.
[8] 刘韬著.人工免疫系统及其数据挖掘应用研究[M].徐州:中国矿业大学出版社,2010:1-20.
[9] 马佳,石刚.人工免疫算法理论及应用[M].沈阳:东北大学出版社,2014:32-60.
[10] 田玉玲,段富.免疫优化算法、模型及应用[M].北京:国防工业出版社,2013:51-76.
[11] 王峰,白转伟,董增寿,等.基于人工免疫算法的齿轮故障诊断研究[J].太原科技大学学报,2017,38(4):278-282.
(编辑:赵秋云)