自适应免疫遗传BP神经网络的高压发泡机故障诊断∗
2020-11-02梁宝峰张永林
梁宝峰 张永林
(江苏科技大学电子信息学院 镇江 212003)
1 引言
高压发泡机是整条聚氨酯连续生产线的核心设备,发泡系统的好坏直接影响到产品质量的优劣[1]。聚氨酯生产线长时间工作中,加之运行中自身的负载、周围环境等各种因素的影响,高压发泡机不可避免地会产生故障,及时准确地发现故障是保证生产安全运行的重中之重。
对于化工设备的故障诊断,常见的诊断方法有:小波变换法,频谱分析法,专家系统方法等。许多专家学者提出了许多新的诊断方法在常见诊断方法的基础上。高迎平等[2]针对化工设备的模糊性、动态性特点,采用模糊动态故障树对其进行预测诊断。陈波等[3]使用粒子群算法优化RBF 神经网络,解决了单一径向基函数泛化能力不足的缺点,在反应釜故障诊断中得到推广。
常规的BP 神经网络诊断法[4~9],在网络初始化的时候初始连接权值和阈值往往赋随机值,容易使BP 神经网络陷入局部极小点,减慢了网络的收敛速度,导致诊断精确性降低甚至误诊。为了解决上述问题,许多专家学者对BP 神经网络进行了改进或优化,比如雷方涛[10]在齿轮箱故障诊断研究中将小波分析和BP 神经网络相结合,故障辨识率大幅提高。陈美伊等[11]利用粒子群算法优化神经网络的结构参数,使模拟电路故障模型更加精确。康洪军[12]等利用粗糙集理论处理不确定数据的优势,对BP 神经网络进行优化,把优化后的网络应用于车载设备故障诊断并取得良好的效果。还有其他一些优化改进方法[13~16]不再赘述。
对于高压发泡机的故障诊断往常采用的是传统的BP 神经网络诊断法,本文用自适应免疫遗传算法改进的BP神经网络来对高压发泡机进行故障诊断,并通过Matlab仿真验证了该方法的有效性。
2 聚氨酯高压发泡机故障诊断建模
2.1 高压发泡机工作原理及常见故障
高压发泡机料罐中的A 料聚醚多元醇和B 料异氰酸酯分别在气压的作用下经过过滤器流入计量泵的低压侧入口,计量泵运转将低压料转换成高压料,高压料经高低压切换阀切换至混合头俗称枪头。启动注射后,枪头中大活塞提起,小活塞打开并切断A、B 料回流管道,A 料及B 料以很高的压力和流速注射到混合室,在混合室中高速相互碰撞达到均匀混合,并迅速流出枪头,枪头从原点出发左右摆动,喷入模腔发泡。注射时间结束后,小活塞关闭,A 料、B 料经各自回流管而返回料罐,同时大活塞向下运动,将混合室里的残料推出,从而达到自动清洗枪头的效果。
在高压发泡机的日常工作中主要常见的故障有:1)齿轮泵电机过载;2)出料阀故障;3)枪头摆动部分不平衡;4)计量泵故障;5)伺服驱动器故障;6)上料泵故障;7)枪头阻塞。
2.2 高压发泡机特征参数提取
现选取以下特征参数来诊断上述故障:a.电机电流;b. 电机电压;c. 电机转速;d. 伺服控制器电流;e.流量计超程;f.流量计值低于正常值;g.找不到原点;h.料位下限报警开关。本文BP 神经网络传递函数选择S型激活函数。由于S型激活函数的输入需要控制在[0,1]或[-1,1]范围内。本文利用线性归一化的方式对原始数据进行处理,保证其处于[0,1]范围内变化的同时,使得同一组样本中各数据的差异最大化,如下:
其中XJmax,XJmin为样本中XJ的最大值和最小值。
本文选择2018 年南通线聚氨酯高压发泡机的300 组历史数据作为网络的样本数据,网络的训练样本数据为270 组,网络的测试样本数据为30 组。表1 为7 种典型故障所对应的预处理后的训练样本。由于共有7 种输出,若用二进制位进行编码,编码位则为7 位,齿轮泵电机过载(1000000),出料阀故障(0100000),枪头摆动部分不平衡(0010000),计量泵故障(0001000),伺服控制器故障(0000100),上料泵故障(0000010),枪头阻塞(0000001)。
2.3 高压发泡机故障诊断的BP神经网络设计
BP 网络是一种按照误差逆向传播训练的多层前馈型神经网络,包括三个层级,分别为输入层、隐含层、输出层。神经元的传递函数一般选择S 型函数,输出量为连续值范围在0~1 间变化,不需要确定的数学模型就可以找到输入输出映射关系。采用反向传播学习算法对其权值进行调整。根据BP神经网络原理,虽然多隐层结构的网络有更高的精确度和更低的误差,但是由于网络的复杂度增加,训练时间也延长,因此本文采用单隐层的网络结构。输入层为8 个神经元,对应于电机电流、电机电压、电机转速、伺服控制器电流、流量计超程、流量计值低于正常值、找不到原点、料位下限报警开关8个特征参数。
表1 七种典型故障预处理训练样本
隐含层神经元个数根据Kolmogorov定理计算,具体格式为
式中:M 和N 分别对应隐含层和输入层神经元节点数,N的值为8,故M等于17。
网络的输出对应着高压发泡机的7 种典型故障:齿轮泵电机过载、出料阀故障、枪头摆动部分不平衡、计量泵故障、伺服控制器故障、上料泵故障和枪头阻塞。因此输出层神经元个数为7。学习速率取0.01,最大训练次数取1000,收敛精度取
0.0001。
神经网络的各项参数确定以后,BP 神经网络的初始权值和阈值取[-1,1]之间的随机数。
2.4 免疫遗传算法优化的BP神经网络设计
遗传算法的思想源于生物界的自然选择和遗传规律,把免疫思想和遗传算法相结合,不仅可以保留遗传算法原有的优良特性,还可以避免网络陷入局部最优解,并且能提高网络的收敛速度。免疫遗传算法中免疫疫苗的提取和注射是整个算法的核心环节,决定了能否产生优良的疫苗,影响着免疫遗传算法的执行效率。本文采用一种动态自适应提取和注射疫苗的方法,相比于往常采用的静态疫苗进化,不仅有更高的执行效率而且确保了疫苗的全局有效性。
BP 神经网络在训练时如果采用随机值对各层权值和阈值进行赋值,网络的收敛速度一般都比较慢。本文利用自适应免疫遗传算法来给BP神经网络的初始权值和阈值寻优,然后将该初始权值和阈值赋给BP神经网络。具体操作步骤如下:
Step1:抗原识别。待求问题的抗原即给定的目标函数和约束条件。在BP 网络优化的问题中,BP神经网络的系统误差的倒数作为目标函数。
Step2:初始化种群。经多次试验对比优化结果,本文遗传算法种群规模设为30,随机生成30个个体的初始种群W=(W1,W2,W3…W30)。初始种群编码方式采用实数编码,编码长度公式为S=RS1+S1S2+S1+S2,其中,R,S1,S2分别对应BP 神经网络输入层、隐含层、输出层的节点数,因而实际编码长度为8×17+17×7+17+7=279,生成种群中个体Wi的一个实数向量[w1,w2,w3…w279]作为个体的染色体。
Step3:计算抗体适应度。适应度函数采用BP神经网络的系统误差的倒数,通过算法优化使网络的系统误差最小化,即适应度值最大化。系统对270组训练样本的系统误差函数为
图1 自适应免疫遗传算法优化BP神经网络流程图
所以,适应度函数为
其中M 为训练样本数取270,J 为输出层节点数取7,T 为输出节点j 的期望输出,Y 为输出节点j的实际输出。
Step4:终止条件判断。设定最大迭代次数为200,或者连续十次迭代中的最好解都无法改善时则终止。若满足条件,则解码构建BP神经网络;否则继续执行。
Step5:选择操作。运用保留最佳个体与轮盘赌选择法相结合的方法,把每一代种群中的N个个体依据适应度降序排列,将排在首位的个体复制给下一代,并且依旧排在第一位;下一代群体另外N-1 个个体采用轮盘赌选择法,根据前一代群体的N 个个体的适应度选择产生。随着代代更替适应度高的个体在种群中所占的比例越来越高,算法的局部搜索能力也在逐渐增强。
Step6:自适应交叉、变异操作。交叉概率Pc和变异概率Pm是免疫遗传算法中两个重要的参数。为了使Pc和Pm随着种群多样性自适应变化。当种群适应度趋于局部最优化时减小,当适应度比较分散时增大,交叉概率Pc和变异概率Pm如下:
Step7:提取疫苗。采用动态自适应的方式对免疫疫苗进行提取。通过动态自适应的方式提取。每代种群按照适应度将序排列取前Kb个抗体,把最近K 代的前Kb个抗体选取出来组成最优抗体群。抗体的每位基因有s 种情况(k1,k2,…,ks),第i位基因为ki的概率为其中,当g(i)=ki时,aj=1,否则aj=0;g(i)为种群中第i 等位基因上的符号。该等位基因上的疫苗片段取该位基因上最大概率(记为pi,i=1,2,…,L)的kj,从而最终提取出疫苗H=(h1,h2,…,hL)。
Step8:接种疫苗。采用如下方式选择待注射的基因片段:由Step6,疫苗为H=(h1,h2,…,hL),令qi与hi相对应,pi的含义
如Step7所示。采用轮盘赌选择法来选择疫苗片段,由于qi的大小决定被选中概率的高低,因此轮盘盘面的各个部分比例按照qi的值划。这样形成的抗体有更高的适应度,组成的免疫种群也更加优越。
Step9:免疫选择。接种后的子代个体如果适应度提高则采用,否则保留父代个体,说明在遗传和接种过程中出现了退化。
Step10:种群更新。每代种群中适应度最高的Kb个抗体保存下来存入免疫记忆库;最低的Kd个予以删除,并用随机产生的新抗体补充。
3 仿真与结果分析
用Matlab 对设置好的BP 神经网络和自适应免疫遗传算法优化后的BP 神经网络对270 组训练样本分别进行训练,仿真得到训练误差曲线图,图3为BP 神经网络训练的误差曲线,图4 为优化后的BP神经网络训练的误差曲线。
由图3和图4可得,BP神经网络经过56步达到收敛。经免疫遗传算法优化后的BP神经网络经过11步达到收敛。对比图3和图4可知,优化后的BP神经网络训练速度明显加快,很快便可以达到要求的误差精度。
图2 BP神经网络训练误差曲线
图3 自适应免疫遗传BP神经网络训练误差曲线
表2 BP神经网络诊断结果统计
表3 IAGA-BP神经网络诊断结果统计
未优化的BP 神经网络和优化后的BP 神经网络训练结束后,用之前分好的30 组测试数据对网络进行测试,统计测试结果具体见表2和表3。
由表2 可知,30 组测试样本经未优化的BP 神经网络诊断,有4 组诊断产生了错误,正确率为86.7%。由表3 可知,经过优化的BP 神经网络,仅有1组产生了错误,正确率达到96.7%。
经过优化的神经网络测试误差也明显减小,30组测试样本的测试误差如图5。
图4 BP网络和IAGA-BP网络诊断误差对比
4 结语
传统的BP 神经网络高压发泡机故障诊断系统,由于BP 神经网络的局部极值以及收敛速度慢的问题,经常导致诊断系统误诊,本文把自适应免疫遗传算法与BP 神经网络进行了结合,对BP 神经网络结构进行优化,利用免疫遗传算法的全局搜索能力,避免了BP神经网络的局部最优问题,提高了训练效率。结合高压发泡机数据对其进行了验证,验证结果表明优化后的BP神经网络模型不仅诊断速度明显提升,而且准确率也大大提高,可以减少因误诊或者诊断不及时带来的一些不必要损失。