PT100温度采集
1、信号采集的基本原理
PT100是将温度信号转换为电阻输出,其电阻值变化范围为0~200Ω。AD转换器只能对电压进行转换,无法采集直接采集温度,因此,需要一个1mA恒电流源给PT100供电,将电阻变化转换为电压变化。使用恒流源的好处,可以延长传感器寿命。由于输入信号范围为0~200mV,因此需要将信号放大,然后进行AD转换,得到电信号数据。
不采用恒压源设计的原因:
若采用恒压源供电,然后再将电阻和PT100串联,通过分压来实现,有点问题,就是当PT100阻值太小时,流过PT100的电流太大,导致传感器寿命变短。
2、运放采用MCP604
MCP604特点:
1)电压范围为2.7~6.0V
2)输出为Rail-to-Rail
3)工作温度范围:-40°C to +85°C
4)输入失调电压(Input Offset Voltage)为±3mV,典型值为1mV,高灵敏度。
5)输入偏置电流(Input Bias Current)为1pA,当TA = +85°C时,I=20pA,提高采集精度。
6)线性输出电压摆动 (Linear Output Voltage Swing):VSS+0.1 ~ VDD–0.1,单位为V。
当电源电压为3.3V时,线性输出电压摆动为0.1~3.2V。为了保证放大信号工作在线性区,因此,当VDD=3.3V时,我们设置MCP604输出电压保持在:0.5V ~ 2.5V,满足运放电路设计需求。
模电书中的运放是理想的运算放大器,同实际放大器是有区别的,因此,设计时需要考虑“输入失调电压”,“输入偏置电流”和“线性输出电压摆动”。
3、电路图
图中的R11是偏置电路,防止最后一级差动放大输出产生饱和失真。
1)选择合适的放大倍数,减小输出误差。因为输入失调电压的存在,当放大倍数增大,输出误差也会增大,这是设计必须考虑的。
2)本电路放大倍数为10,假定典型输入失调电压为3mV,若输入信号变化为5mV,则有2mV没有被放大,就会产生20mV的输出误差。
Vo4 = (Vin1 - Vref)*10
Io=1mA,Vref=Vo3=1.65V
1.7V<=Vin<=1.9V,1.7V<=V02<=1.9
1.8V<=Vo1<=2V,保证运放工作在线性区,这个很重要
0.5V<=Vo4<=2.5V,保证运放工作在线性区,这就是为什么需要串联50Ω的原因。
当输入电阻变化1Ω时,Vout就变化为10mV。由于MCP604输入补偿电压为±3mV,因此,当有0.3333Ω变化时,就会3.333mV变化,采集灵敏度较高。
0<=Rin<=200Ω输入时,由于回路串联50Ω,50Ω<=Rx<=250Ω
Vin1 - Vref = Rx*0.001,单位A
4、软件校准
初出道的工程师总是想方设法提高电阻的精度,然而误差还是很大。还有的工程师干脆用连续可调电阻,通过调节其电阻值,配合万用表,让输出满足传递关系式,这种精度好像是得到了提高,但不方便生产,另外PCB设计难度也增加了。即使调试好了,要是用手误摸调节螺丝,可能会带来误差。唯一的方法,就是用固定电阻生产,采用软件帮忙,实现精准的校准。
1)当Rin=0时,读到一个电压值,记录为V50。保存V50,它不会随PT100阻值的变化而改变,因为采用的是恒流源供电。
2)接入标称电阻,令Rs=100Ω,读到一个电压值,记录为V150。保存V150,它温度为0时,读到的电压值。
3)计算电流放大倍数:Io = (V150 - V50) / Rs;保存Io,就表示校准好了。
4)当输入电阻为R时,读到电压为Vo,则R = (Vo- V50) / Io
通过以上说明,软件校准具有很大的优越性,不仅生产方便,而且精度还高。为了提高精度,也可以将输出电压分成几个区间,分别校准,得到不同的Io,这样,输出线性度会更好。这些想法,都在我的设计中得到体现。
5、计算温度
当温度小于0时,
R0*C*t^4 - 100R0*C*t^3 + R0*B*t^2 + R0*A*t + R0 - Rt=0
当温度大于或等于0时,Rt=R0*(1+A*t+B*t*t)
说明:
Rt为t℃时铂电阻的电阻值
R0为0℃时铂电阻的电阻值100Ω
A=3.9082×10^-3
B=-5.80195×10^-7
C=-4.2735×10^-12
6、Pt100温度传感器
Pt100温度传感器为正温度系数热敏电阻传感器,主要技术参数如下:
1)、测量温度范围:-200℃ ~ +850℃;
2)、允许偏差值Δ℃:A级±(0.15+0.002|t|),B级±(0.30+0.005|t|);
3)、最小置入深度:热电阻的最小置入深度≥200mm;
4)、允许通过电流: < 5mA;
5)、Pt100温度传感器还具有抗振动、稳定性好、准确度高、高压等优点。铂热电阻的线性较好,在 0~100摄氏度之间变化时,最大非线性偏差小于 0.5℃;
当温度 < 0时,R0*C*t^4 - 100R0*C*t^3 + R0*B*t^2 + R0*A*t + R0 - Rt=0
当温度 ≥ 0时,Rt= R0*(1+A*t+B*t*t)
根据上面的关系计算,大概电阻范围为:18Ω~390.3Ω,-197℃为18Ω,850Ω为390.3Ω;
说明:
Rt为t℃时铂电阻的电阻值,R0为0℃时铂电阻的电阻值100Ω
A=3.9082×10^-3,B=-5.80195×10^-7,C=-4.2735×10^-12
PT100铂金属温度传感器使用说明书
℃ | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
0 | 100 | 100.39 | 100.78 | 101.17 | 101.56 | 101.95 | 102.34 | 102.73 | 103.12 | 103.51 |
10 | 103.9 | 104.29 | 104.68 | 105.07 | 105.46 | 105.85 | 106.24 | 106.63 | 107.02 | 107.4 |
20 | 107.79 | 108.18 | 108.75 | 108.96 | 109.35 | 109.73 | 110.12 | 110.51 | 110.9 | 111.28 |
30 | 111.67 | 112.06 | 112.45 | 112.83 | 113.22 | 113.61 | 114.38 | 114.77 | 114.99 | 115.17 |
40 | 115.14 | 115.93 | 116.31 | 116.7 | 117.08 | 117.47 | 117.85 | 118.24 | 118.62 | 119.01 |
50 | 119.4 | 119.78 | 120.16 | 120.55 | 120.93 | 121.32 | 121.7 | 122.09 | 122.47 | 112.86 |
60 | 123.24 | 123.62 | 124.01 | 124.39 | 124.77 | 125.16 | 125.54 | 125.92 | 126.31 | 126.69 |
70 | 127.07 | 127.45 | 127.84 | 128.22 | 128.6 | 128.98 | 129.37 | 129.75 | 130.13 | 130.51 |
80 | 130.89 | 131.27 | 131.66 | 132.04 | 132.42 | 132.8 | 133.18 | 133.56 | 133.94 | 134.32 |
90 | 134.7 | 135.08 | 135.46 | 135.84 | 136.22 | 136.6 | 136.98 | 137.36 | 137.74 | 138.12 |
100 | 138.5 | 138.88 | 139.26 | 139.64 | 140.02 | 140.39 | 140.77 | 141.15 | 141.53 | 141.91 |
6)、电路设计
7)、PT100温度和电阻的关系
PT100温度和电阻满足下面的方程式:
当温度≤0时,R0*C*t^4 – 100*R0*C*t^3 + R0*B*t^2 + R0*A*t + R0 - Rt=0
当温度≥0时, R0*B*t^2 + R0*A*t + R0 - Rt =0
说明:
Rt为t℃时铂电阻的电阻值,R0为0℃时铂电阻的电阻值100Ω
A=3.9082×10^-3,B=-5.80195×10^-7,C=-4.2735×10^-12
1、为了便于计算,当温度≤0时,令:
double a=R0*C*100000=100*(-4.2735×10^-12)*100000=-4.2735/100000
double b=–100*R0*C*100000=-100*100*(-4.2735×10^-12)*100000=4.2735/1000
double c= R0*B*100000=100*(-5.80195×10^-7)*100000=-5.80195
double d=R0*A*100000=100*(3.9082×10^-3)*100000=39082
double e= (100-Rt)*100000
当温度≤0时,a*t^4 + b*t^3 + c*t^2 + d*t + e=0
其中x3就是PT100在小于0℃时的解。
2、为了便于计算,当温度大于或等于0时
double a= R0*B*100000=100*(-5.80195×10^-7)*100000=-5.80195
double b=R0*A*100000=100*(3.9082×10^-3)*100000=39082
double c= (100-Rt)*100000
当温度≥0时, a*t^2 + b*t + c =0
t = [ SQRT( b*b - 4*a*c )-b ] / 2 / a
19.785Ω对应-197℃,液态氮的温度
18.486Ω对应-200℃
96.085Ω对应-10℃
138.505Ω对应100℃
175.845Ω对应200℃
247.045Ω对应400℃