一種硅壓阻式壓力傳感器溫度補償算法及軟件實現(xiàn)
0 引言
硅壓阻式壓力傳感器利用半導體材料的壓阻效應來進行壓力測量,以其體積小、靈敏度高、工藝成熟等優(yōu)點,在各行業(yè)中得到了廣泛應用。實際工程應用中由于硅材料受溫度的影響,導致零點漂移和靈敏度漂移,因此溫度補償問題是提高傳感器性能的一個關(guān)鍵環(huán)節(jié)。目前壓力傳感器主要有兩種溫度補償方法:硬件補償和軟件補償。硬件補償方法存在調(diào)試困難、精度低、成本高、通用性差等缺點,不利于工程實際應用;利用數(shù)字信號處理技術(shù)的軟件補償能夠克服以上缺點,也逐漸成為研究熱點。
目前軟件補償?shù)姆椒ㄖ饕校翰楸矸?、二元插值法、BP神經(jīng)網(wǎng)絡(luò)法、小波神經(jīng)網(wǎng)絡(luò)方法、曲線曲面擬合方法等。查表法需要占用很大內(nèi)存空間,而神經(jīng)網(wǎng)絡(luò)方法存在網(wǎng)絡(luò)不穩(wěn)定、訓練時間較長的缺點不利于工程應用。在研究各類軟件補償方法的基礎(chǔ)上對壓力傳感器采用建立高階溫度補償模型進行溫度誤差補償,并且在Matlab GUI軟件平臺下實現(xiàn)高階溫度補償系數(shù)的計算,通過實驗對該方法進行驗證。
1 高階溫度補償模型的建立
1.1 高階溫度補償建模
壓力傳感器輸出非線性誤差主要是由零點溫度漂移和靈敏度溫度漂移產(chǎn)生,零點溫度漂移是由于電阻摻雜不同而導致電阻的溫度系數(shù)不同,靈敏度溫度漂移主要由于壓阻系數(shù)易隨溫度的升高而減少。針對溫度對傳感器輸出影響,采用對零點溫度漂移和靈敏度漂移建立高階補償模型進行統(tǒng)一補償,補償后壓力值 Press(T )表示為溫度傳感器電壓輸出VT 和壓力傳感器電壓輸出VP 的函數(shù):
將 Press(T ) 補償轉(zhuǎn)換成曲面擬合問題,采用高階多項式擬合方法構(gòu)造曲面方程:
式中系數(shù)矩陣中元素CI,J 是式(2)中VP VT 項對應系數(shù)。
對壓力傳感器進行全溫段實驗,得出壓力傳感器靜態(tài)輸出特性,應用上述模型計算擬合系數(shù)。
1.2 高階溫度補償過程
在實際工程應用中,傳感器輸出電路可采用以DSP為核心運算電路進行動態(tài)溫度補償?shù)姆椒▉韺崿F(xiàn)實時數(shù)字溫度補償,具體電路如圖1 所示:整個電路由A/D轉(zhuǎn)換電路、DSP 運算電路、串并轉(zhuǎn)換電路、并串轉(zhuǎn)換電路、E2RPOM等5部分組成。
對壓力傳感器進行全溫段實驗,計算出擬合系數(shù)存放在數(shù)字補償電路的E2PROM 中。壓力傳感器輸出電壓值VP 和溫度傳感器輸出電壓值VT 通過A/D轉(zhuǎn)換輸出串行信號經(jīng)過串并轉(zhuǎn)換電路送到DSP運算電路中,DSP運算電路根據(jù)式(2)進行計算。最后補償后結(jié)果通過并,串轉(zhuǎn)換電路輸出,從而實現(xiàn)壓力傳感器實時數(shù)字溫度補償。
1.3 高階溫度補償系數(shù)計算過程
由于不同壓力傳感器動態(tài)特性不同,采用高階補償模型計算出擬合系數(shù)也有差異。為了保證動態(tài)溫度補償在硬件上方便實現(xiàn),減少硬件運算量,必須先求出擬合系數(shù)并進行適當調(diào)整,使擬合系數(shù)以統(tǒng)一格式存放。
以擬合系數(shù)范圍在小數(shù)點前6 位小數(shù)后3 位為例,即{-999 999.999,999 999.999}范圍,步驟如下:
(1)構(gòu)造高階多項式,根據(jù)靜態(tài)實驗數(shù)據(jù)用高階溫度補償模型進行擬合,計算出擬合系數(shù)矩陣C.
(2)判斷擬合系數(shù)矩陣C 系數(shù)是否在范圍內(nèi):如果所有系數(shù)值在范圍內(nèi),擬合過程結(jié)束;當系數(shù)值不在范圍內(nèi),記錄擬合系數(shù)下標值。取絕對值最大的一項CI,J (max) ,CI,J (max) 取絕對值與999 999.999相除取整得到調(diào)整系數(shù)N.
(3)重新構(gòu)造高階多項式,針對步驟(1)中計算出系數(shù)值不在范圍內(nèi)對應位置項的系數(shù)置0得缺項多項式,重新根據(jù)靜態(tài)實驗數(shù)據(jù)進行擬合,求系數(shù)矩陣C1.根據(jù)N 對系數(shù)矩陣進行調(diào)整,調(diào)整后系數(shù)矩陣C =[C + C1N]/(N + 1)。
(4)對調(diào)整后系數(shù)矩陣C 重復步驟(2)進行判斷,直至所有系數(shù)矩陣中系數(shù)值都在范圍內(nèi),則調(diào)整結(jié)束,保存系數(shù)矩陣。
擬合系數(shù)通過上述方法可以以統(tǒng)一的數(shù)據(jù)格式進行存放,方便在DSP 硬件平臺上實現(xiàn)動態(tài)數(shù)字溫度補償,在一定程度上可以減少硬件運算量。系數(shù)調(diào)整過程還需要根據(jù)具體情況設(shè)定系數(shù)范圍,在能夠保證傳感器輸出線性性的情況下,系數(shù)范圍越小在硬件上越容易實現(xiàn)。
2 軟件設(shè)計與實現(xiàn)
由上述分析可知,數(shù)字補償電路對傳感器進行動態(tài)溫度補償時,必須先求出高階溫度補償擬合系數(shù)。采用Matlab 2012a作為軟件平臺,利用Matlab圖形用戶界面(GUI)編程實現(xiàn)壓力傳感器高階溫度補償系數(shù)計算。
GUI 是Matlab 為用戶提供的Windows 圖形界面設(shè)計方法,使用戶能夠在利用其強大數(shù)值計算功能的同時設(shè)計出友好的圖形界面。
整個程序框圖如圖2 所示:包括數(shù)據(jù)讀取模塊、標準擬合模塊、系數(shù)調(diào)整模塊和數(shù)據(jù)存儲模塊。數(shù)據(jù)讀取模塊功能是讀取傳感器全溫段實驗數(shù)據(jù)進行預處理,標準擬合模塊根據(jù)高階溫度補償模型和靜態(tài)實驗數(shù)據(jù)計算系數(shù)矩陣,系數(shù)調(diào)整模塊是對高階溫度模型系數(shù)進行系數(shù)調(diào)整,數(shù)據(jù)存儲模塊把系數(shù)值以一定格式保存方便寫入數(shù)字補償電路的E2PROM.[!--empirenews.page--]
軟件設(shè)計流程圖3所示。
3 實驗結(jié)果與誤差分析
實驗選用壓力傳感器量程為0~800 PSI,工作溫度范圍在-55~125 ℃,標準壓力源采用美國Mensor公司的PCS400,高低溫箱提供各種溫度測試環(huán)境。測試時依次取-20 ℃,25 ℃,50 ℃,75 ℃,100 ℃,75 ℃,50 ℃,25 ℃,-20 ℃溫度點進行高低溫實驗,每個溫度點下提供標準壓力值16 PSI,200 PSI,400 PSI,600 PSI,800 PSI,600 PSI,400 PSI,200 PSI,16 PSI,測得靜態(tài)壓力傳感器輸出特性如表1 所示。采用5階溫度補償模型對靜態(tài)數(shù)據(jù)進行溫度補償后得到的結(jié)果如表2所示。
實驗數(shù)據(jù)表明,壓力傳感器建立高階溫度補償模型可以實現(xiàn)其零點漂移和靈敏度漂移的統(tǒng)一補償,補償后傳感器輸出值與標準值最大誤差為:
4 結(jié)語
采用高階溫度補償方法對硅壓阻式壓力傳感器的零點漂移和靈敏度漂移進行統(tǒng)一補償。由實驗數(shù)據(jù)可知,這種方法可以對硅壓阻式壓力傳感器溫度補償效果明顯,能夠很好的提高壓力傳感器的輸出線性性,通過硬件可以實現(xiàn)傳感器實時數(shù)字溫度補償,具有一定的工程應用價值。但是這種方法也存在某些不足:對于實驗數(shù)據(jù)離散量比較大的情況下,高階溫度補償模型會對個別數(shù)據(jù)點補償效果不理想。針對這個問題可以采用插值法和引入權(quán)函數(shù)方法結(jié)合起來進行進一步改進。