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℃