基于改进BP神经网络的模拟电路故障诊断研究

  • 格式:pdf
  • 大小:750.76 KB
  • 文档页数:3

第28卷第9期 兵工自动化 Vol. 28, No. 9 2009年9月 Ordnance Industry Automation Sep. 2009

·71·doi: 10.3969/j.issn.1006-1576.2009.09.025 基于改进BP神经网络的模拟电路故障诊断研究

张锐,杨宣访 (海军工程大学 电气与信息工程学院,湖北 武汉 430033)

摘要:根据BP神经网络特点,提出对BP神经网络改进的方法,并以某负反馈放大器为例,采用改进后的BP网络进行故障诊断,步骤包括:故障特征向量提取、原始数据归一化处理、BP网络设计与训练。结果表明,在MATLAB7.1中运用神经网络工具箱中函数进行仿真,能有效进行故障识别、改善神经网络结构、提高故障诊断精度和速度。 关键词:故障诊断;模拟电路;神经网络 中图分类号:TP18; TP277 文献标识码:A

Research of Analog Circuit Fault Diagnosis Based on Modified BP Neural Network

ZHANG Rui, YANG Xuan-fang (School of Electric & Information Engineering, Navy University of Engineering, Wuhan 430033, China)

Abstract: Put forward an improved method for BP neural network relying on its character, and taking a certain negative of feedback amplifier as an example, using improved BP network progress fault diagnosis, and the steps includes: fault feature vector extracting, original data normalization dealing, BP network design and training. Result showed that it can detect fault diagnosis, improve network structure and increase fault diagnosis precision and velocity using function of neural network toolbox in MATLAB7.1 simulation. Keywords: Fault diagnosis; Analog circuit; Neural network

0 引言 模拟电路故障诊断是根据测量数据判断电路状态故障的。由于BP神经网络具有并行计算、自我记忆和自我学习等特点,适用于模拟电路故障诊断。但存在着收敛速度慢,易陷入局部极小值,隐层节点选择上依靠经验公式等缺点,故对其改进,并利用改进后的BP神经网络对模拟电路进行故障诊断。

1 BP网络的改进 标准的BP网络常具有收敛速度慢,易陷入局部极小值,隐层节点难以确定等缺点,在应用中,BP算法很难胜任。对BP算法改进的途径有2种:一是采用启发式学习算法,如有动量的梯度下降法,有自适应学习速率的梯度下降法等。二是基于数值最优理论的算法,如共轭梯度法,高斯—牛顿法以及Levenberg-Marquardt优化方法等。这些改进方法可通过MATLAB神经网络工具箱函数来实现。 对于BP网络隐层神经元数目选择十分复杂。隐层神经元过少会导致网络精度差;节点过多会导致学习时间过长、误差不一定最佳,也会导致容错性差,不能识别新样本等问题。但如果BP网络隐含层的神经元数目可以随意调整,则一个三层的BP

网络可以逼近任意的非线性映射。通过隐层神经元数目可变的BP网络的误差对比,可确定最佳的隐层神经元个数。该网络的输入层和输出层数目均为

1,隐层数目采用经验公式1

nnma=++,(n输

入神经元数;m为输出神经元数;a为1-10之间的常数)进行估计,BP网络的设计及程序如下: P=-1:0.1:1;%输入 T=[-0.9602 -0.5770 -0.0729 0.3771 0.6405 0.6600 0.4609 0.1336 -0.2013 -0.4344 -0.4474… -0.5000 -0.3930 -0.1647 0.0988 0.3072 0.3960 0.3449 0.1816 -0.0312 -0.2189 -0.3201]; s=3:8;%设置隐层节点数 res=1:6; for i=1:6; net=newff(minmax(P),[s(i),1],{'tansig','purelin'},'trainlm');%网络训练 net.trainParam.epochs=2000; net.trainParam.goal=0.001; LP.lr=0.01; net=train(net,P,T); y=sim(net,P); error=y-T; res(i)=norm(error); end

对于多输入、多输出的BP网络,在网络训练时,

收稿日期:2009-03-10;修回日期:2009-04-10 基金项目:国家自然科学基金资助(50677069) 作者简介:张锐(1977-),男,湖北人,海军工程大学在读硕士研究生,从事电路故障诊断研究。 兵工自动化 ·72· 只需更改输出层数目即可。 2 BP网络应用于模拟电路的故障诊断 BP网络应用于电路故障诊断是以一些电路的典型故障样本送入神经网络训练,使之有判断能力,而成为故障识别系统。其工作步骤如下: 1) 确定待测电路的故障集和确定待测电路的故障集和状态特征参量,采用电路仿真或实验的方法获取电路每一故障状态下的状态特征数据,经筛选和归一化处理后构造训练样本集。 2) 设计BP神经网络并训练。根据需要和经验设计神经网络的结构、参数和训练算法。然后用训练样本集中的样本训练好网络,即完成学习的过程。 3) 一般采用3层BP神经网络,输入层节点数与电路状态特征参量的维数相同,输出层节点数可与电路待测故障类别数相同,也可小于待测故障类别数(采用编码指示对应故障)。 实际诊断时给被测电路加相同的测试激励,将测得的实际状态特征参量输入到训练好的BP神经网络,则其输出即可指示相应的故障状态。

3 诊断实例及仿真

现以某负反馈放大器为例,采用改进后的BP网络进行故障诊断,电路如图1。

500kΩ3.3μF

5kΩR9VOFF=0

VAMPL=0.1 FREQ=50kHz

R1V6C5 VR8 9kΩ 1n R7 1kΩ R

6

3kΩ

R2

1kΩR3

10kΩ R4

2kΩ 12Vdc

0

V1-+

C3 1μF Q2N2222 out2

Q2N2222 Q1

out5out4

R5

0.5kΩ

C11μF

Q2

0 V

out3

V V

out1 C2

图1 故障诊断电路 3.1 故障特征向量提取 对电路原理图分析,可发现R2、R3、R4、R8开路,Q1和Q2发生故障对电路危害程度较大,故在仿真时选取几种故障类型作为诊断对象。选取5个测试点的电压(out1~out5)为BP网络的输入信号,

通过PSpice仿真,对电路进行直流扫描与蒙特卡洛分析。仅对Q1发射极与集电极短路进行仿真。对三极管的故障模型建立可参见文献[7]。最后,选择6种故障类型进行分析诊断,并将每种故障模式进行编码作为神经网络的输出。表1为测试数据。 表1 电路原始测试数据 节点电压 电路状态 Vout1 Vout2 Vout3 Vout4 Vout5 类别编码

Y0(无故障) 8.5841 2.7408 0.5923 2.0777 1.6584 0 0 0 0 Y1(R2开路) 0.0150 2.7408 0.0039 2.0777 0.0110 0 0 0 1 Y2(R3开路) 8.5841 5.916E-09 0.5923 13.96E-09 1.6584 0 0 1 0 Y3(R4开路) 8.5841 1.3184 0.5923 0.6287 1.6584 0 0 1 1 Y4(R7开路) 8.5841 2.7692 0.5923 11.9550 1.6584 0 1 0 0 Y5(R8开路) 8.6040 2.7408 9.487E-24 2.0777 1.7076 0 1 0 1 Y6(Q1C-E极短路) 3.9120 2.7408 1.3972 2.0777 3.9120 0 1 1 0

3.2 原始数据归一化处理 由于系统是非线性的,BP网络的初始值对于训练能否达到局部最小和是否收敛影响很大,同时,各故障状态下的测量值与正常电路电压值之差变化范围较大,有必要对输入样本进行归一化处理。可

采用正态分布函数2()()xafxe−−

=对输入样本进行

归一化,得到各故障状态下测试点实际测量电压Vout1~Vout5属于电路无故障状态下α隶属度。归

一化处理后的数据如表2。 3.3 BP网络设计与训练 表2 归一化处理后数据 序号 Y0 Y1 Y2 Y3 Y4 Y5 Y6 X1 1.0000 0.0000 1.0000 1.0000 1.0000 0.9996 0.0000 X2 1.0000 1.0000 0.0005 0.1322 0.9992 1.0000 1.0000 X3 1.0000 0.7074 1.0000 1.0000 1.0000 0.7041 0.5232 X4 1.0000 1.0000 0.0133 0.1225 0.0000 1.0000 1.0000

故障

征兆

X5 1.0000 0.0663 1.0000 1.0000 1.0000 0.9976 0.0062

对于BP网络,任何在闭区间内的一个连续函数都可用单隐层的BP网络逼近,即一个三层BP网络可完成任意的n维到m维的映射。BP网络的输入层以归一化处理后数据X1~X5作为输入层,输出层选择4个神经元,隐层单元数依据BP网络改进方法,选择12个神经单元,代入BP网络训练。 完整的MATLAB程序如下: p= [1.0000 1.0000 1.0000 1.0000 1.0000;