您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 管理学资料 > MATLAB结合PSPICE在模拟电路故障特征提取中的应用
MATLAB结合PSPICE在模拟电路故障特征提取中的应用摘要在模拟电路故障诊断中故障特征提取是至关重要的一步,直接影响着系统的诊断能力。本文阐述了MATLAB与PSpice在模拟电路故障特征提取中的应用,着重介绍了MATLAB如何调用PSpice仿真数据,并给出了基于多分辨分析和小波包变换的模拟电路故障特征提取的具体实现方法。关键字MATLABPSpice故障特征提取多分辨分析小波包变换随着科学技术和电子工业的迅速发展,电子设备的规模越来越大,复杂度也在不断提高,系统的维护、修理和调试变得越来越困难,为了提高系统的安全性和可靠性,故障诊断技术逐渐受到人们的重视。近年来神经网络理论发展迅速,基于神经网络的模拟电路故障诊断方法也有很大的发展。为了把神经网络成功的应用于模拟电路的故障诊断中,构造样本集是第一步,也是至关重要的一步,它包括故障模式的划分、原始数据的收集、故障特征的提取等。其中,故障特征的提取是最为重要的环节,通过对原始数据的处理得到最能表征其故障模式的数据信息,它直接影响着训练后神经网络的诊断能力,是模拟电路故障诊断的关键。本文将介绍如何利用MATLAB和PSpice进行电路故障特征提取的过程和方法。1软件介绍MATLAB是美国MathWorks公司开发的计算机仿真软件,涵盖通信、航天、力学、力、自动控制、神经网络等领域,具有强大的数据处理能力,已经成为集数值运算、符号运算、数据可视化、图形界面设计、程序设计、仿真的多种功能于一体的集成软件。PSpice是美国加州大学伯克利分校开发的通用电路模拟仿真程序SPICE(SimulationProgramwithICEm2phasis)移植于PC机上的版本.PSpice能够对模拟电路、数字电路、数模混合电路以及电力电子电路电路进行仿真,可获得电路中各节点和支路的响应特性,这些响应特性可以文本形式输出,也可以各种波形及曲线输出。因此,在计算机辅助分析与设计和电子教学中广泛应用。2PSpice中模拟电路仿真PSpice的输入有电路原理图和网单文件两种形式,我选用的是输入网单文件的方式。电路仿真程序是PSpice的核心,它的仿真功能有直流工作点分析、直流转移特性分析、直流灵敏度分析、交流小信号分析、瞬时分析、最坏情况分析和蒙特卡洛分析等。仿真输出文件有绘图文件(*.dat)和数据输出文件(*.out)。我们需要的是数据输出文件,然后用MATLAB处理模拟电路仿真数据,得到模拟电路的故障特征向量。3MATLAB读取电路仿真数据的方法电路的仿真数据是通过.PRINT命令和蒙特卡洛分析结合得到,数据储存在PSpice运行结果的.OUT输出文件中。在用MATLAB读取仿真数据数据之前,首先要对.OUT数据输出文件进行处理,即删除输出文件中的文件头尾对电路的描述统计信息和每次进行蒙特卡洛分析的描述信息等,而只保留蒙特卡洛分析得到的数据,将经过处理后的输出文件存盘,用于MATLAB的读取。3.1常用的文件读取函数1)fopen()函数调用格式:fid=fopen(filename),以只读方式打开名为filename的二进制文件,如果文件能正常打开,则可以获得一个文件句柄号fid,否则fid=-1。2)fscanf()函数调用格式:A=fscanf(fid,format),读取以fid指定的数据文件,并将它转换为format定义的格式化文本,然后赋给变量A。3.2数据读取程序代码如下:fid=fopen('f:\SJ.out','rt');a=fscanf(fid,'%f');%a为一个列矩阵b=[];c=[];form=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分析、泛函分析、调和分析、数值分析的完美结合,特别是在信号处理、图像处理、语音分析以及众多非线形科学领域应用广泛。小波变换在低频部分具有较低的时间分辨率和较高的频率分辨率,在高频部分具有较低的频率分辨率和较高的时间分辨率,具有对信号的自适应。因小波分析具有局部分析和细化的功能,因此能描述信号的间断点、趋势和自相似性等性质。小波变换包括多分辨分析和小波包变换两部分,下面将介绍两种分析在模拟电路故障特征提取中的应用方法。4.1.1基于多分辨分析的故障特征提取模拟电路故障一般都是软故障,利用小波变换来提取各频带的故障信息,分解过程用Mallat算法实现,而软故障信号的变化是比较微小的,可以用高频分解的部分来反映信号的变化,故可以将故障信号的高频系数序列进行绝对值求和,并按尺度顺序排列,作为模拟电路的故障特征向量。具体步骤如下:a)对信号进行N层Mallat分解,得到N个高频小波分解系数序列:123,,,ndddd;b)对各层高频系数序列求绝对值和,则有1njjiiDd,其中:n为序列jd中分量的个数;c)特征向量构成,按尺度顺序,以各层高频小波分解系数序列的绝对值之和为元素作为特征向量:123,,,nDDDD;d)为了提高神经网络收敛速度,进行归一化处理。4.1.2基于多分辨分析的故障特征提取在MATLAB中实现的程序代码:x=size(B);A=[];b=[];forn=1:x(1)%B仿真得到的数据矩阵s=B(n,:);[C,L]=wavedec(s,4,'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;form1=1:length(CD1)D1=D1+abs(CD1(m1));endform2=1:length(CD2)D2=D2+abs(CD2(m2));endform3=1:length(CD3)D3=D3+abs(CD3(m3));endform4=1:length(CD4)D4=D4+abs(CD4(m4));endM=sqrt(D1^2+D2^2+D3^2+D4^2);b=[D1D2D3D4];c=b./M;A=[A;c];endA%神经网络输入向量4.2.1基于小波包的故障特征提取在模拟电路故障诊断中,当待测电路发生故障时,对各频带信号的能量都有一定的影响,因此故障信号中各频带中的能量能够体现出电路中元器件的损坏情况,某种或几种频率成分能量的改变即对应着故障模式。基于小波包的故障特征提取步骤如下:a)首先对信号进行小波包分解和信号重构,设ijX是原始信号S经过小波包分解后第i层的第j个节点的小波包分解系数,是ijX的重构信号,则总信号1nijjSS;b)设ijS对应的能量为ijE,则有221231,,niiiinijijjkkPEEEEESdtx,其中:jkx(k=1,2,…n)表示重构信号ijS的离散点的幅值,2in;c)则故障特征向量为P,123,,iiiinPEEEE;d)为了提高神经网络收敛速度,进行归一化处理4.2.2基于小波包的故障特征提取在MATLAB中实现的程序代码%对采样信号进行3层小波包分解,得到8(2^3)维特征向量T=wpdec(X,3,'db3')%X为采样信号B=[];C=[];D=[];E=[];m=0;n=0;m1=0;n1=0;m2=0;n2=0;forn=0:7Z=wprcoef(T,[3n]);C=[C;Z];endform1=1:8D=C(m1,:);e=0;forn1=1:length(D)e=e+(D(n1))^2;endE=[E,e];endform2=1:length(E)n2=n2+(E(m2))^2;endE=E./sqrt(n2)5实例分析下图为一带通滤波器电路图,分别用多分辨分析和小波包变换法得到图中R1下降为50欧时得电路故障特征向量:5.1PSpice电路仿真程序如下:R11250RL30100C120CMOD0.0039UC223CMOD0.0039UC330CMOD0.0039UL12310VI10AC1.MODELCMODCAP(C=2DEV=20%).ACDEC101K100MEG.MC30ACV(3)YMAXOUTPUTFIRST30.PRINTACVM(3).PROBEVM(3)END5.2仿真分析结果当R1=50欧时分别用多分辨分析和小波包变换法得到特征向量D、E部分数据(各五组)如下:0.031498561829640.172980387570720.490328091425470.853618175109690.032246358555050.176184050204770.492605160101340.85162169362630D0.034512247234130.186323467001730.500356771222770.844828723426720.028306281217800.157641932895350.494761383503430.854142229860110.029965126228650.168125766561340.498319071459010.850008188694960.999944287762560.010541103292510.000528583260380.000164263207850.999946574477320.010321289048970.000539830467360.00016622943663E=0.999946873661090.010288146088540.000597395873350.000216439469410.999906201414120.013684095461750.000512666641240.000266266020130.999951292415950.009856897053960.000490695201040.000116206595020.000003008186990.000010946494610.000000125321470.000000915823520.000003092979040.000011117797770.000000131057340.000001044344100.000003378668270.000012796929770.000000090768500.000001555056030.000002443604970.000013104941420.000000092892170.000001605529420.000002692008020.000009096358280.000000128249620.000000614909165结束语PSpice具有强大的电路仿真能力,可以得到大量的数据,利用MATLAB进行仿真数据的处理得到电路的故障特征向量,故障特征提取的提取对以后神经网络的训练与故障诊断是至关重要的,实践证明利用小波变换理论进行特征向量的提取是可行的,但也要注意多分辨分析和小波包分析两种方法各有特点,都是有效的特征提取和故障诊断方法,具体应用时应结合实际诊断电路选择适合的分析方法参考文献:[1]李永平.PSpice电路仿真程序设计[M].北京:国防工业出版社,2006[2]张志涌等.精通Matlab6.5版[M].北京:北京航空航天出版社,2003[3]周伟.MATLAB小波分析高级技术[M].西安:西安电子科技大学出版社[4]吴昊等.Matlab与Pspice的数据接口技术.电气电子教学学报.2005[5]李明亮.基于神经网络的模拟电路故障诊断方法研究.硕士学位论文.北京.中国地质大学.2007[6]谢涛.基于神经网络和小波变换的模拟电路故障诊断理
本文标题:MATLAB结合PSPICE在模拟电路故障特征提取中的应用
链接地址:https://www.777doc.com/doc-2882238 .html