摘 要: 通過對智能壓力傳感器精度的研究,選擇基于自適應學習率的BP算法設計壓力傳感器。首先,給出了相應的硬件結構和軟件設計,然后用標準的BP神經網絡和改進的BP神經網絡分別對壓力和溫度兩個目標參量進行數據融合,進行測量結果顯示。通過對測量結果的計算比較,發(fā)現利用改進的BP神經網絡設計的傳感器測量精度比標準的BP神經網絡設計的傳感器精度更高。
關鍵詞: 壓力傳感器;自適應學習率;BP網絡
0 引言
壓力是工業(yè)生產中的重要參數之一,正確測量和控制壓力對保證生產工藝過程的安全性和經濟性有重要意義。由于壓力測量的重要性,對壓力測量儀表的開發(fā)也得到了高度重視。目前最具有前景的是智能壓力傳感器,它被廣泛應用于石化、化工、電力和國防等領域[1]。相比于通信技術和計算機技術的發(fā)展,智能壓力傳感器技術的發(fā)展相對滯后,如何提高傳感器測量精度是首要解決的問題。目前,國內外常用的解決方法有兩種:一種是硬件法,另一種是軟件法。硬件法比較直觀,但是硬件電路存在電路比較復雜、精度相對低、成本比較高等缺點,利用硬件電路實現比較困難。軟件法是利用軟件功能結合特定的算法對數據進行處理,主要有回歸法、神經網絡、小波等。其中,神經網絡具有層次性、聯想記憶和并行處理等優(yōu)點,應用前景好[2]。近幾年,相關文獻中多選用標準的BP算法來提高壓力測量的精度,忽略了標準的BP算法本身存在收斂速度慢、易陷入局部最小等缺點。本壓力傳感器的設計利用基于自適應學習率的BP算法,不僅提高了算法收斂的速度以及測量精度,同時將改進的BP算法嵌入到微處理器中,實現測量、顯示等功能。
1 智能壓力傳感器的硬件設計
智能壓力傳感器在硬件方面主要是簡化電路,采用幾塊主要功能的芯片加上一些簡單的外圍電路來實現,它的大部分功能主要靠軟件來實現。智能壓力傳感器是既有獲得信息的能力又有信息處理功能的傳感器系統(tǒng)。智能壓力傳感器系統(tǒng)具備學習、推理、感知、通信及管理的功能,其典型結構如圖1所示[3]。
硬件工作過程:壓力傳感器將檢測的壓力信號轉化為直流電壓輸出,經信號調理電路處理,經過濾波、放大,以及模數轉換,將所得的數字信號送入單片機,經處理后將結果送至輸出接口,得到的結果供PC機接收。
2 智能壓力傳感器的軟件設計
智能壓力傳感器軟件的設計完全按照結構化的程序設計方法來完成,將整個程序細劃分為若干個子程序(模塊),方便調試與檢查。圖2為主程序流程圖[4]。軟件執(zhí)行過程如下:當軟件啟動后,首先對它進行初始化設置,然后判斷是否有鍵按下,如果有鍵按下,則調用模數轉化模塊,將模擬量轉化為數字量,調用數據處理模塊,進行非線性修正,將處理好的數據進行數模轉換,再將轉化好的模擬量顯示出來;如果沒有鍵按下,則繼續(xù)判別是否有鍵按下。
3 BP網絡模型
BP(Error Back Propagation)算法的基本思想是:學習過程由信號的正向傳播與誤差的反向傳播兩個過程組成[5]。它利用梯度最速下降法,權值沿誤差函數的負梯度方向改變,使誤差逐漸減小,并逼近非線性函數。本文中所設計的神經網絡,輸入層包含壓力與溫度兩個信號,隱含層選擇6個神經元,輸出層設為校正后的壓力值。首先設輸入層(?字=[Uρ;T])的權值矩陣為?棕1,修正值矩陣為b1,隱含層神經元的傳遞函數采用的是S型正切函數[6]:
中間層的函數表達式為[7]:
將隱含層與輸出層的權值矩陣設為,修正值矩陣設為b2,輸出層神經元的傳遞函數采用的是S型對數函數,其表達式為:
輸出層的函數表達式[8]:
在壓力標定值P下,得到壓力傳感器輸出的電壓信號UP和溫度信號UT,以此來建立訓練樣本。針對不同的壓力需建立不同的訓練樣本進行BP網絡的設計。
4 自適應學習率的BP算法
標準的BP算法的學習率是固定的,學習率過大或過小都不能很好地適用于網絡的整個學習過程[9]。因此,本文采用了
的自適應調整的BP算法。它的基本思想是:當學習速率能夠使網絡穩(wěn)定學習,并能夠使誤差值繼續(xù)下降時,可以適當地將學習速率變大;如果學習速率調得過大,不能保證誤差值繼續(xù)減小,則適當地減小學習速率,直到使學習過程穩(wěn)定為止。
的調整公式為[10]:
其中,分別表示學習率迭代到第k,k+1次時的值,
為誤差增量,0<λ1<λ2<1為常量,λ1,λ2的取值范圍通常為0.01~0.03,本文采用的是0.03。從式(5)中不難看出,對學習速率的調整與誤差增量E的大小和誤差
的大小有關,很好地避免出現震蕩的情形。
5 標準BP與改進算法的仿真與應用
5.1 樣本庫的建立
在不同的溫度T(28℃,34℃,50℃)、壓力P(0,1×104pa,2×104pa,3×104pa)下,對智能壓力傳感器的靜態(tài)輸入輸出特性進行標定,得到12組二維實驗數據標定表,如表1所示。
主要訓練參數為:誤差精度為0.001,迭代次數為 2 000,輸入節(jié)點數為3,隱層節(jié)點數為6,輸出層節(jié)點數為1。標準BP算法的學習率設為0.6。改進算法的初始學習率設為0.1,λ1=0.03,λ2=0.01。
5.2 測試結果分析
分別通過標準的BP和改進的BP神經網絡融合,壓力信號的輸出分別如表2、表3。
根據表2和表3測得的結果,經過標準BP網絡融合后的線性度為:
通過線性度及溫度穩(wěn)定性參數的計算可以看出,經過改進的BP網絡融合,線性度從標準BP網絡融合的0.16%改進到了0.07%,零位溫度系數及溫度靈敏度也分別變小,表明經過改進的BP網絡融合后傳感器的線性度及溫度穩(wěn)定性都得到了不同程度的改善,從而使傳感器的測量精度更高。
6 結論
基于自適應學習率的BP神經網絡的智能壓力傳感器,電路設計簡單、可靠性高、穩(wěn)定性好。更重要的是,相對于基于標準BP神經網絡的智能壓力傳感器,測量精度更高。本文提出的改進的自適應學習率的BP神經網絡,可以有效地避免出現震蕩的情形。利用該智能壓力傳感器可以實現信號的A/D轉換、測量、線性化、溫度補償等一些簡單功能,減輕了中央處理器的負擔,并且提高了測量精度。
參考文獻
[1] 劉君華.智能傳感器系統(tǒng)(第二版)[M].西安:西安電子科技大學出版社,2010.
[2] 郁有文.傳感器原理及應用(第四版)[M].西安:西安電子科技大學出版社,2015.
[3] 吳建平.傳感器原理及應用[M].北京:機械工業(yè)出版社,2009.
[4] 孫育才,孫華芳.MCS-51系列單片機及其應用[M].南京:東南大學出版社,2012.
[5] 張代遠.神經網絡新理論與方法[M].北京:清華大學出版社,2006.
[6] 劉鷹,趙琳.神經網絡BP算法的改進和仿真[J].計算機仿真,1997,16(3):12-14.
[7] 周開利,康耀紅.神經網絡模型及其MATLAB仿真程序設計[M].北京:清華大學出版社,2005.
[8] GOEL A K, SAXENAX S C, BHANOT S. A fast learning algorithm for training feedforward neural networks[J]. International Journal of Systems Science,2006,37(10):709-722.
[9] 曾明,魏衍.一種BP神經網絡改進算法的研究及應用[J].微計算機信息,2009,25(18):193-195.
[10] 劉嵐,秦洪.用于神經網絡模式識別的一種改進的BP算法[J].信息技術,2002(6):6-7.