本文主要是介绍如何通过NTC热敏电阻计算温度(一)---理论篇,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
热敏电阻
文章目录
- 热敏电阻
- NTC热敏电阻阻值温度计算
- Steinhart-Hart方程计算法
- 等式的反函数
- Steinhart-Hart系数
- B值计算法
- 参考
热敏电阻是一种传感器电阻,其电阻值随着温度的变化而变化。按照温度系数不同分为正温度系数热敏电阻(PTC thermistor,即Positive Temperature Coefficient thermistor)和负温度系数热敏电阻(NTC thermistor 即Negative Temperature Coefficient thermistor)。正温度系数热敏电阻的电阻值随温度的升高而增大,负温度系数热敏电阻的阻值随温度的升高而减小。
接下来我们仅讨论NTC热敏电阻
NTC热敏电阻阻值温度计算
http://www.mcnic.com/rmjsq/有方便的计算器可以用来求解ABC系数或者B值。
Steinhart-Hart方程计算法
Steinhart-Hart
方程是半导体在不同温度下的电阻模型。等式为:
1 T = A + B ln R + C ( ln R ) 3 \frac{1}{T} = A + B\ln{R} + C(\ln{R})^3 T1=A+BlnR+C(lnR)3
其中:
T T T表示温度(单位为开尔文)
R R R是在 T T T温度下的阻值(单位为欧姆),
A , B , C A,B,C A,B,C是Steinhart-hart
方程的系数,根据热敏电阻的类型和型号以及感兴趣的温度范围而变化。
等式的反函数
用于求解热敏电阻在给定温度下的电阻值
为了找到半导体在给定温度下的电阻,必须使用Steinhart-Hart方程
的反函数:
R = e x p ( y − x / 2 3 − y + x / 2 3 ) R = exp(\sqrt[3]{y-x/2} - \sqrt[3]{y+x/2}) R=exp(3y−x/2−3y+x/2)
其中:
x = 1 C ( A − 1 T ) x = \frac{1}{C}(A - \frac{1}{T}) x=C1(A−T1)
y = ( B 3 C ) 3 + x 2 4 y = \sqrt{(\frac{B}{3C})^3 + \frac{x^2}{4}} y=(3CB)3+4x2
Steinhart-Hart系数
Steinhart-Hart
系数通常由热敏电阻制造商公布,在没有该系数的情况下,可以推导它们。在精确的温度下进行三次精确的电阻测量,然后通过求解三个联立方程组得出系数。
要找到Steinhart-Hart
系数,我们至少需要知道三个工作点。为此,我们使用三个已知温度的电阻数据
[ 1 ln R 1 ln 3 R 1 1 ln R 2 ln 3 R 2 1 ln R 3 ln 3 R 3 ] [ A B C ] = [ 1 T 1 1 T 2 1 T 3 ] \begin{bmatrix} 1&\ln{R_1}&\ln^3{R_1}\\ 1&\ln{R_2}&\ln^3{R_2}\\ 1&\ln{R_3}&\ln^3{R_3}\\ \end{bmatrix} \begin{bmatrix} A\\B\\C \end{bmatrix} = \begin{bmatrix} \frac{1}{T_1}\\ \frac{1}{T_2}\\ \frac{1}{T_3} \end{bmatrix} 111lnR1lnR2lnR3ln3R1ln3R2ln3R3 ABC = T11T21T31
根据 R 1 , R 2 和 R 3 R_1,R_2和R_3 R1,R2和R3温度下的电阻值 T 1 , T 2 和 T 3 T_1,T_2和T_3 T1,T2和T3,可以求出 A , B 和 C A,B和C A,B和C:
L 1 = ln R 1 , L 2 = ln R 2 , L 3 = ln R 3 L_1 = \ln{R_1}, L_2 = \ln{R_2}, L_3 = \ln{R_3} L1=lnR1,L2=lnR2,L3=lnR3
Y 1 = 1 T 1 , Y 2 = 1 T 2 , Y 3 = 1 T 3 Y_1 = \frac{1}{T_1}, Y_2 = \frac{1}{T_2}, Y_3 = \frac{1}{T_3} Y1=T11,Y2=T21,Y3=T31
γ 2 = Y 2 − Y 1 L 2 − L 1 γ 3 = Y 3 − Y 1 L 3 − L 1 \gamma_2 = {\frac{Y_2 - Y_1}{L_2-L_1}} \gamma_3 = {\frac{Y_3 - Y_1}{L_3-L_1}} γ2=L2−L1Y2−Y1γ3=L3−L1Y3−Y1
⇒ C = ( γ 3 − γ 2 L 3 − L 2 ) ( L 1 + L 2 + L 3 ) − 1 \Rightarrow C = (\frac{\gamma_3 - \gamma_2}{L_3 - L_2})(L_1 + L_2 + L_3)^{-1} ⇒C=(L3−L2γ3−γ2)(L1+L2+L3)−1
⇒ B = γ 2 − C ( L 1 2 + L 1 L 2 + L 2 2 ) \Rightarrow B = \gamma_2 - C(L_1^2 + L_1L_2 + L_2^2) ⇒B=γ2−C(L12+L1L2+L22)
⇒ A = Y 1 − ( B + L 1 2 C ) L 1 \Rightarrow A = Y_1 - (B + L_1^2C)L_1 ⇒A=Y1−(B+L12C)L1
注意:求解ABC系数的温度-阻值参数需在不同的温度条件下测得. 数据选择点最好的结果是选择要测试的温度范围的两个端点和中间点,比如要测试温度为25~85度,那么三点选择25,55,85度三点。
B值计算法
NTC热敏电阻也可以用B(或 β \beta β)参数方程来表征,该方程本质上是Steinhart-Hart
方程 a = 1 T 0 − 1 B ln R 0 , b = 1 B , c = 0 a = \frac{1}{T_0}-\frac{1}{B}\ln{R_0}, b = \frac{1}{B}, c = 0 a=T01−B1lnR0,b=B1,c=0
1 T = 1 T 0 + 1 B ln R R 0 \frac{1}{T} = \frac{1}{T_0} + \frac{1}{B}\ln{\frac{R}{R_0}} T1=T01+B1lnR0R
其中温度和B参数以开尔文为单位, R 0 R_0 R0是温度 T 0 T_0 T0(25℃=298.15K)下的电阻。求解 R R R
R = R 0 e B ( 1 T − 1 T 0 ) R = R_0e^{B(\frac{1}{T}-\frac{1}{T_0})} R=R0eB(T1−T01)
或者
R = r ∞ e B / T R = r_\infty e^{B/T} R=r∞eB/T
其中
r ∞ = R 0 e − B / T 0 r_\infty = R_0 e^{-B/T_0} r∞=R0e−B/T0
也可以通过如下公式求解温度:
T = B ln ( R / r ∞ ) T = \frac{B}{\ln(R/r_\infty)} T=ln(R/r∞)B
参考
- https://en.wikipedia.org/wiki/Thermistor
- https://en.wikipedia.org/wiki/Steinhart%E2%80%93Hart_equation
这篇关于如何通过NTC热敏电阻计算温度(一)---理论篇的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!