黃世震,林淑玲
(福州大學,福建省微電子集成電路重點實驗室,福州350002)
在測控系統中,一般采用傳感器對被測參數進行采樣及轉換。大多數傳感器的輸入-輸出特性是非線性的,為了提高測量準確度,常需要對傳感器非線性誤差進行校正。
傳感器誤差補償的研究方法上主要分為兩大類:硬件補償法和軟件補償法,由于硬件補償受較多的條件約束且操作過于復雜,且存在補償電路硬件漂移問題,而由各種算法形成的軟件補償法,相比之下更為簡單與實用,所以更多的情況下還是采用軟件補償法。軟件補償法主要有:查表法,曲線擬合法,和神經網絡法等。查表法占用內存大,曲線擬合法計算量過于繁瑣,需要計算大規模的矩陣方程,甚至有時方程是病態的,無法求解,人工神經網絡校正發是近幾年興起的新方法,具有較強的自學習、自適應、自調整能力,應用前景良好。目前,相關文獻中多選用BP神經網絡實現傳感器非線性誤差校正[1-2],但BP神經網絡存在收斂速度慢、局部極小值等問題,為此人們提出了許多優化算法來改進標準的BP神經網絡[3-4],大多采用可變的學習速率、彈性算法等啟發式方法,優化后的神經網絡雖在收斂速度方面有所改善,但仍難以滿足人們的應用需求。
本文提出使用GSA算法對BP進行優化,用GSA-BP神經網絡實現傳感器誤差補償。與標準BP神經網絡相比,收斂速度、精度等均得到了提高。通過仿真實現證明:使用GSA-BP神經網絡進行傳感器誤差補償,可以取得十分滿意的效果。
一個受多個參量影響的傳感器系統可表示為

其中,x為待測目標參量;t1,t2,……,tk為k個非目標參量,y為傳感器輸出,為了消除非目標參量對傳感器輸出的影響,一般采用逆向建模的方法,如圖1所示,由傳感器模型和神經網絡逆向模型兩部分組成[5]。

圖1 傳感器溫度補償原理
實際測量的數據由于受非目標參量的影響,它與目標參量之間的函數關系不再是線性的,逆向建模的目的就是通過神經網絡的非線性映射能力,把非線性函數關系x=f-1(y,t1,t2,……,tk)向線性函數關系x=y/k不斷逼近。在模型中,測量數據y及非目標向量的測量值作為神經網絡的輸入,p=kx作為神經網絡的期望輸出,按照一定的算法原則,不斷調整網絡的權值和閾值,使得網絡的輸出誤差在允許的范圍之內。
BP網絡,即誤差反向傳播的前向網絡,常用于處理非線性信號,系統的辨識與預測中。BP神經網絡由輸入層、隱含層和輸出層組成,隱含層可以一層或多層,雖然BP算法得到了廣泛的應用,但它也存在不足,如收斂速度慢,易陷入局部極小值等,因此我們采用BP數值優化改進算法,即Levenberg-Marquarat算法,它具有收斂速度快,融合精度較高等優點[6]。
圖2所示的是一個單隱層BP神經網絡模型,它具有2個輸入,每個輸入都通過一個適當的權值w和下一層相連,隱含層的激勵函數選用S型函數,輸出層的激勵函數選用Purelin型傳遞函數。整個網絡的學習過程由前向傳播和反向傳播組成。其中,在前向傳播過程中,輸入經輸入層、隱含層逐層處理,并傳到輸出層。如果在輸出層不能得到預期范圍的輸出,則將轉入反向傳播過程,將誤差逐層反向傳播,并修正各層連接權值,直至達到目標誤差范圍。

圖2 BP神經網絡示意圖
圖2中U為輸入向量,維數是R;S1為隱層神經元個數,S2為輸出層神經元個數,W1為隱層神經元的權值矩陣,W2為輸出層的權值矩陣;a1為隱層神經元輸出向量,a2為輸出層神經元輸出向量;b1為隱層神經元的閾值,b2為輸出層神經元的閾值;n1為隱層節點的輸入,n2為輸出節點的輸入。
在實際問題中,基本的遺傳算法并不是解決某一問題的最有效的方法,可能表現出一些不盡人意的問題,比如早熟現象、局部尋優能力較差等問題。可以通過引入一些具有很強局部搜索能力的算法比如模擬退火算法,來幫助提高遺傳算法解決問題的能力和求解質量。
遺傳模擬退火算法GSA(Genetic-Stimulated Annealingalgorithm)是結合了遺傳算法的思想和模擬退火算法的思想的一種混合智能算法。遺傳算法是一種仿生算法,模擬達爾文的自然進化論與孟德爾的遺傳變異理論,其思想來源于自然界生物的進化與生產過程。模擬退火算法源于固體的退火原理,在金屬熱加工工藝中,將金屬材料加熱到某以高溫狀態,然后讓其慢慢冷卻下來的熱處理過程叫做退火。兩者都在數值優化方面有著良好的性能。
遺傳模擬退火算法是通過利用基本遺傳算法的編碼和優點的基礎上,引入模擬退火算法的局部尋優搜索過程,從而找出每個個體在目前的環境下所對應的局部最優解,以便達到改善種群總體性能的目的。
遺傳模擬退火算法的具體步驟是[7-8]:
(1)初始化遺傳模擬退火算法種群、迭代次數和其他參數;
(2)采用適應度函數對個體進行評價,并記錄當前最好個體;
(3)進行遺傳模擬退火操作:選擇操作、交叉操作、變異操作、模擬退火操作;
(4)評價個體適應度,并判斷是否滿足終止條件,如果不滿足返回(3),如果滿足則算法終止;
(5)保存最好適應度的個體為最終值。
采用遺傳模擬退火算法優化的BP神經網絡模型設計主要分為遺傳模擬退火算法中權值與閾值的選定和BP網絡結構確定。算法的主要流程如圖3所示。

圖3 GSA-BP算法流程圖
傳感器的精度主要受系統非線性以及溫度變化的影響,因此,將BP網絡設計成兩個輸入節點一個輸出節點的三層網絡.對于多層前饋網絡而言,隱層神經元數的確定是設計成敗的關鍵.數量太少,會導致網絡所能獲取的用以解決問題的信息太少;數量太多,不僅增加訓練時間,更重要的是可能出現“過渡擬合”(Over Fitting),即網絡把訓練集里的一些無關緊要的非本質的東西也學得惟妙惟肖.導致當網絡輸入非樣本時,性能極差。
目前很多學者提出了隱層節點數目確定的一些方法,如“大拇指規則”(Rules of Thumb),“幾何金字塔規則”(Geometric Pyramid Rule)等,但這些規則都比較片面.目前最有效的方法還是試驗湊試法,即用同一樣本集對具有不同隱層節點的網絡進行訓練,直到權值不再變化網絡穩定為止[9]。
將壓力傳感器置于恒溫箱中,接入氣閥軟管,控制壓力傳感器的溫度和壓力,測得對應的壓力傳感器的電壓輸出值。MPM280壓力傳感器量程為0~1 MPa,工作溫度范圍為-40℃ ~80℃,溫度間隔10℃壓力間隔0.1 kPa,測得143組對應的溫度及電壓AD值,其中130組作為網絡訓練樣本,13組作為網絡測試樣本。BP網絡的隱層采用Tansig轉移函數,輸出層采用Purelin轉移函數。由于S函數的輸出在[0,1]直接,其中在 0,1處,輸入很大,使網絡校正進程十分緩慢,因此須先對輸入樣本進行歸一化處理,然后利用訓練樣本對網絡進行試湊如表1所示,在保證精度的前提下,得到的BP網絡為2-7-1結構。

表1 不同隱層結點數的綜合誤差
BP網絡需要優化的參數有29個,隱層節點的14個權值和7個閾值,以及輸出層節點的7個權值和1個閾值。遺傳模擬退火算法的主要步驟如下描述:
(1)染色體編碼和初始化:采用實數編碼方式優化BP網絡的權值,對應為R*S1*S2的BP網絡結構,染色體長度為S=R*S1+S1*S2+S1+S2;
在[-3,3]范圍內隨機生成n個染色體作為第一代種群。
(2)染色體解碼:各個染色體對應的是一個由S個實數組成的行向量,其根據自己定義的排序規則對應BP網絡的各層權值、閾值,將這種編碼規則反算得出染色體解碼后的BP網絡結構。
(3)染色體適應度函數:將染色體基因串還原為BP網絡對應的權值與閾值,將權值與閾值賦給BP網絡,此時的BP網絡輸出為下式表示:將期望輸出值與BP網絡輸出值進行比較,定義染色體是適應度值為f=l/mse其基本公式如式(2)、式(3)所示

(4)染色體復制,交叉,變異,退火操作。染色體以排序輪盤賭方式進行復制。采用中間重組交叉和自適應方式進行變異,交叉率Pc,變異率Pm則通過式(4)、式(5)確定[10]:

式中,f為變異的個體的適應值;fmax為當前群體中個體最大適應值;ˉf為當前種群中個體平均適應值;km1、km2、km3、km4為[0,1]之間的常數,且km1>km2,km3>km4。模擬退火的降溫方式為T=T0·0.99i,T0為初始溫度,i為進化的代數。通過Meteopolis準則來確定由當前解X1變為新解X2的接收概率的公式為[11]:

根據Meteopolis準則,當新解更優時,接受新解作為當前解,否則以概率p接受其作為當前解。
利用上述的改進遺傳模擬退火算法,設置初始種群n=50,總的進化代數K=100,交叉率式(4)中km1=0.9,km2=0.6,km3=0.2,km4=0.05,初始溫度T0=6 000;進行遺傳迭代得到遺傳模擬退火算法誤差平方和曲線、適應度曲線如圖4、圖5所示。

圖4 遺傳模擬退火算法誤差平方和曲線

圖5 遺傳模擬退火算法適應度曲線
BP算子在此的作用是提高GA在網絡連接權的修正過程中的收斂程度,發揮函數梯度下降法的局部收斂性以及收斂速度快的優勢.訓練函數選用trainlm函數,即Levenberg-Marquarat算法,學習速率η=0.1,選用均方誤差作為網絡訓練性能函數.訓練進行到16次左右時,訓練集和測試集的均方差達指定精度,訓練過程見圖6。
將測試樣本數據代入已訓練好的GSA-BP神經網絡模型中進行測試,GSA-BP神經網絡預測出的壓力值如表2所示。誤差曲線如圖7所示,精度均在0.1%以內,證明GSA-BP具有良好的泛化能力。

圖6 BP神經網絡二次訓練誤差曲線

表2 GSA-BP測試結果

圖7 GSA-BP預測值誤差曲線圖
將3.1中得到實驗數據用標準BP神經網絡進行訓練和預測,訓練誤差曲線如圖8所示。GSABP,標準改進BP的比較如表3所示。

圖8 陷入局部最優的標準BP訓練誤差曲線圖

表3 誤差補償結果分析與比較
本課題介紹了采用GSA-BP神經網絡方法對壓力傳感器進行溫度補償。GSA-BP是將遺傳算法,模擬退火算法與BP網絡算法相結合的一種優化算法。三者之間取長補短,遺傳算法有很好的全局尋優能力,但是在局部搜索上有其弊端,而SA能夠實現局部搜索,但是全局搜索能力不足,引入遺傳模擬退火算法的思想,給出了一種基于遺傳模擬退火優化算法的BP神經網絡模型,縮小了BP網絡的搜索范圍,克服陷入局部極小值的問題并與標準BP進行了比較,仿真實驗結果表明,GSA-BP神經網絡很好的抑制了溫度引起的非線性誤差,補償之后精度達到0.1%。
[1]鐘珞,饒文碧.人工神經網絡及其融合應用技術[M].北京:科學出版社,2007.
[2]徐謙,龐清樂.基于神經網絡的電容式壓力傳感器非線性校正[J].微計算機信息,2006,22(11):225-227.
[3]王菖,付敬奇,陳關君.差壓傳感器非線性特性研究[J].傳感器與微系統,2007,26(10):48-50.
[4]Ding Shifei,Su Chunyang.An Optimizing BP Neural Network Algorithm Based on Genetic Algorithm[J].Spring,2011,36:153-162.
[5]柴毅,尹宏鵬,李大杰,等.基于改進遺傳算法的BP神經網絡自適應優化設計[J].重慶大學學報,2007,30(4):91-96
[6]Ma Tiehua,Cui Chunsheng.The Research of Temperature Compensation Technology of High-Temperature Pressure Sensor[J].International Conference on Electronic,2011,11:2267-2270.
[7]趙仕俊,孫美玲,唐懿芳.基于遺傳模擬退火算法的無線傳感器網絡定位算法[J].計算機應用與軟件,2009,26(10):189-192.
[8]杜宗宗,劉國棟.基于混合遺傳模擬退火算法求解TSP問題[J].計算機工程與應用,2010,29(2):179-183.
[9]王志強,李彩虹,楊曉婧.基于遺傳神經網絡的扭矩傳感器設計[J].山東理工大學學報,2009,23(5):57-59
[10]Jagdish Chandra Patra,Gouam Chakraborty.Neural-Network-Based Robust Linearization and Compensation Technique for Sensors Under Nonlinear Environmental Influences[J].IEEE Transactions on Circuits and Systems,2008,55(5):1316-1327.
[11]Shakeb A Khan,Tarikul Islam.Precision Active Bridge Circuit for Measuring Incremental Resisation with ANN Compensation of Excitance Volatiage Variation[J].Journal of Sensor Technology,2011(1):57-64.