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