BP 神經(jīng)網(wǎng)絡(luò)的C 實(shí)現(xiàn)及其在故障診斷中的應(yīng)用.doc_第1頁
BP 神經(jīng)網(wǎng)絡(luò)的C 實(shí)現(xiàn)及其在故障診斷中的應(yīng)用.doc_第2頁
BP 神經(jīng)網(wǎng)絡(luò)的C 實(shí)現(xiàn)及其在故障診斷中的應(yīng)用.doc_第3頁
BP 神經(jīng)網(wǎng)絡(luò)的C 實(shí)現(xiàn)及其在故障診斷中的應(yīng)用.doc_第4頁
BP 神經(jīng)網(wǎng)絡(luò)的C 實(shí)現(xiàn)及其在故障診斷中的應(yīng)用.doc_第5頁
已閱讀5頁,還剩1頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

BP神經(jīng)網(wǎng)絡(luò)的C+實(shí)現(xiàn)及其在故障診斷中的應(yīng)用王三明蔣軍成(南京化工大學(xué)南京210009)摘要:采用面向?qū)ο蟮某绦蛟O(shè)計(jì)方法(OOP),利用C+構(gòu)造實(shí)現(xiàn)了優(yōu)化BP神經(jīng)網(wǎng)絡(luò)通用故障診斷程序,介紹了該程序構(gòu)造的關(guān)鍵技術(shù)和重要診斷程序模塊的設(shè)計(jì);該程序具有良好操作性、擴(kuò)展性和通用性,診斷實(shí)例表明此神經(jīng)網(wǎng)絡(luò)故障診斷模型的準(zhǔn)確性。關(guān)鍵詞:面向?qū)ο蟮某绦蛟O(shè)計(jì)BP神經(jīng)網(wǎng)絡(luò)故障診斷1.引言人工神經(jīng)網(wǎng)絡(luò)具有自組織、自適應(yīng)和并行處理等特點(diǎn)以及很強(qiáng)的輸入輸出非線形映射能力和易于學(xué)習(xí)和訓(xùn)練的優(yōu)點(diǎn),已被廣泛應(yīng)用于多個(gè)領(lǐng)域。面向?qū)ο蟮某绦蛟O(shè)計(jì)(OOP)風(fēng)格,具有良好的概括、分類和抽象能力,該方法已被廣泛應(yīng)用于程序設(shè)計(jì)語言、形式定義、操作系統(tǒng)、人工智能、實(shí)時(shí)系統(tǒng)、數(shù)據(jù)庫等多種領(lǐng)域?,F(xiàn)存多種類型的神經(jīng)網(wǎng)絡(luò),在拓?fù)浣Y(jié)構(gòu)和神經(jīng)元權(quán)值信息的整體表現(xiàn)形式上具有很大的共性,而采用OOP實(shí)現(xiàn)這些共性是非常有效的。本文采用OOP法,利用C+語言實(shí)現(xiàn)了BP神經(jīng)網(wǎng)絡(luò)通用程序,以促進(jìn)神經(jīng)網(wǎng)絡(luò)的在故障診斷中的更好應(yīng)用。2.OOP方法簡介3OOP(Oject-OrientedProgramming)是模塊設(shè)計(jì)的一種有效程序設(shè)計(jì)方法。OOP的包括幾個(gè)重要概念:對(duì)象(object)它不僅代表了普遍使用的物體的直接抽象,而且對(duì)用戶掩遮了實(shí)現(xiàn)的復(fù)雜性;類(class);繼承(inheritance);多態(tài)性(polymorphism),在C+中主要體現(xiàn)在虛函數(shù)的應(yīng)用上;類模板(template)在C+中允許單個(gè)的類處理通用的數(shù)據(jù)類型T。OOP中的類結(jié)構(gòu)通過類接口和類實(shí)現(xiàn)分離開來支持信息隱藏,這種分離允許類接口映射到多種不同實(shí)現(xiàn),對(duì)用戶掩蔽了實(shí)現(xiàn)的復(fù)雜性。繼承機(jī)制使對(duì)象具有很好的可擴(kuò)展性,也易于實(shí)現(xiàn)軟件的重用。這些特性都非常適合于神經(jīng)網(wǎng)絡(luò)的實(shí)現(xiàn)。3.BP故障診斷神經(jīng)網(wǎng)絡(luò)模型及其C+實(shí)現(xiàn)3.1BP故障診斷神經(jīng)網(wǎng)絡(luò)模型BP網(wǎng)絡(luò)由多個(gè)網(wǎng)絡(luò)層構(gòu)成,其中包括一個(gè)輸入層、一個(gè)或幾個(gè)隱層、一個(gè)輸出層,層與層之間采用全互連接,同層神經(jīng)元之間不存在相互連接。BP網(wǎng)絡(luò)的學(xué)習(xí)過程由前向傳播和反向傳播組成,在前向傳播過程中,輸入模式經(jīng)輸入層、隱層逐層處理,并傳向輸出層,如果在輸出層不能得到期望的輸出,則轉(zhuǎn)入反向傳播過程,將誤差值沿連接通路逐層反向傳送,并修正各層連接權(quán)值。對(duì)于給定的一組訓(xùn)練模式,不斷用一個(gè)訓(xùn)練模式訓(xùn)練網(wǎng)絡(luò),重復(fù)前向傳播和誤差反向傳播過程,直至網(wǎng)絡(luò)均方誤差(Ep)小于給定值為止。前向傳播的過程按(1)式進(jìn)行,反向傳播過程按(3)、(4)進(jìn)行。節(jié)點(diǎn)輸出:Oj=f(WijXi-j)(1)Oj節(jié)點(diǎn)輸出;Xi節(jié)點(diǎn)輸入;Wij-節(jié)點(diǎn)連接權(quán)值;f-非線形作用函數(shù);-神經(jīng)單元閾值。權(quán)值修正:Wij(n+1)=aEiOj+Wij(n)(2)a-學(xué)習(xí)因子(根據(jù)輸出誤差動(dòng)態(tài)調(diào)整);-動(dòng)量因子;Ei-計(jì)算誤差。誤差計(jì)算:Ep=1/2(tpi-Opi)2(3)tpi-i節(jié)點(diǎn)的期望輸出值;Opi-i節(jié)點(diǎn)計(jì)算輸出值。3.2BP診斷網(wǎng)絡(luò)模型的C+構(gòu)造實(shí)現(xiàn)用C+實(shí)現(xiàn)BP網(wǎng)絡(luò)診斷模型,包括兩大模塊,即網(wǎng)絡(luò)模型數(shù)據(jù)結(jié)構(gòu)模塊和網(wǎng)絡(luò)功能函數(shù)模塊。(1)模型數(shù)據(jù)結(jié)構(gòu)模塊為了實(shí)現(xiàn)BP模型算法,并使程序結(jié)構(gòu)清晰、易于閱讀、擴(kuò)展,采用了指針、數(shù)組及結(jié)構(gòu)技術(shù),定義了以下網(wǎng)絡(luò)模型數(shù)據(jù)結(jié)構(gòu)。Typedefstructintn_inputs,n_outputs;/n_inputs-輸入層節(jié)點(diǎn)數(shù);n_inputs-輸出層節(jié)點(diǎn)數(shù)intn_nhlayers,*nunit;/n_nhlayers-隱層數(shù);*nunit-各隱層節(jié)點(diǎn)數(shù)floatrate,momentum;/rate-學(xué)習(xí)因子;momentum-動(dòng)量因子float*weights,*dweights;/*weights-連接權(quán)值;*dweights-權(quán)值修正值floatinputij;/inputij-學(xué)習(xí)樣本集floatouts_hlayer,outs_olayerij;/outs_hlayer-隱層輸出;outs_olayerij-輸出層輸出BP_network;(2)模型功能函數(shù)模塊該BP程序所包含的函數(shù)較多,下面簡單介紹幾個(gè)關(guān)鍵函數(shù)及其功能。Setup(intn_inputs,intn_outputs,intn_nhlayers,int*nunit,floatrate,floatmomentum)的功能:根據(jù)給定的模型參數(shù),創(chuàng)建一個(gè)BP網(wǎng)絡(luò)模型。有兩種方法建立網(wǎng)絡(luò)模型:由用戶在程序界面輸入模型的各個(gè)參數(shù);由程序自動(dòng)調(diào)用Read_network()函數(shù)可直接從一定格式的網(wǎng)絡(luò)模型輸入文件中一次性讀入網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)及網(wǎng)絡(luò)權(quán)值,自動(dòng)完成神經(jīng)網(wǎng)絡(luò)模型的建立過程,從而對(duì)用戶掩蔽了網(wǎng)絡(luò)實(shí)現(xiàn)的復(fù)雜性。Initweight()的功能:初始化網(wǎng)絡(luò)的連接權(quán)值:即01之間的random()。Feedforward()的功能:實(shí)現(xiàn)BP網(wǎng)絡(luò)的前向傳播過程。Feedback()的功能:實(shí)現(xiàn)網(wǎng)絡(luò)的誤差反向傳播,同時(shí)修正網(wǎng)絡(luò)的權(quán)值。Read_network()的功能:從一定格式的網(wǎng)絡(luò)模型文件中直接讀取網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)及權(quán)值參數(shù)值,供Setup()自動(dòng)建立BP網(wǎng)絡(luò)模型。Read_example()的功能:從一定格式的診斷樣本文件中一次性裝載網(wǎng)絡(luò)學(xué)習(xí)樣本集,并傳遞給inputij。Write_network()的功能:以一定格式記錄保存學(xué)習(xí)后生成的網(wǎng)絡(luò)模型,包括拓?fù)浣Y(jié)構(gòu)、權(quán)值、迭代次數(shù)、輸出誤差等值,以便Read_network()直接讀取,使網(wǎng)絡(luò)模型一旦建立,可重用。Write_example()的功能:當(dāng)診斷輸出結(jié)果較理想時(shí),把診斷過的診斷樣本和其結(jié)果增加到網(wǎng)絡(luò)學(xué)習(xí)樣本集中,使網(wǎng)絡(luò)學(xué)習(xí)樣本集隨著網(wǎng)絡(luò)學(xué)習(xí)的增加而不斷壯大、充實(shí)。通用BP神經(jīng)網(wǎng)絡(luò)診斷程序的主流程見圖1。圖1BP神經(jīng)網(wǎng)絡(luò)故障診斷模型程序圖Fig1ProgramgraphoffaultdiagnosismodulewithBPnetwork4.故障診斷實(shí)例在診斷對(duì)象的結(jié)構(gòu)和參數(shù)未知或部分未知時(shí),神經(jīng)網(wǎng)絡(luò)被廣泛地應(yīng)用在故障診斷這樣的智能應(yīng)用領(lǐng)域。下面利用上述的BP神經(jīng)網(wǎng)絡(luò)診斷程序來對(duì)磨削燒傷進(jìn)行故障診斷來加以說明BP神經(jīng)網(wǎng)絡(luò)在故障診斷中的應(yīng)用可行性和準(zhǔn)確性。表1列出了部分進(jìn)行歸一化處理后的5組磨削燒傷診斷的BP學(xué)習(xí)樣本(共100個(gè)學(xué)習(xí)樣本),每一個(gè)學(xué)習(xí)樣本由6種征兆參數(shù)值組成,也就是每一個(gè)學(xué)習(xí)樣本所對(duì)應(yīng)的狀態(tài)正常與否由這6個(gè)征兆的權(quán)重共同決定。表1磨削燒傷故障診斷網(wǎng)絡(luò)學(xué)習(xí)樣本Table1Learningexamplesoffaultdiagnosisforburnduringgrinding樣本號(hào)征兆1征兆2征兆3征兆4征兆5征兆6狀態(tài)10.88150.65210.89790.73600.25670.11250.99(正常)20.87590.57000.87150.67810.18540.09650.97(正常)30.81650.55890.89460.74550.15650.09000.98(正常)40.56060.04910.68300.53600.61010.49400.40(異常)50.84460.81280.66030.44130.99980.99890.41(異常)經(jīng)過網(wǎng)絡(luò)反復(fù)自學(xué)習(xí)后,當(dāng)BP故障診斷神經(jīng)網(wǎng)絡(luò)模型參數(shù)為:n_inputs=6;n_outputs=1;隱層層數(shù)n_nhlayers=1;隱層節(jié)點(diǎn)數(shù)nunit=8;學(xué)習(xí)因子rate=0.3;動(dòng)量因子momentum=0.1;預(yù)設(shè)誤差error=0.001時(shí),網(wǎng)絡(luò)收斂速度最快:迭代2547次后,達(dá)到預(yù)設(shè)誤差要求收斂。利用學(xué)習(xí)后建立的故障診斷網(wǎng)絡(luò)模型來進(jìn)行待診斷樣本的診斷,將診斷后的結(jié)果與各個(gè)征兆的隸屬度權(quán)重知識(shí)庫進(jìn)行貼近度比較,得出待診樣本1與學(xué)習(xí)樣本2最接近,因此將其診斷為正常;而待診樣本2與學(xué)習(xí)樣本5最接近,因此將其診斷為異常,診斷結(jié)果見表2。表2待診斷故障樣本及其診斷結(jié)果Table2Examplestobediagnosedandresults待診樣本編號(hào)征兆1征兆2征兆3征兆4征兆5征兆6診斷結(jié)果10.75730.48100.89450.73720.40540.17930.9733(正常)20.84450.81280.66030.44140.99800.98890.4072(異常)5.總結(jié)本文采用C+構(gòu)造實(shí)現(xiàn)了BP神經(jīng)網(wǎng)絡(luò)模型算法通用程序,該模型程序具有較好的移植性和通用性,對(duì)于開發(fā)其它神經(jīng)網(wǎng)絡(luò)程序具有一定的借鑒意義。故障診斷實(shí)例表明該BP故障診斷模型程序的可行性,并且收斂速度快、診斷正確。參考文獻(xiàn)1.蔣軍成,王省身.煤層自燃危險(xiǎn)性預(yù)測(cè)的人工神經(jīng)網(wǎng)絡(luò)方法.中國礦業(yè)大學(xué)學(xué)報(bào),1997,3:19-22.2.彭寧,蔣靜坪.面向?qū)ο蟮纳窠?jīng)網(wǎng)絡(luò)程序設(shè)計(jì)及其在非線形動(dòng)態(tài)系統(tǒng)辨識(shí)中的應(yīng)用.科技通報(bào),1999,15(3):193-1953.張慶年.前饋神經(jīng)網(wǎng)絡(luò)的特性分析與應(yīng)用.武漢交通科技大學(xué)學(xué)報(bào),1999,23(4):372-374RealizationofBPNetworkwithC+andItsApplicationinFaultDiagnosisWangSanmingJiangJuncheng(CollegeofMechanicEngineering,NanjingUniversityofTechnology,Nanjing,210009)AbstractAuniversalBPprogramhasbeendesignedwithC+bythewayofOOP(Object-OrientedProgramming).Thekeytechniqueandimportantfunctionmodulesdesignoftheprogramhavebeenintroduced.ThentheBPprogramisusedinfaultdiagnosis.Thediagnosismodulewith

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論