聶紹忠
(重慶四聯(lián)測控技術有限公司,重慶 401121)
隨著科學技術的發(fā)展,各領域對壓力測量精度的要求越來越高。硅壓阻式壓力傳感器利用半導體材料的壓阻效應,基于惠斯頓電橋測量方式對壓力進行測量,在動態(tài)性能、體積、價格等方面有較強優(yōu)勢,廣泛應用于汽車、醫(yī)療、航空航天、環(huán)保等領域。但由于半導體材料對溫度的敏感性以及壓敏電阻制造工藝的局限性,硅壓阻式壓力傳感器普遍存在零點漂移、靈敏度漂移以及非線性等問題[1]。因此,需對該傳感器進行有效補償,以提高輸出精度。目前,對于硅壓阻式壓力傳感器的補償主要有硬件補償和軟件補償兩大類。硬件補償對于靈敏度漂移的抑制效果并不理想,且高精度硬件電路復雜,調試較為困難,不利于工程應用[2]。軟件補償以補償算法為主,其結合相應的數(shù)學方法、計算機技術,對上述問題進行修正。實踐表明,軟件補償對于提高傳感器的輸出精度有很好的效果[3]。
常用的軟件補償算法有查表法、插值法、曲面擬合法等[4]。本文在回顧上述基本軟件補償算法的基礎上,設計了一種基于最小二乘法的曲面擬合補償算法,并在Visual Basic平臺上予以實現(xiàn);通過補償數(shù)據(jù)回代,對補償算法進行了驗證。
研究硅壓阻式壓力傳感器軟件補償,通常的做法是先建立一個補償?shù)臄?shù)學模型;然后采用一定的方法進行標定,分析標定數(shù)據(jù)對數(shù)學模型的影響;最后求解數(shù)學模型,即一個反映傳感器輸入、輸出量關系的特征方程。在實際工況下,壓力傳感器感知外部壓力和環(huán)境溫度等,激勵內部產(chǎn)生若干個電壓信號,并通過這些信號和特征方程計算出外部壓力[5]。對于雙參量體系下的硅壓阻式壓力傳感器,其特征方程為:
(1)
式中:Pv為標定值;P為壓力輸出值;T為溫度輸出值;aij為多項式系數(shù)。
式(1)對應一個多項式曲面。曲面表現(xiàn)能力與系數(shù)項a,自變量的最高次數(shù)m、n相關[6]。根據(jù)求解精度和復雜程度,間接或直接求解式(1)的方法主要有查表法、線性插值法和曲面擬合法。
早期的工程技術人員受限于求解方法和低速處理器,常常采用查表法。查表法擴展了壓力傳感器的標定方式,即對于可能的工作環(huán)境和工作區(qū)間內的輸入、輸出進行事先遍歷,并按一定順序將這些標定值保存在二維或多維表格內。壓力傳感器在實際工況下,其任意輸出均可在事先準備好的表格中找到一個對應的輸入。
查表法的關鍵是查找表的編制。對于單變量體系(P-Pv),應繪制二維表格;對于多變量體系(同時考慮T),應繪制三維或更高維度表格。
由此可知,查表法易于實現(xiàn),但工作量非常大,對存儲器空間要求高,不利于批量作業(yè)[7];標定的過程非常漫長,如果減少標定點,則精度將隨之下降。
針對查表法所存在的問題,插值法是一個較好的解決辦法。插值法是一種重要的函數(shù)逼近方法。在工程實踐中,往往很難直接寫出函數(shù)f(x)表達式,只能通過采樣、試驗的方法獲取函數(shù)的若干個值或導數(shù)值[8]。例如給定了函數(shù)f(x)在[a,b]上互異的(n+1)個點的值f(x)(i=0,1,…,n),插值法可根據(jù)這些值,尋求一個函數(shù)φ(x)去逼近f(x),且φ(x)在xi處與f(x)相等。
1.3.1 線性插值法
插值法中較常用的是線性插值法。給定f(x)在兩個互異的點(x0,y0)、(x1,y1)的值,用一個線性函數(shù)φ(x)=ax+b近似代替f(x),使f(x)的線性插值函數(shù)為:
該方法可應用于單變量體系下的壓力傳感器。在單變量體系下,壓力傳感器的標定值Pv與壓力輸出值P的傳感器特性曲線如圖1所示。
圖1 傳感器特性曲線Fig.1 The characteristic curve of sensor
將P坐標軸分成若干段,則對每個端點Pk,必有相應的Pvk。把所有(Pk,Pvk)數(shù)據(jù)做成二維表格并固化入存儲器。在實際應用中,壓力傳感器的壓力輸出值P必然在P坐標軸某一段[Pk,Pk+1)上有定義,即Pk≤P (2) 線性插值法可以對單變量體系下的壓力傳感器進行線性度補償,但無法對溫度變化造成的零點漂移和靈敏度漂移進行溫度補償。此時,可以采用雙線性插值的方法,引入溫度輸出值T。 1.3.2 雙線性插值 雙線性插值基本思路是在兩個變量方向分別進行線性插值。故以雙變量體系下(P,T)的壓力傳感器為例,傳感器雙線性插值示意圖如圖2所示。圖2中:Qk(Pk,Tk,Pvk)、Qk+1(Pk+1,Tk+1,Pvk+1)為壓力傳感器在環(huán)境溫度為K時的標定點;Qj(Pj,Tj,Pvj)、Qj+1(Pj+1,Tj+1,Pvj+1)為壓力傳感器在環(huán)境溫度為J時的標定點;點O(Po,To,Pvo)為測試點(Po和To已知)。 圖2 傳感器雙線性插值示意圖Fig.2 The bilinear interpolation of sensor 插值公式推導的步驟如下。 ①沿Pk、Pk+1方向進行線性插值: ②沿Pj、Pj+1方向進行線性插值: ③一般情況下,Tk和Tk+1、Tj和Tj+1有著細微的差別。為了便于插值,可對Tk和Tk+1、Tj和Tj+1作均值處理,重新記為Tk、Tj;沿Tk、Tj方向進行線性插值,最終完成一次雙線性插值,求得Pvo。 (3) 通過前述內容,可以總結出對于多變量體系壓力傳感器的插值步驟為:當前傳感器輸出獲取→根據(jù)傳感器輸出選取插值節(jié)點值→計算插值基函數(shù)值→用循環(huán)嵌套計算插值函數(shù)值。 雙線性插值法的優(yōu)勢在于可直接利用原始測試數(shù)據(jù),簡單直觀,計算量較小,具有較高精度,且適用于多變量場合。但其缺點也十分明顯,主要有如下幾點。 ①較查表法而言,雙線性插值法所需的存儲空間雖大大減少,但其仍處在一個非常高的水平。 ②由于雙線性插值法的特性,補償算法整體穩(wěn)定性較差[9]。在標定過程中,如果出現(xiàn)了因壓力泄漏、溫度失準、電路故障等情況造成的數(shù)據(jù)出錯或失準,將會影響插值精度,且難以察覺。 ③在推導式(3)時,采用了取均值的處理方式來保證插值的進行。但這樣會引入系統(tǒng)誤差,最終影響插值精度。 最小二乘法是一項古老的數(shù)學優(yōu)化技術,主要用于參數(shù)估計。它使數(shù)學模型在誤差平方和最小的情況下擬合試驗數(shù)據(jù)。早在19世紀初,清楚、簡明地論述最小二乘法的文章便被發(fā)表。經(jīng)過200多年的不斷發(fā)展和完善,特別是進入信息時代以來,借助計算機的強大運算能力,最小二乘法在工程技術的各領域、各學科得到了廣泛的應用。 對于形如式(1)的二元高次多項式方程,根據(jù)最小二乘法的思想,可定義函數(shù)Q為誤差平方和、φij(P,T)=PiTj、N為采樣數(shù)據(jù)樣本總數(shù),則: (4) 根據(jù)多元函數(shù)極值的必要條件: (Pp,Tp)]φkl(Pp,Tp)=0 (5) 展開后,式(5)表示為內積形式: (6) 式中:0≤k≤m;0≤l≤n。 式(6)可表達為矩陣的形式,即正規(guī)方程[10]: (7) ①式(7)中,左邊內積矩陣非奇異。 求解式(7),可得f(x)在函數(shù)類Φm中最小二乘逼近函數(shù)y(x)的表達式: 擬合余項為: 通過求解式(7)的線性方程組,確定曲面系數(shù)矩陣a,即式(1)的形式可確定。同時,在式(7)的基礎上,可令若干個交叉項階次過高的aij為0,使式(1)變?yōu)槿表椂囗検剑员苊膺^多的系數(shù)項。 算法軟件流程為:①讀取算法配置文件;②讀取采樣數(shù)據(jù)文件;③建立正規(guī)方程;④求解正規(guī)方程;⑤校驗精度;⑥輸出結果。 通過第二節(jié)的討論,明確了補償算法的原理以及求解目標函數(shù)的方法。接下來以Visual Basic為軟件平臺,設計、實現(xiàn)補償算法,驗證算法的有效性,并將算法應用于工程實踐中。 ①算法配置文件主要包括:各項aij的序列、溫度點數(shù)量、每個溫度點下壓力點數(shù)量;采樣數(shù)據(jù)文件記錄補償過程中各Pv、P、T的值。同時,需對采樣數(shù)據(jù)進行數(shù)據(jù)標準化處理,將數(shù)據(jù)控制在一定的范圍內,以提升后續(xù)計算速度。 ②正規(guī)方程利用相應的內積計算模塊,按照式(4)構建。定義雙精度數(shù)據(jù)類型數(shù)組,存儲正規(guī)方程中各內積構成的元素。 ③正規(guī)方程的求解,實質是線性方程組求解的問題。本算法采用逐次超松弛迭代法(successive over relaxation,SOR)求解正規(guī)方程。在迭代計算模塊中,構建四個雙精度數(shù)據(jù)類型數(shù)組,分別存儲迭代初值、迭代值、加速項以及常速項。在迭代計算模塊中,需設置迭代次數(shù)上限。當?shù)螖?shù)超過上限后仍無法滿足迭代精度,則迭代過程終止并報告錯誤。 試驗所選壓力傳感器的量程為0~40 MPa。在高低溫試驗箱內部,將壓力傳感器裝夾在與標定壓力源連通的夾具上。在不同的溫度點下,利用標準壓力源(Fluke公司7350壓力控制器),對壓力傳感器輸入標定壓力(從0%~100%量程取若干個Pv),讀取、記錄傳感器輸出的若干組Pv、P和T。 試驗中,選取測試溫度點為-40 ℃、-20 ℃、0 ℃、+20 ℃、+40 ℃、+60 ℃、+80 ℃。在各溫度點分別施加9檔壓力(以滿量程的百分比形式表示),即0%、12.5%、25%、37.5%、50%、62.5%、75%、87.5%、100%。在每個“溫度點-輸入壓力”下讀取標定壓力Pv、壓力傳感器電壓輸出值P、溫度傳感器電壓輸出值T,如表1所示。 表1 補償采樣數(shù)據(jù)Tab.1 Compensation sampling data 在利用算法軟件計算前,按照式(1)配置m=4、n=7,構建缺項多項式,共21項;7個溫度點,每個溫度點下9個壓力點;所有P、T采樣數(shù)據(jù)放大20倍作標準化處理;SOR迭代法ω=1.1,迭代精度Acc=10-8[11]。 配置完成后,算法軟件將自動開始計算,輸出多項式系數(shù)項如表2所示。 表2 多項式系數(shù)項Tab.2 Polynomial coefficient terms 將表1、表2數(shù)據(jù)代入式(1),得到如表3所示的回代壓力值。 表3 回代壓力值Tab.3 Back substituted pressures 本文利用最小二乘法的基本定義,將曲線擬合法轉化為多項式系數(shù)項可預置的曲面擬合法,提出了一種基于最小二乘法的曲面擬合補償算法。該補償算法可有效補償硅壓阻式壓力傳感器的零點、靈敏度和線性度,準確地建立表達傳感器輸入-輸出關系的特征方程。試驗結果表明,該補償算法對硅壓阻式壓力傳感器的補償效果十分明顯,極大地提高了該類傳感器在-40~+80 ℃范圍內的輸出精度;同時,該算法的設計和實現(xiàn)僅需利用較為基礎的編程語言,可操作性強,有著良好的工程應用價值。 參考文獻: [1] 邱金.硅基壓阻式數(shù)字壓力傳感器的研究[D].沈陽:沈陽工業(yè)大學,2009. [2] 劉曄,張璐,楊新偉,等.采用硬件神經(jīng)電路的壓力傳感器零點溫漂補償研究[J].西安交通大學學報,2010,44(8):10-14. [3] XU D.A temperature compensation algorithm of piezoresistive pressure sensor and software implementation[C]// IEEE International Conference on Mechatronics & Automation,2013:1738-1742. [4] 華振宇,徐大誠.硅壓阻式壓力傳感器誤差修正算法的FPGA實現(xiàn)[J].傳感器與微系統(tǒng),2017(2):101-103. [5] 何慎之.高精度MEMS硅差壓傳感器過載保護與溫度漂移補償研究[D].廣州:華南理工大學,2015. [6] GUO J,CHANG X,Yue Q.Study on curved fitting model using GPS and leveling in local area[C]//Transactions of Nonferrous Metals Society of China,2005: 140-144. [7] 歐陽承曦.硅壓阻式壓力傳感器高精度溫度補償技術研究[D].成都:電子科技大學,2015. [8] ZENG M,ZHANG Y,HUAN J.A new linear interpolation algorithm[C]//Proceedings of the 2016 International Conference on Computer Engineering,Information Science & Application Technology,2016: 163-170. [9] 董燕婷.微差壓變送器的研究與溫度補償實現(xiàn)[D].上海:上海交通大學,2014. [10]秦寧.基于整體最小二乘面擬合及其在GPS高程擬合的研究應用[D].成都:西南交通大學,2015. [11]ZHANG C,XUE Z,LUO S.A convergence analysis of SOR iterative methods for linear systems with weak H-matrices[J].Open Mathematics,2016,14 (1):747-760.2 基于最小二乘法的曲面擬合補償算法
3 算法軟件設計與實現(xiàn)
4 試驗結果與誤差分析
5 結束語