BP神经网络的C++实现及其在故障诊断中的应用.doc
《BP神经网络的C++实现及其在故障诊断中的应用.doc》由会员分享,可在线阅读,更多相关《BP神经网络的C++实现及其在故障诊断中的应用.doc(6页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、【精品文档】如有侵权,请联系网站删除,仅供学习与交流BP神经网络的C+实现及其在故障诊断中的应用.精品文档.BP神经网络的C+实现及其在故障诊断中的应用王三明 蒋军成(南京化工大学 南京 210009)摘 要: 采用面向对象的程序设计方法(OOP),利用C+构造实现了优化BP神经网络通用故障诊断程序,介绍了该程序构造的关键技术和重要诊断程序模块的设计;该程序具有良好操作性、扩展性和通用性,诊断实例表明此神经网络故障诊断模型的准确性。关键词: 面向对象的程序设计 BP神经网络 故障诊断1. 引 言 人工神经网络具有自组织、自适应和并行处理等特点以及很强的输入输出非线形映射能力和易于学习和训练的优
2、点,已被广泛应用于多个领域。 面向对象的程序设计(OOP)风格,具有良好的概括、分类和抽象能力,该方法已被广泛应用于程序设计语言、形式定义、操作系统、人工智能、实时系统、数据库等多种领域。现存多种类型的神经网络,在拓扑结构和神经元权值信息的整体表现形式上具有很大的共性,而采用OOP实现这些共性是非常有效的。本文采用OOP法,利用C+语言实现了BP神经网络通用程序,以促进神经网络的在故障诊断中的更好应用。2.OOP方法简介3 OOP(Oject-Oriented Programming)是模块设计的一种有效程序设计方法。OOP的包括几个重要概念:对象(object)它不仅代表了普遍使用的物体的直
3、接抽象,而且对用户掩遮了实现的复杂性;类(class) ;继承(inheritance) ;多态性(polymorphism),在C+中主要体现在虚函数的应用上;类模板(template)在C+中允许单个的类处理通用的数据类型T。 OOP中的类结构通过类接口和类实现分离开来支持信息隐藏,这种分离允许类接口映射到多种不同实现,对用户掩蔽了实现的复杂性。继承机制使对象具有很好的可扩展性,也易于实现软件的重用。这些特性都非常适合于神经网络的实现。3.BP故障诊断神经网络模型及其C+实现3.1 BP故障诊断神经网络模型 BP网络由多个网络层构成,其中包括一个输入层、一个或几个隐层、一个输出层,层与层之
4、间采用全互连接,同层神经元之间不存在相互连接。BP网络的学习过程由前向传播和反向传播组成,在前向传播过程中,输入模式经输入层、隐层逐层处理,并传向输出层,如果在输出层不能得到期望的输出,则转入反向传播过程,将误差值沿连接通路逐层反向传送,并修正各层连接权值。对于给定的一组训练模式,不断用一个训练模式训练网络,重复前向传播和误差反向传播过程,直至网络均方误差(Ep)小于给定值为止。前向传播的过程按(1)式进行,反向传播过程按(3)、(4)进行。节点输出:Oj=f(WijXi-q j) (1)Oj节点输出;Xi节点输入;Wij-节点连接权值;f-非线形作用函数;q -神经单元阈值。权值修正:Wij
5、(n+1)= aEiOj+ hWij(n) (2)a-学习因子(根据输出误差动态调整);h -动量因子;Ei-计算误差。误差计算:Ep=1/2(tpi-Opi)2 (3)tpi- i节点的期望输出值;Opi-i节点计算输出值。3.2 BP诊断网络模型的C+构造实现 用C+实现BP网络诊断模型,包括两大模块,即网络模型数据结构模块和网络功能函数模块。(1)模型数据结构模块 为了实现BP模型算法,并使程序结构清晰、易于阅读、扩展,采用了指针、数组及结构技术,定义了以下网络模型数据结构。Typedef structint n_inputs,n_outputs; / n_inputs-输入层节点数;n
6、_inputs-输出层节点数int n_nhlayers,*nunit ; / n_nhlayers-隐层数;*nunit -各隐层节点数float rate,momentum; / rate-学习因子; momentum-动量因子float *weights ,*dweights ; / *weights -连接权值; *dweights -权值修正值float inputij; / inputij-学习样本集float outs_hlayer ,outs_olayer ij ; / outs_hlayer-隐层输出;outs_olayer ij -输出层输出 BP_network;(2)模
7、型功能函数模块该BP程序所包含的函数较多,下面简单介绍几个关键函数及其功能。Setup(int n_inputs,int n_outputs,int n_nhlayers,int *nunit,float rate,float momentum)的功能:根据给定的模型参数,创建一个BP网络模型。有两种方法建立网络模型:由用户在程序界面输入模型的各个参数;由程序自动调用Read_network()函数可直接从一定格式的网络模型输入文件中一次性读入网络的拓扑结构及网络权值,自动完成神经网络模型的建立过程,从而对用户掩蔽了网络实现的复杂性。Initweight()的功能:初始化网络的连接权值:即01
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- BP 神经网络 C+ 实现 及其 故障诊断 中的 应用
限制150内