NTC测温电路灵敏度问题简析

首页02312    应用文档    NTC测温电路灵敏度问题简析

点击下载[AN-THM-A001]

[点击下载文章中工具软件]

  天气逐渐炎热,降温降热即将或已经成为大家的话题。无论是控温还是降温,都绕不开普遍使用的负温度系数热敏电阻(NTC)。NTC以其优良的性价比,封装的形式多样适应性,以及简单的使用方式,在各个领域中的很多情况下都会成为工程师测温电路中优先选择测温方式。有些最开始有迟疑的是因为不太了解NTC及顾忌其非线性的特性,则更需要知道在当前产品互换性得到保障的前提下,供应商提供的NTC是可以完全保证产品按照规格书中描述的非线性下的重复性的。

  在之前的文章里,我们介绍了温度传感器的精度情况,在这里,我们再讨论一下NTC测温电路的灵敏度配置问题,即如何更好地利用NTC获得更高的测温灵敏度。

§       NTC一般的温度特性

    虽然描述NTC阻值随温度变化这一特性有更高精度的多项式表达式,但是很多情况下,在一个相对较窄的温度范围内,如果应用中精度也足够,则一般简化为如式-(1)的等式。

img1

其中:

o       RTNTC中绝对温度T (T +273.15)下的阻值

o       RT0NTC参考点温度T0时的阻值,多为常温25C下的阻值,这里T0 = 25C + 273.15

o       BNTC的材料常数,单位是温度单位K,表示特定的温度范围内NTCR-T趋势特性。

反转等式的表达对象为温度时,则有等式-(2):

img2

如果看到式(2)就认为NTC测温简单到只要计算公式:

o       获取B, RT0

o       测量并获得NTC阻值RT 

o       根据公式计算获得温度值 t(C)

  那可能在多数情况下是一种不恰当的方式,尤其针对一些资源原本较少的MCU,或者要求时间效率,调用一个稍微复杂的涉及双精度或者至少是浮点的数学函数所占代码字节及运行时间数会超出你的想象。很多情况下,一个简单的查表方式即可解决速度和资源问题。在本文的最后一部分内容中,将会简单介绍如何使用R-T表计算温度值。我们还是回到NTC灵敏度的内容上。

§       NTC灵敏度分析

  先通过具体的例子来说明问题。举个栗子:有一款NTC,基本的参数如下表所示:

R25 (ohm)

B (25/85C) (K)

最大工作温度 (C)

1000

3540

125

  注:上表中,由于B (25/85C)参数指定温度范围是25~85C因此,超过该温度范围的NTC阻值,原则上不建议再使用同一个B通过式(1)进行计算。这里为了说明灵敏度问题,暂时忽略。

  典型的应用电路如图-1的分压方式。

img3

举例中的参数如下:

§       B = 3540K

§       RT0 = 1000ohm, T0 = 25C

§       Rs = 1000ohm

§       Vcc = 5V

§       ADC, 10bit

img4

  对于式-3,即电路的输出电压值,我们希望随着温度的变化,电压数值变化的越大越好,这就是所讨论的灵敏度。如果式(3)对温度T求导即为灵敏度,那么该导数的最大值,即为灵敏度的最大值。

  式(3)求导之后得式(5),将式(5)经过转换,得式(6)。

img5

  如果我们更换不同阻值的串联电阻Rs,则输出电压Vout呈图-2中的曲线所示。

img6

  而式(6)可以得知,在某温度T点,要让图-1的测温电路获得最大灵敏度,其分母部分应该是有最小值。

img7

  当且仅当Rs = R_NTC(T) 时,等号成立。即在温度T点,分压电阻和NTC的阻值相等时,灵敏度最高。

img8

 

  换句话而言,如果对某个局部范围的温度要求测量灵敏度,进一步分辨率也可以更高,则可以将串联的电阻Rs选择与R_NTC(Tx)相近或者相等即可。

§       通过查表法获得NTC测温值

我们还是以图-1测温电路所示进行举例。

步骤-1:通过excel或者软件根据电路及指定的温度间隔Delta_T生成ADC

步骤-2:将步骤-1中的ADC值生成一个数组表

步骤-2-2由于数组的下标是从0开始,因此需要一个转换时的偏置值——offset

步骤-3:将表格整理到软件中进行调用处理

NTC R-T 表生成工具软件 [点击下载]

img9

  手动计算一个表格可能会需要一点时间,有时候还会因为个别器件更换,为不得不重新计算而苦恼。安费诺传感器可以直接提供一个免费的R-T表生成软件,动动鼠标即可一劳永逸。该软件的参数,包括NTC的B值,温度、ADC分辨率及温度范围等输入完全由用户定义,因此使用范围不限于安费诺传感器的NTC。

§       NTC R-T表生成的数值表使用演示代码(仅供参考)

 #ifndef        _AASRTTable_H 

#define        _AASRTTable_H 

//Copy & Paste '#include        "AASRTTable.h"' into your code

#define        BUFLENGTH         51

#define        RTTABLEOFFSET       0

const unsigned int AASNTC_RT_ADCTable[ ]

{

        416, 420, 424, 428, 432, 436, 440, 444, 448, 452,

        456, 460, 464, 468, 471, 475, 479, 483, 487, 490,

        494, 498, 501, 505, 508, 512, 516, 519, 523, 526,

        529, 533, 536, 540, 543, 546, 550, 553, 556, 559,

        563, 566, 569, 572, 575, 578, 581, 584, 587, 590,

        593

}

#endif

 

[参考]

 

[1] Temperature Sensing Solutions, Thermometrics

2020年6月30日 15:07