引言
随着大规模集成电路技术的迅速发展及日益广泛的应用,为了维护各种器件及设备,人们必须借助计算机来找出电路的故障,模拟电路故障诊断已成为大规模集成电路课题中令人瞩目的一个课题。模拟电路的故障诊断和定位问题不仅引起广泛的关注,而且是国内外专家设计和使用电子系统的一大难题,其中大规模非线性复杂电路容差情况下的故障即软故障诊断,也是困扰广大科学工作者的难题。迄今为止,很少有文献对软故障即容差电路的诊断给出系统而有效的方法,特别是大规模模拟电路的故障诊断。本系统正是针对这样的考虑所设计的。系统核心主要包括复杂网络分解、小波分解、特征提取、神经网络,其结构如图1所示。
1 故障诊断系统
系统通过对电路输出节点电压特征量的分析和处理是能够达到诊断电路故障的目的。故系统将节点电压特征量作为分析的对象,所选的特征量要能够尽量多的反映电路故障信息。在一定的激励条件下,用PSPICE蒙特卡罗容差分析仿真线性或非线性电路常见的各种故障状态及正常状态。利用小波变换将每一个故障状态所对应的节点电压信号进行分解,然后对所产生的小波系数进行处理,提取出的最佳故障特征量作为输入对神经网络进行学习和训练,神经网络调整它的权值直到满足要求。经过学习后,将待诊断样本输入给神经网络,其输出即为对应的故障。对于大规模模拟电路,由于所含元件较多,诊断比较复杂,本文将采用分级诊断,第一级诊断出故障子网络,第二级由故障子网络诊断出故障元件。所以首先进行复杂网络分解,即子网络级诊断方法。
1.1 复杂网络分解
对于大规模复杂网络,如果直接将每一个具体的元件故障信息存入神经网络中,则存在信息量过于庞大的问题,对其诊断的神经网络结构会更复杂,影响诊断速度。根据大规模电路一般都能满足可测条件,基于网络分析中置换原理的思想,将大规模网络撕裂成一系列相互独立的子网络,只需测量很少几个节点的电压就可以定位出故障子网络,在此基础上利用神经网络对该故障子网络进行诊断与学习。即子网络级故障诊断。这样可以减少测后计算工作量,提高故障诊断速度,快速而有效,同样可以用于多故障问题。
1.2 小波分解
小波分解的一个非常重要的优点就在于其分解后所得分量包含了原信号的所有特征,这一点是传统数字滤波和FFr无法做到的。所以将信号进行若干次小波分解,可以得到信号在各个频段上的分量,这样就实现了信号特征的分离,然后对每一分量进行处理,针对不同频段的信号特点,提取一个或几个特征量来表征该分量信号的特征。
1.3 特征提取
特征提取部分包括特征量的提取和将特征量进行主要分量分析及归一化处理。小波变换后提取诸如均值、方差、峰值、功率及包络曲线最大值等特征量。特征量应能客观反映故障状态的变化,通常根据物理意义及先验知识确定。但是一般由此获得的数据量是很大的,为了有效地实现分类识别,要对原始数据进行选择或变换,得到最能反应分类本质的特征,构成特征向量,即主要分量分析。为适应神经网络s型函数特性还需对学习样本进行归一化处理。
1.4 神经网络
由于特征与故障之间是一种非常复杂的非线性关系,而神经网络用一种全新的思路来处理这类问题,具有非常强大的综合分析能力,BP网络在非线性逼近上功能尤其强大,理论上只要神经元足够多,就能够逼近任意复杂的非线性系统_3J。因此用BP网络来分析故障特征,进行故障诊断非常合适。传统的利用神经网络诊断模拟电路方法一般是采用BP算法训练的前馈神经网络。标准的BP网络是根据Widrow—Hof规则,采用梯度下降算法,在非线性多层网络中,反向传播计算梯度。BP算法理论具有依据可靠、推导过程严谨、精度较高、通用性较好等优点,但标准BP算法存在以下缺点:收敛速度缓慢、容易陷入局部极小值、难以确定隐层数和隐层节点个数_5J。在实际应用中,BP算法很难胜任。综合BP改进算法优缺点考虑,系统采用快速的Levenberg—Marquardt学习规则和振荡小的动量法分别作为BP神经网络的训练函数和学习函数_4J。
2 辅助工具PSPICE
SPICE (Smulation Program f0r Integrated Cimuits Emphasis)是国际上流行的用于集成电子线路分析程序。
PSPICE是SPICE电路模拟器家族中的一员。它基于SPICE模拟器,由美国Microsim公司开发并在1984年1月首次推出。PSPICE程序具有很强的计算能力和很高的计算精度,可以完成多项分析计算工作,而且系统内部设置有各种电器元件的基本出厂模型参数,以用于对电路系统的分析计算,同时还可以根据实际元器件的特殊性,从外部进行技术参数的修改,这样就充分满足了计算精度的要求,且使用起来也十分方便。
系统采用蒙特卡罗分析仿真电路节点电压输出信号。
3 实际应用举例
图2是一个有源低通滤波器的电路原理图,为证明所提出方法的准确性,现对它进行电路故障检测。电路各元件标称值见表1。取集成运放电源为15V,电阻容差为5% ,电容容差为10% 。假设R3阻值由标称值2.64 kΩ变成2.2 kΩ,进行故障仿真。
为测试和诊断方便,设节点0输人为lV。根据诊断用测试节点的定义,同时进行灵敏度分析,选相对于所有元件灵敏度不为0的可及节点l、2、5、8、l2为诊断用测试节点。
根据子网络可诊断性条件,测前把该标称网络划分成子网络Nl和N2(从节点1处撕裂),子网络Nl又被划分成更小的子网络s1,s2,s3,S4,如图3中虚线所示。根据复杂网络分解症理诊断出故障子网络S4。
对于故障子网络,在元件标称值下,输入端0加指数信号,其幅值为5V,迅速下降时间常数为0.1μs,上升时间常数为0.3 tts。首先对无故障类,使元件值在容差范围内任意取值;对故障类,改变故障元件值,即超出元件容差,其它元件值在容差范围内任意取值,用蒙特卡罗暂态分析法进行50次容差分析得到模拟电路的输出电压仿真信号。然后采用PSPICE与MATLAB相结合的方法对信号文件进行处理,作为我们在计算机小波变换的仿真中的采样信号,即将所得输出文件。OUT进行处理,然后把待诊断电路输出节点电压曲线描述用MATLAB读取并画出。
对于小波函数的选择,我们要求不高,但为了实现的方便,要求所选择的小波函数具有紧支承,并且是正交的,所以这里选择Daubechies小波db3。为了有利于特征提取,希望得到的近似部分能反应故障特征,保证在近似部分中能够提取反映故障的特征量。基于这一原则,确定小波分解的阶数为3。随着故障类型不同,故障信号的能量在各子波上的分布不同,各层小波系数不同,信号所带的有用信息主要集中在这些对应的小波系数上,只需要提取适当的小波系数作为神经网络的输人数据即可进行故障的诊断。对所选小波系数输入三层前馈神经网络进行学习和训练,选择系统总误差E=0.000 1,其训练过程误差曲线如图3所示,从曲线中可以看出训练指标能在较快的时间内完成。
4 结论
实验可以证明,在电路故障诊断过程中,神经网络发挥其联想记忆和分布并行处理功能,对已学过的样本知识,网络的输出结果与希望结果充分相符;当输人数据在一定范围内偏离样本知识时,网络的输出具有接近样本的倾向,同时还能满足故障诊断的实时性要求。神经网络训练时一般采用受容差干扰大的小故障样本做训练集,然后用于大故障定位,这样未被训练的大故障定位效果也很好。此外,只要选择足够多的原始故障样本训练神经网络,网络的容错性和稳定性就较好,故障定位精度也会提高。经多次实验证明,故障诊断的正确率在95% 以上。电路诊断技术中,诊断的正确率及测后计算量等是重要的,本文提出的方法在这几方面有较好的效果。特别说明一点, 当元件参数容差较小时,本文给出的方法在工程上的应用效果会更好。