張根寶, 謝曉靜, 程振晨
(陜西科技大學 電氣與信息工程學院, 陜西 西安 710021)
?
一種氨氣變送器溫度補償方法的研究與實現(xiàn)
張根寶, 謝曉靜, 程振晨
(陜西科技大學 電氣與信息工程學院, 陜西 西安710021)
摘要:為有效解決氨氣傳感器溫漂問題,設(shè)計了一種基于BP神經(jīng)網(wǎng)絡(luò)的溫度補償系統(tǒng).針對BP網(wǎng)絡(luò)收斂速度慢、精度不高、易產(chǎn)生局部最小值的缺陷,在BP網(wǎng)絡(luò)算法迭代接近最優(yōu)時引入L-BFGS算法加快收斂.同時,引入動態(tài)變量更新權(quán)值向量和權(quán)值導數(shù)向量,改進擬Hesse逆矩陣的求解,解決了溢出問題,實現(xiàn)了算法的全局收斂.實驗證明,該氨氣變送器有效克服了溫漂問題,并具有響應(yīng)時間短,測量精度高,穩(wěn)定性好等優(yōu)點.
關(guān)鍵詞:氨氣變送器; BP神經(jīng)網(wǎng)絡(luò)算法; L-BFGS算法; 溫漂問題
0引言
氨氣是一種重要的化工原料,在工業(yè)生產(chǎn)中有著廣泛的應(yīng)用,但如果操作不當,就會引發(fā)危險[1].為了避免氨氣泄露給人類帶來危害,應(yīng)及時檢測空氣中氨氣含量,采取相應(yīng)措施防患于未然.電化學傳感器是測量氣體最常用的傳感器,電化學傳感器具有反映速度快、準確(可用于ppm級),穩(wěn)定性好、能夠定量檢測等優(yōu)點,但是測量中,因環(huán)境溫度的影響,容易產(chǎn)生漂移,影響測量精度.為此,必須對傳感器的溫度漂移進行補償.
本文設(shè)計的電化學NH3變送器,以低功耗、高速度微處理器STM32F103RCT6為采集Nh1的運算和控制核心,選用電化學4Nh1-1000傳感器,實現(xiàn)數(shù)據(jù)的顯示報警,溫度的軟件補償及遠距離傳輸.建立BP網(wǎng)絡(luò)是利用其能夠以任意精度逼近任何非線性函數(shù)的能力進行數(shù)據(jù)擬合,對變送器進行溫度補償.針對BP神經(jīng)網(wǎng)絡(luò)在電化學傳感器溫度補償中存在收斂速度慢、易于陷入局部極小等缺點[2,3],提出了應(yīng)用L-BFGS(擬牛頓法)算法對其進行改進,加快了網(wǎng)絡(luò)的收斂速度,提高變送器的精度.
1系統(tǒng)硬件電路設(shè)計
1.1芯片選型[4]
STM32F103系列MCU具有CortexTM-M3 32位的RISC內(nèi)核,工作頻率為72MHz,內(nèi)置高速存儲,具有豐富人機交互接口、通信、定時器和控制外圍電路.考慮到該設(shè)計軟件運行工作量較大,選用增強型的STM32F103系列可工作于-40 ℃至+105 ℃的溫度范圍,內(nèi)嵌3個12位的模擬/數(shù)字轉(zhuǎn)換器(ADC)的STM32F10RCT6芯片.
1.2硬件電路框圖
高精度NH3探測器的基本硬件結(jié)構(gòu)如圖1所示,電化學傳感器4NH3-1000檢測到氨氣,經(jīng)化學反應(yīng)轉(zhuǎn)換成電流信號,通過多級運放調(diào)理電路輸出1~3.3 V電壓信號到微處理器STM32F103RTC6的A/D轉(zhuǎn)換通道,處理器將調(diào)理電路輸出的電壓信號轉(zhuǎn)換成數(shù)字量,處理后由LED顯示出來,并通過RS-485通訊接口將數(shù)據(jù)傳送給上位機,通過AD694輸出4~20 mA電流信號,實現(xiàn)了遠距離傳輸.用DS18B20采集溫度,通過BP神經(jīng)網(wǎng)絡(luò)算法,對傳感器進行溫度補償.整個系統(tǒng)框圖如圖1所示.
圖1 系統(tǒng)整體框圖
2BP神經(jīng)網(wǎng)絡(luò)
改進的BP網(wǎng)絡(luò)的對傳感器的溫度補償,可以看成關(guān)于傳感器輸入、輸出的非線性映射.由于傳感器受溫度影響很大,對此,將外界氨氣濃度ρi和環(huán)境的溫度ti通過非線性轉(zhuǎn)換成電信號U,用函數(shù)表示該過程為f(ρi+ti)=Ui.對于集合(ρi+ti),可認為存在映射g,使得g(ρi+ti)=Ui.即求出映射g,使得g是f的最佳逼近.BP神經(jīng)網(wǎng)絡(luò)通過多次非線性擬合,實現(xiàn)g到f的最佳逼近,神經(jīng)網(wǎng)絡(luò)通過對輸入樣本的訓練,通過自學習能力實現(xiàn)了對傳感器的溫度補償.
2.1基于L-BFGS算法的BP神經(jīng)網(wǎng)絡(luò)
BP網(wǎng)絡(luò)是用反傳學習算法的多層前饋網(wǎng)絡(luò),包含一個輸入層、一個輸出層和至少一個隱含層,單層BP神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)如圖2所示.BP算法的本質(zhì)是梯度下降法的一種迭代學習,負梯度下降法逼近最優(yōu)的路線是鋸齒形的,越接近極小值點步長越大;而且訓練從不同點開始沿誤差函數(shù)的斜面逐漸達到誤差的最小值,將會產(chǎn)生不同的極小值,即得到不同的最優(yōu)解[5-10].因此,在迭代初期采用負梯度下降法,當接近最優(yōu)時采用改進的擬牛頓算法加快收斂.
圖2 BP網(wǎng)絡(luò)結(jié)構(gòu)示意圖
基于L-BFGS算法的神經(jīng)網(wǎng)絡(luò)如下:在BP神經(jīng)網(wǎng)絡(luò)第k次迭代時,將能量函數(shù)E(w)在wk處展開到泰勒級數(shù)二次冪的形式:
E(w)=E(wk)+g(wk)(w-wk)+
o((w-wk)2)
(1)
使E′(k)=0得到wk+1滿足:
-GkPk+1+1
(2)
在L-BFGS算法中,誤差下降函數(shù)Pk和Hesse逆矩陣Hk設(shè)定如下:
Ifk+1≤n,
…
(3)
…
Ifk+1>n,
…
Pk+1=-Hkgk,
(4)
wk+1=wk+Pk+1,
(5)
故,wk+1=wk-Hkgk,
(6)
對式(1)兩邊求導,得:
E′(w)=g(wk)+G(wk)(w-wk),
(7)
由式(6)和式(7)可得:
g(wk+1)=g(wk)+G(wk)(wk+1-wk),
(8)
式中,Hkyk=sk,
(9)
yk=gk+1-gk,
(10)
sk=wk+1-wk.
(11)
將式(13)等號兩邊乘以yk,結(jié)合式(9),可以得到Hk的更新值:
(12)
L-BFGS算法第k步的更新方向向量為
(13)
理論上,若H0的初始值是正定的,則Hk就是正定的,這就保證了Pk為下降方向[4].L-BFGS算法不用求解擬hess逆矩陣,計算量小,但由于計算存在舍入誤差,破壞了Hk+1的正定性,導致該算法不能在n步內(nèi)達到最優(yōu)點.并且,當算法進入飽和區(qū)域或接近最小值時,容易產(chǎn)生溢出錯誤.
影響L-BFGS算法不穩(wěn)定的最重要的因素是權(quán)值的調(diào)整,因此,可以選擇合適的權(quán)值調(diào)整方法彌補算法的缺陷.
為了保證權(quán)值調(diào)節(jié)精度,本文引入了動態(tài)變量αΔWij(k),公式如下:
wk+1=wk+Pk+1+ΔWij(k+1)
(14)
ΔWij(k+1)=ηδiχj+αΔWij(k)
(15)
ΔWij(k)為第k次訓練時的權(quán)值更新值,ΔWij(k+1)為k+1次訓練時的權(quán)值更新值,η為學習速率,α是動量因子.當對訓練樣本訓練時,式(15)是關(guān)于次數(shù)t的函數(shù),t∈[0,n].
2.2BP網(wǎng)絡(luò)的建立及訓練
在實驗中,實驗數(shù)據(jù)被初始化為該輸入層有兩個節(jié)點,輸出層有一個節(jié)點,隱藏層的數(shù)目為8,輸入層到隱藏層的初始學習速率為0.07,隱藏層到輸出層的初始學習速率為0.25,動量因子為0.8.可以通過式(15)調(diào)整權(quán)值.學習函數(shù)為learngdm,訓練函數(shù)為trainlm.參數(shù)設(shè)置如下:最小目標誤差goal=le-4;最大訓練次數(shù)epochs=1 000;最大失敗次數(shù)max_fail=8;預(yù)設(shè)精度precision=0.000 1.
BP網(wǎng)絡(luò)輸入層兩節(jié)點分別為Ut、Uρ,輸出量是誤差范圍允許的氣體濃度ρ.4NH3-1000的量程為0~1 000 ppm,工作溫度范圍為-20 ℃~60 ℃.在圖3中可以看到,在變送器不加溫度補償時,在同一濃度不同溫度下,采集的濃度值差別很大,必須進行溫度補償以消除溫漂影響.在測試中,獲取的原始樣本中各向量的數(shù)量級差別很大,為了計算方便及防止部分神經(jīng)元達到過飽和狀態(tài),在研究中對樣本的輸入進行歸一化處理,如表1所示.
表1 電化學傳感器歸一化數(shù)據(jù)
訓練完以后,我們需要檢測神經(jīng)網(wǎng)絡(luò)的工作情況,對神經(jīng)網(wǎng)絡(luò)的測試樣本進行檢測[11-17].這時,選擇通過BP網(wǎng)絡(luò)nntool工具箱仿真輸出在0~0.95之間數(shù),經(jīng)反歸一化處理后映射到期望區(qū)間.反歸一化的公式如下:
(16)
微處理器將信號反歸一化處理,并通過顯示模塊顯示出來,同時將數(shù)據(jù)由RS-485通訊傳輸給上位機.
3測試結(jié)果
根據(jù)我國《工業(yè)企業(yè)設(shè)計衛(wèi)生標準》(TJ36-79)規(guī)定了車間空氣中氨氣的最高允許濃度30mg/m3,30 mg/m3換算成ppm約為39.5 ppm.為了測試及實驗的方便,此處在測試中設(shè)定55 ppm為報警點,以便檢測傳感器在同一濃度,不同溫度下的測量誤差.運用改進的BP網(wǎng)絡(luò)進行溫度補償,如圖3,在選用50 ppm氨氣濃度下測試,補償前,氨氣濃度隨著溫度的變化輸出電壓也在變.補償后,在溫度不斷變化中,變送器輸出的電壓基本保持在2.5 V,可見BP網(wǎng)絡(luò)補償效果明顯且可靠.
圖3 NH3感器在50 ppm時輸出(V)-溫度(T)特性曲線
在相同結(jié)構(gòu)的BP神經(jīng)網(wǎng)絡(luò)下測試,普通的BP網(wǎng)絡(luò)下,訓練樣本時訓練至少迭代131次曲線才能停止下降,誤差0.001 07%,而在加入L-BFGS算法,訓練迭代第21次時誤差為0.001 05%,收斂速度加快,如圖4和圖5所示.
圖4 BP模型訓練迭代曲線
圖5 基于L-BFGS算法的BP模型訓練迭代曲線
在圖6中,在相同的網(wǎng)絡(luò)結(jié)構(gòu)和樣本值下測試,單一的BP網(wǎng)絡(luò)在溫度補償中,誤差相對較大,而且易陷入極小值狀態(tài),在加入L-BFGS算法后,最大誤差為0.1%,滿足變送器要求,并且避免陷入極小值狀態(tài),收斂速度快.
圖6 補償相對誤差曲線
4結(jié)束語
應(yīng)用于神經(jīng)網(wǎng)絡(luò)的L-BFGS算法是一種擬牛頓方法,適用于解決大規(guī)模變量計算問題,通過調(diào)整更新權(quán)值,實現(xiàn)了全局收斂,保證梯度下降的方向.通過實驗證明,將其運用于BP網(wǎng)絡(luò)對氨氣傳感器進行溫度補償,穩(wěn)定性明顯增強,訓練速度快,有效避免了陷入極小值點.該設(shè)計選用STM32F103RCT6處理器,在通訊方面采用RS-485通訊,便于數(shù)據(jù)的傳輸,內(nèi)含12位A/D轉(zhuǎn)換,提高了轉(zhuǎn)換精度.測試結(jié)果證明,該氨氣傳感器整體上性能穩(wěn)定,測試速度快,且有效消除了溫度影響.
參考文獻
[1]胡偉.基于無線傳感器網(wǎng)絡(luò)的工業(yè)環(huán)境氨氣泄漏監(jiān)測報警系統(tǒng)[DB/OL].http://www.doc88.com/p-9068158764182.html,2014-04-01.
[2]李光升,康洪銘,魏寧,等.基于相關(guān)模型與神經(jīng)網(wǎng)絡(luò)的調(diào)壓器測試性設(shè)計[J].計算機測量與控制,2013,21(3):577-579.
[3]高國強,黃國梁.智能CO探測器設(shè)計[J].傳感器與微系統(tǒng),2014,33(3):125-131.
[4]薛忠,何矞,趙中兵.基于STM32F103的智能壓力變送器研究與設(shè)計[J].現(xiàn)代電子技術(shù),2013,36(4):141-146.
[5]Pei-xinLu.ResearchonBPneuralnetworkalgorithmbasedonquasi-newtonmethod[J].AppliedMechanicsandMaterials,2014,686:388-394.
[6]CheinShanLiu.OptimalalgorithmsandtheBFGSupdatingtechniquesforsolvingunconstrainednonlinearminimizationproblems[J].JournalofAppliedMathematics,2014,12(5):1-15.
[7]孫艷梅,苗鳳娟,宋志章.基于DFP算法的BP神經(jīng)網(wǎng)絡(luò)在溫度補償中的應(yīng)用[J].光通信研究,2013,178(8):53-56.
[8]張永敢,蔡瑞英.基于BFGS算法的BP網(wǎng)絡(luò)在燒結(jié)終點預(yù)報中的應(yīng)用[J].軟件天地,2008,24(12):291-293.
[9]張耀鋒.基于人工神經(jīng)網(wǎng)絡(luò)溫度補償?shù)膲毫鞲衅鞯臒o線數(shù)據(jù)采集系統(tǒng)[DB/OL].http://cdmd.cnki.com.cn/Article/CDMD-10080-2008157124.htm,2007-10-01.
[10]Tao-wenLiu.AregularizedlimitedmemoryBFGSmethodfornonconvexunconstrainedminimization[J].NumerAlgor,2014,65:305-323.
[11]王福昌,張寶雷,張同慶.神經(jīng)網(wǎng)絡(luò)工具nntool及其應(yīng)用[J].計算機與現(xiàn)代化,2003,45(9):84-85.
[12]飛思科技產(chǎn)品研發(fā)中心.神經(jīng)網(wǎng)絡(luò)理論與MATLAB7實現(xiàn)[M].北京:電子工業(yè)出版社,2005.
[13]張建軍,李頎,丁明東,等.基于MSP430單片機的高精度壓力變送器[J].儀表技術(shù)與傳感器,2010,47(1):32-35.
[14]耿輝,劉軍.基于ARM的智能無線信號變送器[J].今日電子,2009,17(3):61-64.
[15]趙斌,王建華.基于PSO-BP的紅外溫度傳感器環(huán)境溫度補償[J].傳感器與微系統(tǒng),2015,34(2):47-49.
[16]劉天舒.BP神經(jīng)網(wǎng)絡(luò)的改進研究及應(yīng)用[DB/OL].http://www.docin.com/p-761601547.html,2011-06-05.
[17]王晶晶,王劍.一種BP神經(jīng)網(wǎng)絡(luò)改進算法研究[J].軟件導刊,2015,14(3):52-53.
Researchandimplementationofatemperature
compensationforammoniatransmitter
ZHANGGen-bao,XIEXiao-jing,CHENGZhen-chen
(CollegeofElectricalandInformationEngineering,ShaanxiUniversityofScience&Technology,Xi′an710021,China)
Abstract:In order to deal with the temperature drift problem,the temperature compensation system was designed based on BP neural network.Aiming toBP network defects of slow convergence speed, low precision, and easing to produce a local minima,when the iteration of the BP network algorithm close to the optimal to introduce L-BFGS algorithm to speed up the convergence.Meanwhile,this paper solves the overflow problem by introducing dynamic variables to update the weight vector and the weight derivative vector,improving the solver of quasi Hesse inverse matrix,whichachieves the global convergence algorithm.Experiments show that,temperature drift problem was availably surmounted in the ammonia transmitter,which has many advantages that short response time,high measuring precision,and good stability.
Key words:the ammonia transmitter; BP neural network; the L-BFGS algorithm; the temperature drift problem
中圖分類號:TP23
文獻標志碼:A
文章編號:1000-5811(2015)05-0167-04
作者簡介:張根寶(1958-),男,陜西咸陽人,教授,碩士生導師,研究方向:過程控制系統(tǒng)的應(yīng)用、嵌入式智能儀器儀表開發(fā)
基金項目:西安市科技計劃項目(CXY1436(1))
收稿日期:*2015-08-13