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