已閱讀5頁,還剩1頁未讀, 繼續(xù)免費閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
BP神經(jīng)網(wǎng)絡的C+實現(xiàn)及其在故障診斷中的應用王三明蔣軍成(南京化工大學南京210009)摘要:采用面向?qū)ο蟮某绦蛟O計方法(OOP),利用C+構(gòu)造實現(xiàn)了優(yōu)化BP神經(jīng)網(wǎng)絡通用故障診斷程序,介紹了該程序構(gòu)造的關鍵技術(shù)和重要診斷程序模塊的設計;該程序具有良好操作性、擴展性和通用性,診斷實例表明此神經(jīng)網(wǎng)絡故障診斷模型的準確性。關鍵詞:面向?qū)ο蟮某绦蛟O計BP神經(jīng)網(wǎng)絡故障診斷1.引言人工神經(jīng)網(wǎng)絡具有自組織、自適應和并行處理等特點以及很強的輸入輸出非線形映射能力和易于學習和訓練的優(yōu)點,已被廣泛應用于多個領域。面向?qū)ο蟮某绦蛟O計(OOP)風格,具有良好的概括、分類和抽象能力,該方法已被廣泛應用于程序設計語言、形式定義、操作系統(tǒng)、人工智能、實時系統(tǒng)、數(shù)據(jù)庫等多種領域?,F(xiàn)存多種類型的神經(jīng)網(wǎng)絡,在拓撲結(jié)構(gòu)和神經(jīng)元權(quán)值信息的整體表現(xiàn)形式上具有很大的共性,而采用OOP實現(xiàn)這些共性是非常有效的。本文采用OOP法,利用C+語言實現(xiàn)了BP神經(jīng)網(wǎng)絡通用程序,以促進神經(jīng)網(wǎng)絡的在故障診斷中的更好應用。2.OOP方法簡介3OOP(Oject-OrientedProgramming)是模塊設計的一種有效程序設計方法。OOP的包括幾個重要概念:對象(object)它不僅代表了普遍使用的物體的直接抽象,而且對用戶掩遮了實現(xiàn)的復雜性;類(class);繼承(inheritance);多態(tài)性(polymorphism),在C+中主要體現(xiàn)在虛函數(shù)的應用上;類模板(template)在C+中允許單個的類處理通用的數(shù)據(jù)類型T。OOP中的類結(jié)構(gòu)通過類接口和類實現(xiàn)分離開來支持信息隱藏,這種分離允許類接口映射到多種不同實現(xiàn),對用戶掩蔽了實現(xiàn)的復雜性。繼承機制使對象具有很好的可擴展性,也易于實現(xiàn)軟件的重用。這些特性都非常適合于神經(jīng)網(wǎng)絡的實現(xiàn)。3.BP故障診斷神經(jīng)網(wǎng)絡模型及其C+實現(xiàn)3.1BP故障診斷神經(jīng)網(wǎng)絡模型BP網(wǎng)絡由多個網(wǎng)絡層構(gòu)成,其中包括一個輸入層、一個或幾個隱層、一個輸出層,層與層之間采用全互連接,同層神經(jīng)元之間不存在相互連接。BP網(wǎng)絡的學習過程由前向傳播和反向傳播組成,在前向傳播過程中,輸入模式經(jīng)輸入層、隱層逐層處理,并傳向輸出層,如果在輸出層不能得到期望的輸出,則轉(zhuǎn)入反向傳播過程,將誤差值沿連接通路逐層反向傳送,并修正各層連接權(quán)值。對于給定的一組訓練模式,不斷用一個訓練模式訓練網(wǎng)絡,重復前向傳播和誤差反向傳播過程,直至網(wǎng)絡均方誤差(Ep)小于給定值為止。前向傳播的過程按(1)式進行,反向傳播過程按(3)、(4)進行。節(jié)點輸出:Oj=f(WijXi-j)(1)Oj節(jié)點輸出;Xi節(jié)點輸入;Wij-節(jié)點連接權(quán)值;f-非線形作用函數(shù);-神經(jīng)單元閾值。權(quán)值修正:Wij(n+1)=aEiOj+Wij(n)(2)a-學習因子(根據(jù)輸出誤差動態(tài)調(diào)整);-動量因子;Ei-計算誤差。誤差計算:Ep=1/2(tpi-Opi)2(3)tpi-i節(jié)點的期望輸出值;Opi-i節(jié)點計算輸出值。3.2BP診斷網(wǎng)絡模型的C+構(gòu)造實現(xiàn)用C+實現(xiàn)BP網(wǎng)絡診斷模型,包括兩大模塊,即網(wǎng)絡模型數(shù)據(jù)結(jié)構(gòu)模塊和網(wǎng)絡功能函數(shù)模塊。(1)模型數(shù)據(jù)結(jié)構(gòu)模塊為了實現(xiàn)BP模型算法,并使程序結(jié)構(gòu)清晰、易于閱讀、擴展,采用了指針、數(shù)組及結(jié)構(gòu)技術(shù),定義了以下網(wǎng)絡模型數(shù)據(jù)結(jié)構(gòu)。Typedefstructintn_inputs,n_outputs;/n_inputs-輸入層節(jié)點數(shù);n_inputs-輸出層節(jié)點數(shù)intn_nhlayers,*nunit;/n_nhlayers-隱層數(shù);*nunit-各隱層節(jié)點數(shù)floatrate,momentum;/rate-學習因子;momentum-動量因子float*weights,*dweights;/*weights-連接權(quán)值;*dweights-權(quán)值修正值floatinputij;/inputij-學習樣本集floatouts_hlayer,outs_olayerij;/outs_hlayer-隱層輸出;outs_olayerij-輸出層輸出BP_network;(2)模型功能函數(shù)模塊該BP程序所包含的函數(shù)較多,下面簡單介紹幾個關鍵函數(shù)及其功能。Setup(intn_inputs,intn_outputs,intn_nhlayers,int*nunit,floatrate,floatmomentum)的功能:根據(jù)給定的模型參數(shù),創(chuàng)建一個BP網(wǎng)絡模型。有兩種方法建立網(wǎng)絡模型:由用戶在程序界面輸入模型的各個參數(shù);由程序自動調(diào)用Read_network()函數(shù)可直接從一定格式的網(wǎng)絡模型輸入文件中一次性讀入網(wǎng)絡的拓撲結(jié)構(gòu)及網(wǎng)絡權(quán)值,自動完成神經(jīng)網(wǎng)絡模型的建立過程,從而對用戶掩蔽了網(wǎng)絡實現(xiàn)的復雜性。Initweight()的功能:初始化網(wǎng)絡的連接權(quán)值:即01之間的random()。Feedforward()的功能:實現(xiàn)BP網(wǎng)絡的前向傳播過程。Feedback()的功能:實現(xiàn)網(wǎng)絡的誤差反向傳播,同時修正網(wǎng)絡的權(quán)值。Read_network()的功能:從一定格式的網(wǎng)絡模型文件中直接讀取網(wǎng)絡拓撲結(jié)構(gòu)及權(quán)值參數(shù)值,供Setup()自動建立BP網(wǎng)絡模型。Read_example()的功能:從一定格式的診斷樣本文件中一次性裝載網(wǎng)絡學習樣本集,并傳遞給inputij。Write_network()的功能:以一定格式記錄保存學習后生成的網(wǎng)絡模型,包括拓撲結(jié)構(gòu)、權(quán)值、迭代次數(shù)、輸出誤差等值,以便Read_network()直接讀取,使網(wǎng)絡模型一旦建立,可重用。Write_example()的功能:當診斷輸出結(jié)果較理想時,把診斷過的診斷樣本和其結(jié)果增加到網(wǎng)絡學習樣本集中,使網(wǎng)絡學習樣本集隨著網(wǎng)絡學習的增加而不斷壯大、充實。通用BP神經(jīng)網(wǎng)絡診斷程序的主流程見圖1。圖1BP神經(jīng)網(wǎng)絡故障診斷模型程序圖Fig1ProgramgraphoffaultdiagnosismodulewithBPnetwork4.故障診斷實例在診斷對象的結(jié)構(gòu)和參數(shù)未知或部分未知時,神經(jīng)網(wǎng)絡被廣泛地應用在故障診斷這樣的智能應用領域。下面利用上述的BP神經(jīng)網(wǎng)絡診斷程序來對磨削燒傷進行故障診斷來加以說明BP神經(jīng)網(wǎng)絡在故障診斷中的應用可行性和準確性。表1列出了部分進行歸一化處理后的5組磨削燒傷診斷的BP學習樣本(共100個學習樣本),每一個學習樣本由6種征兆參數(shù)值組成,也就是每一個學習樣本所對應的狀態(tài)正常與否由這6個征兆的權(quán)重共同決定。表1磨削燒傷故障診斷網(wǎng)絡學習樣本Table1Learningexamplesoffaultdiagnosisforburnduringgrinding樣本號征兆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)絡反復自學習后,當BP故障診斷神經(jīng)網(wǎng)絡模型參數(shù)為:n_inputs=6;n_outputs=1;隱層層數(shù)n_nhlayers=1;隱層節(jié)點數(shù)nunit=8;學習因子rate=0.3;動量因子momentum=0.1;預設誤差error=0.001時,網(wǎng)絡收斂速度最快:迭代2547次后,達到預設誤差要求收斂。利用學習后建立的故障診斷網(wǎng)絡模型來進行待診斷樣本的診斷,將診斷后的結(jié)果與各個征兆的隸屬度權(quán)重知識庫進行貼近度比較,得出待診樣本1與學習樣本2最接近,因此將其診斷為正常;而待診樣本2與學習樣本5最接近,因此將其診斷為異常,診斷結(jié)果見表2。表2待診斷故障樣本及其診斷結(jié)果Table2Examplestobediagnosedandresults待診樣本編號征兆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)造實現(xiàn)了BP神經(jīng)網(wǎng)絡模型算法通用程序,該模型程序具有較好的移植性和通用性,對于開發(fā)其它神經(jīng)網(wǎng)絡程序具有一定的借鑒意義。故障診斷實例表明該BP故障診斷模型程序的可行性,并且收斂速度快、診斷正確。參考文獻1.蔣軍成,王省身.煤層自燃危險性預測的人工神經(jīng)網(wǎng)絡方法.中國礦業(yè)大學學報,1997,3:19-22.2.彭寧,蔣靜坪.面向?qū)ο蟮纳窠?jīng)網(wǎng)絡程序設計及其在非線形動態(tài)系統(tǒng)辨識中的應用.科技通報,1999,15(3):193-1953.張慶年.前饋神經(jīng)網(wǎng)絡的特性分析與應用.武漢交通科技大學學報,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等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年影視拍攝權(quán)合同
- 員工2026年借款合同
- 2026年醫(yī)療廢物處理合同
- 2026年線上廣告效果評估合同協(xié)議
- 2026年電梯隔音改造合同
- 物業(yè)綠化承包合同
- 2026屆新高考英語沖刺復習名詞性從句
- 家政服務員中級培訓課件
- 安全培訓講課話術(shù)課件
- 土建機電培訓課件
- 2025甘肅武威市市直參照公務員法管理單位遴選24人備考題庫附答案
- 拜師禮現(xiàn)場課件
- 杜氏肌營養(yǎng)不良運動功能重建方案
- 2026貴州大數(shù)據(jù)產(chǎn)業(yè)集團有限公司第一次招聘155人模擬筆試試題及答案解析
- 酒店合并協(xié)議書范本
- 2026年計算機四級(Linux工程師實務)考試題及答案
- 貴州貴陽市2023-2024學年高一上學期期末考試化學試卷(含答案)
- “十五五”漁業(yè)產(chǎn)業(yè)高質(zhì)量發(fā)展規(guī)劃(2026-2030年)
- 腫瘤藥物給藥順序課件
- 海南計算機與科學專升本試卷真題及答案
- 企業(yè)安全一把手授課課件
評論
0/150
提交評論