BP神經(jīng)網(wǎng)絡(luò)的軟測量和軟件仿真_第1頁
BP神經(jīng)網(wǎng)絡(luò)的軟測量和軟件仿真_第2頁
BP神經(jīng)網(wǎng)絡(luò)的軟測量和軟件仿真_第3頁
BP神經(jīng)網(wǎng)絡(luò)的軟測量和軟件仿真_第4頁
BP神經(jīng)網(wǎng)絡(luò)的軟測量和軟件仿真_第5頁
已閱讀5頁,還剩20頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、摘要 軟測量是一門新興的工業(yè)技術(shù),其原理是通過數(shù)學(xué)模型計算工程上難以檢測以及無法檢測的信號, 很多過程工業(yè)非線性比較嚴重,如果用常規(guī)的非線性建模將使算法相當(dāng)復(fù)雜,而神經(jīng)元網(wǎng)絡(luò)能夠以任意精度逼近任意非線性映射,在解決高度非線性和嚴重不確定性系統(tǒng)建模與控制方面具有巨大的潛力。因此,利用神經(jīng)網(wǎng)絡(luò)建立軟測量模型越來越引起工程技術(shù)人員的關(guān)注。本文在介紹基于神經(jīng)網(wǎng)絡(luò)軟測量技術(shù)的基礎(chǔ)上,采用VC+6.0設(shè)計了基于BP神經(jīng)網(wǎng)絡(luò)的軟測量和仿真軟件,其輸入和輸出個數(shù)可根據(jù)具體工藝需要方便的修改,便于軟測量在工程應(yīng)用中推廣。文中最后采用Matlab軟件設(shè)計了仿真程序,以一個2輸入1輸出非線性模型為例進行了仿真,并給

2、出了訓(xùn)練和仿真結(jié)果。關(guān)鍵詞: Matlab; 軟測量技術(shù); VC+6.0;神經(jīng)網(wǎng)絡(luò)Abstract Soft-sensing technique is a newly booming industry technology. Its theory is to calculate the signal in engineering field, which is hard or incapable to check, with mathematical model. The non-linear is very serious in a lot of processing industry. T

3、he algorithm will be very complex if normal non-linear model is used. However, Neural network, which has great potential in high non-linear solution and serious undefined system model construction and control, could come to non-linear image with any accuracy. So more and more industry engineers pay

4、much attention to set up the soft-sensing model with neural network.A general neural network soft-sensing technology is introduced in this paper. In this base, BP neural network Soft-sensing and simulation software is designed using VC+6.0.And the number of input/output parameter can be modified in

5、the field of engineering .It is designed and simulated in Matlab using the non-linear model with two Input parameter and one output parameter. The training and the simulation results is given in the end.Key words : Matlab;Soft-sensing technique;VC+6.0;Neural network目錄第一章 軟測量的概述.11.1 軟測量的技術(shù)發(fā)展11.2 本文研

6、究的內(nèi)容和研究方法2第二章 基于神經(jīng)網(wǎng)絡(luò)的軟測量模型建立2.1 軟測量原理42.2 神經(jīng)網(wǎng)絡(luò)在軟測量中的應(yīng)用.42.2.1神經(jīng)網(wǎng)絡(luò)原理52.2.2神經(jīng)網(wǎng)絡(luò)軟測量模型建立5第三章 基于神經(jīng)網(wǎng)絡(luò)的軟測量軟件設(shè)計3.1 軟件開發(fā)工具選用.73.2 軟件設(shè)計方法.73.3 各模塊的功能及實現(xiàn). 7第四章 軟測量仿真研究.164.1仿真方法164.2 仿真結(jié)果及分析.164.3 小結(jié).20第五章 結(jié)束語.21參考文獻. 21第一章 概述1.1軟測量的技術(shù)發(fā)展隨著現(xiàn)代工業(yè)過程對控制、計量、節(jié)能增效和運行可靠性等要求的不斷提高,各種測量要求日益增多?,F(xiàn)代過程檢測的內(nèi)涵和外延較之以往均有較大的深化和拓展。一方

7、面,僅獲取流量,溫度,壓力和液位等常規(guī)過程參數(shù)的測量信息已不能滿足工藝操作和控制的要求,需要獲取諸如成分,物性等與過程操作和控制密切相關(guān)的檢測參數(shù)的測量信息。同時對于復(fù)雜的大型工業(yè)過程,還需要獲知反應(yīng)過程二維/三維的時空分布信息(例如化學(xué)反應(yīng)器內(nèi)的介質(zhì)濃度和速度的局部分布等)。另一方面,儀表測量的精度要求越來越高,測量從靜態(tài)或穩(wěn)態(tài)向動態(tài)測量發(fā)展,在許多應(yīng)用場合還需要綜合運用所獲得的各種過程測量信息,才能實現(xiàn)有效的過程控制,對生產(chǎn)過程或測量系統(tǒng)進行故障診斷,狀態(tài)檢測等1。 無論是過程控制中先進過程控制算法和策略的具體實施,還是過程優(yōu)化,生產(chǎn)協(xié)調(diào),故障診斷,狀態(tài)監(jiān)測等,其工程實現(xiàn)的前提是能有效地獲

8、取反映過程的信息。過程檢測技術(shù)發(fā)展水平的限制,導(dǎo)致了許多先進的控制算法和策略目前只能停留在理論探討上,難以工業(yè)實際應(yīng)用,許多工業(yè)生產(chǎn)系統(tǒng)也無法依靠故障診斷和狀態(tài)監(jiān)測等措施來提高系統(tǒng)運行的安全性和可靠性。 一般解決工業(yè)過程的測量要求有兩條途徑:一個是沿襲傳統(tǒng)的檢測技術(shù)發(fā)展思路,通過研制新型的過程測量儀表,以硬件形式實現(xiàn)過程參數(shù)的直接在線測量;另一就是采用間接測量的思路,利用易于獲得的其他測量信息,通過計算來實現(xiàn)被檢測量的估計。近年來在過程控制和檢測領(lǐng)域涌現(xiàn)出的一種新技術(shù)軟測量技術(shù)正是這一思想的集中體現(xiàn)。 軟測量技術(shù)也稱為軟儀表技術(shù)。概括地講,所謂軟測量技術(shù)就是利用易測過程變量(常稱輔助變量或二次

9、變量),依據(jù)這些易測過程變量與難以直接測量的待測過程變量(常稱為主導(dǎo)變量)之間的數(shù)學(xué)關(guān)系,通過各種數(shù)學(xué)計算和估計方法,從而實現(xiàn)對待測過程變量的測量。 傳統(tǒng)過程檢測儀表的研制和應(yīng)用過程涉及傳感器傳感機理研究,硬件儀表檢測電路設(shè)計,儀表制造和定型,儀表的使用和維護以及成本核算等各個環(huán)節(jié)。這個環(huán)節(jié)是相互影響和制約的,例如若無合適的傳感機理作為測量儀表的理論基礎(chǔ),則儀表的研制是天方夜譚,若一種儀表雖研制成功但成本過高,則其工程應(yīng)用也將是有限的。同時該類儀表的針對性非常明確,測量對象、范圍和功能均具有一定的局限性,且難以適合被測對象的多種變化。而采用軟測量技術(shù)構(gòu)成的軟儀表,是以目前可有效獲取的測量信息為

10、基礎(chǔ),其核心是用計算機語言編制的各種軟件,具有智能性,可方便的根據(jù)被測對象特性的變化進行修正和改進,因此軟儀表在可實現(xiàn)性、通用性、靈活性和成本等各方面均具有無可比擬的優(yōu)勢,其突出的優(yōu)點和巨大的工業(yè)應(yīng)用價值不言而喻。 經(jīng)過多年的發(fā)展,目前已提出了不少構(gòu)造軟儀表的方法,并對影響軟儀表的因素以及軟儀表的在線校正等方面也進行了較為深入的研究。軟測量技術(shù)在許多實際工業(yè)裝置上也得到了成功的應(yīng)用,并且其應(yīng)用范圍也在不斷的拓展。早期的軟測量技術(shù)主要用于控制變量或擾動不可測的場合,其目的是實現(xiàn)工業(yè)過程的復(fù)雜控制(高級控制),而現(xiàn)在該技術(shù)已滲透到需要實現(xiàn)難測參數(shù)的在線測量的各個領(lǐng)域。最新的研究進展表明,軟測量技術(shù)

11、已成為過程控制和過程檢測領(lǐng)域的一大研究熱點和主要發(fā)展趨勢。圖1-1 軟測量的結(jié)構(gòu)圖1.2本文研究的內(nèi)容和研究方法眾所周知,在工業(yè)在線測量過程中,很多儀表無法通過檢測儀表進行直接檢測,必須通過軟測量(亦稱間接測量)來獲得。但在實際過程中,被測參數(shù)與有關(guān)參數(shù)之間存在較大的非線性和時變性,多為一模糊關(guān)系,其數(shù)學(xué)模型很難建立,這使得一般基于精確數(shù)學(xué)模型的軟測量算法顯得無能為力。神經(jīng)網(wǎng)絡(luò)具有很強的自學(xué)習(xí)和自適應(yīng)功能,通過學(xué)習(xí)它能夠逼近任意非線性,本文針對軟測量的特點,應(yīng)用神經(jīng)網(wǎng)絡(luò)構(gòu)造了一種新的測量模式和算法。通過使用適當(dāng)數(shù)量的優(yōu)選實測數(shù)據(jù)作為學(xué)習(xí)樣本對網(wǎng)絡(luò)進行訓(xùn)練,便可建立起被測參數(shù)的軟測量模型,實現(xiàn)對

12、存在模糊關(guān)系參數(shù)之間的軟測量。典型的基于神經(jīng)元網(wǎng)絡(luò)方法的軟測量儀表結(jié)構(gòu)如圖1-2 所示.圖1-2本文研究的內(nèi)容和研究方法:軟測量建模方法很多,神經(jīng)網(wǎng)絡(luò)具有逼近任意非線性的能力,本文擬采用神經(jīng)網(wǎng)絡(luò)實現(xiàn)軟測量,針對不同的工藝流程,軟測量的輔助變量和主變量個數(shù)不盡相同。本文擬設(shè)計一個通用的,輸入輸出個數(shù)可調(diào)的網(wǎng)絡(luò)軟測量模型,便于在工程應(yīng)用中推廣,該模型采用VC+6.0實現(xiàn),并通過Matlab進行仿真。 圖1-3軟測量的開發(fā)設(shè)計流程第二章 基于神經(jīng)網(wǎng)絡(luò)的軟測量模型建立2.1 軟測量原理軟測量技術(shù)是依據(jù)某種最優(yōu)化準則,利用由輔助變量構(gòu)成的可測信息,通過軟件計算實現(xiàn)對主導(dǎo)變量的測量,軟測量的核心是表征輔助

13、變量和主導(dǎo)變量之間的數(shù)學(xué)關(guān)系的軟測量模型,如圖所示。因此構(gòu)造軟儀表的本質(zhì)就是如何建立軟測量模型,即一個數(shù)學(xué)建模的問題。相應(yīng)的,建立軟測量模型的過程也就是軟儀表的構(gòu)造過程。 需要指出的是,由于軟測量模型注重的是通過輔助變量來獲得對主導(dǎo)變量的最佳估計,即不是強調(diào)過程各輸入輸出變量彼此間的關(guān)系,因此,它不同于一般意義下數(shù)學(xué)模型。軟測量模型本質(zhì)上是要完成由輔助變量構(gòu)成的可測信息集到主導(dǎo)變量估計y的映射,用數(shù)學(xué)公式表示即為: 圖2-1 神經(jīng)元網(wǎng)絡(luò)進行軟測量的映射關(guān)系 在很多過程控制場合,人們希望對質(zhì)量變量實施直接控制。然而,常規(guī)的傳感器或在線分析儀往往無法或及時地對這類變量進行在線測量。日益重視產(chǎn)品質(zhì)量

14、的趨勢,促使軟測量技術(shù)產(chǎn)生并發(fā)展。2.2 神經(jīng)網(wǎng)絡(luò)在軟測量中的應(yīng)用神經(jīng)網(wǎng)絡(luò)是人類中樞神經(jīng)系統(tǒng)的簡化模型。關(guān)于神經(jīng)網(wǎng)絡(luò)可作如下定義:一種由許多簡單的,高度互聯(lián)的處理單元(又稱神經(jīng)元)構(gòu)成的運算處理系統(tǒng),它以對外部輸入做出動態(tài)響應(yīng)的形式處理信息。神經(jīng)網(wǎng)絡(luò)的最基本特點是并行分布的處理模式。與傳統(tǒng)的串行運算處理模式相比,這一特點可以使信息的效率得到驚人的提高。由于信息分布式存儲的作用,當(dāng)部分網(wǎng)絡(luò)損壞,輸入信息不完整或受到噪聲的干擾時,神經(jīng)網(wǎng)絡(luò)仍有可能表現(xiàn)出良好的性能,即神經(jīng)網(wǎng)絡(luò)具有高度的容錯能力(或稱魯棒性)。此外,神經(jīng)網(wǎng)絡(luò)還具有自適應(yīng)、自學(xué)習(xí)和聯(lián)想記憶等特性。通常,神經(jīng)網(wǎng)絡(luò)的實現(xiàn)形式是針對特定任務(wù)的

15、應(yīng)用軟件。當(dāng)然,神經(jīng)網(wǎng)絡(luò)也可以由硬件實現(xiàn),但兩者相比,前者的使用更為簡單、靈活。2.2.1神經(jīng)網(wǎng)絡(luò)原理近年來,神經(jīng)網(wǎng)絡(luò)已逐步發(fā)展為一種公認的,強有力的運算處理模型。它的應(yīng)用領(lǐng)域可大致分為辨識、控制、預(yù)測、優(yōu)化、診斷、模式識別、信息壓縮、風(fēng)險評估等。神經(jīng)網(wǎng)絡(luò)方法對于許多以往無法解決的難題,已經(jīng)被證明是有效的。但這并不意味神經(jīng)網(wǎng)絡(luò)是一把萬能鑰匙。最初提出神經(jīng)網(wǎng)絡(luò)方案,在實踐后又恢復(fù)到傳統(tǒng)方案的例子并不少見。因而,使用神經(jīng)網(wǎng)絡(luò)方法時仍需要做慎重而全面的考慮。此外,從今年來神經(jīng)網(wǎng)絡(luò)應(yīng)用研究狀況看,其他信息處理理論或方法,如模糊理論、小波變化、統(tǒng)計學(xué)方法、分形技術(shù)等,與神經(jīng)網(wǎng)絡(luò)的結(jié)合或融合被認為是一種發(fā)

16、展趨勢。關(guān)于神經(jīng)網(wǎng)絡(luò)適宜的應(yīng)用場合,實踐表明在其他傳統(tǒng)方法無法奏效時,神經(jīng)網(wǎng)絡(luò)是最佳選擇。一般而言,當(dāng)神經(jīng)網(wǎng)絡(luò)應(yīng)用于非線性、復(fù)雜、動態(tài)、多變量或難以建模的系統(tǒng)時,其作用尤為突出。BP算法也稱誤差反向傳播算法,是一種有導(dǎo)學(xué)習(xí)算法,用于BP網(wǎng)的權(quán)值和閾值學(xué)習(xí)。BP算法的步驟:(1) 權(quán)值初始化(2) 依次輸入P個學(xué)習(xí)樣本。設(shè)當(dāng)前輸入為第p個樣本(3) 依次計算各層的輸出(4) 求各層的反向誤差(5) 記錄已學(xué)習(xí)過的樣本個數(shù)p(6) 按權(quán)值修正公式修正各層的權(quán)值或閾值(7) 按新的權(quán)值再計算,若滿足要求,或達到最大學(xué)習(xí)次數(shù),則終 止學(xué)習(xí)。2.2.2 神經(jīng)網(wǎng)絡(luò)軟測量模型建立基于神經(jīng)網(wǎng)絡(luò)的建模方法屬于辨

17、識建模。概括地說,這種辨識方法的主要特點是辨識模型易于實現(xiàn)和對非線性映射關(guān)系的逼近性能良好。為此,神經(jīng)網(wǎng)絡(luò)用于軟測量建模是一條理想途徑。目前,軟儀表的概念常用于特指基于神經(jīng)網(wǎng)絡(luò)的過程主變量在線估計或預(yù)測模型。輔助變量一般被表示為神經(jīng)網(wǎng)絡(luò)的輸入,而神經(jīng)網(wǎng)絡(luò)的輸出為主變量的預(yù)估值。通常意義下建立軟測量模型有兩種基本方法:機理建模和辨識建模。此外,還有機理建模和辨識建模的方法。機理建模方法具有先驗性、預(yù)估性等優(yōu)點。但這種方法要求對研究對象的機理具有較深刻的理解,如果過程復(fù)雜,研究機理則需要投入相當(dāng)長的時間。而且在許多情況下,必須提出簡化假設(shè)以使建模問題比較易于處理。對于實際的復(fù)雜工業(yè)過程,機理建???/p>

18、能代價較高,引入各種假設(shè)條件也會影響模型的精度。由于直接利用反映過程動態(tài)特性的輸入輸出數(shù)據(jù)來建立數(shù)學(xué)模型,辨識建模方法一般無需深入了解過程機理,這可以理解為在最少限度的先驗知識和假設(shè)的條件下進行建模。盡管多數(shù)的工業(yè)過程是本質(zhì)非線性的,但一般的辨識方法仍主要適用于線性系統(tǒng)。BP網(wǎng)絡(luò)與線性閾值單元組成的多層感知器網(wǎng)絡(luò)結(jié)構(gòu)完全相同,只是各隱節(jié)點的激活函數(shù)使用了sigmoidal函數(shù),所以BP網(wǎng)絡(luò)也稱激活函數(shù)采用sigmoidal函數(shù)的多層感知器。BP網(wǎng)絡(luò)輸出節(jié)點的激活函數(shù)根據(jù)應(yīng)用的不同而異:如果多層感知器用于分類,則輸出層節(jié)點一般用sigmoidal函數(shù)或硬極限函數(shù);如果多層感知器用于函數(shù)逼近,則輸

19、出層節(jié)點應(yīng)該用線性函數(shù)。 與線性閾值單元組成的多層感知器一樣,BP網(wǎng)采用多層結(jié)構(gòu),包括輸入層、多個隱含層、輸出層、各層間實現(xiàn)全連接。 圖2-2 單隱層神經(jīng)網(wǎng)絡(luò)測量模型第三章 基于神經(jīng)網(wǎng)絡(luò)的軟測量軟件設(shè)計3.1 軟件開發(fā)工具選用VC+6.0是微軟公司推出的開發(fā)工具包Visual Studio 6.0中功能最強大的開發(fā)工具,是一種面向?qū)ο蟪绦蛟O(shè)計語言,因為是基于C語言,比較容易操作底層,且現(xiàn)成的軟件模塊較多,從而可以大大提高軟件設(shè)計能力以及開發(fā)速度,特別是在工業(yè)場合應(yīng)用的較多。3.2軟件設(shè)計方法本章擬設(shè)計一個通用的,輸入輸出個數(shù)可調(diào)的網(wǎng)絡(luò)軟測量模型,便于在工程應(yīng)用中推廣。該模型采用VC+6.0編程

20、實現(xiàn),并通過Matlab進行仿真。本章軟件設(shè)計的主要模塊分為:(1)界面模塊 (2)算法模塊其中界面模塊主要是對系統(tǒng)進行設(shè)置、建立神經(jīng)網(wǎng)絡(luò)、訓(xùn)練數(shù)據(jù)、得到訓(xùn)練結(jié)果、對測試數(shù)據(jù)進行仿真。BP算法也稱誤差反向傳播算法,是一類有導(dǎo)學(xué)習(xí)算法,用于BP網(wǎng)絡(luò)的權(quán)值和閾值學(xué)習(xí)。 3.3各模塊功能及實現(xiàn)(1)界面模塊主要由樣本訓(xùn)練部分和數(shù)據(jù)仿真兩大部分組成。其中樣本訓(xùn)練部分先對系統(tǒng)精度、最大訓(xùn)練次數(shù)、以及步長進行設(shè)置,然后輸入輸入層、隱含層以及輸出層的數(shù)目,再根據(jù)需要選擇訓(xùn)練算法和激活函數(shù),最后調(diào)入訓(xùn)練數(shù)據(jù)對樣本進行訓(xùn)練。數(shù)據(jù)仿真部分主要是對已經(jīng)訓(xùn)練好的網(wǎng)絡(luò)進行仿真。程序主界面如下:網(wǎng)絡(luò)訓(xùn)練部分程序默認狀態(tài)是

21、樣本訓(xùn)練狀態(tài),現(xiàn)將樣本訓(xùn)練狀態(tài)下的如何訓(xùn)練網(wǎng)絡(luò)進行說明。系統(tǒng)精度:定義系統(tǒng)目標精度,根據(jù)需要定義網(wǎng)絡(luò)訓(xùn)練誤差精度。誤差公式是對訓(xùn)練出網(wǎng)絡(luò)的輸出層節(jié)點和實際的網(wǎng)絡(luò)輸出結(jié)果求平方差的和。最大訓(xùn)練次數(shù):默認為10000次,根據(jù)需要調(diào)整,如果到達最大訓(xùn)練次數(shù)網(wǎng)絡(luò)還未能達到目標精度,程序退出。步長:默認為0.01。輸入層數(shù)目:人工神經(jīng)網(wǎng)絡(luò)的輸入層神經(jīng)元的節(jié)點數(shù)目。隱含層數(shù)目:人工神經(jīng)網(wǎng)絡(luò)的隱含層神經(jīng)元的節(jié)點數(shù)目。輸出層數(shù)目:人工神經(jīng)網(wǎng)絡(luò)的輸出層神經(jīng)元的節(jié)點數(shù)目。訓(xùn)練算法:激活函數(shù): 不同的網(wǎng)絡(luò)激活函數(shù)表現(xiàn)的性能不同,可根據(jù)實際情況選擇。樣本數(shù)據(jù)的處理:由于程序沒有實現(xiàn)歸一化功能, 因此用來訓(xùn)練的樣本數(shù)據(jù)

22、首先要歸一化后才能進行訓(xùn)練。其中:數(shù)據(jù)輸入:就是選擇用來訓(xùn)練的樣本的文件,文件格式為每個參與訓(xùn)練網(wǎng)絡(luò)的樣本數(shù)據(jù)(包括輸入和輸出)占用一行,數(shù)據(jù)之間用空格隔開。存儲網(wǎng)絡(luò): 就是用來存放最終訓(xùn)練成功的網(wǎng)絡(luò)權(quán)值等信息的文件,在仿真時調(diào)用時用。保存結(jié)果:網(wǎng)絡(luò)訓(xùn)練的最終結(jié)果,副產(chǎn)品,可丟棄,用來查看網(wǎng)絡(luò)訓(xùn)練的精度。訓(xùn)練點擊該按鈕用來訓(xùn)練網(wǎng)絡(luò)。網(wǎng)絡(luò)仿真部分首先要點擊按鈕。切換到數(shù)據(jù)仿真狀態(tài)。界面如圖:調(diào)入訓(xùn)練好的網(wǎng)絡(luò),然后選擇用來仿真的數(shù)據(jù)(只包含輸入層神經(jīng)元的節(jié)點數(shù)目),點擊仿真按鈕即可。調(diào)入網(wǎng)絡(luò):選擇已經(jīng)訓(xùn)練好的網(wǎng)絡(luò)文件,假設(shè)net_lm_sigmoid_16.txt文件是已經(jīng)滿足精度和泛化能力較好的

23、網(wǎng)絡(luò)文件,就調(diào)入該文件。數(shù)據(jù)輸入:選擇用來仿真的數(shù)據(jù)文件,該文件格式同前面介紹的用來訓(xùn)練網(wǎng)絡(luò)的件的格式,但需要去掉用網(wǎng)絡(luò)來模擬的參數(shù),只提供用來測試的網(wǎng)絡(luò)輸入層數(shù)據(jù)。仿真結(jié)果:用來保存對測試數(shù)據(jù)仿真后得到結(jié)果文件,即為所想要的數(shù)據(jù)。(2)BP算法模塊的實現(xiàn)部分源程序如下:#include "iostream.h"j#include "iomanip.h"#include "stdlib.h"#include "math.h"#include "stdio.h"#include "tim

24、e.h"#include "fstream.h"#define N 1 /學(xué)習(xí)樣本個數(shù)#define IN 3 /輸入層神經(jīng)元數(shù)目#define HN 3 /隱層神經(jīng)元數(shù)目#define ON 2 /輸出層神經(jīng)元數(shù)目double PIN; /單個樣本輸入數(shù)據(jù)double TON; /單個樣本教師數(shù)據(jù)double WHNIN; /輸入層至隱層權(quán)值double VONHN; /隱層至輸出層權(quán)值double XHN; /隱層的輸入double YON; /輸出層的輸入double HHN; /隱層的輸出double OON; /輸出層的輸出double YU_HNHN;

25、 /隱層的閾值double YU_ONON; /輸出層的閾值double err_mN; /第m個樣本的總誤差double a; /輸出層至隱層的學(xué)習(xí)效率double b; /隱層至輸入層學(xué)習(xí)效率/定義一個放學(xué)習(xí)樣本的結(jié)構(gòu)struct double inputIN; /輸入在上面定義是一個double teachON; /輸出在上面定義也是一個Study_DataN;/學(xué)習(xí)樣本/初始化權(quán)、閾值子程序/initial()/隱層權(quán)、閾值初始化/srand( (unsigned)time( NULL ) );for(int i=0;i<HN;i+)for(int j=0;j<IN;j+)

26、Wij= (double)(rand()/32767.0)*2-1); /初始化輸入層到隱層的權(quán)值,隨機模擬0 和 1 -1for(int ii=0;ii<ON;ii+)for(int jj=0;jj<HN;jj+) Viijj= (double)(rand()/32767.0)*2-1); /初始化隱層到輸出層的權(quán)值,隨機模擬0 和 1 -1for(int k=0;k<HN;k+)YU_HNk = (double)(rand()/32767.0)*2-1); /隱層閾值初始化 ,-0.01 0.01 之間for(int kk=0;kk<ON;kk+)YU_ONkk =

27、 (double)(rand()/32767.0)*2-1); /輸出層閾值初始化 ,-0.01 0.01 之間 return 1;/子程序initial()結(jié)束/第m個學(xué)習(xí)樣本輸入子程序/input_P(int m)for (int i=0;i<IN;i+) Pi=Study_Datam.inputi;/獲得第m個樣本的數(shù)據(jù)return 1;/子程序input_P(m)結(jié)束/第m個樣本教師信號子程序/input_T(int m)for (int k=0;k<m;k+) Tk=Study_Datam.teachk;return 1;/子程序input_T(m)結(jié)束/隱層各單元輸入、

28、輸出值子程序/H_I_O()double sigma;int i,j;for (j=0;j<HN;j+)sigma=0.0;for (i=0;i<IN;i+)sigma+=Wji*Pi;/求隱層內(nèi)積Xj=sigma - YU_HNi;/求隱層凈輸入,減去隱層的閾值Hj=1.0/(1.0+exp(-Xj);/求隱層輸出 siglon算法return 1;/子程序H_I_O()結(jié)束/輸出層各單元輸入、輸出值子程序/O_I_O()double sigma;for (int k=0;k<ON;k+) sigma=0.0; for (int j=0;j<HN;j+) sigma+

29、=Vkj*Hk;/求輸出層內(nèi)積Yk=sigma-YU_ONk; /求輸出層凈輸入Ok=1.0/(1.0+exp(-Yk);/求輸出層輸出return 1;/子程序O_I_O()結(jié)束/輸出層至隱層的一般化誤差子程序/double d_errON;Err_O_H(int m)double abs_errON;/每個樣本的絕對誤差都是從0開始的double sqr_err=0;/每個樣本的平方誤差計算都是從0開始的for (int k=0;k<ON;k+) abs_errk=Tk-Ok;/求第m個樣本下的第k個神經(jīng)元的絕對誤差sqr_err+=(abs_errk)*(abs_errk);/求第

30、m個樣本下輸出層的平方誤差d_errk=abs_errk*Ok*(1.0-Ok);/d_errk輸出層各神經(jīng)元的一般化誤差err_mm=sqr_err/2;/第m個樣本下輸出層的平方誤差/2=第m個樣本的均方誤差return 1;/子程序Err_O_H(m)結(jié)束/隱層至輸入層的一般化誤差子程序/double e_errHN;Err_H_I()double sigma;for (int j=0;j<HN;j+) sigma=0.0; for (int k=0;k<ON;k+) sigma=d_errk*Vkj;e_errj=sigma*Hj*(1-Hj);/隱層各神經(jīng)元的一般化誤差r

31、eturn 1;/子程序Err_H_I()結(jié)束/輸出層至隱層的權(quán)值調(diào)整、輸出層閾值調(diào)整計算子程序/Delta_O_H(int m)for (int k=0;k<ON;k+)for (int j=0;j<HN;j+)Vkj+=a*d_errk*Hj;/輸出層至隱層的權(quán)值調(diào)整YU_ONk+=a*d_errk;/輸出層至隱層的閾值調(diào)整return 1;/子程序Delta_O_H()結(jié)束/隱層至輸入層的權(quán)值調(diào)整、隱層閾值調(diào)整計算子程序/Delta_H_I(int m)for (int j=0;j<HN;j+)for (int i=0;i<IN;i+) Wji+=b*e_errj

32、*Pi;/隱層至輸入層的權(quán)值調(diào)整YU_HNj+=b*e_errj;return 1;/子程序Delta_H_I()結(jié)束/N個樣本的全局誤差計算子程序/double Err_Sum()double total_err=0;for (int m=0;m<N;m+) total_err+=err_mm;/每個樣本的均方誤差加起來就成了全局誤差return total_err;/子程序Err_sum()結(jié)束上述程序代碼是BP算法各功能函數(shù)的具體實現(xiàn),把界面模塊中用戶輸入的各參數(shù)和樣本值用于上述算法便可實現(xiàn)BP算法的訓(xùn)練和仿真。第四章 軟測量仿真研究 Matlab 是公認最優(yōu)秀的數(shù)學(xué)應(yīng)用軟件。其中

33、的神經(jīng)網(wǎng)絡(luò)工具箱幾乎包含了神經(jīng)網(wǎng)絡(luò)理論的最新研究及應(yīng)用成果,涉及感知器、線性網(wǎng)絡(luò)、BP 網(wǎng)絡(luò)、徑向基網(wǎng)絡(luò)、自組織網(wǎng)絡(luò)和回歸網(wǎng)絡(luò)等;它針對各類網(wǎng)絡(luò)模型,集成了許多神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)算法,可使用戶直觀、方便地進行分析、計算及仿真工作。4.1 仿真方法神經(jīng)網(wǎng)絡(luò)工具箱函數(shù)trainbp, trainbpm, trainlm,可對BP網(wǎng)絡(luò)進行訓(xùn)練。他們的用法是類似的,只是采用的學(xué)習(xí)規(guī)則有所不同。對于單層BP網(wǎng)絡(luò)tp=disp_freq max_epoch err_goal lr;w,b,epoch,tr=trainbp(w,b, 'F',p,t,tp);其中tr表示訓(xùn)練誤差,訓(xùn)練參數(shù)tp確定了

34、學(xué)習(xí)過程的顯示頻率、最大訓(xùn)練步數(shù)、誤差指標以及學(xué)習(xí)率,F(xiàn)表示神經(jīng)元所采用的傳遞函數(shù)類型。對于兩層BP網(wǎng)絡(luò)w1,b1,w2,b2,epochs,tr=trainbp(w1,b1, 'F1',w2,b2, 'F2',p,t,tp);對于三層BP網(wǎng)絡(luò)w1,b1,w2,b2,w3,b3,te,tr= trainbp(w1,b1, 'F1',w2,b2, 'F2',w3,b3, 'F3',p,t,tp);函數(shù)trainbp在對BP網(wǎng)絡(luò)進行訓(xùn)練時,實際上是針對單層、兩層、三層網(wǎng)絡(luò)分別采用了三個函數(shù)tbp1、tbp2、tbp3來

35、訓(xùn)練網(wǎng)絡(luò)。4.2仿真試驗結(jié)果及分析為了驗證BP神經(jīng)網(wǎng)絡(luò)具有預(yù)估能力,采用Matlab工具箱函數(shù)對BP網(wǎng)絡(luò)模型進行仿真。本文沒有選取生物化工方面的數(shù)據(jù)進行分析,而是構(gòu)造一個數(shù)學(xué)函數(shù):來進行分析??砂堰@個函數(shù)看作一個:兩輸入、一輸出的數(shù)學(xué)模型。 Y0.0500.00250.080.050.00890.100.050.01250.120.100.02440.150.120.03250.180.150.05490.200.150.06250.220.200.08840.250.200.10250.280.250.14090.300.250.15250.320.300.19240.350.300.212

36、50.380.350.26690.400.350.28250.420.400.33640.450.400.36250.480.450.43290.500.450.45250.520.500.52040.550.500.55250.600.550.66250.650.600.78250.700.650.9125 以上樣本中,左邊兩列作為輸入,右邊一列作為輸出,以116組數(shù)據(jù)作為訓(xùn)練樣本,1724組數(shù)據(jù)作為教師樣本。以下就是根據(jù)此試驗樣本所編寫的Matlab BP算法代碼:clf;figure(gcf)echo onclct=0.0025 0.0089 0.0125 0.0244 0.0325 0

37、.0549 0.0625 0.0884 0.1025 0.1409 0.1525 0.1924 0.2125 0.2669 0.2825 0.3364;p=0.05 0.08 0.10 0.12 0.15 0.18 0.20 0.22 0.25 0.28 0.30 0.32 0.35 0.38 0.40 0.42 0.00 0.05 0.05 0.10 0.12 0.15 0.15 0.20 0.20 0.25 0.25 0.30 0.30 0.35 0.35 0.40;w1,b1,w2,b2=initff(p,3,'tansig',1,'purelin');d

38、isp_freq=10;max_epoch=8000;err_goal=0.02;lr=0.01tp=disp_freq max_epoch err_goal lr;w1,b1,w2,b2,epochs,tr=trainbp(w1,b1,'tansig',w2,b2,'purelin',p,t,tp);t=0.3625 0.4329 0.4525 0.5204 0.5525 0.6625 0.7825 0.9125;p= 0.45 0.48 0.50 0.52 0.55 0.60 0.65 0.70 0.40 0.45 0.45 0.50 0.50 0.55 0.60 0.65;a=simuff(p,w1,b1,&

溫馨提示

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

評論

0/150

提交評論