模拟电路故障诊断的BP神经网络方法研究
扫描二维码
随时随地手机看文章
摘要:BP网络是模拟电路故障诊断中应用十分广泛的一种神经网络。针对传统BP算法的误差下降缓慢,调整时间长,甚至容易陷入局部极小点而不能自拔等局限性,提出用弹性算法与BP网络相结合的方法,并结合某型雷达装备的具体电路,运用该方法建模、仿真。实验结果表明,采用弹性算法结合后的BP网络误差收敛稳定,训练速度快,在克服传统BP算法的局限性上效果显著,为新型雷达装备的故障诊断和维修提供了一种方法,具有特定的实用意义。
关键词:BP神经网络;弹性算法;模拟电路;故障诊断
随着现代电子技术的飞速发展,大规模、超大规模集成电路越来越普及,常规的故障诊断方法如故障字典法、参数识别法、故障验证法等由于其局限性已不再适用。模拟电路的可靠性直接制约着整个电子设备或系统的可靠性,是一个系统能不能正常运行的关键。近年来,神经网络发展迅速,在各领域广泛应用。神经网络具有非线性信息处理能力,其强大的学习能力和并行处理能力为故障诊断提供了全新的理论方法和实现手段。其中BP神经网络由于具有良好的模式分类能力,尤其适用于故障诊断领域,因此对BP网络的研究有着重要的理论及现实意义。
1 神经网络故障诊断的系统设计
应用BP神经网络进行模拟电路故障诊断的方法一般是:在一定的测试激励下,将电路常见的各种故障状态及正常状态所对应的参数通过PSpice求出,进行数据预处理后作为BP网络的输入样本,对网络进行训练,然后在相同的激励下,检测电路实际输出,作为待诊断样本集提供给BP网络,网络输出即为对应的故障模式。系统设计框图如图1所示。
2 BP网络的传统算法
BP网络,即误差反传网络,是在1986年由Rumelhart和McCelland提出的,它是一种无反馈的前向网络,包括输入层、输出层和隐层。理论证明:具有单隐层结构的前馈网络可以映射任意连续函数,最常用的BP神经网络的结构是3层结构,即输入层、输出层和一个隐层。
误差反向传播过程就是通过使一个目标函数。最小化来完成的,BP网络的传统算法则是根据梯度下降法来调整权重系数的。
tk为输出层第忌个神经元的期望输出;Qk为实际输出;Oj为隐层第j个神经元的输出;Qi为输入层第i个神经元的输出。通过多次迭代后误差达到给定的标准,网络收敛到一组稳定的权值,即训练完成。但是这种标准的BP算法有局限性,由于是根据梯度下降法调整权值,若权值的改变量过大,虽然能够加快网络的训练过程,但结果可能会产生振荡;另外一种可能就是权值的改变量过小,因为S型函数具有饱和性,当输入较大时,Oj,Ok将处于0或1的饱和区,权值的改变将趋于0,但此时目标函数的值还很大,误差对权值的变化很不明显,误差下降缓慢,调整时间长,甚至陷入局部极小点而不能自拔,影响收敛速度,使训练难以收敛于给定误差。
3 传统BP算法的改进
基于上述传统BP算法的局限性,提出将弹性算法与BP神经网络相结合的方法,弹性算法只取偏导数的符号,而不考虑幅值,权值的更新方向是由偏导数的符号来决定的。若在两次连续的迭代中,目标函数对某个权值的偏导数的符号保持不变,则增大相应的更新值,若变号,则减小相应的更新值,其过程可表示为:
当目标函数与某个权值偏导数的符号与上一次不同时,则表明最近一次权值的更新值太大,算法已跳出一个局部最小值。通过这种方法调整权值参数,可以使变化步长在需要的时候增加,甚至在误差平面趋于平坦的时候也能增加。误差梯度一旦发生变化,相应的调整步长会减小,有效地防止了振荡。克服了BP网络误差下降缓慢,调整时间长,甚至容易陷入局部极小点等局限性,通过弹性算法与BP网络的结合来实现模拟电路的故障诊断。
4 实例分析
现以图2所示的某型雷达设备中的射频放大电路为例,选取5个测试点(out1~out5)的电压作为BP网络的输入信号,本文只考虑电阻和电容的硬故障,选择4种故障类型进行分析诊断,加上正常状态一共5种类型。输出状态使用n-1表示法,0为正常,1为故障。表1为测试数据。对故障样本数据进行归一化,将数据线性变换到0.1~0.9之间,即,xi为原始数据;xmax,xmini分别为变量的最大值和最小值,归一化处理后的数据如表2所示。
对于BP网络,在闭区间内的任意一个连续函数都可以用单隐层的BP网络逼近,即一个3层的BP网络可以完成任意m维到n维的映射。由于有5个测试点,所以BP网络的输入层为5个神经元,以归一化之后的数据作为BP网络的输入样本,输出层为4个神经元。隐层神经元数目的选择是一个十分复杂的问题,往往需要根据经验或者多次的实验来判定,因而不存在一个确切的表达式来确定。它的数目与问题的要求、输入/输出单元的数目都有着直接关系。隐层单元数目太多会导致学习时间过长、误差不一定最佳,也会导致容错性差、不能识别以前没有看到的样本,因此一定存在一个最佳的隐单元数。此处参照美国科学家Hebb提出的以下经验公式选取:。其中:n为输入单元数;m为输出单元数;a为[1,10]之间的常数。按照上式,,即h的取值为4~13。通过Matlab创建一个BP神经网络,设定训练次数为5 000,训练目标net.trainParam.goal=0.01,改变隐层单元的数目,当隐层单元数不同时,达到目标所用的训练次数,如表3所示。
根据表3,当隐层单元数为11时,训练次数最少,这样神经网络的结构就确定了,输入层5个节点,隐层11个节点,输出层4个节点,训练最大次数设定为5 000,训练误差为0.01,先采用传统算法训练网络,再采用弹性算法与BP网络结合的改进算法,网络训练误差曲线如图3、图4所示。
弹性算法不仅加快了收敛速度,防止了震荡,还避免了陷入局部极小值,从图3和图4可以看出,通过弹性算法与BP网络相结合以后,训练次数由原来的769次减少到11次,大大提高了神经网络的训练效率。用样本自身数据输入训练好的神经网络中,识别结果见表4。与故障模式对比分析可知,自身检测结果已经达到要求,即该网络已经训练好。下面检测网络的泛化能力,任取2组测试数据并进行归一化处理,结果如表5所示。
将归一化的数据作为神经网络的输入,得到测试数据的识别结果,如表6所示。
与故障模式对比可知,第一组对应的故障是R2短路,第二组对应的故障是R1开路。由此可以看出,训练好的网络不仅可以识别样本自身故障,而且还具有一定的泛化能力,经过弹性算法与BP网络的结合,取得了良好的效果,达到了预期的目标。
5 结语
本文针对传统BP算法误差下降缓慢,调整时间长,甚至陷入局部极小点而不能自拔等局限性,运用弹性算法与BP网络相结合的方法,结合某型雷达设备中的射频放大电路进行建模、仿真,用Matlab设计并用改进后的算法训练BP神经网络,仿真结果证明该方法对克服传统BP算法的局限性有显著效果,缩短了网络的训练次数,提高了训练效率,且诊断结果良好,为新型雷达装备的故障诊断提供了一种有效的方法,在对装备故障诊断维修上具有一定的实用意义。