摘 要:針對Pt100鉑熱電阻溫度計算問題,詳細(xì)分析了牛頓法與解析法的應(yīng)用特性,在VC 6.0編程環(huán)境下對比了兩種方法的絕對計算精度以及相對運(yùn)行速度。結(jié)果表明,牛頓法的計算精度高,誤差較小,運(yùn)行速度快。解析法雖無模型誤差,但實(shí)際數(shù)值的計算誤差較大,且運(yùn)算速度較慢,相比而言,牛頓法是較好的選擇。使用牛頓法解決鉑熱電阻的溫度計算問題,在工業(yè)控制領(lǐng)域具有廣泛的應(yīng)用價值。
關(guān)鍵詞:Pt100熱電阻; 牛頓法; 解析法; 特性分析
中圖分類號:TP212.11; TP301.6 文獻(xiàn)標(biāo)識碼:A
文章編號:1004-373X(2010)11-0135-03
Characteristic Analysis of Newton Method and Analytical Method in Temperature
Computation of Pt100 Platinum Resistor
ZHANG Li 1, DONG Yin-li2
(1. Shaanxi Post and Telecommunication College, Xianyang 712000, China;2. Xi’an Eurasia University, Xi’an 710065, China)
Abstract: The application characteristic of Newton method and analystic method is analyzed for the problem of temperature-resistance computation of Pt100 platinum resistor. The absolute accuracy and relative operating speed of both methods are compared under the condition of VC6.0 program. The results show that Newton method has higher calculation accuracy and faster operation speed than analytical method. Although analytical method has no any modeling error theoretically, it shows a severe numerical calculation error in practice. Therefore, Newton method is an appropriate algorithm for the temperature computation of Pt100 platinum resistor. It has a widely application value in the industry control domain.
Keywords: Pt100 platinum resistor; Newton method; analytical method; characteristic analysis
0 引 言
Pt100 鉑熱電阻通常和顯示儀表、記錄儀表、電子計算機(jī)等配套使用,可直接測量各種生產(chǎn)過程中-200~+850 ℃范圍內(nèi)的液體、蒸汽和氣體介質(zhì)以及固體表面溫度。Pt100 鉑電阻具有抗震性能好,測溫范圍廣,測量精度高,機(jī)械強(qiáng)度高,耐壓性能好等特點(diǎn),且電阻率較大,電阻Rt與溫度t的關(guān)系為正比例系數(shù)的單調(diào)函數(shù),實(shí)際測量中有良好的重復(fù)性,因此在工業(yè)應(yīng)用非常廣泛。
在使用Pt100 鉑熱電阻進(jìn)行溫度計算時,由溫度t求電阻值Rt的公式已經(jīng)存在,參見文獻(xiàn)[1]。然而工程應(yīng)用中,一般用測量得到電阻值Rt,通過反解t-Rt的公式找到與之對應(yīng)的溫度值t,從而實(shí)現(xiàn)溫度測量。現(xiàn)代化溫控系統(tǒng)一般都采用以計算機(jī)為核心的自動系統(tǒng),這些系統(tǒng)中具體的計算算法需要通過編程語言實(shí)現(xiàn)(一般是C語言)。通常,Pt100鉑熱電阻由Rt求t的方法有解析法、數(shù)值法兩大類。解析法的公式,文獻(xiàn)[2]已經(jīng)給出,該公式在計算機(jī)編程實(shí)現(xiàn)中的具體計算特性有待研究。文獻(xiàn)[3]比較了牛頓法和二分法兩種數(shù)值方法在處理鉑熱電阻溫度計算問題中的特性,說明牛頓法在該問題的解決方面具有優(yōu)良的特性。本文側(cè)重于探討牛頓法、解析法的計算特性,對二者的精度和求解速度給出分析。
一般認(rèn)為,基于數(shù)學(xué)解析的算法沒有理論誤差,多數(shù)情況下是較為理想的方法,但無論何種算法,在計算機(jī)編程實(shí)現(xiàn)中,數(shù)值計算的誤差均不可避免,有時甚至?xí)@著到成為一個問題。
本文針對Pt100熱電阻的相關(guān)計算,分別采用牛頓法和解析法,在VC 6.0編程環(huán)境下解算問題,比較了二者的求解精度和速度,發(fā)現(xiàn)解析法在數(shù)值計算過程中呈現(xiàn)了較為顯著的數(shù)值誤差,在精度和求解速度上都落后于牛頓法。以下給出具體分析。
1 Pt100鉑熱電阻溫度計算
1.1 計算關(guān)系式
根據(jù)文獻(xiàn)[1],由溫度計算阻值的公式如下:
Rt=R0(1+At+Bt2+C(t-100)t3),
t∈[-200,0]
R0(1+At+Bt2),t∈(0,850]
(1)
式中:參數(shù)R0=100.00 Ω(0 ℃時的標(biāo)準(zhǔn)電阻);A=3.908 02×10-3 ℃-1;B=- 5.802×10-7 ℃-2;C=-4.273 50×10-12 ℃-4。
從式(1)可以看出,已知Rt計算t分為兩段。在t∈(0,850]區(qū)間,是一元二次方程求根問題,其解析關(guān)系式的定解公式比較簡單,不是本文探討的關(guān)鍵;而在t∈[-200,0]區(qū)間,已知Rt求t,是一元四次方程求根問題。
一元四次方程可以有解析解,一般會有4個根(含復(fù)數(shù)形式的根),根據(jù)文獻(xiàn)[4],式(1)的實(shí)根解析表達(dá)式為:
t=-m′-
m′2-4n′2,Rt≤R0
(2)
式中:
m′=a2-a24-b+u0;
n′= u0 2-u20 4-d;
a=-100;b=B/C;c=A/C;d=R0-RtCR0;
u0=3-q2+q22+p33+
3-q2-q22+p33+b3;
p=-b2/3+ac-4d;
q=2b227-13(4bd-abc)+a2d+4bd-c2。
其中:參數(shù)R0,A,B,C與式(1)相同。
為了檢驗解析法算法程序的計算特性,本文在VC 6.0編程環(huán)境下,按照上述公式實(shí)現(xiàn)了解析法的計算步驟,再對比數(shù)值方法(以牛頓法為代表)來分析兩種方法的精度和速度。
需要說明的是,由于VC 6.0編程環(huán)境下的標(biāo)準(zhǔn)數(shù)學(xué)庫中沒有求立方根的函數(shù),而u0的表達(dá)式又是求表達(dá)式的立方根,因此,可選的替代方法分別是采用求1/3次冪或通過對數(shù)/指數(shù)函數(shù)來實(shí)現(xiàn)求立方根的運(yùn)算。
以下簡單分析用數(shù)值方法解決該問題的要點(diǎn)。
一般來說,用數(shù)值方法進(jìn)行多項式求根,大致需要三個步驟:
(1) 判定根的存在性;
(2) 確定根的分布范圍,即將每一個根用區(qū)間隔離開來;
(3) 根的精確化,即根據(jù)根的初始近似值,按某種方法逐步精確化,直至滿足預(yù)先要求的精度為止。
一般的多項式,判定其根的存在性是需要證明的。而在這個問題中,由其特定的工程物理背景可以肯定,在[-200,0] 和(0,850]兩個區(qū)間內(nèi),實(shí)根是確實(shí)存在的。
根據(jù)式(1)可得:
f(t) = t4-100t3 + BCt2 + ACt + 1C1-RtR0
(3)
式中:參數(shù)R0,A,B,C與式(1)相同。
則已知Rt求t的問題,轉(zhuǎn)化為求f(t)=0的方程根問題。
1.2 牛頓法和解析法的計算過程分析
1.2.1 牛頓法的計算步驟
(1) 給出初始近似根x0及精度ε。
(2) 計算
x0-f(x0)f′(x0)=x1
。
(3) 若|x1-x0|<ε,則轉(zhuǎn)向(4),否則x1賦予x0,轉(zhuǎn)向(2)。
(4) 輸出滿足精度的根x1,結(jié)束。
牛頓法的特點(diǎn)是計算函數(shù)必須可導(dǎo),需要計算導(dǎo)數(shù),由(3)可得:
f′(x)=4x3-300x2+2BCx+AC
(4)
能夠滿足牛頓法應(yīng)用的要求。
1.2.2 解析法的計算步驟
根據(jù)式(2),計算步驟如下:
(1) 已知R0,Rt,A,B,C求出a,b,c,d;
(2) 根據(jù)a,b,c,d 求出p,q;
(3) 根據(jù)p,q,b求出u0;
(4) 根據(jù)a,b,d,u0求出m′,n′;
(5) 根據(jù)m′,n′求解t。
解析法根據(jù)式(2)求解出對應(yīng)的溫度值,理論上沒有模型誤差,當(dāng)然,解析法在程序運(yùn)算中,仍不可避免會有數(shù)值計算誤差,下文將進(jìn)行定量分析。
2 牛頓法與解析法計算特性分析
2.1 誤差對比
計算誤差是評價算法實(shí)現(xiàn)特性的重要條件。
在溫度t∈[-200,0]區(qū)間,分析牛頓法精度ε設(shè)定為1×10-6時的計算結(jié)果,與解析法計算結(jié)果進(jìn)行對比,分析兩種方法的最大誤差。通過在該區(qū)間均勻抽取100個數(shù)據(jù)點(diǎn),在這些數(shù)據(jù)點(diǎn)上比較兩種算法的絕對誤差,得到圖1。
從圖1可以看出,牛頓法的絕對誤差非常小,圖中所列出的數(shù)據(jù)點(diǎn),即使是誤差較大的部分,也集中在1×10-10量級,比數(shù)值算法的基本約束精度ε=1×10-3低7個量級,精度特性非常好。
與之相比,解析法雖然沒有模型誤差,但數(shù)值計算誤差比較顯著,在t=-200位置,誤差達(dá)到4.1×10-1,之后慢慢減小。從原始數(shù)據(jù)分析,牛頓法的最大絕對誤差是2.5×10-10,解析法的最大絕對誤差為4.1×10-1。從最大絕對誤差來看,解析法是牛頓法的1.64×109倍(4.1×10-1 / 2.5×10-10= 1.64×109 )。
因此,解析法求得的數(shù)據(jù)點(diǎn),在[-200,0]區(qū)間整體誤差較大,其最大數(shù)值計算誤差比牛頓法高9個量級。
圖1 誤差比較圖
牛頓法是數(shù)值算法,還可以通過調(diào)整精度約束ε來控制迭代計算的求解精度,而解析法是直接完成一系列公式的運(yùn)算,既沒有迭代過程,也沒有類似牛頓法中ε這樣一個能夠控制精度的量,因此解析法的求解精度是不可控制的。
同時,由于解析法的誤差來源是浮點(diǎn)計算的截斷誤差,這種誤差是無法從根本上消除的。
2.2 相對運(yùn)行速度比較
算法的運(yùn)行速度也是一個很實(shí)用的評價指標(biāo),運(yùn)行速度快的算法有更高的應(yīng)用價值。解析法的程序流程是固定的,不存在循環(huán)和迭代,因此在運(yùn)行環(huán)境不變的前提下,其運(yùn)行速度也是固定的。然而,牛頓法的運(yùn)行速度則受ε的影響,隨著ε的變化,牛頓法的循環(huán)迭代次數(shù)會發(fā)生變化。
以解析法為參照,分析牛頓法在各種ε約束下的運(yùn)行速度,并對二者進(jìn)行了對比。
在t的[-200,0]區(qū)間,均勻抽取數(shù)據(jù)點(diǎn),兩種算法分別完成同樣次數(shù)的循環(huán),記錄運(yùn)行時間,得到結(jié)果如表1所示。
牛頓法求解時間雖受ε制約,但在表1所示的ε范圍內(nèi),牛頓法的計算過程運(yùn)行速度整體比解析法的速度快;隨著計算精度ε的提高,牛頓法的運(yùn)行時間會變長,但直到ε達(dá)到1×10-5時,解析法所需時間仍然比牛頓法長,是牛頓法的1.012 8倍。
表1 相對運(yùn)行速度比較
精度ε
時間 /s
牛頓法解析法
運(yùn)行時間之比
不同精度的牛頓法解析法與牛頓法比較
1×10-20.947
1×10-31.035 6
1×10-41.091
1×10-51.139 2
1.153 8
0.947/0.947=11.153 8/0.947=1.218 4
1.035 6/0.947=1.093 61.153 8/1.035 6=1.114 1
1.091/0.947=1.152 11.153 8/1.091=1.057 6
1.139 2/0.947=1.2031.153 8/1.139 2=1.012 8
*注:解析法運(yùn)行時間與ε無關(guān)。
解析法計算一個數(shù)據(jù)點(diǎn),除了基本的浮點(diǎn)乘法、加法計算外(約40次乘法、20加法),還需要完成至少4次開平方、2次開立方計算,開平方、開立方都涉及函數(shù)調(diào)用,在一個計算流程中需要6次函數(shù)調(diào)用,這可能是程序執(zhí)行速度較慢的主要原因。
相比之下,牛頓法一次迭代中,只需要計算約22次浮點(diǎn)乘法和9次加法,再加上在表1所示的4種ε條件下,計算一個數(shù)據(jù)點(diǎn),最多迭代4次,整個計算過程不涉及任何數(shù)學(xué)函數(shù)調(diào)用,這可能是速度快的一個主要原因。
分析表明,解析法主要的浮點(diǎn)精度損失出現(xiàn)在計算u0的環(huán)節(jié)上,u0表達(dá)式需要求兩個立方根之和,由于VC 6.0標(biāo)準(zhǔn)庫中沒有求立方根的函數(shù),立方根計算只能通過求1/3次冪、或者通過對數(shù)/指數(shù)函數(shù)對來解決,由于浮點(diǎn)截斷誤差在冪函數(shù)等運(yùn)算中的傳播和擴(kuò)展,使得解析法的計算溫度無論采用何種編程方式,整體都呈現(xiàn)出了較大的數(shù)值誤差。
3 結(jié) 語
通常解析方法是沒有理論誤差的,應(yīng)當(dāng)具有最好的計算精度。然而,在Pt100鉑熱電阻溫度計算問題中,解析表達(dá)式雖無模型誤差,卻呈現(xiàn)出了較為明顯的浮點(diǎn)誤差,或者說在浮點(diǎn)計算過程中,精度損失比較顯著。牛頓法則表現(xiàn)出了更高的求解精度、更低的計算誤差,而且相對運(yùn)行速度比解析法快。這表明在Pt100鉑熱電阻溫度計算中,牛頓法是一個較好的選擇。使用牛頓法進(jìn)行Pt100鉑熱電阻溫度的計算, 可以利用計算機(jī)得到快速精確的溫度結(jié)果,因此在工業(yè)控制領(lǐng)域具有廣泛的應(yīng)用價值。
參考文獻(xiàn)
[1]李吉林. 90國際溫標(biāo):常用熱電偶、熱電阻分度表[M] . 北京:中國計量出版社,1998
[2]楊平,李志斌.常用熱電阻的溫度-阻值變換的解析計算\\.傳感器技術(shù),2002,21(1):38-41.
[3]張莉,姜建國.牛頓法在Pt100鉑熱電阻溫度計算中的應(yīng)用特性分析\\.現(xiàn)代電子技術(shù),2008,31(6):146-148.
[4]國家計量總局.計量器具檢定規(guī)程匯編(溫度部分)[M].北京:中國計量出版社,1982.
[5]錢煥延.計算方法\\.西安:西安電子科技大學(xué)出版社,2006.
[6]韋以明.電橋溫度計的實(shí)驗研究[J].現(xiàn)代電子技術(shù),2007,30(4):28-31.
[7]吳光榮,章劍雄.基于ZigBee的高壓開關(guān)柜無線溫濕度監(jiān)測系統(tǒng)\\.現(xiàn)代電子技術(shù),2008,31(20):169-171.
[8]劉振全,王漢芝.金屬熱電阻傳感器在多路溫度監(jiān)控系統(tǒng)中的應(yīng)用[J].傳感器世界,2006(12):26-27.
[9]傅民倉,馮立杰,袁俊飛.基于PIC單片機(jī)的熱敏電阻數(shù)字化方法[J].現(xiàn)代電子技術(shù),2006,29(5):76-78.
[10]張志勇,辛長宇,朱玉龍,等.Pt100溫度傳感器非線性的補(bǔ)償方法與電路實(shí)現(xiàn)[J].電子器件,2007,30(6):57-59.
[11]吳本科,肖蘇,謝莉莎.蔡氏電路中電感阻耗對混沌現(xiàn)象的影響[J].現(xiàn)代電子技術(shù),2005,28(10):97-99.