閆 鑫,王曉娜,丁淵明,楊遂軍,葉樹亮
(1.中國計量學院 工業與商貿計量技術研究所,浙江 杭州310018;2.浙江省計量科學研究院,浙江 杭州310013)
隨著熱分析技術的快速發展,傳統的熱電偶測溫技術已經不能滿足其性能指標的要求,特別是在使用相對計算能力較差的單片機進行溫度采集計算的應用中,很難在達到較高精度的同時擁有較快的響應速度。傳統的電動勢—溫度轉換方法[1,2]是根據熱電偶的熱電勢值進行查表或者分段曲線擬合,求得當前溫度值。查表法求取溫度值雖然簡單,但是需要存放大量的分度表數據,對系統的內存容量要求較高。分段曲線擬合法不需要大量的內存空間,但是分度表數據有限,隨著分段擬合精度的提高,擬合公式所需要的數據也成倍增加,加之熱電偶分度表數據的舍入誤差,很難保證無限制提高擬合精度;相反,隨著分段數目的增多,曲線擬合的精度可能會下降,即出現龍格現象[3]。由分度公式組成的方程求根法[4]雖然在計算精度上有了較大提高,但是由于公式的階數較高,在計算時間上卻遠遠不如分段擬合法。
針對上述問題,本文提出了一種新型測溫算法,利用分段擬合法與查表法相結合求出溫度值及其誤差范圍,即在方程求根法的思想上縮小二分法的查找區間,根據秦九昭簡化算法降低分度公式運算復雜度,從而實現快速高精度的熱電偶測溫計算。
國際電工委員會ICE584—1 標準[5]提供的熱電偶分度公式如式(1)所示

其中ai的值由分度表給出,其中T 型熱電偶分度公式中溫度t 階數最高為14 階。公式(1)給定的是熱電偶的電動勢關于溫度的函數(E-T),即給定某一溫度值,由公式計算得到理想的熱電動勢值。實際使用中,通常是在測得熱電動勢的基礎上計算出溫度值,因此,需要把公式(1)變形如下

測得熱電偶某一熱電動勢值E,使得求解公式(2)變為解一元多次方程的根。直接求解方程運算過程復雜不利于算法設計,而二分法利用無限逼近與疊代的數學思想,理論上能夠快速無限接近實際值的根(即方程求根法思想),因此,采用二分法求得方程的近似根。實際中,算法設計有2 個方面的難點:1)利用二分法求解需要給定一個初始區間,以免在不必要的區間段消耗時間;2)公式(2)存在很高的階數,需要簡化計算公式降低運算復雜度。因此,本文在方程求根思想上對算法作了改進如圖1所示的改進,結合線性最小二乘法與查表法得到最接近實際溫度一個溫度值,利用導數確定二分法查找的初始區間,并且使用秦九昭算法簡化高階復雜運算公式,在保證精度的同時也提高了運算速率。

圖1 算法整體思想Fig 1 Whole idea of algorithm
2.1.1 確定二分法溫度區間
在測得熱電偶的電動勢E 后,用曲線擬合的方法得到電動勢轉換為溫度的粗略關系式和該溫度的誤差范圍,即確定了二分法的溫度區間。
線性最小二乘法[2,6]是解決曲線擬合最常用的方法,基本思路是

其中,rk(x)為事先選定的一組線性無關的函數,ak為待定系數(k=1,2,…,m)。以N 型熱電偶為例,由于其分度表公式的階數比較高,在保證精度及減少運算量的前提下,在0 ~1000 ℃范圍內將N 型熱電偶熱電勢分為10 段,利用線性最小二乘法分別得到各區間段的T-E 擬合方程。
擬合公式如式(4)所示,表1 為部分擬合系數和正負最大偏差,分別記為max 和min

正負最大偏差由誤差函數G(T)確定,G(T)可表示為式(5)的復合函數形式


表1 N 型熱電偶部分擬合系數Tab 1 Part of fitting coefficients of N type thermocouple
其中,T 為理論溫度值,F(T)為利用線性最小二乘法分段擬合的函數,f(T)為分度表給定的溫度—熱電動勢(T-E)函數,即為公式(2)所代表的函數。
由于熱電偶分度公式和分段擬合的公式均為單調線性多項式,而且在各自分段區間內連續,因此復合函數G(T)在任意分段區間內連續。求導分別得出函數在各連續區間內的最大值與最小值,即正負最大偏差值。為了驗證這些數值是否準確,利用Matlab 繪出0 ~1 000 ℃之間各分段的溫度差函數G(T)的圖形如圖2 所示。

圖2 理論溫度與計算溫度的偏差圖Fig 2 Deviation chart of theoretical temperature and computational temperature
由圖2 可以看出,分段擬合公式已經能夠保證偏差小于0.015 ℃,但是由于環境和硬件設備誤差等因素的影響,算法在實際應用并不能達到理想的效果,因此,設計了優化算法以滿足實際需要,算法在獲得某一熱電動勢值E 后通過查表和多項式計算得出一個溫度數值t,那么,這個溫度值與真實溫度值之間的偏差在區間[min,max]之間,令ta=t+min,tb=t+max,因此,所需確定的溫度區間可以表示為[ta,tb]。
需要說明的是,在國際電工委員會ICE584—1 標準中也有由E 轉換為T 的公式,但在0 ~600 ℃范圍內,該公式計算的誤差在[-0.016,0.027]℃之間,在600 ~1 300 ℃的公式誤差在[-0.039,0.021]℃之間。由于本文擬合公式分段較多,計算出的誤差要小于國標中給出的公式誤差,也就是縮小了所需確定的溫度區間,為下一步精確計算減小了運算時間。
2.1.2 降低運算復雜度
方程求根等價于求f(x)與x 軸的交點。如果函數單調連續,且在區間兩端點的函數值異號,則方程有唯一的解。因此,只要給定一個單調連續,且兩端函數值異號的初始區間,即可通過二分法把f(x)的零點所在小區間收縮50%,使區間的兩個端點逐步逼近函數的零點,最終以求得方程根的近似值。
在算法設計中,由于二分法需要循環計算公式(2)這類復雜高階方程,因此,為了降低運算復雜度,利用秦九昭算法簡化如下

求公式(6)的值時,首先計算最內層括號內一次多項式的值,然后由內向外逐層計算一次多項式的值,求n 次多項式的值就轉換為求n 個一次多項式的值,計算次數可以減少到只做n 次乘法和n 次加法,有效降低了運算復雜度。
圖3 所示為算法流程,其過程為:
1)獲取經冷端補償過的熱電動勢E,查找擬合公式系數表獲取分段擬合公式,確定溫度t0。
2)根據分段擬合函數值正負最大誤差確定二分法查找的起始溫度區間[ta,tb]。
3)由公式tc=(ta+tb)/2 算出區間中點tc,判斷條件tb-ra<δ是否成立,如果條件成立,則tc便是所求溫度值;否則,判斷分度表公式與實際熱電勢的差值函數函數P(tc)=f(tc)-E是否等于0。
4)如果函數值P(tc)等于0 成立,則tc便是所求溫度值;否則,判斷其是否大于0,若成立,則令tb=tc;否則,令ta=tc。最后,返回步驟(3)直至求得最佳解。

圖3 算法流程圖Fig 3 Algorithm flow chart
算法的仿真測試實驗主要包括測溫精度測試和運算時間測試。實驗是在差示量熱掃描儀(熱分析儀的一種)上測試的,該儀器以ATmega128 單片機為核心,時鐘為16 MHz。
表2 為實驗選取的比較有代表性的溫度點的溫度對照表。其中理論溫度為根據分度公式計算的當前熱電動勢所對應的溫度值,測得溫度為使用本算法得到的溫度值,δ=0.001。由表中數據對比可以看出:使用本算法溫度誤差小于0.005 ℃,達到了計算的精度要求。不僅如此,本算法可以根據實際需求,通過改變δ 值,減少不必要的程序循環計算過程,提高運算速度。
在同樣的硬件平臺上對比四種常見算法的實驗數據,算法1:查表法;算法2:分段曲線擬合法,即國標中給出的電動勢轉換為溫度的函數(T-E);算法3:傳統的方程求根法;算法4:本文提出的結合分段曲線擬合和二分法。4 種算法的溫度誤差如圖4 所示。

表2 理論溫度與測得溫度對照表Tab 2 Comparison table of theoretical temperature and measured temperature
從圖4 可以看出:在0 ~1 000 ℃范圍內,本文提出的算法精度可達到±0.005 ℃,計算精度與算法3 的精度相近,遠高于算法1 和算法2。
圖5 為四種算法所需的計算時間。由圖可見,算法1和算法2 運算時間在10 ms 以下,遠遠低于算法3 和算法4。而算法4 在運算時間上比算法3 快近4 倍。
因此,綜合運算時間和精度,本文算法具有運算速度快、計算精度高的優勢。

圖4 四種算法誤差圖Fig 4 Error plot of four kinds of algorithms

圖5 四種算法運行時間Fig 5 Running time of four kinds of algorithms
本文提出了一種改進的快速高精度熱電偶測溫算法,以方程求根法為基礎,使用最小二乘法和導數定義快速確定查找溫度最小誤差區間,秦九昭算法簡化計算公式,二分法快速收斂求得溫度值,克服了傳統計算方法的計算精度低和運算時間長的缺點。實現結果顯示:在以ATmega128為控制核心,時鐘為16 MHz 的硬件平臺下,本文算法在0 ~1 000 ℃的溫度范圍內在達到±0.005 ℃的較高精度的同時擁有相對較快的80 ms 響應速度。
[1] 吳來杰,嚴雋薇,劉 敏.基于數值計算的熱電偶測溫[J].儀表技術與傳感器,2009(5):94-95.
[2] 王紅萍.一種基于基本樣條插值的熱電偶特性曲線擬合方法[J].元器件與應用,2000(10):33-35.
[3] 鄧建中.計算方法[M].西安:西安交通大學出版社,2001.
[4] 宗殿瑞,任志考,錢 峰.方程求根法計算熱電偶測量溫度[J].青島化工學院學報:自然科學版,2002(2):88-90.
[5] GB/T 16839.1—1997,第1 部分:分度表.熱電偶[S].
[6] 瞿江峰.一種基于熱電偶的溫度測量的線性擬合方法[J].中國西部科技,2010,26(9):21-23.