根据热电偶传感器电偶热电势与温度之间的非线性特性,以及热电阻传感器电阻与温度之间的非线性特性,设计了一种通用的智能温度变送器,并改进了广泛使用的线性算法。通过引入牛顿迭代法和Horner分段线性拟合算法,提高智能温度变送器测量精度,有效降低存储空间要求。热电偶和热电阻温度变送器是工业上常用的温度测量设备,对其通用性、精度和成本的研究和改进具有重要的现实意义。基于热电偶和热电阻温度传感器转化为电势/电阻和温度之间非线性关系的物理特性,本文所依赖的硬件采用通用数据接口,有利于产业标准化,降低成本。该算法优化考虑了牛顿迭代法和仪表的智能趋势Horner算法提高了测量精度,降低了空间的复杂性,节省了存储空间。本文通过函数计算实现了热电偶、铜电阻和铂电阻的高精度测量。程序中涉及的系统通常存储在智能温度变送器中RAM可移植性高。
1.软件流程方案
本方案以C语言为基础,在软件设计中尽量减少与硬件的相关性,提高可移植性,有利于此类算法的推广和应用。在程序执行过程中,需要调用大量数数据来处理传感器采集的数据,并以数组的形式存储,这对于实现高精度非线性拟合至关重要。
与温度传感器相比,智能温度变送器的设计是通用的。首先,在接受传感器温度转换请求后,应识别其类型,然后根据其型号处理数据信号。若传感器类型为热电阻,则转入根据电阻与温度之间的非线性关系求温度的程序中,此时利用牛顿迭代法对非线性曲线进行分段拟合,进而处理采集数据求出温度值并显示;如传感器类型为热电偶,则一般要进行冷端温度补偿,冷端电阻根据温度反求补偿电动势。根据冷端温度的相对稳定性和环境的可控性,根据热电阻所反映的补偿电势精度在允许范围内。冷端温度测量传感器程序调用软件中固有的热阻温度测量子程序,降低了一般温度变送器程序的复杂性。
2.热电阻传感器算法
本文以铜电阻和铂电阻为例。如果电阻型号不一致,型不一致,只需重新加载参数和电阻分度号,其算法是一致的。strcmp()函数确定电阻分度号,如下:
Strcmp(category,″pt10″)==0;//category[]是电阻型数组。
在确定电阻传感器类型后,根据不同的温度范围给出数组para[]数组长度由不同的数组参数确定。
牛顿迭代是线性化解非线性方程最常用的方法之一。在非线性拟合中,用牛顿迭代法在算法设计中对热电阻分段体验方程,即非线性方程f(t)=0求解,算式为t1=t0-[f(t0)/f′(t0)]。若满足|t1-t0|<X,输出满足精度X的根t1;否则将t1赋值给t继续迭代计算t1.直到满足要求t1为止。但考虑到空间复杂性和时间复杂性,在一般应用中不会有两次以上的迭代。
以传感器热电阻的相关标准参数和分段经验方程作为算法应用的基础。算法时间的复杂性为(3n),n是迭代次数。算法中程序的空间复杂度为30Byte。
3.热电偶冷端补偿算法
热电偶测温需要冷端补偿,因为热电偶冷端保持0℃附近缺乏实际的可操作性。冷端温度采用热电阻测温法确定,然后根据其非线性特性对热电偶进行补偿。热电偶冷端补偿电势由独立子程序获得,参数为冷端温度值和冷端电阻类型。冷端温度值由上述热电阻传感器温度要求程序获得,冷端电阻类型为预设函数常量。在现实环境中,被测冷端温度的取值范围为-50~100℃,完全符合现实,留出足够的余量。
Horner算法是计算多项函数值的标准化算法。在程序设计中,冷端补偿电势由冷端温度值计算Horner规则节省多项计算量。
4.热电偶传感器综合算法
热电偶类型传感器的温度测量应首先根据冷端温度和智能温度变送器所需的测量精度来确定是否需要冷端电势补偿。如果确认需要补偿的参数,调用冷端补偿程序以冷端温度值和热电偶分度号为参数,补偿后与热电偶电势参数相结合,否则可以直接调用热电偶电势作为形状参数导入。系统工作顺序流程如图1所示。
图1热电偶传感器系统流程图
由于热电偶传感器的热电势和温度之间的非线性曲线差异很大,因此不同分度的热电偶传感器应分别进行非线性拟合,其线性算法是一致的。在函数文件中应导入大量的数据常量,可以在头文件中进行声明,相应地,对其每种分度号的经验标准函数公式也是程序算法运算的基础,必须清晰而准确。根据特定分度号热电偶传感器非线性特性的不同特性,需要根据精度要求进行分段线性化,以达到设计所期望的精度和时间空间复杂性。热电偶测温总调用程序如下:
If(compensate==1)
{
Ctemp=resistanceTemp(ccategory,rcvalue);
Cpotential=coldCompensate(ctemp,ccatego-ry);
Value =cpotential;
}
Temp=(float)couple2Temp(category,value);
Returntemp;
算法亦采用Horner规则节省多项运算的计算量,时间复杂度为O(n),n是系数的长度。系统基于上述算法节省了存储空间,系统占用的空间统计如表1所示。 空间统计
输入信号类型
系数个数
占用空间/Byte
R
11 10 6 5=32
256
S
10 10 6 5=31
248
B
9 9=18
144
J
9 8 6=23
184
T
8 7=15
120
E
9 10=19
152
K
9 10 7=26
208
N
10 8 6=24
192
合计
188
1504
5、结束语
智能温度变送器方案与热电偶和热电阻相兼容,显著提高了其通用性和可移植性。牛顿迭代法和Horner在原有条件下,算法等算法技能提高了测量精度,降低了时间/空间的复杂性。文件函数包含两个文件con-vert2Temp.h和convert2Temp.c文件。Con-vert2Temp.h文件是第一个文件,声明了高精度温度测量的常量和所需的子函数。Convert2Temp.cC语言的源代码文件包含在内Covert2Temp.h实现中声明的所有函数。实现这种算法只是一种方式,重点是不断改进算法,不断探索通用性和可移植性。
在实际的智能温度变送器中,误差不仅来自数据处理线性拟合、接线电阻值、电源电压、电子元件噪声等误差因素,而且综合表现为系统测量误差。因此,在实际的工业应用中,最终标准是考虑成本、稳定性误差降低到系统整体误差可以忽略的程度。
上海理工大学光电信息与计算机工程学院作者 欧阳玉东,男,硕士研究生,研究方向:智能仪器