田 偉,張廣祥,崔 炎,呂易軒
(1.遼陽石化分公司,遼寧遼陽 111003;2.吉林石化分公司,吉林吉林 132021;3.東北電力大學(xué),吉林吉林 132021;4.多倫多大學(xué),多倫多 M5S1V6)
提高壓力傳感器性能的研究一直受到國內(nèi)外的高度關(guān)注。隨著硅微機(jī)械加工技術(shù)的不斷進(jìn)步,硅壓力傳感器成為目前使用最廣泛的一種壓力傳感器,但由于壓力傳導(dǎo)、制造工藝以及硅本身對溫度的敏感性導(dǎo)致了硅壓力傳感器具有較大的誤差。目前智能芯片在智能儀表中的應(yīng)用越來越普及,如何利用智能芯片強(qiáng)大的運(yùn)算功能,設(shè)計(jì)統(tǒng)一、簡單和適用的軟件補(bǔ)償方法,具有非常重要的現(xiàn)實(shí)和工程意義。本文提出了基于工程數(shù)學(xué)牛頓算法應(yīng)用于壓力變送器溫度補(bǔ)償,實(shí)現(xiàn)從 -40~80 ℃對傳感器數(shù)據(jù)進(jìn)行溫壓自動補(bǔ)償,滿足提高壓力傳感器精度的需要[1]。
在不同溫度下施加標(biāo)準(zhǔn)壓力,經(jīng)過對大量的壓力傳感器進(jìn)行輸入輸出采集實(shí)驗(yàn),可以得到在不同溫度和壓力下的輸入輸出關(guān)系,在不同溫度下得到的測量值與標(biāo)稱值偏差曲線圖如圖1所示??梢钥闯鲈谳斎雺毫Ρ3植蛔兊那闆r下,壓力傳感器的輸入(p)與輸出(U)呈非線性。對應(yīng)不同的工作溫度,傳感器呈現(xiàn)不同的輸入(p)與輸出(U)特性。溫度對壓力傳感器測量值的影響顯著,壓力傳感器的輸出隨著溫度的變化而變化,即各壓力傳感器輸出受溫度的影響存在溫度漂移現(xiàn)象。溫度誤差具有相當(dāng)?shù)碾S機(jī)性,同一廠商生產(chǎn),同一規(guī)格、型號的壓力傳感器的溫度特性也不盡相同。從誤差分析看,誤差主要由以下幾種誤差構(gòu)成。
圖1 不同溫度下實(shí)際與標(biāo)稱偏差曲線
1.1.1 非線性誤差
誤差原因是壓力傳導(dǎo)誤差。因?yàn)閭鞲衅靼褜?shí)際壓力作用到壓力膜片,并作用到充油壓力芯體傳導(dǎo)到芯體的硅基芯體上,利用差動電橋原理把壓力信號變化變成電阻的變化,進(jìn)而對應(yīng)到電壓或電流信號,如圖2所示。
圖2 硅膜片結(jié)構(gòu)
這種壓力傳導(dǎo)的過程受膜片加工、材質(zhì)、形變重復(fù)度、傳導(dǎo)油體傳導(dǎo)滯后等原因影響,造成壓力傳導(dǎo)非線性誤差。二是硅基膜片基底材料純凈度和相關(guān)分子擴(kuò)散濃度不均勻,造成電橋非線性誤差。
1.1.2 溫度漂移誤差
誤差原因一是傳導(dǎo)油體受被測物質(zhì)和外界環(huán)境溫度影響而產(chǎn)生膨脹;二是基底芯片因硅基材料受溫度影響產(chǎn)生輸出漂移;三是受外界溫度影響,其壓力信號經(jīng)電橋(如圖3所示)轉(zhuǎn)換成對應(yīng)的電壓和電流小信號處理,在從模擬信號轉(zhuǎn)換成數(shù)字信號過程中,電子電路中的電子元件受溫度影響而產(chǎn)生輸出漂移。
圖3 惠斯登電橋
根據(jù)壓力傳感器的誤差分析, 所提出的誤差補(bǔ)償數(shù)學(xué)模型為
U(p,t)=f0(p)+f1(t)+f2(p)t+f3(p)t2
(1)
式中:U(p,t)為傳感器輸出;f0(p)為傳感器非線性表達(dá)式;f1(t)為零點(diǎn)漂移誤差、零點(diǎn)溫度漂移表達(dá)式;f2(p)t為一次溫度靈敏度漂移表達(dá)式;f3(p)t2為二次溫度靈敏度漂移表達(dá)式。
從式(1)知,以上兩種誤差是相互疊加、相互作用的,減小誤差,提高檢測精度,是現(xiàn)實(shí)工程需要。目前智能芯片的發(fā)展,使軟件誤差補(bǔ)償成為可能,軟件補(bǔ)償在成本、靈活度和效果方面與傳統(tǒng)硬件補(bǔ)償方法相比具有更大優(yōu)勢。常用的軟件補(bǔ)償方法有查表法、插值法和經(jīng)驗(yàn)法等??紤]到采樣芯片的限制,程序和計(jì)算階數(shù)不能太復(fù)雜,本文采取查表和插值共同使用,設(shè)計(jì)了基于牛頓算法的壓力傳感器溫壓補(bǔ)償方法,補(bǔ)償效果明顯[2-3]。
補(bǔ)償方法設(shè)計(jì)主要是基于工程數(shù)學(xué)查表和插值原理,利用數(shù)據(jù)采集技術(shù)和網(wǎng)絡(luò)通訊技術(shù),實(shí)現(xiàn)從-40~80 ℃對傳感器數(shù)據(jù)進(jìn)行自動采集,自動補(bǔ)償,滿足了壓力變送器溫度補(bǔ)償中,提高檢測精度的需要。具體算法為首先對溫度 -40~80 ℃橫向最多分7個(gè)結(jié)點(diǎn),線性從0%~100%最多設(shè)置11個(gè)縱向結(jié)點(diǎn),并且對最多77個(gè)采集點(diǎn)進(jìn)行相應(yīng)條件下的變送器壓力采集,并下載到RAM內(nèi),形成溫度補(bǔ)償數(shù)據(jù)表。其次根據(jù)溫度采樣值確定在當(dāng)前溫度下0~100%的11個(gè)動態(tài)線性數(shù)據(jù)點(diǎn),組成線性曲線。根據(jù)溫度采樣碼判斷相鄰的3條溫度曲線,使用相鄰3條溫度線的33個(gè)線性數(shù)據(jù),利用工程數(shù)學(xué)中的牛頓插值公式,推導(dǎo)出0~100%在當(dāng)前溫度下的11個(gè)動態(tài)線性數(shù)據(jù)點(diǎn)。以計(jì)算0%點(diǎn)為例:
首先構(gòu)建一個(gè)差商表,差商表保存在一維數(shù)組中。
動態(tài)壓力采樣值計(jì)算公式:
pt(0)=DD[2]×(tx-t1)×(tx-t0)+
DD[1]×(tx-t0)+DD[0]
式中:t2、t1、t0為與tx相鄰的3點(diǎn)溫度;tx為當(dāng)前溫度;p2、p1、p0為0%行所在3點(diǎn)溫度下的壓力采樣值。
以此類推,依次計(jì)算10%~100%動態(tài)線性數(shù)據(jù)點(diǎn),即可得到tx溫度下的動態(tài)線性表。
其次根據(jù)當(dāng)前壓力采樣碼px和計(jì)算出的動態(tài)線性表,找出與px相鄰的3個(gè)線性點(diǎn)p0、p1、p2以及與之對應(yīng)的理想壓力值m0、m1、m2,帶入壓力牛頓插值公式,計(jì)算出px壓力采樣碼對應(yīng)的實(shí)際壓力值mx。計(jì)算差商值:
DD[0]=m0
實(shí)際壓力值計(jì)算公式為
mx=DD[2]×(px-p1)×(px-p0)+
DD[1]×(px-p0)+DD[0]
以上整體利用77個(gè)溫度補(bǔ)償數(shù)據(jù)、溫度采樣碼、壓力采樣碼,利用溫度和壓力兩次牛頓插值算法,有效克服了因?yàn)榉蔷€性和溫度漂移造成的綜合誤差,且通過動態(tài)線性表解耦誤差綜合影響。實(shí)際壓力測量時(shí),根據(jù)內(nèi)部溫度傳感器采集的溫度采集碼,橫向利用相鄰最近的3個(gè)點(diǎn),利用滑動牛頓算法公式計(jì)算在此溫度采集碼下線性表,再把壓力采集碼代入線性表中相鄰最近的3個(gè)點(diǎn),利用滑動牛頓算法計(jì)算在此壓力采集碼下的對應(yīng)的壓力值。算法的設(shè)計(jì)綜合考慮了傳感器數(shù)據(jù)采集芯片的數(shù)據(jù)存儲能力、運(yùn)算速度,且采用統(tǒng)一的牛頓算法調(diào)用和3點(diǎn)滑動降低計(jì)算階數(shù),可滿足采集芯片的計(jì)算復(fù)雜度的要求。雙牛頓算法實(shí)施后可以將儀表精度從0.2%提高到0.075%,實(shí)際工程應(yīng)用效果良好[4]。
實(shí)際應(yīng)用中,為了滿足牛頓算法對數(shù)據(jù)的最小需求,溫度數(shù)據(jù)不能少于3組,壓力數(shù)據(jù)不能少于3個(gè)。建立補(bǔ)償數(shù)據(jù)時(shí),壓力信號和補(bǔ)償溫度可以根據(jù)需要設(shè)置,不必等分,溫度點(diǎn)的選定和溫度范圍的選定和補(bǔ)償方法無關(guān),溫度點(diǎn)和溫度范圍的選定只和該壓阻式傳感器的使用溫度范圍和補(bǔ)償精度有關(guān),使用溫度范圍越寬,補(bǔ)償精度越高,則選取的溫度點(diǎn)數(shù)量也就越多。
為了獲得補(bǔ)償方法的輸入標(biāo)定數(shù)據(jù),選取400 kPa傳感器進(jìn)行數(shù)據(jù)采集,利用補(bǔ)償裝置分別在-40、-20、0 、20、40、60、80 ℃溫度下對傳感器進(jìn)行信號采集,生成溫度-被測目標(biāo)參量-傳感器輸出量對應(yīng)數(shù)據(jù)表,將不同溫度下被測目標(biāo)參量與傳感器輸出量之間的對應(yīng)數(shù)據(jù)固化到單片機(jī)的FLASH中,單片機(jī)根據(jù)當(dāng)前測得的溫度數(shù)據(jù)利用補(bǔ)償算法對傳感器進(jìn)行溫度補(bǔ)償和線性補(bǔ)償。固化的壓力數(shù)據(jù)和溫度數(shù)據(jù)如表1、表2所示。從標(biāo)定數(shù)據(jù)可以看出,溫度對壓力傳感器輸出影響顯著,對于同一輸入,壓力傳感器的輸出隨著溫度的變化而變化,存在溫度漂移現(xiàn)象。
表1 400 kPa壓力傳感器溫度補(bǔ)償標(biāo)定數(shù)據(jù)
表2 400 kPa壓力傳感器溫度采樣碼
以400 kPa傳感器輸入標(biāo)準(zhǔn)壓力信號37.5 kPa采集到的數(shù)據(jù)為例,說明補(bǔ)償過程。實(shí)測數(shù)據(jù)如表3所示。
表3 溫度采樣碼為“8970”時(shí)壓力采樣碼
溫度傳感器測得當(dāng)前溫度采樣碼為“8970”,通過查表找出最接近于當(dāng)前溫度的存儲在FLASH存儲器中的標(biāo)定補(bǔ)償數(shù)據(jù),因?yàn)楫?dāng)前溫度碼為“8970”,所以程序通過查表算法判定補(bǔ)償數(shù)據(jù)取值溫度范圍為40~80 ℃,即以40、60、80 ℃這3組24個(gè)數(shù)據(jù)作為牛頓算法的基礎(chǔ)數(shù)據(jù)。通過滑動牛頓算法算出當(dāng)前溫度下的零點(diǎn)到量程的動態(tài)數(shù)據(jù)表,通過三點(diǎn)牛頓算法算出當(dāng)前壓阻式傳感器的線性輸出。
計(jì)算過程為首先計(jì)算動態(tài)表,根據(jù)公式計(jì)算出差商,然后計(jì)算出從零點(diǎn)到量程的動態(tài)數(shù)據(jù)表。經(jīng)過滑動牛頓算法生成的動態(tài)數(shù)據(jù)表如表4所示。
表4 動態(tài)數(shù)據(jù)表
以輸入壓力信號37.5 kPa為例,說明線性化計(jì)算過程。因?yàn)閴毫π盘枮?7.5 kPa時(shí),壓力采樣碼為148264,程序判斷應(yīng)該選取0、75、150 kPa這3點(diǎn)動態(tài)數(shù)據(jù)表數(shù)據(jù)進(jìn)行運(yùn)算,根據(jù)計(jì)算公式計(jì)算得出M37.5=37.42 kPa。
與實(shí)際輸入信號相比,誤差為0.02%,滿足精度要求。壓力變送器全量程補(bǔ)償效果如表5所示。
表5 補(bǔ)償效果對比表
從表5可以看出,經(jīng)過兩次滑動牛頓算法補(bǔ)償,壓阻式傳感器的穩(wěn)定性能基本上改善了1~2個(gè)數(shù)量級,有效地提高了傳感器的采樣精度。
本文提出的壓阻式壓力傳感器滑動牛頓補(bǔ)償算法有效減小了溫度等因素對壓阻式傳感器輸出的影響。溫壓補(bǔ)償提高了壓阻式壓力傳感器的穩(wěn)定性和準(zhǔn)確性,擴(kuò)展了傳感器應(yīng)用范圍。而且算法本身對硬件的要求較低,基本上一個(gè)帶有24位A/D轉(zhuǎn)換的8位單片機(jī)就可以滿足要求,具有功能實(shí)現(xiàn)簡單、補(bǔ)償效果突出的特點(diǎn)。