ImageVerifierCode 换一换
格式:DOC , 页数:6 ,大小:48KB ,
资源ID:7024110      下载积分:10 金币
验证码下载
登录下载
邮箱/手机:
图形码:
验证码: 获取验证码
温馨提示:
支付成功后,系统会自动生成账号(用户名为邮箱或者手机号,密码是验证码),方便下次登录下载和查询订单;
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/7024110.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请。


权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4009-655-100;投诉/维权电话:18658249818。

注意事项

本文(BP神经网络的C++实现及其在故障诊断中的应用.doc)为本站上传会员【xrp****65】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

BP神经网络的C++实现及其在故障诊断中的应用.doc

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

2、格,具有良好的概括、分类和抽象能力,该方法已被广泛应用于程序设计语言、形式定义、操作系统、人工智能、实时系统、数据库等多种领域。现存多种类型的神经网络,在拓扑结构和神经元权值信息的整体表现形式上具有很大的共性,而采用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(∑Wij×Xi-q j) (1) Oj–节点输出;Xi–节点输入;Wij-节点连接权值;f-非线形作用函数;q -神经单元阈值。 权

5、值修正:△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.2 BP诊断网络模型的C++构造实现      用C++实现BP网络诊断模型,包括两大模块,即网络模型数据结构模块和网络功能函数模块。 (1)模型数据结构模块     为了实现BP模型算法,并使程序结构清晰、易于阅读、扩展,采用了指针、数组及结构技术,定义了以下网络模型数据结构。 Typedef struct{ i

6、nt n_inputs,n_outputs;              // n_inputs-输入层节点数;n_inputs-输出层节点数 int n_nhlayers,*nunit[ ];    // n_nhlayers-隐层数;*nunit[ ]-各隐层节点数 float rate,momentum;                 // rate-学习因子; momentum-动量因子 float *weights[ ],*dweights[ ]; // *weights[ ]-连接权值; *dweights[ ]-权值修正值 float input[i][j];      

7、              // input[i][j]-学习样本集 float outs_hlayer[ ],outs_olayer[ i][j ]; // outs_hlayer[]-隐层输出;outs_olayer[ i][j ]-输出层输出 } BP_network; (2)模型功能函数模块 该BP程序所包含的函数较多,下面简单介绍几个关键函数及其功能。 Setup(int n_inputs,int n_outputs,int n_nhlayers,int *nunit,float rate,float momentum)的功能: 根据给定的模型参数,创建一个BP网络模型。

8、有两种方法建立网络模型:由用户在程序界面输入模型的各个参数;由程序自动调用Read_network()函数可直接从一定格式的网络模型输入文件中一次性读入网络的拓扑结构及网络权值,自动完成神经网络模型的建立过程,从而对用户掩蔽了网络实现的复杂性。 Initweight()的功能: 初始化网络的连接权值:即0~1之间的random()。 Feedforward()的功能: 实现BP网络的前向传播过程。 Feedback()的功能: 实现网络的误差反向传播,同时修正网络的权值。 Read_network()的功能: 从一定格式的网络模型文件中直接读取网络拓扑结构及权值参数值,供Set

9、up()自动建立BP网络模型。 Read_example()的功能: 从一定格式的诊断样本文件中一次性装载网络学习样本集,并传递给input[i][j]。 Write_network()的功能: 以一定格式记录保存学习后生成的网络模型,包括拓扑结构、权值、迭代次数、输出误差等值,以便Read_network()直接读取,使网络模型一旦建立,可重用。 Write_example()的功能: 当诊断输出结果较理想时,把诊断过的诊断样本和其结果增加到网络学习样本集中,使网络学习样本集随着网络学习的增加而不断壮大、充实。 通用BP神经网络诊断程序的主流程见图1。 图 1 BP神经网

10、络故障诊断模型程序图 Fig 1 Program graph of fault diagnosis module with BP network   4.故障诊断实例      在诊断对象的结构和参数未知或部分未知时,神经网络被广泛地应用在故障诊断这样的智能应用领域。下面利用上述的BP神经网络诊断程序来对磨削烧伤进行故障诊断来加以说明BP神经网络在故障诊断中的应用可行性和准确性。表1列出了部分进行归一化处理后的5组磨削烧伤诊断的BP学习样本(共100个学习样本),每一个学习样本由6种征兆参数值组成,也就是每一个学习样本所对应的状态正常与否由这6个征兆的权重共同决定。   表 1 磨

11、削烧伤故障诊断网络学习样本 Table 1 Learning examples of fault diagnosis for burn during grinding 样本号 征兆1 征兆2 征兆3 征兆4 征兆5 征兆6 状态 1 0.8815 0.6521 0.8979 0.7360 0.2567 0.1125 0.99(正常) 2 0.8759 0.5700 0.8715 0.6781 0.1854 0.0965 0.97(正常) 3 0.8165 0.5589 0.8946 0.7455 0.1565 0.0900 0.

12、98(正常) 4 0.5606 0.0491 0.6830 0.5360 0.6101 0.4940 0.40(异常) 5 0.8446 0.8128 0.6603 0.4413 0.9998 0.9989 0.41(异常)      经过网络反复自学习后,当BP故障诊断神经网络模型参数为:n_inputs=6;n_outputs=1;隐层层数n_nhlayers=1;隐层节点数 nunit=8; 学习因子 rate=0.3;动量因子 momentum=0.1;预设误差error=0.001时,网络收敛速度最快:迭代2547次后,达到预设误差要求收敛。   

13、   利用学习后建立的故障诊断网络模型来进行待诊断样本的诊断,将诊断后的结果与各个征兆的隶属度权重知识库进行贴近度比较,得出待诊样本1与学习样本2最接近,因此将其诊断为正常;而待诊样本2与学习样本5最接近,因此将其诊断为异常,诊断结果见表2。   表 2 待诊断故障样本及其诊断结果 Table 2 Examples to be diagnosed and results 待诊样本编号 征兆1 征兆2 征兆3 征兆4 征兆5 征兆6 诊断结果 1 0.7573 0.4810 0.8945 0.7372 0.4054 0.1793 0.9733(正常) 2

14、 0.8445 0.8128 0.6603 0.4414 0.9980 0.9889 0.4072(异常) 5. 总 结      本文采用C++构造实现了BP神经网络模型算法通用程序,该模型程序具有较好的移植性和通用性,对于开发其它神经网络程序具有一定的借鉴意义。故障诊断实例表明该BP故障诊断模型程序的可行性,并且收敛速度快、诊断正确。 参考文献 1. 蒋军成,王省身.煤层自燃危险性预测的人工神经网络方法.中国矿业大学学报,1997,3:19-22. 2. 彭宁,蒋静坪.面向对象的神经网络程序设计及其在非线形动态系统辨识中的应用.科技通报,1999,15(3):193-

15、195  3. 张庆年.前馈神经网络的特性分析与应用.武汉交通科技大学学报,1999,23(4):372-374 Realization of BP Network with C++ and Its Application in Fault Diagnosis  Wang Sanming Jiang Juncheng (College of Mechanic Engineering, Nanjing University of  Technology, Nanjing , 210009) Abstract   A universal BP program has been desig

16、ned with C++ by the way of OOP(Object-Oriented Programming). The key technique and important function modules design of the program have been introduced. Then the BP program is used in fault diagnosis. The diagnosis module with BP is provided. A example of fault diagnosis using the BP program has been given. The diagnosing results show the BP program has friendly interface, good property of expansion and nicety. Key words   Object-oriented Programming BP Network Fault Diagnosis

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服