Steinhart和Hart 1968([1])發(fā)現(xiàn)了半導體電阻率隨溫度變化的模型。Steinhart-Hart定律將絕對溫度T(單位為開爾文)描述為NTC熱敏電阻的電阻率(Ω)的函數(shù),根據(jù)公式
1 / T = a 0 + a 1 ·ln r + a 3 ·(ln r)3
|
下圖顯示了NTC熱敏電阻特性的典型圖形,給出了電阻的自然對數(shù)(以Ω為單位)的倒數(shù)溫度(單位為K)。
常數(shù)a 0,a 1和a 3(也稱為Steinhart-Hart系數(shù))根據(jù)熱敏電阻的類型而變化。為了支持開發(fā)人員在創(chuàng)建溫度測量應用時,熱敏電阻制造商經常為他們的產品提供這些常數(shù)。他們還公布表格,其中列出了溫度范圍更廣的熱敏電阻產品的電阻率。
這個項目提供了軟件
除了標準Steinhart-Hart方程之外,其他形式也被發(fā)現(xiàn)。對于較低CPU功率的應用,可以使用Steinhart-Hart方程的簡化形式。
1 / T = a 0 + a 1 ·ln r
|
另一方面,可以在公式中插入一個二次項來提高擴展Steinhart-Hart方程的精度
1 / T = a 0 + a 1 ·ln r + a 2 ·(ln r)2+ a 3 ·(ln r)3
|
該項目提供了軟件,用于在算法中給出的計算。類/模塊可以用于
后者可以用于標準,簡化或擴展的Steinhart-Hart多項式。
對于Java,以下類可用
類 | 描述 |
---|---|
NtcException | 在這個熱敏電阻框架中使用的例外 |
NtcTable |
代表NTC熱敏電阻的TR表。 |
NtcThermistorModel |
表示使用Steinhart-Hart多項式1 / T = a 0 + a 1 ·ln r + a 3 ·(ln r)3建模的NTC熱敏電阻。 模型將使用NtcTable對象創(chuàng)建。它提供了讀取熱敏電阻名稱的方法,獲得NtcTable對象,獲得Steinhart-Hart系數(shù)以及從溫度轉換為電阻的方法,反之亦然。 |
NtcThermistorExtendedModel |
表示使用擴展Steinhart-Hart多項式1 / T = a 0 + a 1 ·ln r + a 2 ·(ln r)2 + a 3 ·(ln r)3建模的NTC熱敏電阻。 |
NtcThermistorSimplifiedModel |
表示使用簡化的Steinhart-Hart多項式1 / T = a 0 + a 1 ·ln r建模的NTC熱敏電阻。 源自NtcThermistorModel,提供了相同的方法。 |
注意:項目中使用了泛型,因此需要Java 5或更高版本。
一個小的測試類NtcTest是包的一部分,包含一個包含理論NTC(simu.txt)的TR表的示例文本文件。為了使開發(fā)者生活變得簡單,整個應用程序被部署為一個(可執(zhí)行的)jar文件,其中包含所有的源代碼,類和主類為NtcTest的清單文件。
下載測試應用程序后可以調用
java -jar thermistor.0.1.jar
有三個C模塊可用
模 | 描述 |
---|---|
coeff.c | 用于從NTC表(用文本文件給出)計算Steinhart-Hart系數(shù)的程序。 |
ttor.c |
? emperature 到 ? esistance計算。 |
rtot.c | ? esistance 到 噸 emperature計算。 |
對于在Windows下的使用,它們已經被編譯(使用Cygwin的C編譯器)。對于其他操作系統(tǒng),請使用您的系統(tǒng)C編譯器進行編譯。包含理論上NTC(simu.txt)的TR表格的示例文本文件也被提供用于測試目的。
基于NTC熱敏電阻的測量電阻值,擴展Steinhart-Hart方程允許簡單計算溫度
1 / T = a 0 + a 1 ·ln r + a 2 ·(ln r)2 + a 3 ·(ln r)3
這里r是Ω中的電阻,T是K中的絕對溫度(K =開爾文)。在絕對零T abs = -273.15℃的情況下,以℃ 為單位的溫度t的公式最終導致
t = 273,15℃+ [ a 0 + a 1 ·ln r + a 2 ·(ln r)2 + a 3 ·(ln r)3 ] -1
通過將適當?shù)南禂?shù)設置為零,可以按照簡化或標準Steinhart-Hart方程進行計算。
在Ω從溫度以℃計算電阻值根?擴展斯坦哈特-Hart公式的,必須找到(為簡單地設定的標準多項式一個2 = 0在下面的公式)
1 / T = a 0 + a 1 ·ln r + a 2 ·(ln r)2 + a 3 ·(ln r)3
與Y = LN [R ,我們得到
1 / T = a 0 + a 1 ·y + a 2 ·y 2 + a 3 ·y 3
我們介紹替換
T = t + T abs
b = a 2 / a 3
c = a 1 / a 3
d =(a 0 -1 / T)/ a 3
p = c - ?·b 2
q = 2 / 27 · b 3 - 1 / 3 · b · c + d
U = [-q / 2 +(Q 2 /4 + p 3 /27)½ ] ?
V = [-q / 2 - (Q 2 /4 + p 3 /27)½ ] ?
得到
r = e u + v - b / 3
對于給定溫度t(以°C為單位)的電阻r(以Ω為單位)。
有時使用特殊的溫度值來計算系數(shù)。在感興趣的范圍內插入四個數(shù)值對到擴展Steinhart-Hart poylonm中,得到一個線性代數(shù)方程組(標準Steinhart-Hart多項式的三個值對)。通常使用的溫度是例如0℃,15℃,25℃和70℃下通過求解該系統(tǒng)中的值,一個0,一個1,一個2和一個3可以被確定。
更好的方法是在1801年由卡爾·弗里德里希·高斯(Carl FriederichGauß)引入的稱為普通最小二乘(OLS)的數(shù)學優(yōu)化技術。有關OLS理論的詳細信息在Wikipedia [ 3 ]或MathPlanet [ 4 ]中給出。
如果近似的函數(shù)是一個多項式,則向量空間,標量乘積和正交基的理論便于計算。給出一個n個耐溫對的列表
(r 0, t 0),(r 1, t 1),...,(r n-1, t n-1)
(其中n應該至少為3),Steinhart-Hart系數(shù)的最佳擬合問題導致最小化
n-1個 | ||
sum:= | Σ | [t(r i)-t i ] 2 |
I = 0 |
其中t i是第i個溫度值,t(r i)是根據(jù)該多項式計算的溫度。
這個優(yōu)化需要一個小的數(shù)學偏移。為正整數(shù)Ñ和橫坐標值給出X 0,X 1,...,X N-1與度≤的polynoms Ñ建立一個向量空間V。在V上可以定義一個標量積
ñ | ||
[p,q]:= | Σ | p(x i)·q(x i) |
I = 0 |
通過
標量產品使V成為規(guī)范空間。對于具有縱坐標值的函數(shù)f
y i:= f(x i)
對于i = 0,...,N-1恰好有一個多項式p ?F在V相匹配中的坐標的函數(shù)(X 0,ÿ 0), (X 1,ÿ 1),..., (X Ñ -1,y n-1)。
如果poisitve整數(shù)米, 與米≤ N,給出的所有度polynms ≤ 米建立的子空間ü的V。由U中的多項式對f的最佳近似的問題相當于由U中的多項式對p f的最佳近似,|。
n-1個 | n-1個 | ||||||
s = | Σ | [u f(x i)-y i ]² | = | Σ | [u f(x i)-p f(x i)] 2 | = | | u f -p f | |
I = 0 | I = 0 |
回答問題的最后結果是很容易的,如果一個標準正交基【U 1,U 2,...,U 中號 }的ü給出。對于p ?F最佳逼近ü ?F 作為計算
米 | ||
u f = | Σ | [u 我,p f ]·u 我 |
I = 1 |
例如,如果給定一個RT表,其值為從0°C到100°C,步長為1°C,則多項式p f的次數(shù)為101(!)。幸運的是一定不會被發(fā)現(xiàn),為了找到斯坦哈特-哈特coefficicents,從而找到ü ?F。從U的規(guī)范基{V 1 = 1,V 2 = X,V 3 = X 2,V 4 = X 3}開始,可以評價正交基{U 1,U 2,U 3,U 4 }。之后,u f的系數(shù)由上述總和計算。
該坐標
(x 0,y 0),(x 1,y 1),...,(x n-1,y n-1)
從溫度 - 電阻對計算得出
x i = ln r i
y i = 1 /(t i -T abs)
對于i = 0,...,n-1。
正交基 的ü被遞歸地進行評價。我們設置
u 1 = v 1 = 1
和
I-1 | ||
w i = v i - | Σ | [ü ?,U ]·U |
J = 1 |
ü = W / | W | 1/2
對于i = 2,...,m = 4。
有了這個基礎,我們可以計算出ü ?F為
m | ||
u f = | Σ | [u ,p f ]·u |
I = 1 |
并根據(jù)該方程確定Steinhart-Hart系數(shù)。(請注意,標量積可以在不知道被計算p ?F如上所述)。