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