1、MATLAB 结合 PSPICE 在模拟电路故障特征提取中的应用 摘要 在模拟电路故障诊断中故障特征提取是至关重要的一步,直接影响着系统的诊断能力。本文阐述了 MATLAB 与 PSpice 在模拟电路故障特征提取中的应用,着重介绍了 MATLAB 如何调用 PSpice仿真数据,并给出了基于多分辨分析和小波包变换的模拟电路故障特征提取的具体实现方法。关键字 MATLAB PSpice 故障特征提取 多分辨分析 小波包变换随着科学技术和电子工业的迅速发展,电子设备的规模越来越大,复杂度也在不断提高,系统的维护、修理和调试变得越来越困难,为了提高系统的安全性和可靠性,故障诊断技术逐渐受到人们的重
2、视。近年来神经网络理论发展迅速,基于神经网络的模拟电路故障诊断方法也有很大的发展。为了把神经网络成功的应用于模拟电路的故障诊断中,构造样本集是第一步,也是至关重要的一步,它包括故障模式的划分、原始数据的收集、故障特征的提取等。其中,故障特征的提取是最为重要的环节,通过对原始数据的处理得到最能表征其故障模式的数据信息,它直接影响着训练后神经网络的诊断能力,是模拟电路故障诊断的关键。本文将介绍如何利用MATLAB和PSpice进行电路故障特征提取的过程和方法。1 软件介绍MATLAB 是美国 Math Works 公司开发的计算机仿真软件,涵盖通信、航天、力学、力、自动控制、神经网络等领域,具有强
3、大的数据处理能力,已经成为集数值运算、符号运算、数据可视化、图形界面设计、程序设计、仿真的多种功能于一体的集成软件。PSpice 是美国加州大学伯克利分校开发的通用电路模拟仿真程序 SPICE(Simulation Program with IC Em2 phasis) 移植于 PC 机上的版本. PSpice 能够对模拟电路、数字电路、数模混合电路以及电力电子电路电路进行仿真,可获得电路中各节点和支路的响应特性,这些响应特性可以文本形式输出,也可以各种波形及曲线输出。因此,在计算机辅助分析与设计和电子教学中广泛应用。2 PSpice 中模拟电路仿真PSpice 的输入有电路原理图和网单文件两
4、种形式,我选用的是输入网单文件的方式。电路仿真程序是 PSpice 的核心,它的仿真功能有直流工作点分析、直流转移特性分析、直流灵敏度分析、交流小信号分析、瞬时分析、最坏情况分析和蒙特卡洛分析等。仿真输出文件有绘图文件(*.dat)和数据输出文件(*.out ) 。我们需要的是数据输出文件,然后用 MATLAB 处理模拟电路仿真数据,得到模拟电路的故障特征向量。3 MATLAB 读取电路仿真数据的方法电路的仿真数据是通过.PRINT 命令和蒙特卡洛分析结合得到,数据储存在 PSpice 运行结果的.OUT 输出文件中。在用 MATLAB 读取仿真数据数据之前,首先要对.OUT 数据输出文件进行
5、处理,即删除输出文件中的文件头尾对电路的描述统计信息和每次进行蒙特卡洛分析的描述信息等,而只保留蒙特卡洛分析得到的数据,将经过处理后的输出文件存盘,用于 MATLAB 的读取。3.1 常用的文件读取函数1)fopen( )函数 调用格式:fid=fopen(filename),以只读方式打开名为 filename 的二进制文件,如果文件能正常打开,则可以获得一个文件句柄号 fid,否则 fid=-1。2)fscanf( )函数 调用格式:A=fscanf(fid,format),读取以 fid指定的数据文件,并将它转换为 format 定义的格式化文本,然后赋给变量 A。3.2 数据读取程序代
6、码如下:fid=fopen(f:SJ.out,rt);a=fscanf(fid,%f); %a 为一个列矩阵b=;c=;for m=1:n:length(a) %n 为 PSPICE 仿真数据在.out 文件中数据的列数b(m)=a(m,1); b(m+1)= a(m+1,1); b(m+2)= a(m+2,1);- b(m+n-1)= a(m+n-1,1);c=c;b(m) b(m+1) b(m+2) - b(m+n-1);endc %将要进行处理的数据矩阵 4 小波变换理论在特征向量提取中应用小波分析是 Fourier 分析、泛函分析、调和分析、数值分析的完美结合,特别是在信号处理、图像处
7、理、语音分析以及众多非线形科学领域应用广泛。小波变换在低频部分具有较低的时间分辨率和较高的频率分辨率,在高频部分具有较低的频率分辨率和较高的时间分辨率,具有对信号的自适应。因小波分析具有局部分析和细化的功能,因此能描述信号的间断点、趋势和自相似性等性质。小波变换包括多分辨分析和小波包变换两部分,下面将介绍两种分析在模拟电路故障特征提取中的应用方法。 4.1.1 基于多分辨分析的故障特征提取 模拟电路故障一般都是软故障,利用小波变换来提取各频带的故障信息,分解过程用 Mallat 算法实现,而软故障信号的变化是比较微小的,可以用高频分解的部分来反映信号的变化,故可以将故障信号的高频系数序列进行绝
8、对值求和,并按尺度顺序排列,作为模拟电路的故障特征向量。具体步骤如下: a) 对信号进行N层Mallat分解,得到N个高频小波分解系数序列:;123,ndb)对各层高频系数序列求绝对值和,则有 ,其中:n1jjiDd为序列 中分量的个数;jdc) 特征向量构成,按尺度顺序,以各层高频小波分解系数序列的绝对值之和为元素作为特征向量: ;123,nDd)为了提高神经网络收敛速度,进行归一化处理。4.1.2 基于多分辨分析的故障特征提取在 MATLAB 中实现的程序代码:x=size(B);A=;b=;for n=1:x(1) %B 仿真得到的数据矩阵s=B(n,:);C,L=wavedec(s,4
9、,db3);CD1=detcoef(C,L,1);CD2=detcoef(C,L,2);CD3=detcoef(C,L,3);CD4=detcoef(C,L,4);D1=0;D2=0;D3=0;D4=0;for m1=1:length(CD1)D1=D1+abs(CD1(m1);endfor m2=1:length(CD2)D2=D2+abs(CD2(m2);endfor m3=1:length(CD3)D3=D3+abs(CD3(m3);endfor m4=1:length(CD4)D4=D4+abs(CD4(m4);endM=sqrt(D12+D22+D32+D42);b=D1 D2 D3
10、 D4;c=b./M;A=A;c;endA %神经网络输入向量4.2.1 基于小波包的故障特征提取在模拟电路故障诊断中,当待测电路发生故障时,对各频带信号的能量都有一定的影响,因此故障信号中各频带中的能量能够体现出电路中元器件的损坏情况,某种或几种频率成分能量的改变即对应着故障模式。基于小波包的故障特征提取步骤如下:a) 首先对信号进行小波包分解和信号重构,设 是原始信号SijX经过小波包分解后第i层的第j个节点的小波包分解系数, 是的重构信号,则总信号 ;ijX1nijSb) 设 对应的能量为 ,则有ijSijE,其中:22123 1, niiinjijjkPESdtx(k=1,2,n)表示
11、重构信号 的离散点的幅值, ;jkx ij 2inc) 则故障特征向量为P, ;123,iiinPEd)为了提高神经网络收敛速度,进行归一化处理4.2.2 基于小波包的故障特征提取在 MATLAB 中实现的程序代码%对采样信号进行 3 层小波包分解,得到 8(23)维特征向量T=wpdec(X,3,db3) %X 为采样信号B=;C=;D=;E=;m=0;n=0;m1=0;n1=0;m2=0;n2=0; for n=0:7Z=wprcoef(T,3 n); C=C;Z;endfor m1=1:8D=C(m1,:);e=0;for n1=1:length(D)e=e+(D(n1)2;endE=E
12、,e;endfor m2=1:length(E)n2=n2+(E(m2)2;endE=E./sqrt(n2)5 实例分析下图为一带通滤波器电路图,分别用多分辨分析和小波包变换法得到图中R1 下降为 50 欧时得电路故障特征向量:5.1 PSpice 电路仿真程序如下:R1 1 2 50RL 3 0 100C1 2 0 CMOD 0.0039UC2 2 3 CMOD 0.0039UC3 3 0 CMOD 0.0039UL1 2 3 10VI 1 0 AC 1.MODEL CMOD CAP(C=2 DEV=20%).AC DEC 10 1K 100MEG.MC 30 AC V(3) YMAX OU
13、TPUT FIRST 30.PRINT AC VM(3) .PROBE VM(3)END5.2 仿真分析结果当 R1=50 欧时分别用多分辨分析和小波包变换法得到特征向量 D、E 部分数据(各五组)如下: 0.31498562 0.179835072 .4938012547 .836175096462D . .1 . .4 0.296518 0.12573 0.4987150 .8169 0.9428765 0.1432951 0.28360 .142630785 3879479E= .9 .6 .5 . 0.95124 0.53 0.6201 .6205 3861493479183 .7 .
14、7 .5 .42698 0.2409 .30 .021 0.652 6895841905 结束语PSpice 具有强大的电路仿真能力,可以得到大量的数据,利用MATLAB 进行仿真数据的处理得到电路的故障特征向量,故障特征提取的提取对以后神经网络的训练与故障诊断是至关重要的,实践证明利用小波变换理论进行特征向量的提取是可行的,但也要注意多分辨分析和小波包分析两种方法各有特点,都是有效的特征提取和故障诊断方法,具体应用时应结合实际诊断电路选择适合的分析方法参考文献:1 李永平. PSpice 电路仿真程序设计M. 北京:国防工业出版社,20062 张志涌等. 精通Matlab6.5 版M.北京: 北京航空航天出版社, 20033 周伟. MATLAB 小波分析高级技术M.西安:西安电子科技大学出版社4 吴昊等. Matlab 与 Pspice 的数据接口技术.电气电子教学学报.2005 5 李明亮. 基于神经网络的模拟电路故障诊断方法研究.硕士学位论文.北京.中国地质大学.20076 谢涛. 基于神经网络和小波变换的模拟电路故障诊断理论与方法.硕士学位论文.长沙.2007