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