打印

自己的写的PT100的测温和温度软件校准的方法

[复制链接]
37640|89
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
PT100测温校准原理:

PT100就是一个热敏电阻,它的主要成分是铂,化学符号pt,也就传说中的白金,它的温度特性好,稳定性好,耐酸碱性好,所以被用来制作成了温度传感器,并在工业中有大量的应用,当然它的价格不便宜。PT100有一个标准的阻值温度对应表,在0度的时候,它的电阻值在100R,在常温25℃,它的电阻值是109.73R,我们可以通过测量它的电阻变化,就可以换算成温度,最简单的做法就是万用表测它的电阻值,然后查它的电阻温度表就可以转换成对应的温度,很简单吧。

在智能化的今天,我们就不去用万用表测电阻,然后查表,再转换成温度。我们可以把这些繁琐的过程统统交给单片机来处理。测温原理还是一样的,都是测电阻,根据电阻值再换算成温度值。不过用单片机来处理可能步骤会多一些,比上面的要复杂些。


1,测量方法的选择:
Pt100在-50℃时,电阻值是80.31R,在0℃的时候,电阻值是100R,在100℃时,电阻值是138.51R,在200℃时,电阻值是175.86R,300℃时,电阻值是212.05R,在500℃时,电阻值是280.98R,如果我们的温度控制范围在-50℃ --- 500℃,可以看到电阻值的范围是80R --- 300R,其电阻变化是220R,温度变化是550多度,电阻每一欧姆变化大概对应2.5摄氏度的温度变化。对单片机来说,只能通过ADC来采集电压,所以要把电阻的变化转化成电压的变化,这样单片机才可以去识别,并转化成温度。电阻的测量方法有很多种,每一种都有不同的特点,常用的有(1)分压法,(2)恒流法,(3)电桥。

(1)分压法:分压电路如下图,就是电阻分压,然后测量PT100上的电压变化量,这个变化量很小,所以一般要放大。这个电路的优点是原理简单可靠,测量精度有分压电阻决定。

(2)恒流法:恒流法就是让流过pt100上的电流恒定,一般是1ma(因为1ma以上的电流会引起pt100发热),这样再去测pt100上的电压,和分压法相比,它的测量精度由给定的恒流精度决定。

(3)电桥法:电桥法如下图所示,其实上面的分压法本质也是电桥,不过是单桥,下面的是双桥,我们就用双桥来做pt100的测温吧。




我用的是STM32F030F4的3.3V的单片机,ADC的电压范围就是0-3.3v,AD是12位的,所以AD值的范围就是0 --- 4095,我的电桥是3.3V的电压,和 单片机的ADC电源用的同一个电压,如果想要更高精度的温度,可以用恒压源TL431或者更稳定的恒压源IC。

2,电路设计:
(1)电桥的设计参数选择:
PT100电流要小于1ma,电桥电压是3.3V,所以电阻R1选用3K精度1%的电阻。这里尽量选择让流过pt100的电流在1ma附近,其实就是想让电压变化更大些,好方便采集。电桥的原理是比较两个分压电阻中间的电压值。,如果R1=R2,这时候,只有RPT=R3时,电桥才平衡,R3的电阻值就是RPT的电阻值。这个时候电桥是平衡的,后面的ADC的输入是0V,我们单片机采样得到的也是0,如果电桥不平衡,该怎样得pt100的电阻值呢?

(2)运放的参数设计:
选择合适的放大倍数,首先要确定测温的范围,pt100的测温范围可以从-50-600度,我们要根据自己的实际需求确定温度范围,这样才能选择合适的放大备份,我这里选择的10倍的放大。运放的电阻选取要不干扰输出采集端的电压,前面的电桥电阻大概是110R左右,我这里选取是47k和470K的电阻,这样连接在采样的电桥上,几乎不会引起电桥上的分压电阻的电压值。这样要注意运放的+和-端口,别弄错了,我们这里采样的单相3.3V供电,切记。

这样整个电路就确定下来了,下来我们来推算怎样实现电阻到温度的过程吧!我们把电桥看作两个分压电路,运放是放大分压电路的压差值,单片机采样时放大后的电阻值,所以有下面的公式:


;
VDD是电桥电压和AD的参考电压
A是放大器的放大倍数,
ADC是当前AD测量值
ADC_MAX是ADC的最大范围值;
理论上是可以直接通过上面的公式直接计算出当前的的电阻值的,然后根据这个电阻值查表就可以得到当前的温度值。从上面可以看到,测温的精度取决于R1,R3的电阻值,理论上讲是这样的,但是别忘了pt100上还有线电阻,通过上面的公式是消除不了的。

下面部分来讨论下怎样消除pt100的线电阻,有两种办法,(1)硬件上可以使用三线或者4线的pt100传感器。(2)软件上通过校准来消除pt100的线电阻。明显硬件的做法成本要高些,软件校准该怎样呢?还是按照上面的公式,我们来推导软件校准pt100消除线误差和接触误差。

1,校准时,我们把上面的公式可以写成:


2,测量时,那么公式就变成了这样:

3,如果假设,把上面两式相减就可以得到如下,


进一步简化就是:

最后就变成了这样:


公式推导到这里,是不是有些明白了,就是PT100测温时的电阻值,就是校准时候的PT100的电阻值,就是当前温度下的温度变化值,这里已经和R3没有关系了,PT100上的线电阻在校准和当前温度下是一个固定值,也被减掉了,这样就消除了pt100的线电阻。

4,根据查表可以找到对应的的电阻值,所以,这个公式就变成了下面的这样:

上面就是pt100电阻测温时候的电阻值,根据这个电阻值查表,就可以得到当前温度了。
5,根据查表,就可以知道的温度值。


上面是假设,温度增大的过程,反之则****是下面:


这些就是多路pt100的温度校准,测温的过程的,后续待我把程序整理好了,会发布出来,这样方便大家的学习,共同的提高!


可能第一次接触pt100的童鞋对上面的思路还不是很理解,没有关系,自己在纸上好好写写画画推导下,心里对这个过程有个大概的理解,后面我会整个开源一个小pt100的测温项目,用的是stm32f030f4的单片机。

PT100测温原理.rar

39.97 KB

评论
lihui567 2021-12-23 06:51 回复TA
总结很到位 
traps 2018-11-9 20:42 回复TA
学习了 

相关帖子

沙发
快乐小小鱼|  楼主 | 2015-11-23 00:45 | 只看该作者
自己是先用world写好的,里面的公式和图片复制不上,附近是源world,这样更容易大家去理解pt100的校准温度的过程,自己也花了很多精力弄这个,所以共享给大家!让大家可以更快的上手PT100!

使用特权

评论回复
板凳
快乐小小鱼|  楼主 | 2015-11-23 00:58 | 只看该作者
顺便把原理图和代码也共享了吧,这个原理图是电桥的测温,没有用基准电压源,需要高精度的朋友,最好使用恒流的测温,PIC出了一个高精度的恒温原理图,这个在网上可以下载到,测温和校准方法是一一致的,上面的程序或许能给你一点思路吧!

pt100电桥测温的原理图.rar

21.3 KB

stm32f030_pt100.rar

3.26 MB

使用特权

评论回复
地板
xukun977| | 2015-11-23 07:31 | 只看该作者
这个帖子好,讲了混合设计三个方面:
1.RTD 介绍时用手册中图表好,比如激励类型是?系数是0.00385,温度范围?等。
2.基于运放的硬件设计
3.选用合适的ADC

使用特权

评论回复
5
675121727| | 2015-11-23 10:32 | 只看该作者
学习了:victory:

使用特权

评论回复
6
andychen1992| | 2015-12-8 21:31 | 只看该作者
谢谢楼主分享!

使用特权

评论回复
7
ruiboxu| | 2016-1-9 08:51 | 只看该作者
请教你这个温度测试误差值有多大

使用特权

评论回复
8
ruiboxu| | 2016-1-9 14:35 | 只看该作者
你好,对于《/*****************根据ADC的值,转换成当前的温度值*****************/
        if(adc_value_avg >= pt100_check_adc)        //当前温度小于校准时的温度
        {
            res_cur = pt100_table[50+pt100_check_temper] - 7.3242*(adc_value_avg - pt100_check_adc);        //当前温度查对应的电阻值,放大100倍//45.9433
        }
        else
        {
                        res_cur = pt100_table[50+pt100_check_temper] + 7.3242*( pt100_check_adc - adc_value_avg);        //当前温度查对应的电阻值,放大100倍
        }

中的算法不明白

使用特权

评论回复
9
zyj9490| | 2016-1-10 12:38 | 只看该作者
本帖最后由 zyj9490 于 2016-1-22 23:12 编辑

放大变化量是提高精度的关键。直接测量PT100的电压都是笨且不靠谱的思路。

使用特权

评论回复
10
zyj9490| | 2016-1-10 12:40 | 只看该作者
xukun977 发表于 2015-11-23 07:31
这个帖子好,讲了混合设计三个方面:
1.RTD 介绍时用手册中图表好,比如激励类型是?系数是0.00385,温度范 ...

消除共模电压,提高差模电压,是提升测量精度和分辨率的唯一思路。

使用特权

评论回复
11
zwwoshi| | 2016-1-22 17:41 | 只看该作者
好东西 学习

使用特权

评论回复
12
zhang5805350| | 2016-1-30 17:07 | 只看该作者
x想问下电路图为什么打不开?

使用特权

评论回复
13
模拟学徒| | 2016-2-3 11:58 | 只看该作者
zyj9490 发表于 2016-1-10 12:38
放大变化量是提高精度的关键。直接测量PT100的电压都是笨且不靠谱的思路。 ...

放大变化量 是指的 用 电桥方式 吗?

我感觉用电桥方式也是直接测量pt100的电压啊,

使用特权

评论回复
14
zyj9490| | 2016-2-3 16:31 | 只看该作者
模拟学徒 发表于 2016-2-3 11:58
放大变化量 是指的 用 电桥方式 吗?

我感觉用电桥方式也是直接测量pt100的电压啊, ...

电桥方式是取变化量的一种方式,也可以调零点的方式扣掉(需要恒温装置),取出变化量。

使用特权

评论回复
15
coody| | 2016-2-3 20:38 | 只看该作者
我是参考万用表测量电阻的方式,外挂双差分输入ADC,直接测量电阻值,精度主要取决于参考电阻。

使用特权

评论回复
16
int8| | 2016-2-5 12:57 | 只看该作者
没有看到图片 你电桥分压电阻的温度系数是多少 使用STM32的12位ADC 实现的精度和分辨率是多少

使用特权

评论回复
17
yk0yk| | 2016-2-13 15:30 | 只看该作者
谢谢楼主分享!

使用特权

评论回复
18
416356084| | 2016-3-6 12:06 | 只看该作者
正在研究,好东西

使用特权

评论回复
19
海阁| | 2016-3-13 12:33 | 只看该作者
mark

使用特权

评论回复
20
magic_yuan| | 2016-3-14 16:48 | 只看该作者
还不错,学习了

使用特权

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

本版积分规则

14

主题

190

帖子

8

粉丝