bp神经网络的c++实现及其在故障诊断中的应用

bp神经网络的c++实现及其在故障诊断中的应用

ID:15918250

大小:48.00 KB

页数:6页

时间:2018-08-06

bp神经网络的c++实现及其在故障诊断中的应用_第1页
bp神经网络的c++实现及其在故障诊断中的应用_第2页
bp神经网络的c++实现及其在故障诊断中的应用_第3页
bp神经网络的c++实现及其在故障诊断中的应用_第4页
bp神经网络的c++实现及其在故障诊断中的应用_第5页
资源描述:

《bp神经网络的c++实现及其在故障诊断中的应用》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、BP神经网络的C++实现及其在故障诊断中的应用 王三明蒋军成(南京化工大学南京210009)摘要:采用面向对象的程序设计方法(OOP),利用C++构造实现了优化BP神经网络通用故障诊断程序,介绍了该程序构造的关键技术和重要诊断程序模块的设计;该程序具有良好操作性、扩展性和通用性,诊断实例表明此神经网络故障诊断模型的准确性。关键词:面向对象的程序设计BP神经网络故障诊断1.引言   人工神经网络具有自组织、自适应和并行处理等特点以及很强的输入输出非线形映射能力和易于学习和训练的优点,已被广泛应用于多个领域。    面向对象的程序设计(OOP)风

2、格,具有良好的概括、分类和抽象能力,该方法已被广泛应用于程序设计语言、形式定义、操作系统、人工智能、实时系统、数据库等多种领域。现存多种类型的神经网络,在拓扑结构和神经元权值信息的整体表现形式上具有很大的共性,而采用OOP实现这些共性是非常有效的。本文采用OOP法,利用C++语言实现了BP神经网络通用程序,以促进神经网络的在故障诊断中的更好应用。2.OOP方法简介[3]  OOP(Oject-OrientedProgramming)是模块设计的一种有效程序设计方法。OOP的包括几个重要概念:对象(object)它不仅代表了普遍使用的物体的直接

3、抽象,而且对用户掩遮了实现的复杂性;类(class);继承(inheritance);多态性(polymorphism),在C++中主要体现在虚函数的应用上;类模板(template)在C++中允许单个的类处理通用的数据类型T。   OOP中的类结构通过类接口和类实现分离开来支持信息隐藏,这种分离允许类接口映射到多种不同实现,对用户掩蔽了实现的复杂性。继承机制使对象具有很好的可扩展性,也易于实现软件的重用。这些特性都非常适合于神经网络的实现。3.BP故障诊断神经网络模型及其C++实现3.1BP故障诊断神经网络模型    BP网络由多个网络层构

4、成,其中包括一个输入层、一个或几个隐层、一个输出层,层与层之间采用全互连接,同层神经元之间不存在相互连接。BP网络的学习过程由前向传播和反向传播组成,在前向传播过程中,输入模式经输入层、隐层逐层处理,并传向输出层,如果在输出层不能得到期望的输出,则转入反向传播过程,将误差值沿连接通路逐层反向传送,并修正各层连接权值。对于给定的一组训练模式,不断用一个训练模式训练网络,重复前向传播和误差反向传播过程,直至网络均方误差(Ep)小于给定值为止。前向传播的过程按(1)式进行,反向传播过程按(3)、(4)进行。节点输出:Oj=f(∑Wij×Xi-qj)

5、(1)Oj–节点输出;Xi–节点输入;Wij-节点连接权值;f-非线形作用函数;q-神经单元阈值。权值修正:△Wij(n+1)=a×Ei×Oj+h×△Wij(n)(2)a-学习因子(根据输出误差动态调整);h-动量因子;Ei-计算误差。误差计算:Ep=1/2×∑(tpi-Opi)2(3)tpi-i节点的期望输出值;Opi-i节点计算输出值。3.2BP诊断网络模型的C++构造实现    用C++实现BP网络诊断模型,包括两大模块,即网络模型数据结构模块和网络功能函数模块。(1)模型数据结构模块   为了实现BP模型算法,并使程序结构清晰、易于阅

6、读、扩展,采用了指针、数组及结构技术,定义了以下网络模型数据结构。Typedefstruct{intn_inputs,n_outputs;             //n_inputs-输入层节点数;n_inputs-输出层节点数intn_nhlayers,*nunit[];   //n_nhlayers-隐层数;*nunit[]-各隐层节点数floatrate,momentum;                //rate-学习因子;momentum-动量因子float*weights[],*dweights[];//*weights[]-

7、连接权值;*dweights[]-权值修正值floatinput[i][j];                   //input[i][j]-学习样本集floatouts_hlayer[],outs_olayer[i][j];//outs_hlayer[]-隐层输出;outs_olayer[i][j]-输出层输出}BP_network;(2)模型功能函数模块该BP程序所包含的函数较多,下面简单介绍几个关键函数及其功能。Setup(intn_inputs,intn_outputs,intn_nhlayers,int*nunit,floatra

8、te,floatmomentum)的功能:根据给定的模型参数,创建一个BP网络模型。有两种方法建立网络模型:由用户在程序界面输入模型的各个参数;由程序自动调用Rea

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。