用Matlab的模拟电路故障诊断神经网络方法
MATLAB神经网络工具箱在故障诊断中的应用

利用上述表 3 中的样本 , 对网络进行训练 , 并选取 η = 0 . 2 ,α = 0 . 85 , 并规定系统的误差为 0 . 0001 . 对 应着网络的参数 :
net . trainParam. mc = 0. 85 ; net . trainParam. epochs = 8 000 ; net . trainParam. show = 100 ; net . trainParam. goal = 0. 0001 ; net . trainParam. lr = 0. 2.
x 1 , x2 , …
i i i xL
表1 网络训练模式 训练样本序号 神经网络输入 神经网络输出 故障类型 1 1 1 x1 , x2 , …x L 1 1 , 0 , …, 0 故障 1 2 2 2 x1 , x2 , …x L 2 0 , 1 , …, 0 故障 2 … … … … n n n x1 , x2 , …xL n 0 , 0 , …, 1 故障 n
对应着 MAT LAB 程序的目标输入 T [ 6 ] , 系统网络的输出节点具体值 ( 见表 2) 为 : 神经网络经初始化后 ,进行训练 ,其 MAT LAB 实现为 : [ net ,tr ] = train ( net ,P ,T) ; 网络训练的误差结果 显示如图 2 所示 .
3 在旋转机械故障诊断中的应用实例
0 . 0000 0 . 1000 0 . 1000 0 . 0000 0 . 0000 0 . 0000
注 : x 为旋转机械的工作频率
2. 2 网络开发
网络系统采用 9 个输入节点 、 15 个隐层节点 、 6 个输出节点 . 用 MAT LAB 产生 BP 神经网络 :
); net = newff ( minmax ( P) ,[ 15 6 ] ,{ ‘logsig’ ‘logsig’ }‘ , trainlm’
MATLAB结合PSPICE用于模拟电路故障诊断的方法

控制;金浙良(1983—),男,浙江绍兴人,硕士研究生,研究方向:智能控制;张海君(1983—),女,河北南宫人,硕士研究生,研究方向: 智能控制。
88
对.out 文件进行适当地调用和处理。 MATLAB 是 C 语言编写的,提供了几个低级输人输出函
数可用于文件的读写,针对 PSPICE 的输出文件格式,其中有 关的几个函数为[2]:
MATLAB 是 Math Works 公司推出的数学软件,作为一种 “科学便笺式”的用于科学工程计算的高性能数学工具,被广 泛应用于数值计算、图形处理、符号运算、数学建模、信号分 析、系统辨识、实时控制和动态仿真等研究领域。
PSP1CE 仿真分析的结果,是以列表或图形字符的形式存 储在一个输出文件中的,并可绘制相应的图形。但对数据作进 一步的处理,如主元分析、小波分析、归一化等,则显得无能为 力。因此,需将 PSPICE 仿真所得的数据输入给 MATLAB,以便 进一步对仿真结果提取更有效的特征向量。
5 结束语
PSPICE 是最受欢迎的电子系统仿真软件,它擅长于电路 的模拟仿真,而 MATLAB 则具有强大的信号分析和处理功能, 将两者结合在一起,充分发挥各自的长处,才能更好地完成各 项研究工作。而两者的数据接口问题,是首要解决的问题。本 文以具体电路为例,详细介绍了如何编程实现导入 PSPICE 仿 真数据到 MATLAB 的方法,并给出了程序流程图,通过多个电 路仿真测试,证明该程序输出结果准确,且稍作修改,即可用 于其他情况下的两者之间的数据通信,具有相当的实际工作 价值。
基于MATLAB的电气设备故障诊断仿真设计

摘要电力变压器作为电力系统中最为重要的设备之一,对电力系统安全、可靠、优质、经济的运行起着决定性作用,因而,必须尽量减少变压器故障的产生。
电力变压器故障检测对电力系统的经济安全运行有着重要的意义。
油中溶解气体法,是最有效的发现和检测变压器故障的方法之一。
神经网络对外界具有很强的模式识别分类能力和联想记忆能力,因此神经网络可以用于变压器故障检测。
基于神经网络的以变压器油中溶解气体为特征量的故障检测方法为变压器故障检测提供了新的途径。
本文将采用二种不同的神经网络(BP网络、RBF网络)应用于变压器故障检测中,分别介绍这几种网络的基本结构和原理,并进行模型设计和仿真。
关键词:变压器故障检测神经网络 BP算法 RBF算法Abstractas the most important part of the power system equipment,the power transformer to the safety of the electricity system, reliable and high quality, and the operation of the economy plays a decisive role, therefore, we must try to reduce the of transformer faults. Power transformer of electric power system fault detection of the economic security has important significances. The dissolved gas method, is one the most effective and found that one of the ways to detect transformer faults. Neural network has a strong pattern recognition classification ability and associative memory ability to the outside world, so neural network can be used for the transformer fault detection. Based on neural network to gases dissolved in transformer oil for the characteristic features of fault detection method for transformer fault detection offers a new way. Therefore.This article will use two different neural network (BP network, RBF network ) used in transformer fault detection, are introduced the basic structure of the network and the principle and design and simulation model.key words: transformer ,fault detection ,neural network ,BP algorithm ,RBF algorithm目录摘要............................................................................................................... 绪论 (1)1关于变压器故障诊断仿真设计简介 (2)1.1课题研究的目的和意义 (2)1.2国内外发展状况 (3)1.3变压器故障种类 (3)1.4目前变压器故障诊断的主要方法 (5)1.5 本文研究的主要内容 (7)2基于神经网络的变压器故障检测机理和基本理论 (8)2.1 故障诊断技术 (8)2.2神经网络 (9)2.3 变压器故障与油中溶解气体的关系 (11)3基于BP神经网络的变压器故障检测模型 (14)3.1 BP网络 (14)3.2 BP网络模型设计 (18)3.2.1 BP网络参数的确定 (18)3.2.2基于BP神经网络变压器故障检测模型 (22)3.2.3数据归一化处理 (22)3.3 系统仿真,训练与测试 (23)3.3.1网络训练 (23)3.3.2网络测试 (25)4 基于RBF神经网络的变压器故障检测模型 (26)4.1 RBF网络 (26)4.1.1 RBF网络概述 (28)4.1.2 RBF网络原理 (28)4.2 RBF网络模型设计 (29)4.2.1 RBF网络模型 (29)4.2.2 RBF网络参数的选取 (29)4.2.3 RBF网络训练方法的确定 (30)4.3 仿真结果 (31)结论与展望 (33)致谢 (34)参考文献 (35)绪论变压器是电力系统中最重要的设备,也是导致电力系统事故最多的设备之一。
Matlab在故障诊断中的应用

Matlab在故障诊断中的应用故障诊断在各个领域中起着重要的作用,能够有效地提前发现和解决问题,保证设备和系统的正常运行。
在过去的几十年中,随着电子技术和计算机技术的发展,故障诊断也逐渐实现了自动化和智能化。
其中,Matlab作为一种强大的数学计算软件,在故障诊断中发挥了重要的作用。
首先,Matlab具有丰富的数学计算和数据分析功能,使其成为了故障诊断的理想工具。
无论是在机械设备还是电子系统的故障诊断中,数据分析都是不可或缺的一环。
Matlab提供了各种各样的函数和工具箱,可以对数据进行处理、分析和可视化。
通过Matlab,我们可以对故障数据进行频域分析、时域分析、小波分析等,从而找出故障发生的原因和位置。
例如,当我们遇到电机运行不稳定的问题时,可以通过Matlab对电机的振动信号进行频谱分析,从中找出异常频率,进而定位问题所在。
其次,Matlab还可以利用人工智能算法来进行故障诊断。
人工智能在故障诊断领域中的应用越来越广泛,尤其是在复杂系统的故障诊断中。
Matlab提供了多种机器学习和深度学习算法的实现,能够根据给定的数据进行模式识别和分类。
通过训练数据集,我们可以构建故障模型,将未知数据与模型进行匹配,从而判断其是否存在故障。
例如,在工业设备的故障诊断中,我们可以通过使用Matlab中的神经网络算法,建立一个基于设备感知数据的故障识别模型,从而提高设备的可靠性和安全性。
此外,Matlab还可以结合图像处理技术进行故障诊断。
在许多领域中,比如医学影像、无损检测等,图像处理在故障诊断中的应用非常广泛。
Matlab提供了一系列函数和工具箱,能够对图像进行各种操作和分析。
通过图像处理技术,我们可以提取出图像中的特征和信息,用于故障的诊断和分析。
例如,在医学影像中,通过Matlab的图像处理工具,我们可以检测和诊断出疾病的存在和位置,提供医生准确的诊断结果。
另外,Matlab还可以与其他工具和设备进行集成,进一步提高故障诊断的效率和准确性。
使用Matlab技术进行故障检测的基本步骤

使用Matlab技术进行故障检测的基本步骤随着科学技术的不断发展,人们对于工程设备使用中的故障检测越来越重视。
而Matlab作为一种强大的数学建模和仿真软件,被广泛应用于各个领域中,包括故障检测。
本文将介绍使用Matlab技术进行故障检测的基本步骤,旨在帮助读者了解如何利用该软件来提高设备的可靠性和性能。
1. 数据采集与预处理故障检测的第一步是数据采集。
通过传感器、仪表或其他相关设备,收集机器或系统运行过程中所产生的数据。
这些数据包括振动信号、电流信号、温度信号等,以及与工程设备相关的操作参数。
数据质量的好坏直接影响到后续故障检测的准确性和可信度。
在数据采集之后,对数据进行预处理是必不可少的。
这包括数据滤波、降噪、归一化等过程。
例如,通过将信号进行低通滤波,可以降低高频噪声对故障检测结果的干扰。
通过归一化处理,可以消除由于不同传感器测量范围不同而带来的问题。
预处理的目的是提高原始数据的质量和可用性,为后续的故障检测算法提供更好的输入。
2. 特征提取与选择在完成数据预处理之后,下一步是从原始数据中提取有用的特征。
特征是指反映设备状态和特性的数值或统计量。
常用的特征包括振幅谱、频率谱、时频分析等。
它们能够揭示设备在不同时间和频率上的特定行为,如共振、共振频率变化等。
特征的选择要根据具体的故障类型和设备特性来确定,以充分反映设备的工作状态。
值得一提的是,特征工程是整个故障检测流程中最重要的环节之一。
一个恰当选择的特征集合能够提高故障检测的准确性和鲁棒性。
而Matlab提供了丰富的工具包和函数,以帮助用户进行特征提取和选择工作。
读者可以根据具体需求选择合适的方法和工具来完成特征工程。
3. 故障检测算法的建模与训练在得到有效的特征之后,下一步是选择合适的故障检测算法。
常见的算法有支持向量机(SVM)、人工神经网络(ANN)、卷积神经网络(CNN)等。
这些算法能够根据输入的特征和标签进行模型的建立和训练,从而实现故障检测的功能。
matlab仿真-利用Matlab构造BP神经网络完成变压器故障诊断

利用Matlab构造BP神经网络完成变压器故障诊断a)样本数据:在油色谱分析领域中,基于油中溶气体类型与内部故障性质的对应关系,以油中5种特征气体为依据的判断变压器故障的方法。
其特征量为H2,CH4,C2H4,C2H2,C2H6,如图3所示。
在对变压器的故障识别时,变压器的故障类型选择为:无故障、中低温过热、高温过热、低能放电和高能放电。
b)仿真数据如图:c)在Matlab中完成人工神经网络的创建、训练及最终的仿真,并给出仿真结果及训练误差曲线。
完成如下:一、源代码如下:%训练数据P=[46.21 11.27 33.04 8.52 0.614;41.12 32.51 14.45 8.36 0.52;33.36 29.32 32.89 27.28 2.25;45.86 34.97 8.25 7.43 0.31;14.92 21.98 17.15 46.12 0.0;0.872 43.18 27.14 26.88 0.0;36.13 50.96 8.15 5.67 0.0;37.98 30.85 7.57 23.01 0.0;10.99 21.29 11.30 52.98 2.38;0.958 16.01 2.89 58.01 1.16;11.03 22.51 3.31 57.96 1.13;15.68 21.87 10.98 53.22 2.53;58.03 18.56 4.58 8.62 9.78;86.89 6.48 5.28 1.13 0.0;85.86 6.98 4.52 2.56 0.0;83.68 7.96 5.15 3.02 0.56;20.23 16.96 1.68 24.52 35.74;26.76 16.56 2.98 38.76 13.61;43.92 24.41 6.62 23.91 0.531;48.02 10.27 4.52 22.36 23.62]';T= [1 0 0 0 0;1 0 0 0 0;1 0 0 0 0;1 0 0 0 0;0 1 0 0 0;0 1 0 0 0;0 1 0 0 0;0 1 0 0 0;0 0 1 0 0;0 0 1 0 0;0 0 1 0 0;0 0 1 0 0;0 0 0 1 0;0 0 0 1 0;0 0 0 1 0;0 0 0 1 0;0 0 0 0 1;0 0 0 0 1;0 0 0 0 1;0 0 0 0 1]';%仿真数据R=[7.2 5.6 3.5 2.7 3.1;120.0 120.0 33.0 83.0 0.56;20.6 19.6 7.5 60.9 1.52;42 97 156 598 0;1556 93 34 46 0;200 46 16 109 128;98 122 31 292 15;92 56 42 35 0;31.6 5.3 1.3 12.2 13.1;72 512 138 1200 5.6]';S= [1 0 0 0 0;0 1 0 0 0;0 0 1 0 0;0 0 1 0 0;0 0 0 1 0;0 0 0 0 1;0 0 1 0 0;0 1 0 0 0;0 0 0 0 1;0 0 1 0 0]';%创建一个新的bp前向神经网络%newff--生成一个新的bp前向神经网络net=newff(minmax(P),[5,5],{'tansig','logsig'},'trainlm');%设置训练参数net.trainParam.show=10; %每10代显示一次net.trainParam.lr=0.05; %训练速率net.trainParam.mem_reduc=3;net.trainParam.mc=0.9; %动量因子net.trainParam.epochs=100000; %训练的代数net.trainParam.goal=0.01; %目标误差%训练bp前向神经网络[net,tr]=train(net,P,T);%仿真A=sim(net,R);%计算仿真误差E=S-A ;SSE=sse(E);二、仿真结果:1、训练过程曲线2、仿真情况与实际情对比,以及是否正确。
在MATLAB中进行故障诊断与预测的方法
在MATLAB中进行故障诊断与预测的方法引言:故障诊断与预测是现代工业中一个重要的领域,它可以帮助企业提高生产效率、降低成本、延长设备寿命。
在过去,人们主要依靠经验和直觉来进行故障诊断与预测,但这种方法存在着主观性高、效率低等问题。
而现在,随着计算机和数据处理技术的发展,利用MATLAB进行故障诊断与预测已经成为一个更加可行和有效的选项。
一、数据收集与预处理在故障诊断与预测的过程中,首先需要收集相关的数据。
这些数据可以来自设备传感器、生产记录、日志文件等。
在收集到数据后,我们需要进行预处理,以去除噪声、填补缺失值、标准化数据等。
在MATLAB中,可以利用各种统计方法和函数进行数据预处理,以确保后续的分析准确可靠。
二、特征提取与选择特征提取是指从原始数据中提取有用的特征,以便用来描述和表示数据。
特征可以是数值型的(如平均值、方差等)或者是分类型的(如是否存在某种状态)。
在MATLAB中,可以使用各种信号处理、图像处理和统计分析等方法进行特征提取。
另外,特征选择是指从所有提取出的特征中选择出最具代表性和相关性的特征。
特征选择可以帮助我们减少特征维度,提高模型的可解释性和精确度。
三、模型建立与训练在故障诊断与预测中,选择适合的模型是非常重要的。
常用的模型包括神经网络、支持向量机、决策树等。
在MATLAB中,可以利用自带的工具箱或者编写自定义函数来建立和训练模型。
对于不同的故障诊断与预测问题,选择合适的模型是一个关键的挑战。
在选择模型的过程中,需要考虑数据的性质、问题的复杂度、模型的可解释性等因素。
四、故障诊断与预测在完成模型的建立和训练后,我们可以利用这个模型来进行故障诊断与预测。
对于故障诊断来说,我们可以利用模型来对未知状态的设备进行分类和判别。
例如,我们可以将设备状态分为正常和故障两类,用来判断设备是否存在故障。
对于故障预测来说,我们可以利用模型来对设备未来的状态进行预测,以便提前采取相应的维修和保养措施。
Matlab技术在故障诊断中的应用指南
Matlab技术在故障诊断中的应用指南引言:在现代工业生产中,故障诊断是一个至关重要的环节。
故障的发生不仅可能导致生产任务延误,还可能造成设备的严重损坏。
因此,合理有效地进行故障诊断对于保障生产的顺利进行和设备的安全运行非常重要。
Matlab作为一种高度可编程的数值计算软件,具备强大的数据分析、可视化和数学建模能力,并且具有友好的图形界面,逐渐在故障诊断中得到了广泛应用。
本文将介绍Matlab技术在故障诊断中的应用指南,包括数据处理、特征提取、故障识别和故障预测等方面。
一、数据处理数据处理是故障诊断的第一步,将采集到的原始数据转化为可用于分析的形式。
Matlab提供了丰富的数据处理函数和工具箱,可以实现数据的滤波、去噪、降维等操作。
其中,滤波是常用的数据处理方法之一。
根据故障特征和数据特点,选择适当的滤波算法对数据进行平滑处理,提高信号的质量。
同时,去噪也是重要的数据处理步骤,通过去除噪声信号,提高故障特征的可辨识性。
另外,对于高维数据,可以考虑使用主成分分析(PCA)等降维技术,减少数据维度,简化后续的分析过程。
二、特征提取特征提取是故障诊断的核心环节,目的是从原始数据中提取故障相关的特征参数。
Matlab提供了丰富的信号处理工具箱,例如时频分析、小波变换、频谱分析等,可以实现高效准确的特征提取。
时频分析方法可以揭示信号在时间和频率上的变化规律,可以更好地捕捉故障时刻和频率信息。
小波变换是一种局部时频分析方法,可以通过多分辨率分析提取出信号的非平稳特征。
频谱分析可通过傅里叶变换将信号从时域转换到频域,找出信号的频率成分。
在特征提取过程中,需要根据不同故障类型和信号特点选择合适的方法和参数。
三、故障识别故障识别是根据提取的特征参数,判断设备是否发生故障,以及故障类型和严重程度。
Matlab提供了各种分类和聚类算法,例如支持向量机(SVM)、人工神经网络(ANN)和K均值聚类,可以对提取的特征进行有效分类和聚类。
MATLAB中的异常检测与故障诊断技术
MATLAB中的异常检测与故障诊断技术引言随着科技的飞速发展,各行各业对于安全和可靠性的要求也越来越高。
在工业生产和科研实验中,异常检测与故障诊断成为了重要的技术手段。
MATLAB作为一种强大的数学计算软件,提供了丰富的工具和函数,可以用于异常检测和故障诊断。
本文将对MATLAB中的异常检测与故障诊断技术进行探讨。
一、异常检测技术1. 数据预处理在进行异常检测之前,通常需要对原始数据进行预处理。
MATLAB提供了丰富的数据处理函数,比如平滑函数、滤波函数等。
通过对数据进行预处理,可以去除噪声、消除趋势和周期性变化等,从而更好地检测异常。
2. 统计方法统计方法是一种常见的异常检测手段。
MATLAB提供了一些统计函数,比如均值、标准差、相关系数等。
通过计算数据的统计特征,可以判断是否存在异常。
例如,可以通过计算数据的均值和标准差,然后根据统计规则判断是否存在异常点。
3. 机器学习方法机器学习方法在异常检测中也有广泛的应用。
MATLAB提供了强大的机器学习工具箱,包括支持向量机、决策树、神经网络等算法。
通过使用这些算法,可以构建异常检测模型,并对新数据进行预测和判断。
机器学习方法能够快速适应各种数据和问题类型,具有较高的准确率和鲁棒性。
二、故障诊断技术1. 故障模型建立在进行故障诊断之前,首先需要建立故障模型。
故障模型描述了各种可能的故障状态和对应的观测值。
MATLAB提供了高级建模和仿真工具,可以用于构建系统的物理模型和故障模型。
通过建立准确的故障模型,可以更好地进行故障诊断。
2. 故障诊断方法在故障诊断过程中,通常采用多种方法相结合的方式。
MATLAB提供了多种故障诊断方法的实现,包括模型匹配、参数估计、特征提取等。
通过对系统的观测值进行分析和处理,可以判断系统是否发生故障,并进一步定位故障位置。
3. 故障诊断应用故障诊断技术在实际应用中具有广泛的用途。
例如,在工业生产中,可以通过对生产线数据的实时监测和分析,及时发现并诊断故障,避免生产中断和设备损坏。
Matlab中的异常检测和故障诊断方法
Matlab中的异常检测和故障诊断方法在工程和科学领域中,异常检测和故障诊断是非常重要的任务。
随着技术的发展和数据量的增加,传统的方法已经无法满足对异常事件和故障的准确识别和定位的需求。
作为一种功能强大且易于使用的计算工具,Matlab为异常检测和故障诊断提供了多种高级方法和技术。
一、异常检测方法在Matlab中,有多种异常检测方法可以选择。
其中一种常用的方法是基于统计学原理的方法,如均值和方差的检测。
这些方法假设数据服从正态分布,通过计算数据的均值和方差与预先设定的阈值进行比较,来判断数据是否异常。
然而,这种方法对于非正态分布的数据效果可能不佳。
另一种常用的异常检测方法是基于机器学习的方法,如聚类、分类和离群点检测。
在Matlab中,可以使用机器学习工具箱来实现这些方法。
例如,可以使用支持向量机(SVM)算法来进行异常检测。
该算法通过训练一个分类器来划分正常和异常数据,然后对新样本进行分类。
如果新样本被分类为异常,则可以认为该样本是异常数据。
除了以上方法,还有一些其他的异常检测方法,如基于神经网络的方法和基于时间序列的方法。
这些方法有各自的特点和适用范围,根据具体问题选择合适的方法进行异常检测。
二、故障诊断方法与异常检测相比,故障诊断更加复杂和困难。
故障诊断是在异常检测的基础上,进一步分析和推断异常的原因和根源。
在Matlab中,也有多种故障诊断方法可以选择。
其中一种常用的故障诊断方法是基于逻辑推理的方法,如专家系统和诊断树。
这些方法通过构建一个基于规则的知识库,根据给定的观测数据和先验知识,推断系统中存在的故障。
例如,可以使用模糊逻辑方法来构建一个模糊规则库,根据输入数据的模糊集合和规则的模糊推理,来诊断系统中的故障。
另一种常用的故障诊断方法是基于统计模型的方法,如隐马尔可夫模型(HMM)和贝叶斯网络。
这些方法通过建立一个概率模型,根据给定的观测数据和系统模型,推断系统中存在的故障。
例如,可以使用HMM来建立一个模型,将系统的状态表示为隐变量,并通过观测数据进行学习和推断,来诊断系统中的故障。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
将对象文件的链接和必要的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工具箱;模拟电路;故障诊断;神经网络