模拟电路故障诊断的神经网络方法
2013-06-26孙洪飞
孙洪飞,周 正
(海军91202部队,辽宁 葫芦岛125004)
随着电子技术的迅速发展,电子设备集成度越来越高,结构越来越复杂,这对电子设备的故障诊断也提出了更高的要求。由于模拟电路存在元件参数的容差问题、输入输出的复杂关系以及电路中广泛存在的非线性问题,在实际应用过程中,电子设备中80%以上的故障来自于模拟电路,大大超过了数字电路的故障率[1]。因此,针对模拟电路进行故障断的研究是十分必要和迫切的。
1 研究现状
模拟电路故障诊断技术自60年代开始研究以来,取得了不少成就,提出了如K故障诊断法、故障参数辨识法、网络撕裂法等很多方法[2],但这些方法无论在理论上还是在实践上均未完全成熟,距实用尚有相当的距离。
模拟电路故障诊断本质上是模式识别问题,即将电路测试点的特征信号映射到某个故障类别[3]。人工神经网络是模拟生物神经系统,通过大量简单非线性神经元互联构成信号处理网络,其中BP神经网络有较强的模式识别能力,并具有自学习、并行处理、分布式存储以及联想记忆的优点,比较适合于模拟电路故障的诊断[4]。
在模拟电路系统故障诊断中,只需要采集各种故障状态下对应的特征值,并利用这些值训练BP神经网络,当网络训练好了以后,就相当于在BP网络中建立了一部智能字典,在诊断时只要输入电路的故障特征值,BP神经网络就能自动联想到其所对应的故障状态。
本文对从实际模拟电路中提取的故障特征向量经归一化和主元分析处理后得到最优训练样本对BP神经网络进行训练。然后,利用BP神经网络进行故障分类,从而实现电路的故障诊断。实验仿真结果表明:该方法能准确地识别故障,且分辨率较高。
2 BP神经网络
BP神经网络是一种多层前馈神经网络,由一个输入层、若干个隐含层和一个输出层组成。位于同一个输入层之间的单元之间不允许有连接,各层的单元只能向高层的单元输出激活信号,其每一层连接权值都可以通过学习来调节。
理论证明:具有单隐层结构的前馈神经网络可以映射所有非线性函数[5],因此,本文利用三层BP网络来识别电路故障。其结构如图1所示。
图1 三层BP神经网络图
BP算法被分为两个阶段:
(1)正向传播过程,即将输入信息通过输入层经过激活函数后,经隐含层逐层处理并计算每个单元的实际输出值;
(2)反向过程,即若在输出层未能得到期望的输出值,则逐层递归地计算实际输出与期望输出的误差,并根据误差调节修正权值。
训练误差为:
以(2)式为目标函数,权值和阈值的修正公式为:
式中,
k为训练次数,
θj为节点误差,
η为学习速率。
通过不断重复上面三步,直到误差函数的值满足E<ε,其中,ε为设定的最小误差,本文设定ε为0.001。
3 数据处理
在故障特征向量输入神经网络之前,必须对其进行归一化处理,因为网络的各个输入数据常常具有不同的物理意义和不同的量纲,如某一输入在0~100范围内变化,而另一分量则在0~1范围内变化。数据归一化避免因为输入数据波动大而造成的神经网络收敛慢或者是不收敛的问题,可以用Matlab的premnmx函数对其进行归一化,将其规格化在[-1,1]。
PCA是统计学中分析数据的一种有效方法,它基于Karhunen-Loeve分解。其目的是在数据空间中找一组向量尽可能的解释数据的方差,通过一个特殊的向量矩阵,将数据从原来的高维空间映射到一个低维向量空间,降维后保存了数据的主要信息,从而使数据更易于处理[6]。
4 仿真实例
本文的诊断电路选自ITC'97的国际标准电路CTSV(continuous-time state-variable filter)滤波器,仿真电路如图2所示。R1=R2=R3=R4=R5=1 kΩ,R6=3 kΩ,R7=7 kΩ,C1=C2=20 nF。
图2 CTSV电路
经过灵敏度分析后发现电阻R1、电容C1对电路输出电压V影响比较大,考虑以R1正偏50%、C1负偏50%、以及R1正偏50%并且C1负偏50%的电路故障,连同无故障模式共4种状态进行诊断,如表1所示。
表1 故障分类模式
(1)特征参数的采集。对被测电路进行充分仿真,并结合蒙特卡洛、灵敏度和最坏分析对电路进行分析。然后采集电路阶跃响应的输出电压和响应时间等特征参数,经数据归一化,并用主元分析法确定输出参数,对正常模式及每一种故障模式进行30次蒙特卡洛分析,其中20次为训练样本,10次为测试样本,共构造网络的训练样本集和测试样本集120个。
(2)BP网络结构参数。根据电路特征参数的维数,确定BP网络的输入与隐层节点数目。特征参数经主元分析后为2维的,则输入层节点数目为2;电路检测状态由1种正常状态和3种故障状态,故输出层节点数目为4;隐层节点数目按公式(N、M分别为输入层和输出层节点数目,a=1~10)进行选取,若在网络训练过程中不满足要求,则逐个增加(或减少)隐层节点数目,最后确定网络结构为2-5-4。经过分析,隐层和输出层的激励函数分别采用非线性的正切-S型(tan-sigmoid)函数和非线性的对数-S型(log-sigmoid)函数。
5 结果分析
采样数据经归一化后,再进行主元分析,部分数据如表2所示,诊断结果如表3所示。
表2 数据处理结果
表3 诊断结果
使用测试样本集对网络进行测试,结果表明,该网络的实际输出值逼近其期望值,诊断准确率达98%,学习效果很好。若未经主元分析,直接将采样数据集输入上述神经网络,只需将网络输入改为4,即网络结构变为4-5-4,网络其它参数保持不变,经过1 074次训练调整才收敛到相同目标值(MSE=0.001)。
由此可得,经过主元分析,神经网络输入变量减少,网络结构得到简化;训练次数仅仅为原来的1%,神经网络训练周期大大减少。
6 结束语
本文利用神经网络方法进行模拟电路的故障诊断,利用主元分析进行特征提取及数据压缩,完成了从高维输入到低维特征的转化,形成新的训练和测试样本集,从而减少了神经网络的输入,提高了网络训练速度,降低了神经网络的计算复杂度。
[1]李 旭.基于电路仿真原理的故障检测与诊断研究[D].大连:大连理工大学,2007.
[2]王 玲,彭敏放,何怡刚.容差模拟电路故障模糊诊断方法及其实现[J].微电子学与计算机,2006,23(4):189-192.
[3]朱大齐.电子设备故障诊断原理与实践[M].北京:电子工业出版社,2004.
[4]陈 琪,曲东才.基于故障字典和神经网络理论的故障诊断方法[J].计算机测量与控制,2007,15(1):4-7.
[5]蔡 兵.BP神经网络隐层结构的设计方法[J].通化师范学院学报,2007,28(2):18-19.
[6]焦李成.神经网络的应用与实现[M].西安:西安电子科技大学出版社,1996.