文档介绍:INFI90对Cu50热电阻测温数据的处理
徐贞熙 北京ABB贝利工程有限公司
内容提要:INFI90能直接转换Cu53的检测信号,而对我国广泛使用的Cu50却不能转换。本文介绍用C++语言编程,离线计算INFI90对Cu50铜热电阻传感器测温数据的修正参数。程序包括样本采集,数据拟合,方程求解,误差分析和参数微调。
关键字:INFI90,Cu50,C++,数据拟合
INFI90是控制功能分散,显示﹑操作集中的一种分布式计算机控制系统,广泛应用于电力冶金石油化工等各个行业。其检测单元通过固化的程序能直接将多种型号的热电阻热电偶检测信号转化成数字信号,这其中包括Cu53铜热电阻传感器,但不包括我国广泛使用的Cu50铜热电阻。本文介绍用C++语言编程,离线计算INFI90对Cu50铜热电阻传感器输出信号的修正参数。
在多种工具手册中都能查到各种热电阻的分度号,其中给出了电阻值Rt与温度t的对应关系列表,同时也给出了多种有足够精度的函数表达式,其中对于铜热电阻,有这样一个:
在-50℃≤t≤150℃范围内,
Rt=R0×(1+At+Bt2+Ct3)
其中: Rt是t℃时铜热电阻传感器的电阻值,
R0是0℃时铜热电阻传感器的电阻值。
A=×10-3 B=×10-7 C=×10-9
Cu53的R0=53Ω,电阻与温度的关系如曲线R53,Cu50的R0=50Ω,电阻与温度的关系如曲线R50。INFI90中功能码216有对Cu53铜电阻信号转换的配置,但没有针对Cu50的配置。针对Cu50传感器,在INFI90中可行的做法是,先按Cu53设置,再对功能码216的输出进行修正。
如上图所示,当使用Cu53时,Cu53以电阻R1反映温度x,INFI90根据R1准确判断温度为x。现在改用Cu50,Cu50以R1反映温度y,在修正之前,INFI90输出温度x,因此必须将x修改成y。在-50℃至150℃范围内,x和y满足如下关系:
53×(1+Ax+Bx2+Cx3)=50×(1+Ay+By2+Cy3) (1)
这是以x为已知数﹑以y为未知数的一元三次方程。
一元三次方程可以用卡尔丹公式法求解。标准形式的一元三次方程可写成:
  (2)
其一个实根是
(3)
其中
    
以x为已知数﹑以y为未知数的一元三次方程式(1)化成标准形式(2)后,标准形式所需要的a,b,c,d这4个参数是:
a=50C
b=50B
c=50A
d=-3-53Ax-53Bx2-53Cx3
用INFI90主控制器的功能码搭建式(3)这个一元三次方程的根,至少需要17个实时运算功能块,会大大消耗INFI90实时处理的时空资源,并且由于要求多重高精度运算,对INFI90这种实时工程设备来说,其最终运算误差可能会很可观。
在此提出一种工程实用的方法,即根据式(1),离线在计算机上用C++语言编程,采用逼近法,在-50℃至150℃范围内,获得101组x,y样本对,然后将其拟合成INFI90中,时空占用较少、又有足够精确度的函数功能码167所要求的格式。功能码167要求的输出y和输入x的关系格式是:
y=H+Gx+Fx2+Ex3+Dx4+Cx5+Bx6+Ax7 (4)
为获得y=f(x)的关系,即确定式(4