文獻標識碼: A
DOI:10.16157/j.issn.0258-7998.170943
中文引用格式: 劉一兵,李榮寬. 一種基于傳感器溫度補償的雙指數函數擬合算法[J].電子技術應用,2017,43(11):47-50.
英文引用格式: Liu Yibing,Li Rongkuan. A double exponential function fitting algorithm based on sensor temperature compensation[J].Application of Electronic Technique,2017,43(11):47-50.
0 引言
目前基于傳感器的溫度補償方法主要分為模擬硬件設計和數字信號處理兩種方法。模擬硬件通常采用PTAT[1]和CTAT[2]等技術來設計讀出電路。數字信號處理方法通常包括線性擬合、最小二乘多項式[4]擬合、BP神經網絡[4]、卡爾曼濾波[3]、支持向量機等算法。本文在這些算法的基礎上提出一種雙指數函數模型的溫度補償算法,有以下優點:
(1)指數函數具有無限階的泰勒展開式,因此雙指數函數在對諸如傳感器溫度系數曲線這類非線性曲線的擬合上可以達到很高的精度。
(2)本文提出一種具有高精度初值的交替迭代法[5],即分離系數法。首先采用4組數據點,聯立方程組,求出非線性系數的初始值,其次利用交替迭代法計算得到優化后的線性和非線性系數。整個算法解決了直接使用交替迭代法計算產生的迭代不收斂、精度較低、迭代次數較多的問題。
(3)在傳感器溫度補償中,由于雙指數函數系數只有4個,可以使用CORDIC算法設計硬件補償電路來集成到傳感器中,其中系數保存在ROM中即可,因此具有很好的工程實用價值。
1 交替迭代法擬合雙指數函數
基于傳感器溫度補償的雙指數函數模型[6-7]為式(1)。
(5)重復步驟(2)、(3)和(4),使線性系數和非線性系數計算交替進行,直到均方誤差Δ滿足給定的范圍為止。
交替迭代法僅使用非線性系數作為初值,在一定程度下降低了初值選取難度,不過對非線性系數依然有依賴性,因此在擬合過程中,非線性系數初值的選取就起到了至關重要的作用。
2 分離系數法計算非線性系數初值
本節采用分離系數法[9]來計算非線性初值。具體算法如下:
(1)在數據點中選擇4組數據點{(Vtempi,Vouti)},i=1,2,3,4。其中Vtemp1<Vtemp2<Vtemp3<Vtemp4,且Vouti同號。
(2)將點1和點2帶入雙指數函數式(1)中得到式(4)和式(5):
(4)將點2和點3帶入式(1)可以得到與式(6)類似的方程,二者聯立可以消去線性參數α2,得到式(8),其中T2由式(7)下標加1得到。
(5)將式(8)兩邊取對數再近似帶入中點微分消除對數可得式(9),其中中間變量A1、B1、C1、D1表達式由式(10)所示:
(6)再利用點2、3、4還可以導出類似于式(9)的方程,如式(11)。其中系數為式(10)下標加1即可。
(7)聯立式(9)和式(11),消去一個非線性系數β2,求解一個一元二次方程組得到另一個非線性系數β1的兩個解,再由式(9)求得β2。
分離系數法采用數據點對系數分離,最終將超越函數方程轉換為一元二次方程求解。采用該方法時可以多次嘗試不同的4點來對比擬合結果。一般來說,觀測點相對密集和均勻時,誤差相對較小。得到精度較高的非線性系數初始值后,將計算得到的初始值,利用第一節介紹的交替迭代法計算線性系數并優化結果,可以得到擬合精度較高的雙指數函數方程,為溫度補償提供較為精準函數模型。
3 仿真實驗與分析
3.1 雙指數函數擬合
對兩組數據(x1,y1)和(x2,y2)進行實驗測試,具體數據見表1。
采用matlabR2013軟件對數據(x1,y1)和(x2,y2)進行擬合。擬合結果如圖1、圖2所示。圖1(a)和圖2(a)采用本文提出的算法,首先算出高精度的非線性系數初始值,分別為β1=17.614 6、β2=1.314 7和β1=-0.092 9、β2=7.568 5,圖1和圖2(b)、圖2(c)采用不同的線性初始值進行對比。表2和表3分別為對圖1和圖2三種擬合效果進行定量分析,使用均方根誤差(RMSE)和確定系數(R_square)作為評價指標。
從表中結果可以看出,本文提出的算法,提高了初始值準確性,降低了均方誤差,提高了確定系數,有較好的擬合效果。
3.2 基于傳感器溫度補償
在本小節中,為了驗證本文的算法和模型在傳感器溫度補償中的有效性,使用一款MEMS加速度計,在溫箱中進行零位溫度循環實驗。將采集到的數據進行預處理,具體步驟如下:
(1)實驗數據導入MATLAB中進行數據理,取溫度循環實驗中的全溫實驗一段即Vtemp從0.4 V~0.67 V(實際溫度相當于-40 ℃~60 ℃)。
(2)將數據進行小波降噪和剔除奇異值。
(3)采用移動平均法進行平滑處理并等間隔得采樣50個數據點作為待擬合的數據。結果如圖3(a)、圖3(b)、圖3(c)、圖3(d)所示。
圖4(a)、圖4(b)為擬合結果圖和最終補償結果圖。擬合結果RMSE=4.874 2×10-5,R_square=0.994 3。將MEMS加速度計原始輸出進行補償后,最大誤差(峰峰值)從1.851 3×10-5下降到1.735 0×10-5。減少了一個數量級。
4 結束語
本文在現有溫度補償算法的基礎上,首先提出了一種雙指數函數模型的溫度補償方法。其次,在考慮到傳統的交替迭代法進行雙指數函數擬合過程中由于初值選取不當導致的迭代不收斂、精度較低、迭代次數較多的問題時,提出一種分離系數法 ,該方法能夠有效地計算出高精度的初值,從而得到高精度的擬合結果。最終將算法應用到傳感器溫度補償中,補償結果表明溫度系數曲線最大誤差降低了一個數量級。具有一定實用價值。下一步可以采用CORDIC算法將雙指數函數模型硬件實現,系數儲存在ROM中,設計一款數字補償電路集成到傳感器芯片中,只需要改變4個系數,代替單片機,實現自動化的溫度補償。
參考文獻
[1] ZHANG C,WU Q,YIN T,et al.A MEMS gyroscope readout circuit with temperature compensation,5th IEEE International Conference on Nano/Micro Engineered and Molecular Systems (NEMS),2010:458-462.
[2] YIN T,WU H,WU Q,et al.A TIA-based readout circuit with temperature compensation for MEMS capacitive gyroscope[C].IEEE International Conference on Nano/Micro Engineered and Molecular Systems(NEMS),2011:401-405.
[3] WU X,DUAN L,CHEN W.A Kalman filter approach based on random drift data of Fiber Optic Gyro[C].6th IEEE Conference on Industrial Electronics and Applications(ICIEA),2011:1933-1937.
[4] XIA D,CHEN S,WANG S,et al.Microgyroscope temperature effects and compensation-control methods[J].International Journal of Sensors 9,2009,10:8349-8376
[5] 陳華,鄧少貴,范宜仁.同倫交替迭代法在雙指數擬合中的應用[J].計算機工程與應用,2007,43(25):204-205.
[6] 韓丹,江春,付鵬濤,等.探測器信號波形離散序列的多項式與雙指數曲線擬合及其在數字化核能譜中的應用[J].核電子學與探測技術,2010,30(8):1075-1078.
[7] 王永生,杜彬彬,孫瑾,等.Exponent及Gauss型遙測數據建模初始化算法[J].海軍航空工程學院學報,2015,30(6):548-552.
[8] 趙林明,習華勇.數據擬合方法程序設計及其應用[M].石家莊:河北科學技術出版社,2000:79-80.
[9] 朱珉仁.確定雙指數曲線參數初始值的循環搜索法[J].數學的實踐與認知,2003,33(12):73-77.
作者信息:
劉一兵,李榮寬
(電子科技大學 電子工程學院,四川 成都611730)