基于BP神經(jīng)網(wǎng)絡的數(shù)字式渦流傳感器特性曲線擬合的實現(xiàn)
摘要:為了正確反映數(shù)字式渦流傳感器的實際特性,首先介紹了數(shù)字式渦流傳感器的工作原理,然后從實測數(shù)據(jù)出發(fā),提出了應用BP神經(jīng)網(wǎng)絡擬合其特性曲線的方法,運用MATLAB語言編程建立BP神經(jīng)網(wǎng)絡并進行訓練和仿真,與現(xiàn)有最小二乘法進行對比。仿真結果表明,基于BP算法所得擬合曲線誤差很小、收斂速度快且具有更高的擬合精度,比最小二乘法更具有實際意義。
關鍵詞:BP神經(jīng)網(wǎng)絡;渦流傳感器;曲線擬合;MATLAB語言
數(shù)字式渦流傳感器工作在正常條件下,保持某些參數(shù)值恒定不變的前提下,線圈等效電感L就是位移d的單值函數(shù)。因此,傳感器輸出信號的頻率f與微小位移信號d之間就會呈現(xiàn)正比例關系。若被測試件位移產(chǎn)生變化時,數(shù)字式渦流傳感器頻率f變化就直接反映被測試件位移d
的情況。
但是在實際中利用渦流傳感器進行位移測量時,輸入和輸出特性曲線存在較為嚴重的非線性關系,影響到傳感器的測量精度,為了提高傳感器的測量精度,實際中經(jīng)常通過計算機利用最小二乘法、查表法、線性插值等方法解決非線性問題。為準確反映數(shù)字式渦流傳感器d-f間的非線性關系,實現(xiàn)精確測量,需要擬合出一條曲線盡可能逼近數(shù)字式渦流傳感器實際的輸入、輸出特性。
筆者將BP(Back Propagation)神經(jīng)網(wǎng)絡算法引入到渦流傳感器輸入輸出非線性特性曲線的擬合中,采用MATLAB語言編程建立神經(jīng)網(wǎng)絡,基于實驗測得數(shù)據(jù)對數(shù)字式渦流傳感器實際的非線性特性進行擬合,利用神經(jīng)網(wǎng)絡自身具有良好的非線性處理能力、自適應學習能力和容錯性逼近得出最佳關系曲線。
1 數(shù)字式渦流傳感器的工作原理
1.1 渦流傳感器基本原理
若有一線圈中的鐵心是由整塊鐵磁材料制成的,此鐵心可以看成是由許多與磁通相垂直的閉合細絲所組成,因而形成了許多閉合的回路。當給線圈通入交變的電流時,由于通過鐵心的磁通是隨著電流做周期性變化的,所以在這些閉合回路中必有感應電動勢產(chǎn)生。在此電動勢的作用下,形成了許多漩渦形的電流,這種電流就稱為電渦流。電渦流形成原理如圖1所示。
當線圈中通過高頻電流I時,線圈周圍產(chǎn)生高頻磁場,該磁場作用于金屬體,但由于趨膚效應,不能透過具有一定厚度的金屬體,而僅作用于金屬表面的薄層內。在交變磁場的作用下金屬表面產(chǎn)生了感應電流Ie,即為渦流。感應電流也產(chǎn)生一個交變磁場并反作用于線圈上,其方向與線圈原磁場方向相反。根據(jù)圖1(b)所示的等效電路,按KVL可列出電路方程組如(1)式所示:
這兩個磁場相互疊加,就改變了原來線圈的電感L,L的變化僅與金屬導體的電阻率ρ、導磁率μ、激勵電流強度I、頻率f、線圈的幾何形狀r以及線圈與金屬導體之間的位移d有關。當被測對象的材料一定時,ρ、μ為常數(shù),儀表中的I、f、d也為定值,于是等效電感L就是位移d的單值函數(shù)。
1.2 測量原理
數(shù)字式渦流傳感器的測量原理方框圖如圖2所示。
為了盡可能使數(shù)字式渦流傳感器輸出頻率達到穩(wěn)定,實驗過程中選用性能穩(wěn)定的集成LC振蕩器MC1648。在探頭接近破測試件時,因為探頭線圈L和諧振電容器C構成諧振回路,諧振頻率表達式如(5)式所示:
上式中L為探頭線圈自感值,C為諧振電容器電容值。因為電感L是位移d的單值函數(shù),所以傳感器輸出信號的頻率f與被測試件的位移量d之間成正比。傳感器輸出信號經(jīng)電壓比較器和整形電路輸出為符合TTL電平規(guī)范的脈沖數(shù)字信號,最后由計算機顯示輸出。
2 BP神經(jīng)網(wǎng)絡原理
2.1 人工神經(jīng)元結構
人工神經(jīng)元是人工神經(jīng)網(wǎng)絡中最基本組成單位。常用的人工神經(jīng)元模型可用圖3模擬。
當神經(jīng)元j有多個輸入xi(i=1,2,…,m)和單個輸出yj時,輸入和輸出的關系如(6)式所示:
式中θj為閾值,wij為從神經(jīng)元i到神經(jīng)元j的連接權重因子,f(·)為傳遞函數(shù)或稱為激勵函數(shù)。
2.2 BP網(wǎng)絡學習過程
BP算法是一種監(jiān)督式的學習算法。BP神經(jīng)網(wǎng)絡算法的主要思想是:假設輸入樣本為P1,P2,…,Pn,目標樣本為T1,T2,…,Tn,網(wǎng)絡的輸出為A1,A2,…,An。當輸出與目標樣本產(chǎn)生誤差之后,利用誤差反向傳播回去進行調整權值,盡可能使輸出A1,A2,…,An與目標樣本T1,T2,…,Tn相近,使誤差達到最小值,權值調整結束。BP算法是由兩部分組成:信息的正向傳遞與誤差的反向傳播。在正向傳播過程中,輸入信息從輸入經(jīng)隱含層逐層計算傳向輸出層,每一層神經(jīng)元的狀態(tài)只影響下一層神經(jīng)元的狀態(tài)。如果在輸出層沒有得到期望輸出,則計算輸出層的誤差變化值,然后轉向反向傳播,通過網(wǎng)絡將誤差信號沿原來的連接通路反傳回來修改各神經(jīng)元的權值直至達到期望目標。
3 BP神經(jīng)網(wǎng)絡的MATLAB設計
設計一個BP網(wǎng)絡需要確定神經(jīng)元的特性和網(wǎng)絡的輸入層、隱層、輸出層以及各層之間的傳輸函數(shù)。
3.1 網(wǎng)絡層數(shù)
反向傳播網(wǎng)絡是基于BP誤差傳播算法的多層前饋網(wǎng)絡。多層BP網(wǎng)絡不僅有輸入節(jié)點、輸出節(jié)點,而且還有一層或多層隱含節(jié)點。一個三層的BP網(wǎng)絡理論上可逼近任意的非線性映射,為避免網(wǎng)絡規(guī)模過大,隱含層層數(shù)不宜多,因此文中在實現(xiàn)對于數(shù)字式渦流傳感器實驗數(shù)據(jù)曲線擬合時,采用三層的BP網(wǎng)絡就可以滿足需要。三層BP網(wǎng)絡的拓撲結構如圖4所示,包括輸入層、隱含層和輸出層,層與層之問采用全連接方式。各神經(jīng)元與下一層所有的神經(jīng)元聯(lián)結,同一層單元之間不存在相互連接,用箭頭表示信息的流動。
3.2 輸入層、輸出層的節(jié)點數(shù)
BP網(wǎng)絡的輸入層的神經(jīng)元數(shù)由輸入數(shù)據(jù)變量個數(shù)確定。
本文以數(shù)字式渦流傳感器的輸入(被測位移量)作為輸入節(jié)點,輸入層的節(jié)點數(shù)為1;以數(shù)字式渦流傳感器的輸出(輸出頻率f)作為輸出節(jié)點,輸出層的節(jié)點數(shù)為1。
3.3 訓練函數(shù)的選擇
考慮到LM(Levenberg Marquardt)算法是一種利用標準的數(shù)值優(yōu)化技術的快速算法,該方法是一種將最陡下降法和牛頓法相結合的算法,可以克服神經(jīng)網(wǎng)絡收斂速度慢、易陷入局部極小值的缺點,并且在網(wǎng)絡參數(shù)相對較少的情況下具有收斂速度極快、穩(wěn)定性能強等優(yōu)點,因此本文采用trainlm(LM)算法函數(shù)對網(wǎng)絡進行訓練,大大減少了網(wǎng)絡訓練的迭代次數(shù)。
3.4 傳輸函數(shù)
BP網(wǎng)絡傳遞函數(shù),又稱為激活函數(shù)必須是連續(xù)可微的,通常采用S型的對數(shù)函數(shù)logsig、雙曲正切函數(shù)tansig或線性函數(shù)purelin。前兩種為非線性函數(shù),分別將X∈(-∞,+∞)的輸入壓縮為Y∈[-1,1]和Y∈[0,1]的輸出,因此,對本文的非線性擬合問題,輸入層和隱層采用非線性傳遞函數(shù)tansig,輸出層采用線性函數(shù)purelin,以保持輸出的范圍。
3.5 隱層的節(jié)點數(shù)
隱含層神經(jīng)元數(shù)目是根據(jù)網(wǎng)絡收斂性能好壞來確定的。
目前對于隱含層數(shù)目的確定沒有嚴格的規(guī)定。一個公認的指導原則是樣本點的偏差在允許范圍條件下用最平滑的函數(shù)去逼近未知的非線性映射。隱含層神經(jīng)元個數(shù)過少可能訓練不出網(wǎng)絡,即網(wǎng)絡的魯棒性差,抗噪聲能力不強,不能辨識以前沒有遇到的模式;但是隱含層神經(jīng)元個數(shù)過多,又會使學習時間過長,誤差不一定最小,出現(xiàn)過度吻合問題。因此通常采用“試湊法”,通過比較網(wǎng)絡輸出誤差與期望誤差之間的擬合程度,選擇仿真效果最好時所選擇的隱含層節(jié)點數(shù)。一般對于三層網(wǎng)絡隱含層節(jié)點數(shù)可以根據(jù)(7)式所示的經(jīng)驗公式大致確定最佳隱含層單元的數(shù)目。
式中M為輸入層節(jié)點個數(shù),N為輸出層節(jié)點個數(shù),H為隱含層輸入個數(shù)。由此隱含層節(jié)點數(shù)應該在3~12這個范圍之內,訓練次數(shù)為2 000,訓練誤差為0.000 1。在學習率初定為0.1且不變的情況下對網(wǎng)絡進行訓練。經(jīng)過試驗,不同隱含層節(jié)點數(shù)的訓練情況如表1所示,得到最好的隱含層節(jié)點個數(shù)為11。
如圖5所示,隱層節(jié)點數(shù)為11時的網(wǎng)絡訓練過程誤差變化情況,可以看出,網(wǎng)絡經(jīng)初始化,利用函數(shù)trainlm對網(wǎng)絡進行23次訓練后,網(wǎng)絡就達到了目標誤差的要求。訓練過程中,目標誤差隨著訓練次數(shù)增大逐漸減小,直至達到所規(guī)定的期望誤差0.000 1停止訓練。
4 仿真研究
完成系統(tǒng)硬件連接,并對系統(tǒng)進行調試,通過實驗測得某數(shù)字式渦流傳感器系統(tǒng)輸出電壓和被測位移量之間對應關系的一組數(shù)據(jù)如表2所示。由實驗數(shù)據(jù)可知:d—f變化趨勢在被測試件位移量較小時基本上成線性關系;但是在被測試件位移量較大時,線性度較差,呈現(xiàn)非線性關系,這主要因為影響傳感器特性的因素有很多;被測試件表面平整度、表面磁效應、表面鍍層、表面尺寸以及傳感器的安裝和工作溫度等諸多因素都會對渦流傳感器的特性產(chǎn)生影響。為了驗證BP神經(jīng)網(wǎng)絡對于位移一頻率關系擬合的正確性,本文采用最小二乘算法進行仿真對比研究。最小二乘算法擬合后殘差平方和的大小決定了多項式擬合的效果,為了盡可能降低各測量點的殘差平方和的數(shù)值,要合理選擇擬合的階次。擬合階次的選擇既要兼顧擬合曲線的光滑程度,又要注重考慮真實反映傳感器輸入、輸出之間的變化規(guī)律。利用MATIAB語言編寫最小二乘算法程序。誤差準則為:目標誤差rose(均方誤差)的計算公式如(8)式所示:
上述兩式中N為樣本長度。
取m=6階,最小二乘算法擬合結果如(10)式所示:
為了提高神經(jīng)網(wǎng)絡的訓練速度,文中將實驗測得數(shù)據(jù)進行歸一化處理,將所收集的數(shù)據(jù)映射到指定的區(qū)間[0,1]之中,根據(jù)上述過程利用MATLAB語言編程建立BP神經(jīng)網(wǎng)絡、并對網(wǎng)絡初始化、進行網(wǎng)絡訓練和仿真測試?;贐P神經(jīng)網(wǎng)絡和最小二乘算法擬合曲線如圖6所示,仿真結果對比如表3所示。數(shù)字式渦流傳感器特性曲線擬合效果如圖6所示。
5 結論
仿真結果表明,只要實驗測得數(shù)據(jù)足夠多,就可利用所建BP神經(jīng)網(wǎng)絡實現(xiàn)渦流傳感器輸入和輸出之間的非線性映射,從而得到渦流傳感器的特性曲線?;贛ATLAB建立BP神經(jīng)網(wǎng)絡擬合數(shù)字式渦流傳感器的特性曲線的程序設計簡單,且具有較強非線性處理能力和函數(shù)逼近能力,網(wǎng)絡運算速度快、性能穩(wěn)定。