24小時聯系電話:18217114652、13661815404
中文
技術專題
PCB設計熱敏電阻測量中獲得溫度值
在PCB設計的所有產品中都有某種形式的溫度回路。最簡單且最具成本效益的電路使用負溫度系數(NTC)或正溫度系數(PTC)熱敏電阻來測量溫度。最基本的電路是基于電阻分壓器,該電阻分壓器連接到具有模數轉換器(ADC)的低成本微控制器(MCU)。這里我們將介紹了如何將NTC或PTC熱敏電阻與ADC一起使用,以及各種處理技術將ADC測量結果轉換為可用的溫度值。
典型的熱敏電阻電路提供施加到ADC輸入端的電壓(V Sense)。然后,ADC將該電壓轉換為與輸入電壓成比例的LSB(最低有效位)數字值。對于許多低成本MCU而言,常見的ADC分辨率為12位,因此本文中的公式將使用12位分辨率。圖1顯示了分壓電路和恒流電路。
圖1. 分壓器和恒流電路實現
您可以使用公式1將測得的12位ADC LSB值轉換為電壓:
其中ADC分辨率(12位ADC(2 12))為4,096總位,V REF為3.3 V,測得的ADC LSB值為2,024(德州儀器(TI)TMP61熱敏電阻系列測試板的ADC LSB值示例) 。
例如:
公式2通過分壓器的V Sense計算電阻:
例如:
公式3從恒定電流I bias計算出電阻:
其中I bias為200 μA(TMP61系列器件的默認標準電流),V Sense為1.63V 。
例如:
轉換方式
將電壓轉換為ADC表示后,有多種方法可以從熱敏電阻的V Sense電壓獲取實際溫度。最常見的方法使用查找表(LUT),也稱為電阻表,通常由熱敏電阻制造商提供。1°C的LUT表具有166個元素,必須存儲在控制器中,但這會占用控制器內存。為了減少元素的數量,可以使用5°C的LUT,但是在計算中可能會有一些線性誤差。一個5°C的LUT需要33個元素,但沒人希望看到5°C的分辨率,因此有必要對LUT進行進一步處理,以使其獲得優于5°C或1°C的分辨率。我將在“線性插值”部分中進一步討論。
另一種方法是使用Steinhart-Hart方程,該方程基于三階多項式曲線擬合。這將需要自然對數數學來完成,并且您必須具有浮點控制器或浮點數學庫才能執行計算。Steinhart-Hart方程比LUT更精確。
給定器件的線性輸出,PTC可以使用多項式方程式。多項式方程是從熱敏電阻獲取溫度的最準確方法。多項式是變量的數學表達式,僅涉及加,減,乘和非負整數的運算。描述多項式的另一種方法是,它們為斜率提供曲線擬合方程。您必須自己應用多項式擬合,然后求解回歸函數(基于曲線擬合的溫度)以獲得溫度。大多數PTC基于多項式。
不用擔心 一旦掌握了多項式,您將獲得更好的準確性;另外,您的控制器中不需要LUT。這些是簡單的數學函數,其處理速度比帶插值的LUT更快。TI的設計工具可以為您提供LUT或四階多項式和回歸函數,并提供示例示例,說明如何在C代碼中為控制器應用這些數學函數,以從熱敏電阻獲得最準確的溫度。
查找表
LUT通常在-40°C至125°C的范圍內變化,但會根據熱敏電阻的熱極限而變化。LUT有兩種類型:1°C和5°C。有關示例,請參見圖2。
圖2. TMP61熱敏電阻系列的1°C和5°C表示例
LUT方法的工作方式如下:
將1°C步進LUT存儲到控制器的存儲器中。
根據讀取的ADC LSB值計算測得的電阻值。
在存儲的LUT中找到最接近的電阻匹配。與找到的電阻值對應的溫度將是結果溫度。
如果要提高精度而不是舍入到LUT中的最接近值,則需要對1°C步進LUT進行線性插值。使用5°C步進LUT可以節省一些存儲空間,因為它是一個較小的表,并且插值將提供合理的精度。但是,溫度計算中的線性步進誤差會很小。
線性插值
插值是計算并插入一個在兩個已知值之間得出的中間值。
插值方法如下所示:
將1°C或5°C的步進LUT存儲到MCU的存儲器中。
根據讀取的ADC LSB值計算測得的電阻值。
計算被測電阻與LUT中兩個最接近的電阻值之間的距離。將相應電阻的相同比率應用于溫度值(也稱為兩點之間實際溫度的線性近似)。
公式4是線性插值過程的公式:
其中X是熱敏電阻的已知值,Y是溫度的未知值,X 1和Y 1是比已知電阻及其相關溫度低的最接近值,而X 2和Y 2是比已知電阻高的最近值比已知的電阻及其相關溫度低。
Y值將是LUT的最高溫度和最低溫度之間最接近的溫度值。
如果以5°C的步長提供LUT,請注意,使用線性插值將其轉換為1°C LUT可能會產生0.5°C的線性誤差。這是通過線性步長在兩個值之間進行計算得出的數學錯誤。如果可以從制造商處獲得,則通常最好使用1°C的LUT。
Steinhart-Hart方程
Steinhart-Hart方程是使用自然對數的三階多項式。從已知電阻得出溫度可能是一種準確的方法。Steinhart-Hart方法中使用的方程式需要來自熱敏電阻LUT的三個電阻值來計算估計的曲線擬合:
R1 =最低溫度下的電阻(T1 = -40°C)。
R2 =中等溫度下的電阻(T2 = 25°C)。
R3 =最高溫度下的電阻(T3 = 125°C)。
您可以在下面的系數公式中使用這些變量,并且只需要計算一次。
您必須解析每個元素,才能確定計算Steinhart-Hart方程所需的三個系數,其中ln 是自然對數。
公式5、6和7將提供計算溫度所需的系數。您只需要計算一次。
公式8計算了溫度。每次要從計算得出的電阻中知道溫度時,都將使用公式8。
* T是開氏溫度(°C =°K-272.15)(°F =(1.8×°C)+ 32)。
多項式
三階和四階多項式是計算TI熱敏電阻產品組合的溫度值的最準確,最快的方法。您將不需要LUT。四次函數是一個四階多項式,根據溫度得出電阻值。使用回歸公式將得出基于測得電阻的溫度值。
首先在Microsoft Excel中打開空白電子表格。從設備的LUT輸入溫度和電阻值。如圖3所示,使用散點圖而非線圖來繪制典型電阻。
圖3. 四次函數圖
X軸為溫度,Y軸為電阻,右鍵單擊繪圖線,然后選擇“添加趨勢線”。圖4顯示了格式趨勢線窗口。選擇“多項式”并將順序更改為“ 4。
圖4. Excel中的趨勢線
在“格式趨勢線”窗口的底部,選擇“在圖表上顯示方程式”和“在圖表上顯示R平方值”。圖中顯示的方程式將是您的四階多項式四次函數,使您能夠從溫度中獲取電阻值。獲取系數的另一種方法是使用Excel的LINEST函數。語法為LINEST(known_y,[known_x],[const],[stats])。請記住,四階多項式具有五個系數。
在趨勢線提供的四階多項式中,您會注意到一些數字使用加法,而某些使用減法。下面的四次函數使用所有加法。在系數中,將系數的符號更改為負值,以便根據趨勢線多項式進行減法。
4階多項式是四次函數,可通過公式9計算,其中電阻是溫度的函數。
R(Ω)= A4 *(T 4)+ A3 *(T 3)+ A2 *(T 2)+ A1 * T + A0
其中R是熱敏電阻的電阻,T是溫度,A0 / A4是系數。
|
系數 |
8.479874E + 03 |
A0 |
5.548683E + 01 |
A1 |
1.577759E-01 |
A2 |
-2.849901E-04 |
A3 |
2.165629E-06 |
A4 |
回歸函數
回歸函數是四階多項式的逆函數。只需將X軸替換為Y軸,如圖5所示。圖中所示的4階多項式方程式將使用電阻值來找到溫度。
圖5.回歸圖
公式9中的四階多項式回歸,其中溫度是電阻的函數:(Y = Y軸,即溫度)
T°C = A4 *(R 4)+ A3 *(R 3)+ A2 *(R 2)+ A1 * R + A0)
其中R是熱敏電阻的電阻,T是溫度,A0 / A4是圖5中列出的系數。
準確度
R 2是多項式曲線的趨勢線的擬合值。R2= 1.00000E + 00非常適合,并且根據多項式計算電阻時的誤差很小??山邮艿?span>R 2值為R 2 = 0.999及以下。
溫度精度的公差將根據您的應用而變化。1%-3%°C的精度適用于大多數溫度測量應用。我總是建議您在設計之初就確定該值,并嘗試實現此目標。
潛在錯誤
使用公式計算溫度時,大多數誤差是由數學和舍入誤差引起的。圖6提供了一個由四舍五入引起的數學錯誤的示例。要記住的一個好習慣是,使用的小數點后的位數越多(例如0.123456),公式將越精確。
圖6.回歸錯誤
我建議至少使用六位數字-最好是小數點后九位或12位數字-以獲得更好的精度。小數點后的最佳位數為16。盡管對于電子表格而言這是可能且容易的,但對于MCU而言并不總是可行的。六位數字將在整個溫度范圍內提供優于0.4°C的精度,這仍然比LUT更準確。圖6中的回歸計算圖顯示了小數點后六位數字的潛在誤差。