陳群,左鋒,盧文科
?。|華大學(xué) 信息科學(xué)與技術(shù)學(xué)院,,上海 201620)
摘要:為實(shí)現(xiàn)壓力傳感器的溫度補(bǔ)償,采用BP神經(jīng)網(wǎng)絡(luò)作為壓力傳感器軟件補(bǔ)償系統(tǒng)的核心算法,,但由于BP神經(jīng)網(wǎng)絡(luò)算法易陷入局部極值,,因此采用具有全局搜索能力的算法—人工魚(yú)群算法(AFSA)進(jìn)行優(yōu)化,得到的結(jié)果是壓力傳感器的線性度提升1個(gè)數(shù)量級(jí),,溫度靈敏度系數(shù)降低2個(gè)數(shù)量級(jí),,得到了很好的補(bǔ)償效果。
關(guān)鍵詞:壓力傳感器,;溫度補(bǔ)償,;人工魚(yú)群算法0引言
與傳統(tǒng)傳感器相比,智能傳感器具有精度高,、可靠性高,、自適應(yīng)性強(qiáng)等特點(diǎn),運(yùn)用傳統(tǒng)傳感器制造工藝來(lái)完善傳感器的測(cè)量性能已經(jīng)暴露出相當(dāng)多的局限性,,以大規(guī)模集成電路為基礎(chǔ)的微處理器的發(fā)展為改善傳統(tǒng)傳感器性能提供了一個(gè)基于可編程芯片和軟件的解決方案,。而壓力作為最常見(jiàn)的物理量,對(duì)它的測(cè)量是工控系統(tǒng)中的重要環(huán)節(jié),,基于硅半導(dǎo)體材料的壓力傳感器因?yàn)閷?duì)溫度的敏感性,,很難在寬泛的環(huán)境溫度下保證測(cè)量精度(零點(diǎn)和靈敏度隨溫度漂移),因此需要進(jìn)行溫度補(bǔ)償[1],。
1壓力傳感器溫度補(bǔ)償方案
圖1傳感器溫度補(bǔ)償模塊圖軟件補(bǔ)償?shù)谋举|(zhì)是利用微處理器強(qiáng)大的數(shù)據(jù)處理能力修正外界干擾量(如溫度)對(duì)壓力傳感器輸出的影響,。可以構(gòu)建一個(gè)具有溫度補(bǔ)償功能的二傳感器數(shù)據(jù)融合智能傳感器系統(tǒng),,其中一個(gè)是輔助傳感器,,用來(lái)監(jiān)測(cè)干擾量溫度T;另一個(gè)是主傳感器,,即壓力傳感器,,如圖1。
溫度補(bǔ)償問(wèn)題本質(zhì)上是個(gè)非線性優(yōu)化問(wèn)題,,因此引入具有自學(xué)習(xí),、自適應(yīng)的BP神經(jīng)網(wǎng)絡(luò)算法來(lái)解決。
2BP神經(jīng)網(wǎng)絡(luò)
2.1結(jié)構(gòu)
BP神經(jīng)網(wǎng)絡(luò)可以由一個(gè)或者多個(gè)隱層組成,,一般采用三層BP神經(jīng)網(wǎng)絡(luò),。假設(shè)權(quán)值Wjk(l×r)、Wkj(m×l)與閾值b1j(l個(gè)),、b2j(m個(gè))隨機(jī)賦予初始值,、確定分組輸入p1,p2,…,pr,如圖2所示,?!?/p>
由此可以得出輸出層節(jié)點(diǎn)k的輸出o2k與期望輸出dk存在誤差,輸出層m個(gè)節(jié)點(diǎn)的總誤差E取為:
通過(guò)反復(fù)計(jì)算,,求取E,,根據(jù)E的大小調(diào)整網(wǎng)絡(luò)參數(shù),最終使得誤差E足夠小,,這個(gè)過(guò)程稱之為網(wǎng)絡(luò)學(xué)習(xí),,也稱之為網(wǎng)絡(luò)訓(xùn)練過(guò)程。網(wǎng)絡(luò)權(quán)值的調(diào)整所遵循的規(guī)則稱為梯度下降法,,其基本思想是:沿著誤差函數(shù)E的負(fù)梯度方向修改各個(gè)節(jié)點(diǎn)的權(quán)值[1],。
2.2特點(diǎn)
與其他局部搜索的優(yōu)化方法一樣,BP神經(jīng)網(wǎng)絡(luò)算法也有缺陷,,首先網(wǎng)絡(luò)的權(quán)值是通過(guò)沿局部改善的方向逐漸進(jìn)行調(diào)整的,,這樣就容易過(guò)早地陷入局部極值;其次,,由于BP神經(jīng)網(wǎng)絡(luò)的實(shí)質(zhì)屬于梯度下降算法,,隨著其優(yōu)化的目標(biāo)函數(shù)復(fù)雜度增加,算法的收斂速度顯著放慢,。李曉磊[2]提出的一種具有全局優(yōu)化能力的人工魚(yú)群算法在全局尋優(yōu)和降低噪聲方面有著不錯(cuò)的效果,,因此本文提出一種人工魚(yú)群與BP神經(jīng)網(wǎng)絡(luò)相結(jié)合的方案。
3基于改進(jìn)的人工魚(yú)群算法的BP神經(jīng)網(wǎng)絡(luò)
3.1人工魚(yú)群算法(AFSA)
圖3人工魚(yú)感知模型圖魚(yú)類(lèi)會(huì)根據(jù)水中食物濃度的分布自主選擇覓食,、聚集以及追尾等行為[2],。傳統(tǒng)的人工魚(yú)感知模型如圖3。
圖3中,,人工魚(yú)所處當(dāng)前位置為X,,visual代表人工魚(yú)感知的距離,Xv為此人工魚(yú)某時(shí)刻感知到的點(diǎn),,若Xv處的食物濃度優(yōu)于X,,則向該點(diǎn)方向前進(jìn)一步,到達(dá)位置Xnext,,否則,,繼續(xù)感知區(qū)域內(nèi)的其他點(diǎn),感知過(guò)程如式(2)所示:
其中,,調(diào)用rand()是為了產(chǎn)生[0,1]區(qū)間內(nèi)的隨機(jī)數(shù),,step為人工魚(yú)移動(dòng)的最大步長(zhǎng),,它限定了人工魚(yú)的最大活動(dòng)范圍,Xv-X定義為Xv與X之間的距離,,人工魚(yú)所在位置X的食物濃度Y=f(X),,設(shè)try_Nunber為人工魚(yú)覓食行為的最多嘗試次數(shù),δ為擁擠因子,,人工魚(yú)(AF)根據(jù)當(dāng)前的狀態(tài)選擇覓食,、聚群和追尾等行為。
3.2人工魚(yú)群算法改進(jìn)(IAFSA)
常規(guī)的人工魚(yú)群算法也是有缺陷的,,初始人工魚(yú)的個(gè)體分布狀況對(duì)全局收斂性影響較大,;人工魚(yú)步長(zhǎng)step和視野visual等參數(shù)對(duì)算法的精度影響很大,在一定范圍內(nèi),,step和visual值越大,,AFSA在初始化初期收斂速度越快,克服局部極值的能力越強(qiáng),,這也會(huì)在很大程度上造成算法優(yōu)化后期的收斂速度慢,,加上感知和移動(dòng)的隨機(jī)性,使得結(jié)果無(wú)法跳出局部最優(yōu),。
?。?)初始化操作
根據(jù)人工魚(yú)初始分布的隨機(jī)性,為了提高算法的收斂速度以及防止過(guò)早收斂,,合理的初始化顯得尤為重要,,為此采用網(wǎng)格化魚(yú)群[3]:
式(4)中Xi(k)為第i條(i=1,…,n)人工魚(yú)的第k維分量,Lmax(k)和Lmin(k)表示k維分量的上界和下界,。
?。?)自適應(yīng)感知和移動(dòng)
①變步長(zhǎng)
步長(zhǎng)的調(diào)整依據(jù)人工魚(yú)對(duì)當(dāng)前食物環(huán)境的判斷,。公式如下:
式(5)中,,Yi表示人工魚(yú)在當(dāng)前環(huán)境下的食物濃度,Ymax,、Ymin限定了視野范圍visual內(nèi)食物濃度范圍區(qū)間,,通過(guò)step的改變可以更加細(xì)致地尋優(yōu)。
?、谝曇白赃m應(yīng)
人工魚(yú)群具有聚集效應(yīng),,視野visual隨覓食嘗試次數(shù)try_Nunber的增加而逐漸減小,公式如下:
visual=Vmax-Vmax-Vmintry_Nunber·t(6)
式(6)中,,Vmax,、Vmin限定了視野visual的取值區(qū)間,try_Nunber為最大嘗試次數(shù),,t為當(dāng)前嘗試次數(shù),。在尋優(yōu)初期,,每一條人工魚(yú)在較大的視野內(nèi)游動(dòng),算法的搜索域較大,,隨著后期人工魚(yú)的視野visual逐漸減小,,人工魚(yú)可以靈活地在相對(duì)較小的視野范圍visual內(nèi)更細(xì)致地尋優(yōu)[4]。
3.3IAFSABP算法
定義第i條人工魚(yú)的狀態(tài)Xi(k):
i=1,…,fish_Number,;k=1,…,D
式中fish_Number為初始化人工魚(yú)的數(shù)目,用維數(shù)D表示神經(jīng)網(wǎng)絡(luò)所有的權(quán)值和閾值的總和,。本文采用單隱層神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),,其中輸入層神經(jīng)元個(gè)數(shù)為r(p1,p2…,pr),隱層神經(jīng)元個(gè)數(shù)為l,,輸出層神經(jīng)元的個(gè)數(shù)為m,,則D的計(jì)算公式為:
D=(r+1)×l+(l+1)×m(7)
BP神經(jīng)網(wǎng)絡(luò)的所有權(quán)值和閾值按照輸入層、隱層,、輸出層的順序依次賦予人工魚(yú)AF的D維分量,,則第i條AF的一個(gè)狀態(tài)值Xi(k)表示一個(gè)神經(jīng)網(wǎng)絡(luò)的權(quán)值或閾值。每一條AF的狀態(tài)反映的就是BP神經(jīng)網(wǎng)絡(luò)的優(yōu)化結(jié)果,,再根據(jù)魚(yú)群的狀態(tài)修改BP神經(jīng)網(wǎng)絡(luò)的所有權(quán)值和閾值[5],。
初始化AF根據(jù)當(dāng)前狀態(tài)計(jì)算食物濃度,人工魚(yú)食物濃度記為Y=1/yi,,yi為神經(jīng)網(wǎng)絡(luò)輸出值的誤差,,計(jì)算公式如下:
yi=1N∑Ni∑j(dij-oij)2(8)
其中,N是訓(xùn)練樣本集的維數(shù),;dij是第i個(gè)樣本的第j個(gè)網(wǎng)絡(luò)輸出層節(jié)點(diǎn)的實(shí)際輸出值,。與傳統(tǒng)的人工魚(yú)群算法一樣,設(shè)置公告板,,用來(lái)記錄最優(yōu)的AF網(wǎng)絡(luò),,經(jīng)過(guò)有限次迭代和比較,獲得最優(yōu)的AF網(wǎng)絡(luò),,同時(shí)需要判斷神經(jīng)網(wǎng)絡(luò)輸出值的誤差是否在目標(biāo)范圍內(nèi),,若在則停止尋優(yōu),輸出最優(yōu)網(wǎng)絡(luò),,否則繼續(xù)尋優(yōu),,直到獲得誤差范圍內(nèi)的最優(yōu)解為止。改進(jìn)后的IAFSABP算法流程圖如圖4所示,。
4IAFSA-BP算法在壓力傳感器中的應(yīng)用
4.1傳感器標(biāo)定實(shí)驗(yàn)
壓力傳感器的輸出Up與被測(cè)壓力P和溫度T呈非線性關(guān)系,,所以可在傳感器工作溫度范圍內(nèi)選定不同溫度狀態(tài)對(duì)被補(bǔ)償?shù)膲毫鞲衅鬟M(jìn)行標(biāo)定實(shí)驗(yàn)。以擴(kuò)散硅壓力傳感器為例,,選取5個(gè)溫度T進(jìn)行標(biāo)定,,詳見(jiàn)表1,,Up為主傳感器輸出信號(hào),Ut為輔助溫度傳感器輸出信號(hào),,P為輸入壓力,。
4.2訓(xùn)練樣本庫(kù)建立
隨機(jī)選取8組數(shù)據(jù)對(duì)作為檢驗(yàn)樣本,其余作為訓(xùn)練樣本,。經(jīng)過(guò)歸一化處理后的數(shù)據(jù)在[-1,1]或者[0,1]之間,,這樣可以有更好的數(shù)據(jù)融合效果。數(shù)據(jù)歸一化的公式如下:
=0.9(X-Xmin)Xmax-Xmin+0.05(9)
式中X,、分別為歸一化前后的樣本數(shù)據(jù),,Xmax、Xmin為X所在行的最大,、最小值,。
4.3結(jié)果分析
使用MATLAB自帶的神經(jīng)網(wǎng)絡(luò)工具箱設(shè)計(jì)BP神經(jīng)網(wǎng)絡(luò),可以得到被測(cè)壓力的修正值Up′,,如表2所示,。
圖5、圖6分別為補(bǔ)償前后的輸入輸出壓力值,。對(duì)比表1,、表2以及圖5、圖6可知,,補(bǔ)償前壓力傳感器的輸出線性度δL=5.7%,,而補(bǔ)償后線性度δ′L=0.18%,提升了一個(gè)數(shù)量級(jí),。
補(bǔ)償前壓力傳感器的溫度靈敏系數(shù)αl=6.85×10-2,,而補(bǔ)償后壓力傳感器的溫度靈敏系數(shù)αl′=8.5×10-4,顯然傳感器靈敏度受溫度的影響減弱許多,。
5結(jié)論
人工魚(yú)群算法通過(guò)個(gè)體的局部尋優(yōu),,實(shí)現(xiàn)全局最優(yōu),算法具有操作簡(jiǎn)單,、收斂速度快等優(yōu)點(diǎn),,將其作為學(xué)習(xí)方法來(lái)對(duì)BP神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練,并將其移植到壓力傳感器溫度補(bǔ)償模型,,提高了壓力傳感器測(cè)量的精度和穩(wěn)定性,。
參考文獻(xiàn)
[1] 劉君華.智能傳感器系統(tǒng)[M].西安:西安電子科技大學(xué)出版社,2010.
?。?] 李曉磊. 一種新型的智能優(yōu)化方法人工魚(yú)群算法[D].杭州:浙江大學(xué),2003.
?。?] 齊愛(ài)玲,馬宏偉,劉濤.基于改進(jìn)人工魚(yú)群算法的超聲信號(hào)稀疏分解[J].儀器儀表學(xué)報(bào),2009,25(12):2428.
[4] 曹承志,張坤,鄭海英,等. 基于人工魚(yú)群算法的BP神經(jīng)網(wǎng)絡(luò)速度辨識(shí)器[J]. 系統(tǒng)仿真學(xué)報(bào),2009,26(4):104105.
?。?] 劉彥君,江銘炎. 自適應(yīng)視野和步長(zhǎng)的改進(jìn)人工魚(yú)群算法[J]. 計(jì)算機(jī)工程,2009,25(5):3547.