劉 偉,魯 露,楊文博,趙曼玉,魏廣芬,2
(1.山東工商學院信息與電子工程學院,山東 煙臺 264005;2.山東省高校感知技術與控制重點實驗室,山東 煙臺 264005)
電化學氣體傳感器具有測量靈敏度高、性能穩(wěn)定、線性度高、壽命長、選擇性好等特點,被廣泛地應用于低濃度有毒有害氣體、可燃氣體和環(huán)境空氣等定量監(jiān)測領域[1-2]。但是電化學氣體傳感器在工作時易受環(huán)境溫度影響,傳感器的靈敏度和零點電流隨環(huán)境溫度變化,從而降低了檢測精度。因此,電化學傳感器溫度補償成為當前氣體傳感器研究的熱點之一[3-5]。目前氣體傳感器的溫度補償從結構上分為硬件補償和軟件補償兩種方法,其中常見的軟件補償方法有查表法、曲面擬合法及BP 神經(jīng)網(wǎng)絡等方法[6-7]。其中BP 神經(jīng)網(wǎng)絡方法雖然精度較高,但存在初始權值及閾值難以確定、收斂速度慢、易陷入局部極小等缺點[8-10]。
本文提出一種基于改進的粒子群優(yōu)化PSO(Particle Swarm Optimization)算法對BP 神經(jīng)網(wǎng)絡進行參數(shù)優(yōu)化的方法,即利用PSO 強大的全局搜索能力、收斂速度快、穩(wěn)定性好等特點針對BP 神經(jīng)網(wǎng)絡參數(shù)進行改進和篩選,使優(yōu)化后的BP 神經(jīng)網(wǎng)絡具有克服局部極小、更快收斂等能力;采用優(yōu)化后的BP 神經(jīng)網(wǎng)絡對四電極電化學氣體傳感器進行溫度補償,可顯著提高補償精度。
與常規(guī)的三電極電化學氣體傳感器不同,四電極電化學傳感器除了工作電極WE(Worker Electrode)、對電極CE(Counter Electrode)和參考電極RE(Reference Electrode)三個電極之外,還有一個輔助電極AE(Auxiliary Electrode),該電極用于補償零點電流。四電極傳感器工作時,工作電極WE 與對電極CE 之間發(fā)生氧化或還原反應形成的電流與被測氣體濃度呈線性關系;參考電極RE 維持穩(wěn)定工作電壓;輔助電極AE 不參加反應,不會產(chǎn)生基線漂移。將工作電極WE 信號值與輔助電極AE 信號值相減,再與靈敏度系數(shù)相乘即可計算出被測氣體濃度。四電極電化學傳感器具有較高的測量精度和分辨率,廣泛用于低濃度的大氣環(huán)境監(jiān)測。但是,四電極電化學氣體傳感器的測量精度極易受環(huán)境溫度影響[11]。
本文設計的四電極電化學氣體傳感器溫度補償測試系統(tǒng),其結構如圖1 所示。
圖1 溫度補償系統(tǒng)結構圖
整個系統(tǒng)由配氣系統(tǒng)、密封氣室、電化學氣體傳感器、溫濕度傳感器、信號調理電路、主機系統(tǒng)及PC上位機組成。主機系統(tǒng)采用STM32F103VET6 微處理器,擴展24 位高分辨率AD 轉換芯片AD7190。配氣系統(tǒng)由青島佳明公司設計,可配制任意濃度標準氣體。溫度測量采用瑞士Sensirion 的SHT30 數(shù)字傳感器。信號調理電路采用3 片高精度運放OPA2335 構成二級運放電路,將工作電極WE 和輔助電極AE 輸出的微弱納安級電流信號放大為0~3 V 電壓信號輸入到ADC。信號經(jīng)濾波平滑處理后由串口發(fā)送至上位機,進行溫度補償算法測試、數(shù)據(jù)存儲及顯示。傳感器系統(tǒng)封裝在一個方形密封氣室中,采用泵吸式方法,氣體流速為0.5 L/min,使被測氣體與傳感器充分接觸,以發(fā)揮氣體傳感器的最佳性能。研制的氣體傳感器測試系統(tǒng)裝置如圖2所示。
圖2 氣體傳感器測試系統(tǒng)
BP 神經(jīng)網(wǎng)絡包含輸入層、隱層和輸出層。以3層神經(jīng)網(wǎng)絡為例,BP 網(wǎng)絡在訓練時會隨機設定初始權值和閾值。設輸入矢量X=(x0,x1,…,xn)T,輸出矢量為Y=(y0,y1,…,yn)T,隱層輸出矢量為O=(o0,o1,…,ol)T,期望輸出矢量D=(d0,d1,…,dm)T。其中n,l,m分別表示輸入層,隱層和輸出層的神經(jīng)元個數(shù)。
輸入層至隱層的權值矩陣和閾值矩陣為:
隱層至輸出層的權值矩陣和閾值矩陣為:
BP 神經(jīng)網(wǎng)絡訓練的一般步驟為:
①網(wǎng)絡初始化:選擇結構合理的網(wǎng)絡,設置隨機分布的權值和閾值;②給定輸入樣本和期望輸出,對每個樣本計算各層的實際輸出和節(jié)點誤差;③修正權值和閾值;④輸入新的樣本,直至目標函數(shù)誤差最小。
粒子群優(yōu)化算法(PSO)源于對鳥群捕食行為的研究,基本思想是通過群體中個體之間的協(xié)作和信息共享來尋找最優(yōu)解[12-15]。PSO 具有實現(xiàn)容易、收斂速度快、精度高等優(yōu)點[16-18]。
假設在一個m維搜索空間中,由n個粒子組成的種群X=(X0,X1,…,Xn),第i個粒子表示為一個m維的矢量Xi=(xi1,xi2,…,xim)T,即在m維搜索空間中的位置。根據(jù)目標函數(shù)計算每個粒子的適應度值。第i個粒子的速度為vi=(vi1,vi2,…,vim)T,個體極值為pi=(pi1,pi2,…,pim)T,種群的群體極值為pg=(pg1,pg2,…,pgm)T。PSO 算法的粒子速度和位置的更新公式為:
PSO 算法主要的初始化參數(shù)包括加速度因子和慣性權重。當c1較大時,會使粒子過多地在局部范圍內徘徊;而當c2較大時,則又會促使粒子過早收斂到局部最小值。因此須有效地控制粒子的飛行速度,提高算法的搜索能力,保證算法達到全局探測與局部開采兩者間的有效平衡。本文采用Clerc 提出的帶收縮因子的PSO[19],其粒子速度迭代方程為:
表1 MPSO-BP 和PSO-BP 初始參數(shù)
傳統(tǒng)的PSO 算法在后期存在收斂速度慢、易陷入局部極小值問題,為了解決這些問題,本文在帶收縮因子的PSO 基礎上提出了一種新型的改進算法MPSO(Modified Particle Swarm Optimization),即引入位置增量項和慣性權重全局修正因子,具體形式如下:
ω2參數(shù)在保留了傳統(tǒng)PSO 算法的全局搜索能力和局部搜索能力的同時,對速度的修正量進行全局微調,其動態(tài)變化采用二次曲線,如式(10)所示:
利用改進的PSO 算法優(yōu)化BP 神經(jīng)網(wǎng)絡的權值和閾值,構建四電極電化學傳感器的溫度補償?shù)囊话隳P停渚唧w流程如下:
①構建BP 神經(jīng)網(wǎng)絡。輸入為溫度T和傳感器經(jīng)調理后輸出的2 路電壓,輸出為補償后的電壓。所以輸入維數(shù)n=3,輸出維數(shù)m=2。由于隱層神經(jīng)元個數(shù)的選取暫無充足的理論,因此本文采用式(11)所示的經(jīng)驗公式多次實驗求得。首先設置較少的節(jié)點,對網(wǎng)絡進行訓練并保存模型結構;其次逐漸增加節(jié)點數(shù),重復上一步驟并比較兩次模型的均方誤差;直至均方誤差最小,所對應模型的隱層神經(jīng)元個數(shù)為本文最終的取值。本文最終的隱層神經(jīng)元個數(shù)l=5。初始化權值矩陣和閾值矩陣W1、B1、W2、B2,并變換為一維數(shù)組作為PSO 算法的初始種群。
式中:n為輸入節(jié)點數(shù),m為輸出節(jié)點數(shù),α代表1~10 的常數(shù)。
②初始化PSO 算法的種群個數(shù)。每個粒子的維數(shù)為n×l+l+l×m+m,此處為32。設定粒子的初始位置和速度、慣性權重范圍等參數(shù)。
③將BP 神經(jīng)網(wǎng)絡的訓練誤差函數(shù)作為適應度函數(shù)。輸入樣本數(shù)據(jù),計算每個粒子的適應度值,記錄個體極值和群體極值,并按式(8)和式(9)更新粒子位置和速度,然后繼續(xù)迭代直到滿足性能要求。
④將PSO 算法優(yōu)化后得到的W1,B1,W2,B2,作為BP 神經(jīng)網(wǎng)絡的初始參數(shù)對樣本進行訓練。
本文選用英國Alphasense 公司的B4 系列四電極電化學氣體傳感器H2S-B4,量程為0~100×10-6(經(jīng)信號調理電路變換后實際量程為0~15×10-6),靈敏度為1 450 nA/10-6~2 050 nA/10-6,工作溫度為-30 ℃~50 ℃。傳感器的輸出-溫度曲線如圖3所示,可見傳感器的輸出受溫度變化的影響較大。
圖3 H2S-B4 傳感器輸出-溫度特性曲線圖
在不同溫度下,利用搭建的測試系統(tǒng)采集樣本。首先通入不同濃度的標準H2S 氣體,待ADC 數(shù)值穩(wěn)定后讀取響應值。表2~表4 分別列出了4×10-6,6×10-6,8×10-6三種濃度下的部分實測樣本數(shù)據(jù)。從表中看出,樣本數(shù)據(jù)符合傳感器輸出-溫度特性曲線,表明測試系統(tǒng)采集的數(shù)據(jù)是可靠的。
表2 H2S-B4 氣體傳感器的測試數(shù)據(jù)(4×10-6)
表3 H2S-B4 氣體傳感器的測試數(shù)據(jù)(6×10-6)
表4 H2S-B4 氣體傳感器的測試數(shù)據(jù)(8×10-6)
不失一般性,采用隨機法產(chǎn)生訓練集樣本和測試集樣本,即從全部樣本中隨機產(chǎn)生50 組作為訓練集,5 組作為測試集。將樣本中傳感器在20 ℃時的測量數(shù)據(jù)作為目標輸出。為了加快訓練速度,同時消除不同輸入之間數(shù)值的差異,采用式(12)將樣本數(shù)據(jù)歸一化到[0,1]區(qū)間:
為了驗證MPSO-BP 算法的穩(wěn)定性、收斂速度等性能,本文采用最小二乘曲面擬合、BP 神經(jīng)網(wǎng)絡和PSO-BP 網(wǎng)絡進行性能對比。
其中,最小二乘曲面擬合方法選擇二元二次多項式作為擬合曲面模型,其表達式為[7]:
式中:x是溫度數(shù)據(jù),y是電極電壓實測數(shù)據(jù),z是電極電壓目標數(shù)據(jù)。p20,p11,p02,p10,p01,p00為待定系數(shù)。以使曲面擬合模型的誤差平方和達到最小為原則,利用樣本數(shù)據(jù)集求解二元二次多項式的待定系數(shù)。表5 列出了利用4×10-6濃度的實測樣本數(shù)據(jù)求解得到的待定系數(shù)。
表5 擬合曲面模型待定系數(shù)(4×10-6)
采用SSE(誤差平方和)、RMSE(均方根誤差)、R-square(確定系數(shù))指標來評估曲面模型的擬合效果。表5 待定系數(shù)對應的評估指標如表6所示。
設BP 神經(jīng)網(wǎng)絡的結構為3-5-2,最大迭代次數(shù)100,目標誤差為1e-4。MPSO-BP 和PSO-BP 算法的種群規(guī)模為30,進化次數(shù)為100 次。將測試樣本輸入到訓練好的神經(jīng)網(wǎng)絡模型中得到溫度補償結果。四種補償方法對工作電極WE 和輔助電極AE的誤差如表7 所示。式(14)和式(15)給出了二者的計算方法。
表7 四種補償方法精度比較 單位:%
式中:p為補償結果,q為20 ℃下的對應電極電壓,n代表測試集樣本數(shù),i為正整數(shù)且i≤n。
從表7 可以明顯看出,使用基于BP 神經(jīng)網(wǎng)絡的三種方法相比最小二乘曲面擬合法用于四電極電化學傳感器溫度補償時,精度都有了一定的提高?;贛PSO-BP 算法的溫度補償精度要顯著高于其他三種方法。經(jīng)過多次重復實驗,所得結果幾乎完全相同,這表明本文提出的四電極電化學氣體傳感器的溫度補償方法具有較強的穩(wěn)定性和魯棒性,補償總體誤差能夠控制在0.1%以內。采集量程范圍內其他濃度的樣本數(shù)據(jù),輸入到訓練完畢的MPSOBP 網(wǎng)絡進行測試,與該濃度在20 ℃下的數(shù)據(jù)進行比對,也取得了較理想的補償效果,這證明本文提出的溫度補償方法具有較強的泛化能力,能夠有效消除溫度變化對傳感器輸出的影響。
圖4 為BP、PSO-BP 和MPSO-BP 三種算法的訓練過程比較圖。未經(jīng)PSO 算法優(yōu)化過的BP 網(wǎng)絡未能在100 次迭代以內達到全局最優(yōu),存在較大的訓練誤差;而PSO-BP 算法和MPSO-BP 算法在100 次迭代以內均能達到全局最優(yōu),但MPSO-BP 算法明顯收斂速度更快一些。
圖4 三種算法訓練過程比較圖
本文提出了一種基于MPSO-BP 算法的四電極電化學氣體傳感器的溫度補償方法,并在所設計的傳感器測試系統(tǒng)中進行了實驗驗證。結果表明,相對于最小二乘曲面擬合方法、BP 和PSO-BP 神經(jīng)網(wǎng)絡方法,該方法具有較高的補償精度和較快的收斂速度。此外,該方法還可以應用于其他類型氣體傳感器的溫度補償,具有一定的工程實用價值。