0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

RTD热电阻测温的驱动设计与实现

CHANBAEK 来源:木南创智 作者:尹家军 2022-12-08 11:03 次阅读

我们已经讨论过多种温度检测方式,但我们尚未关注热电阻温度检测,但热电阻测温在工业环境中是非常常见的。尽管有很多集成的数字式的热电阻接口元器件,但这些器件不但成本较高,灵活性也大打折扣。所以我们有时会使用更简单灵活的电路来驱动RTD。而在这一篇中,我们将讨论如何设计并实现RTD热电阻测温的驱动。

1、功能概述

  RTD热电阻是常用的测温元件。RTD的英文全称为“Resistance Temperature Detector”,因此准确来说,它应该翻译为“电阻温度检测器”。RTD是一种特殊的电阻,其阻值会随着温度的升高而变大,随着温度的降低而减小。工业上利用它的这一特性进行温度测量,因此RTD也被俗称为“热电阻”。

  并不是所有的金属都适合做成RTD,符合这一特性的材料需要满足如下几个要求:

  • 该金属的电阻值与温度变化能呈线性关系;
  • 该金属对温度的变化比较敏感,即单位温度变化引起的阻值变化(温度系数)比较大;
  • 该金属能够抵抗温度变化造成的疲劳,具有好的耐久性;

  符合该要求的金属并不多,常见的RTD材料有:铂(Pt)、镍(Ni)和铜(Cu)。对应的国家统一生产工业标准化热电阻有三种:WZP型铂电阻、WZC型铜热电阻和WZN型镍热电阻。

1.1、铂热电阻

  铂电阻是我们常用的RTD,铂热电阻采用温度系数为3.885x10-3的元件,温度和电阻的关系表达式:

  在-200℃~0℃为:

  在0℃~850℃为:

  其中:Rt温度为t℃时的电阻;R0是温度为0℃时的电阻。而各个系数均为常数:

  常数A=3.9083×10-3

  常数B=-5.775×10-7

  常数C=-4.183×10-12

  铂热电阻对应的测温范围是:-200℃~850℃。常见的型号Pt50、Pt100、Pt200、Pt500和Pt1000等。名称中的数值表示热电阻在0℃下的标称电阻值。

1.2、铜热电阻

  铜热电阻也是在工业上常用的RTD,铜热电阻采用温度系数为:4.28x10-3的元件。温度和电阻的关系表达式:

  其中,Rt是温度为t℃时的电阻,R0是温度为0℃时电阻,而各个系数长数的取值为:

  常数α=4.28x10-3

  常数β=-9.31x10-8

  常数γ=1.23x10-9

  铜热电阻对应的测温范围是:-50℃~150℃。而常见的分类型号有:Cu50、Cu100等。名称中的数值表示热电阻在0℃下的标称电阻值。

1.3、镍热电阻

  另一种工业标准RTD则是镍热电阻。镍热电阻采用温度系数为6.17x10-3的元件。温度和电阻的关系表达式:

  其中,Rt是温度为t℃时的电阻,R0是温度为0℃时电阻,而各个系数长数的取值为:

  常数A=5.485x10-3

  常数B=6.65x10-6

  常数C=2.805x10-11

  镍电阻对应的测温范围是:-60℃~180℃。而常见的分类型号有:Ni100、Ni300、Ni500等。名称中的数值表示热电阻在0℃下的标称电阻值。

2、驱动设计与实现

  我们已经了解了RTD的特性,以及不同材质的RTD温度与点组的关系表达式。接下来我们就实现通过RTD检测温度的驱动。

2.1、对象定义

  在实现RTD的驱动之前,我们依然需要抽象并定义RTD对象,并将其声明为对象类型。

2.1.1、对象的抽象

  在实现对RTD的操作之前,我们先抽象RTD对象。每一个RTD对象都有几个共同的属性:标称电阻,温度和类型。类型就是前面所描述的三种,我们将其定义为枚举。对象的声明如下:

/* 定义RTD类型枚举 */
typedef enum RTDCategory {
    WZP,
    WZC,
    WZN
}RTDCategoryType;

/* 定义RTD对象 */
typedef struct RTDObject{
    float nominalR;     //RTD标称电阻
    float temperature;       //所测温度
    RTDCategoryType type; //RTD类型
}RTDObjectType;

2.1.2、对象的初始化

  声明一个RTD对象后,仅仅只是声明了一个对象变量,在赋值之前尚不能使用。所以我们要使用初始化函数将其初始化之后才可使用。RTD对象的初始化函数如下:

/* 初始化RTD对象 */
void RTDInitialization(RTDObjectType *rtd,RTDCategoryType type,float nr)
{
    if(rtd==NULL)
    {
       return;
    }
   
    rtd->type=type;
    rtd->nominalR=nr;
}

2.2、对象操作

  前面我们已经提到了各类热电阻的电阻与温度的关系表达式。在这些表达式中,二次以上的项的系数其实是非常小的,所以在一般要求不高,温度变化不是很大的场合基本就是线性关系。所以我们将其简化为线性方程:

2.2.1、WZP铂电阻

  铂电阻的温度与电阻的关系在0度以上和0度以下略有差别,但如果我们采用线性近似的话则是一样的。所以我们采用线性方程实现如下:

/* 计算铂电阻温度 */
static float CalcWzpTemperature(RTDObjectType *rtd,float rt)
{
float temp=0.0;
float a=0.0039083;
   
temp=((rt/rtd->nominalR)-1.0)/a;
rtd->temperature=temp;
   
return temp;
}

2.2.2、WZC铜电阻

  铜电阻的温度与电阻的关系表达式相对复杂,但好在高次项的影响相对较小,我们依然可以使用线性近似来实现它。

/* 计算铜电阻温度 */
static float CalcWzcTemperature(RTDObjectType *rtd,float rt)
{
float temp=0.0;
float alpha=0.00428;
   
temp=((rt/rtd->nominalR)-1.0)/alpha;
rtd->temperature=temp;
   
return temp;
}

2.2.3、WZN镍电阻

  镍电阻的电阻温度系数比铂电阻和铜电阻都要好,但其线性度则不如铂电阻,同样的是其高次项的影响也相对较小,在温度并不大范围变化时仍然可以采取线性近似。

/* 计算镍电阻温度 */
static float CalcWznTemperature(RTDObjectType *rtd,float rt)
{
float temp=0.0;
float a=0.005485;
   
temp=((rt/rtd->nominalR)-1.0)/a;
rtd->temperature=temp;
   
return temp;
}

2.2.4、统一温度获取

  面向不同类型的RTD,我们实现了各自的温度转换函数,但作为驱动函数库,我们总是希望能进行无差别调用。所以我们希望设计一个统一的接口函数。所幸每种类型RTD操作函数均有相同的格式,于是我们就很容易想到使用函数指针来处理它。

float (*CalcTemperature[])(RTDObjectType *rtd,float rt)={CalcWzpTemperature,CalcWzcTemperature,CalcWznTemperature};

/*计算热电阻测得的温度*/
float CalcRTDTemperature(RTDObjectType *rtd,float rt)
{
    float temp=0.0;

    temp=CalcTemperature[rtd->type](rtd,rt);

    return temp;
}

3、驱动的使用

  我们采用RTD测温时可以使用这一驱动。其实用步骤分两步:声明并初始化对象;调用函数计算温度值。接下来我们就来实现之。

3.1、声明并初始化对象

  首先使用RTDObjectType类型定义RTD对象,如果有多个可以使用数组方式定义。RTDObjectType rtd;或RTDObjectType rtd[N];的形式。其中N为数量。

  定义对象变量后和以调用初始化函数对齐进行初始化:

  RTDInitialization(&rtd,type,nr);

  其中type为RTDCategoryType枚举类型,可以是铂热电阻(WZP)、铜热电阻(WZC)和镍热电阻(WZN)。nr为所操作对象在0摄氏度时的标称电阻值。

3.2、调用函数计算温度值

  对象初始化后就可以操作对象来获取对象当前时刻的温度值。具体如下:

  CalcRTDTemperature(&rtd,rt);

  其中rt为当前对象的电阻值。

4、应用总结

  我们实现了RTD的检测,对得到的当前温度电阻值,使用根本驱动就可以计算得到当前的温度。

  本驱动支持铂热电阻(WZP)、铜热电阻(WZC)和镍热电阻(WZN)。对于不同该类型,不同标称值的对象均可以使用。不过需要注意:铂热电阻对应的测温范围是:-200℃~850℃;铜热电阻对应的测温范围是:-50℃~150℃;镍电阻对应的测温范围是:-60℃~180℃。超过范围的将不被支持。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 电阻
    +关注

    关注

    85

    文章

    5040

    浏览量

    169644
  • RTD
    RTD
    +关注

    关注

    1

    文章

    142

    浏览量

    27180
  • 热电阻
    +关注

    关注

    6

    文章

    333

    浏览量

    27721
  • 铂电阻
    +关注

    关注

    1

    文章

    61

    浏览量

    34008
  • 驱动设计
    +关注

    关注

    1

    文章

    108

    浏览量

    15187
收藏 人收藏

    评论

    相关推荐

    热电偶和热电阻测温仪表的区别及原理

    热电阻使用在中低温的环境,一般使用热电阻测温范围为200~500℃,甚至还可测更低的温度(如用碳电阻可测到1K左右的低温).现在正常使用铂热电阻
    发表于 05-29 09:45 1644次阅读
    <b class='flag-5'>热电</b>偶和<b class='flag-5'>热电阻</b><b class='flag-5'>测温</b>仪表的区别及原理

    [分享]热电阻

      热电阻  热电阻是中低温区最常用的一种温度检测器。它的主要特点是测量精度高,性能稳定。其中铂热是阻的测量精确度是最高的,它不仅广泛应用于工业测温,而且被制成标准的基准仪。金属
    发表于 08-13 22:23

    热电阻测温原理

    热电阻测温原理        热电阻是中低温区最常用的一种温度检测器
    发表于 08-12 00:28

    热电阻的种类及应用

    热电阻是中低温区最常用的一种温度检测器。它不仅广泛应用于工业测温,而且被制成标准的基准仪。它的主要特点是测量精度高,性能稳定 。其中铂热是阻的测量精确度是最高的。热电阻测温是基于金属导
    发表于 10-18 16:20

    热电阻热电偶的测量常识

    所测量温度,由于宽温所以点偶不能用来高精度测量。热电阻电阻温度传感器(RTD)是最精确最稳定的温度传感器,它的线性度优于热电偶,但RTD
    发表于 07-18 14:23

    热电阻的应用原理

    热电阻是中低温区最常用的一种温度检测器。它的主要特点是测量精度高,性能稳定。其中铂热是阻的测量精确度是最高的,它不仅广泛应用于工业测温,而且被制成标准的基准仪。   1.热电阻测温
    发表于 09-23 09:25

    热电阻温度传感器是如何测温的?

    热电阻温度传感器的工作原理铂热电阻温度传感器是如何测温
    发表于 03-29 06:45

    热电阻测温原理

    热电阻的应用原理简单,在工程中应用广泛,下文我们将详细解答 热电阻测温原理。 热电阻是中低温区最常用的一种温度检测器。它的主要特点是测量精度高,性能稳定。其中铂热是阻的测量精确度是最
    发表于 12-30 11:58 5294次阅读
    <b class='flag-5'>热电阻</b>的<b class='flag-5'>测温</b>原理

    热电阻测温电路图(0°C~500°C)

    热电阻测温电路图(0°C~500°C)
    发表于 07-16 17:23 2144次阅读
    铂<b class='flag-5'>热电阻</b><b class='flag-5'>测温</b>电路图(0°C~500°C)

    热电阻测温电路框图和原理图

    热电阻测温电路框图和原理图 大家都曾年轻过,我曾在研一的时候做过一个热电阻测量电路,这里我先把所有的系统框图和电路图贴出来,把当初的设计思路
    发表于 11-21 15:37 9024次阅读

    热电阻测温原理

    热电阻测温原理与热电偶的测温原理不同的是,热电阻是基于电阻的热效应进行温度测量的,即
    的头像 发表于 09-25 16:37 2.1w次阅读

    工业热电阻温度计的测温范围

    目前,市面上工业热电阻温度计形式种类繁多,以满足各类生产场所及实验室的使用需求。如何选用合适的工业热电阻进行测温需经过仔细选型,才能同时实现可测和测准两方面要求。在进行
    发表于 06-01 10:08 3604次阅读

    PLC热电阻IO的测温范围各是多少呢?

    PLC(可编程逻辑控制器)的热电阻RTD)输入模块通常支持不同的测温范围,具体取决于模块的规格和制造商的设计。
    的头像 发表于 01-08 09:02 410次阅读

    热电阻测温范围是多少?热电阻热电偶有什么不同?

    热电阻测温范围是多少?热电阻热电偶有什么不同? 热电阻RTD)是一种将
    的头像 发表于 01-17 11:05 746次阅读

    热电阻测温有什么特点?热电阻是三线制的吗?热电阻三根线一般怎么接?

    热电阻测温有什么特点?热电阻是三线制的吗?热电阻三根线一般怎么接? 热电阻测温是一种常见且常用的
    的头像 发表于 01-17 11:05 556次阅读