陳 群,左 鋒,盧文科(東華大學(xué)信息科學(xué)與技術(shù)學(xué)院,上海201620)
基于人工魚(yú)群BP神經(jīng)網(wǎng)絡(luò)算法的壓力傳感器溫度補(bǔ)償研究
陳 群,左 鋒,盧文科
(東華大學(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ǔ)償效果。
壓力傳感器;溫度補(bǔ)償;人工魚(yú)群算法
與傳統(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]。
軟件補(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)解決。
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所示。
圖2 BP神經(jīng)網(wǎng)絡(luò)示意圖
由此可以得出輸出層節(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.1 人工魚(yú)群算法(AFSA)
魚(yú)類會(huì)根據(jù)水中食物濃度的分布自主選擇覓食、聚集以及追尾等行為[2]。傳統(tǒng)的人工魚(yú)感知模型如圖3。
圖3中,人工魚(yú)所處當(dāng)前位置為X,visua1代表人工魚(yú)感知的距離,Xv為此人工魚(yú)某時(shí)刻感知到的點(diǎn),若Xv處的食物濃度優(yōu)于X,則向該點(diǎn)方向前進(jìn)一步,到達(dá)位置Xnext,否則,繼續(xù)感知區(qū)域內(nèi)的其他點(diǎn),感知過(guò)程如式(2)所示:
圖3 人工魚(yú)感知模型圖
其中,調(diào)用rand()是為了產(chǎn)生[0,1]區(qū)間內(nèi)的隨機(jī)數(shù),steP為人工魚(yú)移動(dòng)的最大步長(zhǎng),它限定了人工魚(yú)的最大活動(dòng)范圍,定義為Xv與X之間的距離,人工魚(yú)所在位置X的食物濃度Y=f(X),設(shè)try_Nunber為人工魚(yú)覓食行為的最多嘗試次數(shù),δ為擁擠因子,人工魚(yú)(AF)根據(jù)當(dāng)前的狀態(tài)選擇覓食、聚群和追尾等行為。
3.2 人工魚(yú)群算法改進(jìn)(lAFSA)
常規(guī)的人工魚(yú)群算法也是有缺陷的,初始人工魚(yú)的個(gè)體分布狀況對(duì)全局收斂性影響較大;人工魚(yú)步長(zhǎng)steP和視野visua1等參數(shù)對(duì)算法的精度影響很大,在一定范圍內(nèi),steP和visua1值越大,AFSA在初始化初期收斂速度越快,克服局部極值的能力越強(qiáng),這也會(huì)在很大程度上造成算法優(yōu)化后期的收斂速度慢,加上感知和移動(dòng)的隨機(jī)性,使得結(jié)果無(wú)法跳出局部最優(yōu)。
(1)初始化操作
根據(jù)人工魚(yú)初始分布的隨機(jī)性,為了提高算法的收斂速度以及防止過(guò)早收斂,合理的初始化顯得尤為重要,為此采用網(wǎng)格化魚(yú)群[3]:
式(4)中Xi(k)為第i條(i=1,…,n)人工魚(yú)的第k維分量,Lmax(k)和Lmin(k)表示k維分量的上界和下界。
(2)自適應(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限定了視野范圍visua1內(nèi)食物濃度范圍區(qū)間,通過(guò)steP的改變可以更加細(xì)致地尋優(yōu)。
②視野自適應(yīng)
人工魚(yú)群具有聚集效應(yīng),視野visua1隨覓食嘗試次數(shù)try_Nunber的增加而逐漸減小,公式如下:
式(6)中,Vmax、Vmin限定了視野visua1的取值區(qū)間,try_ Nunber為最大嘗試次數(shù),t為當(dāng)前嘗試次數(shù)。在尋優(yōu)初期,每一條人工魚(yú)在較大的視野內(nèi)游動(dòng),算法的搜索域較大,隨著后期人工魚(yú)的視野visua1逐漸減小,人工魚(yú)可以靈活地在相對(duì)較小的視野范圍visua1內(nèi)更細(xì)致地尋優(yōu)[4]。
3.3 lAFSA-BP算法
定義第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ì)算公式如下:
其中,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)后的IAFSA-BP算法流程圖如圖4所示。
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 IAFSA-BP算法流程圖
表1 不同工作溫度下壓力傳感器輸入輸出標(biāo)定數(shù)據(jù)
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ù)歸一化的公式如下:
式中X、ˉ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所示。
表2 訓(xùn)練后壓力傳感器在不同溫度的輸出修正值
圖5、圖6分別為補(bǔ)償前后的輸入輸出壓力值。對(duì)比表1、表2以及圖5、圖6可知,補(bǔ)償前壓力傳感器的輸出線性度δL=5.7%,而補(bǔ)償后線性度δ′L=0.18%,提升了一個(gè)數(shù)量級(jí)。
圖5 補(bǔ)償前輸入輸出
圖6 補(bǔ)償后的輸入輸出
補(bǔ)償前壓力傳感器的溫度靈敏系數(shù)αl=6.85×10-2,而補(bǔ)償后壓力傳感器的溫度靈敏系數(shù)αl′=8.5×10-4,顯然傳感器靈敏度受溫度的影響減弱許多。
人工魚(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)定性。
[1]劉君華.智能傳感器系統(tǒng)[M].西安:西安電子科技大學(xué)出版社,2010.[2]李曉磊.一種新型的智能優(yōu)化方法-人工魚(yú)群算法[D].杭州:浙江大學(xué),2003.
[3]齊愛(ài)玲,馬宏偉,劉濤.基于改進(jìn)人工魚(yú)群算法的超聲信號(hào)稀疏分解[J].儀器儀表學(xué)報(bào),2009,25(12):24-28.
[4]曹承志,張坤,鄭海英,等.基于人工魚(yú)群算法的BP神經(jīng)網(wǎng)絡(luò)速度辨識(shí)器[J].系統(tǒng)仿真學(xué)報(bào),2009,26(4):104-105.
[5]劉彥君,江銘炎.自適應(yīng)視野和步長(zhǎng)的改進(jìn)人工魚(yú)群算法[J].計(jì)算機(jī)工程,2009,25(5):35-47.
陳群(1989 -),通信作者,男,碩士研究生,主要研究方向:智能傳感器系統(tǒng),物聯(lián)網(wǎng)技術(shù)與應(yīng)用。E-mai1:chenqun0916@163.com。
左鋒(1963 -),男,博士,工程師,主要研究方向:工程檢測(cè)與自動(dòng)化裝置開(kāi)發(fā)與應(yīng)用。
盧文科(1962 -),男,博士,教授,碩士生導(dǎo)師,主要研究方向:聲表面波,數(shù)字旋轉(zhuǎn)。
Study on Pressure sensor temPerature comPensation based on IAFSA-BP neura1network a1gorithm
Chen Qun,Zuo Feng,Lu Wenke
(Co11ege of Information Science&Techno1ogy,Donghua University,Shanghai 201620,China)
In order to achieve the temPerature comPensation of the Pressure sensor,this PaPer adoPts the BP neura1network as the core a1gorithm of Pressure sensor software comPensation system,but as the resu1t of the BP neura1network a1gorithm is easi1y traPPed in 1oca1minima,so it can be oP-timized by the a1gorithm with the g1oba1 search abi1ity-Artificia1Fish Swarm A1gorithm(AFSA).It imProves the accuracy ofmeasurement sensors.
Pressure sensor;temPerature comPensation;artificia1 fish swarm a1gorithm
TP23
A
10.19358 /j.issn.1674-7720.2016.09.009
陳群,左鋒,盧文科.基于人工魚(yú)群BP神經(jīng)網(wǎng)絡(luò)算法的壓力傳感器溫度補(bǔ)償研究[J].微型機(jī)與應(yīng)用,2016,35(9):27-29,33.
2016-01-13)