当前位置:
文档之家› 用Matlab的模拟电路故障诊断神经网络方法
用Matlab的模拟电路故障诊断神经网络方法
(4)使用动态链接库(DLL) 从Madab6.5开始,Madab提供了c0M生成器,cOM生成 器是实现Matlab独立应用的一种新途径,它能把Matlab开发 的程序做成组件,自动生成若干个对象文件,最终c0M生成器
将对象文件的链接和必要的Madab库生成DLL输出文件,并 且在系统上完成注册,这样就将DLL集成到了VB中,供VB 程序开发使用。这种调用方法在vB中生成ExE文件后,将脱 离MaⅡab环境工作,运行速度快。
n唧I北twork di哪08is Abstract:Compared w汕VB锄d tIle Madab mspective good锄d bad points,tIIis p印er de8cribes in detail tIIe method 0f VB
tra脚如rs Mat№雏d the principle 0f山e
VB与Madab接口有4种实现方法: (1)利用ActiveX自动化技术f-1
基金项日:国家高技术研究发展计划(863)(tlle N砒ioIlal HiglI-1kh Research锄d Devel叩mem Pl锄0f clIi湘under G劬t N0.2006AA04A104); 国家自然科学基金(d地N“oIlal NatIIral Science F0undati伽of cIIi腿under G砌t No.50677014,No.60876022);高等院校博士学科点 专项科研基金(tIle china Specialized Research Fund for the Doctoral nD邸帅0f HigIler Educati蚰under Gmlt No.20060532002);湖 南省自然科学基金(the N8tural Scie∞e Foundation 0f HuMn Pm、dnce of china under GLmt No.06JJ2024)。
DoI:l0.377嘶.issn.1002_8331.20l o.10.c166 文章编号:1002-8331(20lO)l咖213—03 文献标识码:A 中图分类号:TN40r7;TP39l
1引言 模拟电路故障诊断是近代电路理论的一个前沿领域,20
世纪60年代在军事七首先开始研究,是近40多年来发展起来 的一门新兴学科,发展至今已经成为网络理论中公认的第三大 分支。传统的人工模拟电路故障诊断由于其自身的复杂性和困 难所在,已经逐渐不能满足现代电子电路发展的需要。近年来 模拟电路的智能诊断已引起各国学者的兴趣和关注,研究热潮 很高,比较典型是应用神经网络来进行模拟电路故障诊断。神 经网络的联想、记忆、容错以及非线性映射能力在很大程度上 解决了传统人工诊断的困难,是一种很有研究价值的方法。纵 观目前这方面的报道,神经网络都是在Matlab环境下通过编 写“mat”文件来对电路进行仿真诊断。采用可视化程序设计语 言vB调用Matlab来对模拟电路进行故障诊断,用VB编写诊
收稿日期:2008—09—23 修回日期:2008—1l—14
万方数据
214 2010,46(10)
comp抛r踟∥船e一,lg饥d App比n砌邢计算机工程与应用
Activex是一种开放式标准,它允许应用程序或部件控制 另外一个应用程序或部件的运行,当前的新软件一般都支持 ActiveX部件的嵌入,Matlab语言也不例外。由于VB支持 Activex自动化控制端协议,Matlab支持Activex自动化服务 器端协议,所以如果已经建立了一个vB应用程序和Manab之 间的Activex自动化链接,那么在—个VB应用程序中就可以 调用Matlab了。利用这—特性,用户可以非常方便地在自己的
3神经网络诊断模拟电路故障原理
模拟电路的故障诊断从本质上来说是模式识别分类问题,
神经网络的良好分类能力能满足这一需要,基于误差后向传播
(Backpropagation)算法的的神经网络(BP网络)是目前用的最 广泛的神经网络。用BP神经嘲络对模拟电路进行故障诊断, 首先要获取待测电路(cuT)的故障特征向量,一个实际的模拟
(参Sub Get FullMat血(Matr—N枷e鼬蜘ng,work8pace
鹪String,Va卜Real()鹪D叫ble,Var—Ima星;()嬲Double)。通 过Get FuUMat rix方法,VB从指定的Matk山工作空间中获取
指定变量名的矩阵数据。 ③sub Put FullMat血(Matr—Name鹅striIIg,workspace
(3)利用Matlab提供的MatrixvB库
M撕xVB是Mathworl【s公司针对VB提供的一个Madab
库,可以作为—个c0M函数库被vB引用。该函数库利用与 Madab函数语法和格式类似的功能来加强VB计算、数据处理 和图形图像处理等功能。这种调用方法中MatrixvB把与M砒一 lab相似的语法和函数嵌入到VB中,虽然比较简单,编程效率 也高,但它采用的是解释执行的方式,所以开发出的程序执行 效率低,难以进行实时处理。
vB程序中使用Manab,包括执行Matlab命令,使用各种工具 箱,向M“ab输入数据,获取结果。要实现这种功能,用户首先 必须获得Manab Activex对象在系统注册表中定义的名字一
Matlab.Applic“on。在所编写的程序中必须有如下的代码: Dim Manab as 0bject
Set.Set Madab=Createobject(“Matlab.Application”) Ma£lab.Applica“on对象主要有3个函数,具体如下: ①Function Execute(conlrnand as St ring)as St ring VB可执行一条由command字符串决定的Matlab指令或 在Matlab的工作空间调用M函数文件,在屏幕上显示图形或 计算结果。
co唧蚍r西画船e矗昭觎d App如a渤瞄计算机工程与应用
ห้องสมุดไป่ตู้
2010,46(10) 213
VB调用Matlab的模拟电路故障诊断神经网络方法
谢涛,何怡刚,姚建刚,肖迎群 XIE’rao,HE Yi—gang,YAO JiaIl—gaIlg,XIAO Ying—qun
湖南大学电气与信息工程学院,长沙410082 CoⅡege of Electrical曲d Infolmation Engineemg,Hurm Ullive件毋,Ch蛐gsha 410082,Chi眦
断主界面和诊断程序,其在一定程度上可以脱离Mat址的仿
真环境。
2Ⅶ与MATLAB接口实现方法
visual Basic是由Micms硪公司推出的可视化编程语言, 它是目前综合性最高、最强大的软件开发工具之一,应用极为 广泛。VB能方便地形成应用软件中所需要的各种用户界面和 工具,并直接与系统及底层硬件交换数据。用vB开发的系统 具有容易维护、升级、界面友好、代码效率高、移植性好、执行速 度快等一系列优点。MaⅡab是Mathwork公司推出的一种高性 能的数值计算和可视化软件,其全称为Matrix L丑bomtory,亦称 矩阵实验室,它在数值分析、信号处理、系统辨识、特殊函数和 图形等方面具有广泛的应用。MAllAB的突出特点是简洁。它 利用丰富的函数资源,给用户带来最直观的开发环境。结合二 者的优点,在vB中实现Matlab功能的调用,完成核心算法的 设计,将为科学研究、工程技术、软件开发提供更强的技术支 持,达到事半功倍的效果。
Ⅺ匝Tao。HE Yi—gang,YAo Ji壮一ga赡,et a1.Metllod 0f跚lalogo啦cjI.cun falllt dia驴osis咖ral ne仰orl【based蛐Ⅶ n硼Isfe璐Matlab.C岫pu由盯Engin∞nng粕d AppⅡc枷。璐,2010.46(10):213_215.
作者简介:谢涛(1977一),男,博士研究生,主要研究方向:模拟电路故障诊断、神经网络理论及其应用与实现、射频识别(R兀D)技术;何怡刚 (196“),男,博士,教授,博士生导师,主要研究方向:自动测试与诊断、高速低压低功耗集成电路与系统筹;姚建刚(1952一),男,教授, 博士生导师,主要研究方向:电力市场及其技术支持系统、电力系统自动化和高压外绝缘等;肖迎群(1976-),男。博士研究生,主要研究 方向:射频识别技术。
电路如果发生故障的活,其输出的幅频响应—般会有比较大的 变化,利用这一特性,对待测电路用仿真软件(Pspice)模拟各 种故障,把各种故障状态下的幅频特性记录下来做为故障特征
向量输入给神经网络,为了加快神经嘲络的收敛,可以在故障 特征向量输入给神经网络之前进行归一化、小波变换等预处
理,同时BP网络采用改进的算法一附加动量因子法。带有附加
动量法的BP网络的权值和阈值更新规则为:
.幽”(矗)=y△矿(七一1)一(1.yk“(a”1)1
(1)
A6“(j})=7△6“(后一1)一(1—y)as“
(2)
其中7为动量因子,矿为BP网络第m层的敏感性御。
4仿真诊断实例 诊断电路选自Ⅱ℃’97国际标准电路中的c玛V滤波器闱
(continuou纠ime state—variabk 6lter汝1;R2=尺3;R铝R5=10 kQ。 R6=3 kQ,耵=7 kQ,C1=c2=20 nF,输入交流电压y庐6 V。
Key wor凼:Visual B鹊ic(VB);Matlalb;趾alog circu“;falllt dia印osi8;鹏ural ne咖rI【
摘要:比较了VB和Madab各自的优缺点,详细阐述了VB调用Matlab的方法以及神经网络诊断模拟电路的原理。分别采用 Madab的神经网络工具箱和VB调用Matlab的Activex自动化技术,对模拟电路进行了仿真诊断。针对VB调用MatlabI的方法给 出了诊断程序,诊断实例表明该方法是可行的,为模拟电路故障诊断软件开发提供了一定的指导作用。 关键词:VB语言;Matlab工具箱;模拟电路;故障诊断;神经网络