打印
[STM32]

pt100测量电路如何校准?

[复制链接]
1783|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
any012|  楼主 | 2016-4-12 16:53 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 any012 于 2016-4-12 17:40 编辑

现在用的外置ADC的方案。

电路原理基本如下,运放产生恒流源,加到PT100热电阻和一个4.02K的电阻上。ADC采样4.02K电阻两端的电压作为基准电压,然后ADC采集PT100电阻两端电压,由于流过两电阻的电流(近似)一致,所以有如下公式:

Rpt = 4.02k*Value/8/2^24;

式中的8是由于ADC内部将AD值放大了8倍,最后运算时需要除8,2^24指的是24位adc的最大值,对应的是4.02k电阻的电压值;Value对应的就是PT100电阻上对应的电压值;

如果按上式计算的话,有一定误差。80欧时,就有2欧的误差,估计是引线电阻引起的,用的30cm左右长度的双头夹子线。
外接精密阻值两线测量阻值误差
0
0.027
0.027
80
82.033
2.033
100
102.17
2.17
120
122.385
2.385
150
152.512
2.512
180
182.652
2.652
200
202.895
2.895
300
304.041
4.041


于是修改了下程序,改成三线制测量,理论上可消除引线带来的误差,结果还是有不小的误差。
外接精密阻值两线测量阻值误差三线测试阻值误差
0
0.027
0.027
0.017
0.017
80
82.033
2.033
80.53
0.53
100
102.17
2.17
100.669
0.669
120
122.385
2.385
120.912
0.912
150
152.512
2.512
151.05
1.05
180
182.652
2.652
181.211
1.211
200
202.895
2.895
201.407
1.407
300
304.041
4.041
302.545
2.545

有考虑了另一种方法,既然被测电阻值和读取的adc数据是一次函数关系,那么设阻值为y,读取值为x,则有y = a*x + b;通过多项式计算a, b值即可。
于是计算后下表。
y = a*x + b

外接电阻AD_Valueab
0
50647


80
2738187
33.59425
-1507.609189
100
3411476
33.60829
-1509.979379
120
4086779
33.634433
-1505.808036
150
5091897
33.608333
-1506.977436
180
6098723
33.600422
-1507.332249
200
6775847
33.626
-1506.18569
300
10150651
33.66668
-1504.365741


33.619773
-1506.89396

这是用两线制情况下测到的值计算出来的,最后把a, b的平均值带到计算公式里,然后运行程序,得到的值,是略小于精密电阻的实际阻值。
但,这是包含两根引出线的情况,感觉这样算也不对,你不知道客户那里会用多长的线,引出线的电阻肯定不一样。
y = a*x + b



外接电阻AD_Valueab
代入ab后得到的阻值
0
50647



1.481
80
2738187
33.59425
-1507.609189

79.993
100
3411476
33.60829
-1509.979379

100.011
120
4086779
33.634433
-1505.808036

120.119
150
5091897
33.608333
-1506.977436

150.02
180
6098723
33.600422
-1507.332249

180.214
200
6775847
33.626
-1506.18569

200.064
300
10150651
33.66668
-1504.365741

300.477


33.619773
-1506.89396



相关帖子

沙发
any012|  楼主 | 2016-4-13 11:25 | 只看该作者
现在觉得,误差应该是由于4.02K电阻精度引起的。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

35

主题

232

帖子

6

粉丝