1.5 非线性软件处理
1.5.1 概述
在数据处理系统中,总是希望系统的输入与输出之间的关系为线性关系。但在工程实际中,大多数传感器的输出电信号与被测参数之间呈非线性关系。例如在温度测量中,热电偶或热电阻的输出电压与被测温度之间就是一个非线性关系。产生非线性的原因,一方面是由于传感器本身的非线性,另一方面非电量转换电路也会出现一定非线性。为了保证系统的参数具有线性输出,就必须对输入参数的非线性进行“线性化”处理。过去,通常采用在输入通道中加线性补偿电路的硬件处理技术来进行“线性化”处理。这种处理的基本原理是电路中引入负反馈技术,并要求引入的负反馈电路具有与输入参数相同的非线性特性。但在实际上做到“相同”是非常困难的。随着计算机技术的广泛应用,用软件进行传感器的非线性补偿对输入参数进行“线性化”处理的方法也得到了越来越广泛的应用。
用软件代替硬件进行“线性化”处理,其优点在于:
(1)省去了复杂的非线性硬件电路,简化装置,降低成本。
(2)发挥计算机的快速运算功能,提高了检测的准确性和精度。
(3)适当改变软件的内容,就可对不同的传感器进行补偿。也可同时对多个通道、多个参数进行补偿。
1.5.2 非线性软件处理方法
用软件进行“线性化”处理有3种方法:计算法、查表法和插值法,下面分别进行介绍。
1. 计算法
当输出电信号与传感器的参数之间有确定的数学表达式时,就可采用计算法进行非线性补偿。所谓计算法,就是用软件编制一段完成数学表达式的计算程序。当被测参数经过采样、滤波和变换后,直接进入计算程序进行计算,计算后的数值即为经过线性化处理的输出参数。
在工程实际中,被测参数和输出电压常常是一组测定的数据。这时,如果仍想采用计算法进行线性化处理,则可采用数学曲线拟合的方法,对被测参数和输出电压进行拟合,得到误差最小的近似表达式。
2. 查表法
当数学表达式比较简单时,采用计算法进行补偿是一个切实可行的方法。但如果某些参数计算非常复杂,特别是计算公式涉及指数、对数、三角函数和微分、积分等运算时,程序编制相当麻烦,用计算法计算不仅程序冗长,而且相当费时间。这时,可以采用查表法。
所谓查表法,就是根据A/D的转换精度要求把测量范围内参数变化分成若干等分点,然后由小到大顺序计算出(如没有确定关系,则由实验测定出)这些等分点相对应的输出数值。这些等分点和其对应的输出的数据就组成了一张表。把这些数据表存放在特定的存储区中。软件处理方法就是在程序中编制一般查表程序,当被测参数经采样等转换后,通过查表程序直接从数表中查出其对应的输出参数值。
与计算法相比,查表法虽然没有计算过程,但查表照样要花费时间。同时,数据表格要占据相当大的存储容量,表格的编制也比较麻烦。
3. 插值法
实际使用时,常常把查表法与计算法有机结合起来,形成插值法。下面通过图1-31所示比较详细地讨论这种方法。
图1-31 插值法图示
图1-31所示是某传感器的 X-Y 特性,其中 X为被测参数,Y为输出电量,可以看出它是一个非线性函数关系。将图中输入 X分成 n个均匀的区间,则每个区间的端点 Xk都对应一个输出Yk。把这些(Xk,Yk)编制成表格存储起来。实际的检测量Xi一定会落在某个区间(Xk,Xk+1)内,即 Xk<Xi<Xk+1。插值法就是用一段简单的曲线近似代替这段区间里的实际曲线,然后通过近似曲线公式计算出输出 Yi。使用不同的近似曲线可形成不同的插值方法,其中最常用的为线性插值。
线性插值又称为折线法,用通过(Xk,Yk)、(Xk+1,Yk+1)两点的直线近似代替原特性。由图1-32可以看出,通过点M1、M2的直线的斜率为
图1-32 线性插值法
Yi的计算表达式为
实际使用线性插值时,线性化的精度由折线的段数所决定。所分的段数越多,精度和准确度越好。但所分段数越多,所需表格存储容量也越大。一般分成16~32段折线。具体分段时,可以等分也可以不等分,可根据特性的实际情况而定。
有时候为了提高精度,采用抛物线插值,即以通过(Xk,Yk)、(Xk+1,Yk+1)、(Xk+2,Yk+2)三点的抛物线近似代替区间特性。这时,可以证明,Yi的计算公式为
用软件进行“线性化”处理,不论采用哪种方法,都要花费一定的程序运行时间。因此,这种方法也并不是在任何情况下都是优越的。特别是在实时控制系统中,如果系统处理的问题很多,实时时间性又很强,这时,采用硬件进行处理是必要的。但一般来说,当控制系统的时间够用时,应尽量采用软件方法,从而大大地简化硬件电路。总之,对于传感器的非线性补偿问题,应根据系统的具体情况统筹安排后再决定,或硬件,或软件,或“软硬兼施”。