1、微机控制技术,第三章 数据采集与处理技术,1、误差校正2、数字滤波3、标度转换4、越限报警,在计算机控制系统中,数据采集与处理是最基本的功能。生产过程的各参数通过传感器、变送器、输入通道,以数字量的形式进入计算机中。计算机在对这些数字量进行控制、显示、存储、打印之前,必须根据需要进行一定的数据处理。常用的数据采集与处理技术方法包括:误差校正、数字滤波、标度变换,越限报警等。,数据处理一般包括三方面内容:1) 对传感器输出的信号进行放大、滤波、I/V转换等处理,通常称为信号调理;2)对采集到计算机中的信号数据进行进行一些处理,如进行系统误差校正、数字滤波,标度变换等处理,通常称之为一次处理;3)
2、对经过前两步得到的测量数据进行分析,寻找规律,判断事物性质,生成所需要的控制信号,此称为二次处理。信号调理都是由硬件完成,而一次和二次处理一般由软件实现。通常所说的数据处理多指上述的一次处理。一次处理的主要任务是提高检测数据的可靠性,并使数据格式化、标准化,以便运算、显示、打印或记录。,3.1 误差校正处理,在控制系统的模拟量输入通道中,一般存在传感器温度漂移、放大器等器件的零点偏移的现象,这些都会造成误差,从而影响测量数据的准确性,这些误差称为系统误差。特点:在一定的测量条件下,其变化规律是可以掌握的,产生误差的原因一般也是知道的。因此,原则上讲,系统误差是可以通过适当的技术途径来确定并加以
3、校正的。 方法:一般采用软件程序进行处理,对系统误差进行自动校准。,1 数字调零零点偏移是造成系统误差的主要原因之一,因此零点的自动调整在实际应用中最多,常把这种用软件程序实现零点调整的方法称为数字调零。实现方法:在测量输入通道中,计算机分时巡回采集校准电压与n路传感变送器送来的电压信号。通过软件程序进行调零。,1)首先测量第0 路的校准信号(接地信号)。理论上电压为零的信号,经放大电路、A/D转换电路进入CPU的数值应当为零,而实际上由于零点偏移产生了一个不等于零的数值,这个值就是零点偏移值N0。 2)然后依次采集1、2、 n各路的值,每次采集到的数字量N1、N2、 Nn值是实际值与零点偏移
4、值N0之和。3)数字调零就是做减法运算,采用(Ni- N0)的差值作为本次测量的实际值。采用数字调零,可去掉放大电路、A/D转换电路本身的偏移及随时间与温度而发生的各种漂移的影响,从而大大降低对这些电路器件的偏移值的要求,降低硬件成本。,2 系统校准 数字调零不能校正由传感器本身引入的误差。为了克服这种缺点,可采用系统校准处理技术。实现方法:系统校准原理与数字调零相似,只是把测量扩展到现场的传感器。在需要校准时,人工接入标准信号VR进行测量,零点漂移的补偿仍由数字调零来完成。调零后标准输入信号VR测得的数据为NR,而实际被测输入信号V调零后测得的数据为N,则可按如下校准式来计算V。,如果在校准
5、时,计算并存放VRNR的值作为校准系数,则测量校准时,只需行一次乘法即可。 有时校准输入信号VR不容易得到,这时可采用输入信号Vi。校准时,计算机测出这时的对应输入Ni,而人工采用其它的高精度仪器测出这时的Vi,并输入计算机中,然后计算机计算并存放ViNi的值,代替前面的VRNR来作校准系数。 系统校准主要适用于传感器特性随时间会发生变化的场合。如电容式湿度传感器,其输入输出特性会随着时间而发生变化,一般一年以上变化会大于精度容许值,需要每隔一段时间进行一次系统校准。,3.2 数字滤波处理,计算机系统通过输入通道采集到的数据信号,虽经硬件的抗干扰处理,仍会有很多随机干扰噪声。因此,为了达到准确
6、的测量与控制,一般情况下还需要进行数字滤波。所谓数字滤波,就是对输入信号采样多次,然后通过一定的程序计算或程序判断进行数字处理,以削弱或滤除干扰造成的误差,从而获得一个真实信号的过程。数字滤波实质上是一种程序滤波。,与模拟滤波器相比,数字滤波主要优点: 1)数字滤波是用程序实现的,不需要增加硬件设备,可靠性高、稳定性好。2)一种滤波子程序可以被多个通道所共用,因而成本很低。3)数字滤波器可以根据信号的不同,采用不同的滤波方法或滤波参数,灵活、方便、功能强。4)数字滤波能对频率很低(如0.01HZ )的信号进行滤波。克服了模拟滤波器的缺陷。数字滤波的不足之处在于要占用CPU的运行时间。主要数字滤
7、波算法包括:算术平均值滤波、中值滤波、限幅滤波、惯性滤波等。,1 平均值滤波,平均值滤波就是对多个采样值进行某种平均来得到测量值。平均值滤波是消除随机误差最常用的方法。可分为如下几种。 (1)算术平均滤波算术平均值法是对输入进行N次采样,得到N个采样数据Xi (i=1N),再寻找一个y,使y与各采样值间的误差平方和最小,即,由一元函数求极值原理可得:,算术平均滤波实际上是在采样周期内,对测量信号多次采样,把多个采样值相加后的算术平均值作为本次的有效采样值。采样次数N值决定了信号的平滑度和灵敏度。提高N的值,可提高平滑度,但系统的灵敏度随之降低,采样次数N的取值随被控对象的不同而不同。一般情况下
8、,流量信号可取10左右,压力信号可取4左右,温度、成分等缓变信号可取2甚至不进行算术平均。平均值滤波法一般适用于含有周期性干扰的信号,但对偶然出现的脉冲干扰信号,滤波效果不理想。,(2)加权平均滤波算术平均值滤波存在平滑性和灵敏度的矛盾。采样次数太少则平滑效果差,次数太多则灵敏度下降,对测量参数的变化趋势不敏感。为协调两者关系,可采用加权平均滤波。算术平均值滤波对每次采样值的加权系数相同,为1/N。加权平均滤波是对各次采样值采用不同的权系数,增加新采样值的权系数。,式中,第N次为最新值,C1、C2、CN 为加权系数,一般满足下式:C1 + C2 + + CN = 1CN CN-1 C1 0C1
9、、C2、CN的取值根据具体情况选取,并通过调试确定。加权平均滤波能协调系统的平滑度和灵敏度的矛盾,提高灵敏度,适用于纯滞后较大的对象。例如,某纯滞后时间为的被控对象,采用m =4的加权平均滤波算式为y(k)=C1 x1+ C2 x2+ C3x3 + C4x4 ,其中,(3)滑动平均滤波前两种的平均滤波算法每取得一个有效采样值时必须连续进行若干次采样。当系统的采样速度较慢或采样信号变化较快时,系统的实时性就无法得到保证。滑动平均滤波是在每个采样周期只采样一次,将这一次采样值和过去的若干次采样值一起算术平均或加权平均,所得结果即为有效采样值。具体作法可由循环队列结构方式来实现数据的存放,比如取 m
10、 个采样值求滑动平均,只要在RAM中开辟m个数据暂存区,每次新采集一个数据便存入暂存区的队尾, 同时冲掉队首的一个数据,这样在存储器队列中始终保持有m个最新的数据。滑动平均滤波算法的最大优势就是实时性好,提高了系统的响应速度。,2 中值滤波,中值滤波是将信号y的连续m次采样值按大小进行排序,取其中间值作为本次的有效采样值。采样次数m应为奇数,一般35次即可。中值滤波对缓变过程中的偶然因素引起的波动或采样器不稳定造成的误差所引起的脉动干扰比较有效,而对快速变化过程(如流量)的信号采样则不适用。,3 限幅滤波,生产过程中许多物理量的变化需要一定的时间,因此相邻两次采样值之间的变化幅度应在一定的限度
11、之内。限幅滤波就是把两次相邻的采样值增量的绝对值与允许的最大差值Y进行比较,如果小于或等于Y,表示本次采样值y(k)是真实的,则取y(k)为有效采样值;反之,y(k)是不真实的, 则取上次采样值y(k1)作为本次有效采样值。当| y(k)y(k1) | Y 时,则取 y(k)当| y(k)y(k1) | Y 时,则取y(k)=y(k-1)Y相邻两次采样值所允许的最大偏差,其大小取决于控制系统采样周期T和信号Y的正常变化率。限幅滤波对随机干扰或采样器不稳定引起的失真有良好的滤波效果。,4 惯性滤波,惯性滤波是模拟硬件RC低通滤波器的数字实现。常用的RC滤波器的传递函数,其中,=RC是滤波器的滤波
12、时间常数。越大,则滤波器的截止频率越低,滤出的电压纹波较小。由于大的时间常数及高精度的RC电路不易制作,所以硬件RC 滤波器不可能对极低频率的信号进行滤波。为此可以模仿硬件RC滤波器的特性参数,用软件做成低通数字滤波器,从而实现一阶惯性的数字滤波。,离散化可得:,整理得 :,式中: y(k)第k次采样的滤波输出值;x(k)第k次采样值y(k-1)第(k-1)次采样的滤波输出值;a滤波系数a =T /(+T ),且01 T采样周期滤波环节的时间常数一般T远小于,即a远小于1,表明本次有效采样值主要取决于上次有效采样值,而本次采样值仅起到修正作用。,采样周期T 足够小,则a T / ,滤波算法的截
13、止频率为 :,当采样周期T一定时,滤波系数 a 越小,数字滤波器的截止频率 f 就越低。例如当T=0.5秒(即每秒采样2次),=16秒时,a =1/32 f = (1/32)/(23.140.5) 0.01Hz这对于变化缓慢的信号(如大型贮水池的水位信号),其滤波效果是很好的。需要根据实际情况,适当选取值,使得被测参数既不出现明显的纹波,反应又不太迟缓 。,上述各种数字滤波方法,各有特点。在实际应用中,究竟采用不采用、以及采用哪一种数字滤波,都应视具体情况而定。有的系统若数字滤波应用得不恰当,非但达不到滤波效果还会降低控制品质;有的系统则需采用复合滤波方法即把几种滤波方法结合起来使用,以便取得
14、更好的滤波效果。,3.3 标度转换处理,计算机控制系统将被测模拟信号并转换成数字量后,一般还需要转换成操作人员所熟悉的工程值。因为被测量对象的各种数据的量纲与AD转换的输入值是不一样的。例如,压力的单位为Pa,流量的单位为m3h,温度的单位为等。这些参数经传感器和AD转换后得到一系列的数码,这些数码值并不等于原来带有量纲的参数值,它仅仅对应于参数值的大小,故必须把它转换成带有量纲的数值后才能运算、显示或打印输出,这种转换称为标度变换。,例:下图是一个温度测控系统,某种热电偶传感器把现场中的温度01200转变为048mV信号,经输入通道中的运算放大器放大到05V,再由8位A/D转换成00FFH的
15、数字量,这一系列的转换过程是由输入通道的硬件电路完成的。,CPU 读入该数字信号在送到显示器进行显示以前,必须把这一无量纲的二进制数值再还原变换成原量纲为的温度信号。比如,最小值00H应变换对应为0、最大值FFH应变换对应为1200。标度变换由算法软件程序来完成的,算法取决于被测参数的工程量与转换后的无量纲数字量之间的函数关系。一般输入通道中的放大器、A/D转换器基本上是线性的,因此,传感器的输入输出特性决定了函数关系的不同形式,也就决定了不同的标度变换方法。主要方法有:线性式变换、非线性式变换、插值法、查表法等。,1 线性标度转换,线性标度变换是最常用的标度变换方式,其前提条件是传感器的输出
16、信号与被测参数之间呈线性关系。,线性标度变换,数字量Nx对应的工程量Ax的线性标度变换公式为:,式中:A0一次测量仪表的下限(测量范围最小值);Am一次测量仪表的上限(测量范围最大值);Ax实际测量值(工程量);N0仪表下限所对应的数字量;Nm仪表上限所对应的数字量;Nx实际测量值所对应的数字量。,上式为线性标度变换的通用公式,其中A0,Am,N0,Nm对某一个具体的被测参数与输入通道来说都是常数,不同的参数有着不同的值。为使程序设计简单,一般把一次测量仪表的下限A0所对应的A/D转换值置为0,即N0=0。这样上式可写成:,在很多测量系统中,仪表下限值A0=0,此时进一步简化为:,上述为为在不
17、同情况下的线性标度变换公式。编程用的标度变换子程序公式分别简化为:,根据上式,可求出不同情况下被测参数的标度转换值。,例 某温度测量仪表的量程为100900,利用8031和ADC0809进行A/D转换。在某一时刻计算机采样并经过数字滤波后的的数字量为0CDH求此时对应的温度值是多少?(设仪表的量程是线性的)解:由已知可得,A0=100,Am=900,Nx=0CDH=(205)D,Nm=0FFH=(255)D,所以此时对应的温度为:,2 非线性标度转换,如果传感器的输出信号与被测参数之间呈非线性关系时,上面的线性变换式均不适用,需要建立新的标度变换公式。由于非线性参数的变化规律各不相同,故应根据
18、不同的情况建立不同的非线性变换式,但前提是它们的函数关系可用解析式来表示。例如,在差压法测流量中,流量与差压间的关系为:,式中:Q 流体流量;K 刻度系数,与流体的性质及节流装置的尺寸有关;P节流装置前后的差压。,流体的流量与被测流体流过节流装置前后产生的压力差的平方根成正比,则可得到测量流量时的标度变换公式为:,式中:Q0 差压流量仪表的下限值; Qm 差压流量仪表的上限值; Qx 被测液体的流量测量值; N0 差压流量仪表下限所对应的数字量; Nm 差压流量仪表上限所对应的数字量; Nx 差压流量仪表测得差压值所对应的数字量。,对于流量仪表,一般下限皆为0,即Q0=0,所以上式可简化为,若
19、取流量表的下限对应的数字量N0=0,便可进一步简化为:,上述公式为不同初始条件下的流量标度变换公式。与线性标度变换公式一样,由于Qo、Qm、N0、Nm都是常数,故以上三式可分别简化为编程用的标度变换子程序公式。,上式即为各种条件下的流量标度转换公式,根据公式可以设计各种条件下的流量标度转换程序。,3 插值法,有些传感器的输出信号与被测参数之间虽为非线性关系, 但它们的函数关系无法用一个解析式来表示,或者解析式过于复杂而难于直接计算。可以采用一种既计算简便又能满足实际工程要求的近似表达式插值法来进行标度变换。,插值多项式就是采用一个n次多项式来代替某种非线性函数关系的方法。插值原理:假设被测参数
20、y与传感器的输出值x具有的函数关系为y=f(x),已知在n+1个相异点处的函数值为:f(x0) = y0,f(x1) = y1,f(xn) = yn。构造一个n次多项式Pn(x) = anxn+ an-1 xn-1+ + a1x + a0 去逼近函数y = f (x),显然,这里已知n+1个条件,有n+1个待定系数a0、a1、an,从而可以唯一构造出插值多项式函数Pn(x)。实际应用中,插值多项函数Pn(x)的次数不能选的太高,一般不超过3次。,例 热敏电阻的阻值与温度之间的关系是非线性的,而且只能以表的方式表示。现构造一个三阶多项式P3( R )来逼近这种函数关系。,取三阶多项式为:t=P3
21、(R)=a3R3 + a2R2 + a1R + a0 并取t=10,17,27,39为插值点,便可以得到以下方程组:8.00003 a3 + 8.00002 a2 + 8.0000 a1 + a0 = 107.01743 a3 + 7.01742 a2 + 7.0174 a1 + a0 = 175.97013 a3 + 5.97012 a2 + 5.9701 a1 + a0 = 275.06313 a3 + 5.06312 a2 + 5.0631 a1 + a0 = 39解上述方程组,得 a3=0.2346989,a2=6.120273, a1=59.28043,a0 = 212.7118则所
22、求的插值多项式为: t=P3(R)= 0.2346989 R3 + 6.120273 R259.28043 R + 212.7118,分段插值法是将被逼近的函数根据其变化情况分成几段,然后将每一段区间分别用直线或抛物线去逼近。分段插值的分段点的选取可按实际曲线的情况灵活决定,既可以采用等距分段法,又可采用非等距分段法。在上例热敏电阻温度t与阻值R的插值多项式,可采用分段线性插值公式(也称分段线性化),用多段折线代替曲线进行计算。,图中曲线为热敏电阻的负温度-电阻特性,折线L0、L1、L2代替或逼近曲线。当获取某个采样值R后,先判断R的大小处于哪一折线段内,然后就可按相应段的线性化公式计算出标度
23、变换值。在实际采用分段线性插值实现标度转换时,一般步骤如下:(1)用实验的方法测出传感器输出特性曲线,应尽可能保证该曲线的精确性;(2)选取插值点,得到各个分段插值的计算公式,将公式参数输入计算机; (3)计算机实际数据采集时,先判断输入值所在的区域,再相应采用插值公式计算,3.4 越限报警处理,为了实现安全生产,在计算机测控系统中,对于重要的参数和部位,都设置紧急状态报警系统,以便及时提醒操作人员注意或采取应急措施,使生产继续进行或在确保人身设备安全的前提下终止生产。其方法就是在计算机采集数据并进行了预处理、数字滤波、标度变换之后,与该参数的设定上限、下限值进行比较,如果高于上限值或低于下限
24、值则进行报警,否则就作为采样的正常值,进行显示和控制。,在控制系统中,报警参数可以是被控参数、被测参数、输入偏差或控制量等,设需要判断的报警参数为XK,该参数的上、下限约束值分别为XH和XL,则越限报警有如下几种形式: 上限报警若XK XH,则发出上限报警,否则继续执行原定操作。上下限报警若XK XH,则上限报警,否则判断XK XL否?若是则下限报警,否则继续执行原定操作。,在具体设计报警程序时,为了避免测量值在极限值一点处来回摆动造成频繁报警,一般应在极限值附近设置一个回差带。,图中XH、XL是上、下限约束值,2e为回差带宽。当被测值超越XHe时,才算越过上限报警值并设置相应的越上限标志(上限标志位置1),同时输出越上限的报警信号; 当被测值下降到XHe 以下时,则复位上限,撤消越上限标志(上限标志位清0)及相应报警信号。当被测值低于XLe点时,才算越过下限并设置相应的越下限标志(下限标志位置1),同时输出越下限的报警信号;当被测值上升到XLe以上时,则复位下限,撤消越下限标志(下限标志位清0)及相应的报警信号。 设置回差值e避免了测量值在极限值XH或XL点处来回摆动造成频繁报警,e值的大小可根据现场具体的被测参数设定。,越限报警程序流程图,