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是多项式曲线的趋势线的拟合值。R²= 1.00000E + 00非常适合,并且根据多项式计算电阻时的误差很小。可接受的R 2值为R 2 = 0.999及以下。
温度精度的公差将根据您的应用而变化。1%-3%°C的精度适用于大多数温度测量应用。我总是建议您在设计之初就确定该值,并尝试实现此目标。
潜在错误
使用公式计算温度时,大多数误差是由数学和舍入误差引起的。图6提供了一个由四舍五入引起的数学错误的示例。要记住的一个好习惯是,使用的小数点后的位数越多(例如0.123456),公式将越精确。
图6.回归错误
我建议至少使用六位数字-最好是小数点后九位或12位数字-以获得更好的精度。小数点后的最佳位数为16。尽管对于电子表格而言这是可能且容易的,但对于MCU而言并不总是可行的。六位数字将在整个温度范围内提供优于0.4°C的精度,这仍然比LUT更准确。图6中的回归计算图显示了小数点后六位数字的潜在误差。