详解K型热电偶转换VB代码函数

电子说

1.2w人已加入

描述

  热电偶
 
  热电偶(thermocouple)是温度测量仪表中常用的测温元件,它直接测量温度,并把温度信号转换成热电动势信号,通过电气仪表(二次仪表)转换成被测介质的温度。各种热电偶的外形常因需要而极不相同,但是它们的基本结构却大致相同,通常由热电极、绝缘套保护管和接线盒等主要部分组成,通常和显示仪表、记录仪表及电子调节器配套使用。
 
  在工业生产过程中,温度是需要测量和控制的重要参数之一。在温度测量中,热电偶的应用极为广泛,它具有结构简单、制造方便、测量范围广、精度高、惯性小和输出信号便于远传等许多优点。另外,由于热电偶是一种有源传感器,测量时不需外加电源,使用十分方便,所以常被用作测量炉子、管道内的气体或液体的温度及固体的表面温度。
 
  工作原理
 
  当有两种不同的导体或半导体A和B组成一个回路,其两端相互连接时,只要两结点处的温度不同,一端温度为T,称为工作端或热端,另一端温度为T0 ,称为自由端(也称参考端)或冷端,回路中将产生一个电动势,该电动势的方向和大小与导体的材料及两接点的温度有关。这种现象称为“热电效应”,两种导体组成的回路称为“热电偶”,这两种导体称为“热电极”,产生的电动势则称为“热电动势”  。
 
  热电动势由两部分电动势组成,一部分是两种导体的接触电动势,另一部分是单一导体的温差电动势。
 
  热电偶回路中热电动势的大小,只与组成热电偶的导体材料和两接点的温度有关,而与热电偶的形状尺寸无关。当热电偶两电极材料固定后,热电动势便是两接点温度t和t0。的函数差 。
 
  这一关系式在实际测温中得到了广泛应用。因为冷端t0恒定,热电偶产生的热电动势只随热端(测量端)温度的变化而变化,即一定的热电动势对应着一定的温度。我们只要用测量热电动势的方法就可达到测温的目的 [1] 。
 
  热电偶测温的基本原理是两种不同成份的材质导体组成闭合回路,
 
  当两端存在温度梯度时,回路中就会有电流通过,此时两端之间就存在电动势——热电动势,这就是所谓的塞贝克效应(Seebeck effect)。两种不同成份的均质导体为热电极,温度较高的一端为工作端,温度较低的一端为自由端,自由端通常处于某个恒定的温度下。根据热电动势与温度的函数关系,制成热电偶分度表;分度表是自由端温度在0℃时的条件下得到的,不同的热电偶具有不同的分度表。
 
  在热电偶回路中接入第三种金属材料时,只要该材料两个接点的温度相同,热电偶所产生的热电势将保持不变,即不受第三种金属接入回路中的影响。因此,在热电偶测温时,可接入测量仪表,测得热电动势后,即可知道被测介质的温度。热电偶测量温度时要求其冷端(测量端为热端,通过引线与测量电路连接的端称为冷端)的温度保持不变,其热电势大小才与测量温度呈一定的比例关系。若测量时,冷端的(环境)温度变化,将严重影响测量的准确性。在冷端采取一定措施补偿由于冷端温度变化造成的影响称为热电偶的冷端补偿正常。与测量仪表连接用专用补偿导线。
 
  热电偶冷端补偿计算方法:
 
  从毫伏到温度:测量冷端温度,换算为对应毫伏值,与热电偶的毫伏值相加,换算出温度;
 
  从温度到毫伏:测量出实际温度与冷端温度,分别换算为毫伏值,相减後得出毫伏值,即得温度。

  在做温度控制时都会遇到热电偶电势转换到温度、温度转换到电势,如果查表编程比较麻烦。我根据热电偶的正函数和反函数编了2个转换函数,个人认为比较方便,而且网上也很少有热电偶的正函数和反函数的资料,所以我show给大家看看,也许各位会用到。这2个函数是针对K型热电偶的。

  注:之前的VtoTemp()函数没有包含负电压的转换,而且还有错误,现在已经做了修改。

  ‘温度转换为电压值

  Private Function TempToV(t As Double)

  Dim C(9) As Double

  Dim a1 As Double

  Dim a0 As Double

  C(0) = -0.017600413686

  C(1) = 0.038921204975

  C(2) = 0.000018558770032

  C(3) = -9.9457592874E-08

  C(4) = 3.1840945719E-10

  C(5) = -5.6072844889E-13

  C(6) = 5.6075059059E-16

  C(7) = -3.2020720003E-19

  C(8) = 9.7151147152E-23

  C(9) = -1.2104721275E-26

  a0 = 0.1185976

  a1 = -0.0001183432

  V = 0

  If t = 0 Then

  TempToV = 0

  Else

  For I = 0 To 9

  V = V + C(I) * t ^ I

  Next

  TempToV = V + a0 * Exp(a1 * (t - 126.9686) ^ 2)

  End If

  End Function

  ’电压值转温度 K型热电偶反函数

  Function VtoTemp(V As Double) As Double ‘V为mV单位

  ’Dim V As Double

  ‘-5.891mV~0(-200℃~0℃)

  Dim C2(10) As Double

  C2(0) = 0

  C2(1) = 25.173462

  C2(2) = -1.1662878

  C2(3) = -1.0833638

  C2(4) = -0.8977354

  C2(5) = -0.37342377

  C2(6) = -0.086632643

  C2(7) = -0.010450598

  C2(8) = -0.00051920577

  ’0.~20.644mV(0℃~500℃)

  Dim C0(9) As Double

  C0(0) = 0

  C0(1) = 25.08355

  C0(2) = 0.07860106

  C0(3) = -0.2503131

  C0(4) = 0.0831527

  C0(5) = -0.01228034

  C0(6) = 0.0009804036

  C0(7) = -0.0000441303

  C0(8) = 0.000001057734

  C0(9) = -0.00000001052755

  ‘20.644~54.886(500℃~1372℃)

  Dim C1(6) As Double

  C1(0) = -131.8058

  C1(1) = 48.30222

  C1(2) = -1.646031

  C1(3) = 0.05464731

  C1(4) = -0.0009650715

  C1(5) = 0.000008802193

  C1(6) = -0.0000000311081

  Dim Temp As Double

  If V 《 0 Then ’-5.891mV(-200)

  For i = 0 To 8

  Temp = Temp + C2(i) * V ^ i

  Next

  ElseIf V 》= 0 And V 《 20.644 Then

  For i = 0 To 9

  Temp = Temp + C0(i) * V ^ i

  Next

  ElseIf V 》= 20.644 Then ‘54.866(1372)

  For i = 0 To 6

  Temp = Temp + C1(i) * V ^ i

  Next

  End If

  VtoTemp = Temp

  End Function


打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
评论(0)
发评论
风在笑 2021-11-22
0 回复 举报
系数是不是不对啊,为啥我在国标里看的小数和指数对应不起来啊 收起回复

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分