王 錚
(泛亞汽車技術中心有限公司,上海 201201)
工業(yè)熱電阻包括鉑熱電阻和銅熱電阻,兩種傳感器的溫度系數(shù)不同。其中,鉑電阻可以測量-200℃~850℃區(qū)間的準確溫度值。經(jīng)過校準之后的鉑熱電阻測溫精度可以達到正負0.02℃以內(nèi)。鉑熱電阻RTD 傳感器的電阻值與溫度值之間呈現(xiàn)非線性,兩者之間存在著相對確定的函數(shù)關系,需要進行數(shù)字化的非線性修正將RTD 電阻轉換為數(shù)字量溫度值[1]。
對于鉑熱電阻RTD 的采集,常見的實現(xiàn)方式是在恒流源激勵作用下,鉑電阻和精密基準電阻同時產(chǎn)生出對于ADC 輸入電壓和基準電壓值,即便是恒流源產(chǎn)生溫飄或其它微小變化也不影響RTD 的測量精度和效果,如圖1 所示。
圖1 RTD接口硬件示意圖Fig.1 RTD interface hardware schematic
電流源在等式中被消掉,即使起激勵作用的回路恒流源數(shù)值發(fā)生變化或者溫飄,后端ADC 芯片所采集的ADC數(shù)值也始終同步于鉑電阻RTD 和低溫飄精密基準電阻的比值。因此,選用一個精度高、溫度系數(shù)好的基準電阻可以減少測量電阻對激勵恒流源的設計精度要求,即應用精度不是很高的電流源也可以較為準確地應用比值計算出鉑電阻RTD 的實時電阻值。除了測溫功能之外,為了保證現(xiàn)場電路的穩(wěn)定和可靠,還需要施加RC 濾波和電源的過壓保護,以及其它的防護性外設,再有就是在UART 的基礎之上添加232、485、422、GPRS、NB 等用于數(shù)字通信的通信端口[2]。
鉑電阻RTD 傳感器的計算函數(shù)由零上和零下兩部分構成,兩個不同的多項式方程分別可以計算出鉑電阻阻值與溫度的對應關系。一個用于低溫區(qū),另一個用于常溫和高溫區(qū)。
t ≤ 0℃時計算方程為:
t ≥ 0℃時計算方程為:
對于上述兩個計算方程:
t 為RTD 溫度(℃)。
R 電阻為RTD 溫度(t)的函數(shù)。
R0是0℃時的RTD 電阻(默認為Pt100)。
A = 3.9083×10-3。
B =-5.775×10-7。
C =-4.183×10-12。
針對上述兩個鉑電阻RTD 計算函數(shù)公式,有很多種計算方法將鉑電阻RTD 電阻值轉換為溫度值。如:直接的數(shù)學方法、單段線性逼近法和分段線性逼近法。3 種方法各有優(yōu)缺點[3],具體來說:
1)直接的數(shù)學方法
這種方法的優(yōu)點是計算比較準確,不需要進行查表計算;缺點是開發(fā)者針對函數(shù)需要進行解析處理,對模型本身的函數(shù)處理工作量較大。
2)單段線性逼近法
這種方法的優(yōu)點是計算速度快,如果函數(shù)的對應關系在準確度允許的范圍內(nèi)可以簡化為兩點線性化處理。針對比較小范圍的狹窄溫度區(qū)間,計算速度快,算法簡單;缺點是針對這個-200℃~850℃的溫度區(qū)間不能都保證單段線性化處理滿足精度要求,適用于只有有限代碼空間時的小溫度范圍測量。
3)分段線性逼近法
這種方法是將整個溫度范圍進行區(qū)域化處理,簡單理解就是多個單段線性逼近法的組合。算法的優(yōu)點是計算速度快,代碼占用空間小及計算準確度高。
float T_rtd (float r)
{
float t;
int i;
i=(r-RMIN)/RSEG;
if (i<0)
i=0;
else if (i>NSEG-1)
i=NSEG-1;
t =
C_rtd[i]+(r-(RMIN+RSEG*i))*(C_rtd[i+1]-C_rtd[i])/RSEG;
return (t);
}
上述函數(shù)就是分段線性逼近法的實施細節(jié),在不同區(qū)間鉑電阻阻值與溫度值之間的換算應用不同的區(qū)間系數(shù),這個對于后端采集而言,整個范圍內(nèi)的傳感器的測量準確度都能達到預期的設置效果[4]。
// definitions 預定義
#define AA (3.9083E-3)
#define BB (-5.775E-7)
#define CC (-4.183E-12)
float R_rtd (float t)
{
float r;
if (t>=0) r = 100 * (1 + AA*t + BB*pow(t,2));
else r = 100 * (1 + AA*t + BB*pow(t,2) +
CC*(t-100)*pow(t,3));
return (r);
}
圖2 工業(yè)熱電阻計算軟件界面圖Fig.2 Industrial thermal resistance calculation software interface diagram
在實際應用的過程中分為工業(yè)鉑電阻和工業(yè)銅電阻,其中鉑電阻也具體細分為很多傳感器型號,如Pt100、Pt1000、Pt300、Pt20、Pt25 等。較為常見的是Pt100 傳感器分為AA 級、A 級和B 級。Pt100 傳感器用于常規(guī)溫度測量,如環(huán)境溫濕度、農(nóng)業(yè)種植溫濕度、計量領域的溫場測量等;Pt1000 多用于現(xiàn)場不易于布置三線制或者四線制線纜的遠端測溫,受成本所限,兩線制鉑電阻傳感器無法消除傳感器導線電阻對測量溫度的影響,最簡單直接的辦法就是加大傳感器自身的阻值,進行減小傳感器的引線電阻影響。P300 和Pt20 多用于熱式氣體質量流量計的前端測溫及加熱;Pt25 用于標準鉑電阻,用于溫度的量值傳遞和高精度計量。由軟件可以看出,已知熱電阻的類型,輸入溫度值就可以計算出電阻值,已知電阻值就可以計算出溫度值,而且這兩種計算都能同時輸出電阻比和變化率,很明顯地看出工業(yè)鉑電阻和銅電阻溫度系數(shù)不同。
鉑電阻線性擬合函數(shù),溫度和電阻的線性方程形式如下:
其中,系數(shù)A 和系數(shù)B 為常數(shù),鉑電阻RTD 傳遞函數(shù)中的A 和B 系數(shù)都不相同,軟件工具的效果會在實驗中進行驗證,但是首先必須確定一個單段線性逼近是否適合具體的設計要求。
用一定數(shù)量的直線段可以更好地逼近非線性RTD 傳遞函數(shù),分段傳遞函數(shù)的系數(shù)可以保存在MCU 的EEPROM或者FALSH 中。MCU 可以實現(xiàn)簡單線性插值計算以實現(xiàn)RTD 鉑電阻的溫度測量[5]。具體進行多階擬合的函數(shù)如下:
//5 階函數(shù)
圖3 使用分段線性逼近法生成系數(shù)的界面圖Fig.3 Interface diagram for generating coefficients using piecewise linear approximation
t=-242.0199+2.222812*r+2.585885E-3*pow(r,2)-4.826040E-6*pow(r,3)-2.818340E-8*pow(r,4)+1.524259E-10*pow(r,5);
//4 階函數(shù)
t=-241.9610+2.216253*r+2.854064E-3*pow(r,2)-9.912120E-6*pow(r,3)+1.705183E-8*pow(r,4);
//3 階函數(shù)
t=-242.0906+2.227625*r+2.517790E-3*pow(r,2)-5.861951E-6*pow(r,3);
//2 階函數(shù)
t=-242.9703+2.283841*r+1.472734E-3*pow(r,2);
實現(xiàn)分段逼近線性化,可以直接應用RTD 系數(shù)生成工具軟件,設置后軟件可以自動的為測溫鉑RTD 進行分段擬合[6]。具體的軟件應用步驟大致如下:
1)明確鉑電阻的測溫范圍和測量精度。
2)預期MCU 可容納查詢表的空間大小。
3)用C 源代碼生成鉑電阻的RTD 擬合系數(shù)。
4)計算生成誤差表。
用于曲線擬合的工具軟件有很多,比如matlab、Curve、Orange、Excel 等,曲線擬合的方法一般都選用多項式直接擬合。就擬合效果而言,上述幾個擬合軟件的擬合公式基本相同,而且軟件都會給出當前擬合系數(shù)下的計算誤差值。用ADI 公司提供的RTD 擬合工具軟件僅僅需要操作用戶輸入3 個參數(shù)。程序生成RTDpwl0.c 文件,其是一個完整的C 源程序文件。T_rtd()函數(shù)可以直接被工程中的應用所調(diào)用,與此同時,系數(shù)生成工具軟件也計算輸出errorRTD.txt(誤差分析文件),它是一個表格制式的Excel文件來檢驗計算誤差[7]。
本文闡述了精密熱電阻(RTD)的線性化處理過程(TD 硬件采集、軟件線性化、RTD 系數(shù)計算工具), 對比了直接數(shù)學法、單段線性逼近法和多段線性逼近法3 種方法的優(yōu)缺點并使用分段線性逼近法對精密電阻分別進行多階擬合計算,并詳述了RTD 系數(shù)計算工具的使用方法,經(jīng)過線性化處理的精密熱電阻系數(shù)表可以準確地計算出實時溫度值,達到了預期的應用效果。