《数据预处理》由会员分享,可在线阅读,更多相关《数据预处理(87页珍藏版)》请在金锄头文库上搜索。
1、第4章 采样数据预处理技术,本章要点:,引言 1.测量数据的预处理技术 2.常用的几种数字滤波方法 3.标度变换算法和查表方法,4.去除采样数据的奇异点,5.采样数据的平滑处理 6.去处或者提取采样数据的趋势项,在计算机控制系统中,数据采集是最基本的一种模式。一般是通过传感器、变送器把生产过程的各种物理参数转换成电信号,然后经A/D通道或DI通道,把数字量送入计算机中。计算机在对这些数字量进行显示和控制之前,还必须根据需要进行相应的数据处理。 数据处理离不开数值计算,而最基本的数值计算为四则运算。由于控制系统中遇到的现场环境不同,采集的数据种类与数值范围不同,精度要求也不一样,各种数据的输入方
2、法及表示方法也各不相同。因此,为了满足不同系统的需要,设计出了许多有效的数据处理技术方法,如预处理,数字滤波,标度变换,查表和越限报警等。,7.1 测量数据预处理技术,对测量数据的预处理是计算机控制系统数据处理的基础,这包括数字调零技术、系统校准技术以及输入、输出数据的极性与字长的预处理技术。,7.1.1 系统误差的自动校准,在控制系统的测量输入通道中,一般均存在放大器等器件的零点偏移和漂移,会造成放大电路的增益误差及器件参数的不稳定等现象,它们都会影响测量数据的准确性,这些误差都属于系统误差。它的特点是在一定的测量条件下,其变化规律是可以掌握的,产生误差的原因一般也是知道的。因此,系统误差是
3、可以通过适当的技术方法来确定并加以校正的,一般采用软件程序进行处理,即可对这些系统误差进行自动校准。,1.数字调零 零点偏移是造成系统误差的主要原因之一,因此零点的自动调整在实际应用中最多,常把这种用软件程序进行零点调整的方法称为数字调零。,图7-1 数字调零电路,数字调零电路如图7-1所示。在测量输入通道中,CPU分时巡回采集1路校准电路与n路传感变送器送来的电压信号。首先是第0 路的校准信号即接地信号,理论上电压为零的信号,经放大电路、A/D转换电路进入CPU的数值应当为零,而实际上由于零点偏移产生了一个不等于零的数值,这个值就是零点偏移值N0;然后依次采集1、2、 n路,每次采集到的数字
4、量N1、N2、 Nn值就是实际值与零点偏移值N0之和。计算机要进行的数字调零就是做一次减法运算,使(Ni- N0)的差值成为本次测量的实际值。很显然,采用这种方法,可去掉放大电路、A/D转换电路本身的偏移及随时间与温度而发生的各种漂移的影响,从而大大降低对这些电路器件的偏移值的要求,降低硬件成本。,2系统校准 上述数字调零不能校正由传感器本身引入的误差。为了克服这种缺点,可采用系统校准处理技术。 系统校准的原理与数字调零差不多,只是把测量电路扩展到包括现场的传感器,而且不是在每次采集数据时都进行校准,而是在需要时人工接入标准参数进行校准测量,把测得的数据存储起来,供以后实际测量使用。一般自动校
5、准系统只测一个标准输入信号VR,零点漂移的补偿仍由数字调零来完成。 设数字调零后测得标准输入信号VR的数据为NR,而测得实际被测输设数字调零后测得标准输入信号VR的数据为NR,而测得实际被测输入信号V时的数据为N,则可按如下校准式来计算V。,(7-1),系统校准特别适于传感器特性随时间会发生变化的场合。如电容式湿度传感器,其输入输出特性会随着时间而发生变化,一般一年以上变化会大于精度容许值,这时可每隔一段时间(例如3个月或6个月),用其它精确方法测出这时的湿度值,然后把它作为校准值输入测量系统。在实际测量湿度时,计算机将自动用该输入值来校准以后的测量值。,7.1.2 数据极性的预处理,控制系统
6、中处理的信号很多是双极性的,如温度,压力、位置、角度信号等。这就要求在实施控制时,不仅要考虑信号的幅度,还要考虑到信号的极性。为此,在对A/D转换后的数据和D/A转换前的数据进行处理前,必须根据数据的极性先进行预处理,才能保证得到正确的结果。 系统中有的输入信号是单极性的,而输出信号则要求是双极性的,如流量、压力等控制回路;有的则是要求输入和输出信号都是双极性的,如位置、角度等控制回路。下面就这两种情况分别加以讨论。,1输入、输出信号同为双极性 在输入、输出都是双极性信号的控制系统中,程序处理的输入和输出数据不仅反映信号幅度的大小,,也反映信号的极性。假设信号的变化范围为-5V+5V,信号经A
7、/D转换得到的数字量为00HFFH 数字量的最高位D7表示信号的极性。当D70时,表示输入信号为负极性,即数字量00H7FH表示-5V0V的模拟信号;当D71时,表示输入信号为正极性,即数字量7FHFFH表示0V+5V的模拟信号。 在由双极性信号组成的闭环定值控制系统中,设给定信号为R,采样输入信号为Z,则偏差值E = R - Z。因为R 和 Z 的值对应的是双极性信号,所以偏差值E 也是双极性信号,因此在参加运算前也必须进行预处理才能保证最终结果的正确。,预处理的规则:如果偏差值的绝对值大于80H(此为无符号数),则偏差信号取最大值,即信号极性为,负时取00H,信号极性为正时取FFH。否则,
8、将运算结果直接作为偏差信号。,2输入、输出信号分为单双极性 在控制系统中,有时会出现输入信号和给定信号是单极性的,即数字量00HFFH对应同极性的信号,如0+5V;而输出信号则要求是双极性的,即数字量00HFFH对应的是双极性的,如-5V5V。 这类系统的数据预处理与双极性的输入输出系统的方法相同,由于系统的输入是单极性的,因此不必判断极性,只需根据偏差值的大小和符号判断即可。系统的数据预处理程序流程图如图7-2所示。,图7-2 输入单极性输出双极性的数据预处理程序流程图,7.1.3 数据字长的预处理 在计算机控制系统中经常会出现数据字长不一致的情况。如有的系统采用12位A/D转换器采样数据,
9、而输出采用8位D/A转换器;有的系统使用8位A/D转换器进行采样,而为了提高计算的精度,采用双字节运算程序计算。为了满足不同的精度要求,数据在进行数字滤波、标度变换和控制运算后必须对数字量的位数加以处理。,1. 输入位数大于输出位数 当输入器件的分辨率高于输出器件时,如采用10位A/D转换器采样,而CPU把处理后的10位二进制数通过8位D/A转换器输出,就会出现输入位数大于输出位数的情况。,对输入位数大于输出位数的处理方法就是忽略高位数的最低几位。如:10位A/D转换器的输入值为0011111010,此值经处理后送入8位D/A转换器的值就变为00111110。这在计算机中通过向右移位的方法是很
10、容易实现的。 由于10位A/D转换器的采样分辨率要比8位A/D转换器高的多,因此,虽然舍去了最低的两位数会产生一定的误差,但这一误差仍比采用8位输入8位输出系统的误差小。,2输入位数小于输出位数 当输入器件的分辨率比输出器件低时,如采用8位A/D转换器采样,而通过10位D/A转换器进行输出,就会出现输入位数小于输出位数的情况,输入位数小于输出位数的最好处理方法是:将8位数左移两位构成10位数,10位数的最低两位用“0”填充。如; 转换前的8位输入值为:; 转换后的10位输出值为:00。 这种处理方法的优点在于构成的10位数接近10位A/D转换器的满刻度值,其误差在10位数字量的3个步长电压之内
11、。,7.2 数字滤波方法,由于工业生产的现场环境非常恶劣,各种干扰源很多,计算机系统通过输入通道采集到的数据信号,虽经硬件电路的滤波处理,但仍会混有随机干扰,噪声。因此,为了提高系统性能,达到准确的测量与控制,一般情况下还需要进行数字滤波。 数字滤波,就是计算机系统对输入信号采样多次,然后用某种计算方法进行数字处理,以削弱或滤除干扰噪声造成的随机误差,从而获得一个真实信号的过程。这种滤波方法只是根据预定的滤波算法编制相应的程序,实质上是一种程序滤波。因而可靠性高,稳定性好,修改滤波参数也容易,而且一种滤波子程序可以被多个通道所共用,因而成本很低。另外,数字滤波可以对各种干扰信号,甚至极低频率的
12、信号进行滤波。它的不足之处是需要占用CPU的机时。 总之,数字滤波与硬件滤波器相比优点甚多,因此得到了普遍的应用。常用的数字滤波方法有:,平均值滤波、中值滤波、限幅滤波和惯性滤波等。,7.2.1平均值滤波 平均值滤波就是对多个采样值进行平均算法,这是消除随机误差最常用的方法。具体又可分为如下几种。 1. 算术平均滤波 算术平均滤波是在采样周期T内,对测量信号y 进行m次采样, 把m个采样值相加后的算术平均值作为本次的有效采样值,即,(7-2),采样次数m值决定了信号的平滑度和灵敏度。提高m的值,可提高平滑度,但系统的灵敏度随之降低,采样次数m的取值随被控对象的不同而不同。一般情况下,流量信号可
13、取10左右,压力信号可取4左右,温度、成分等缓变信号可取2甚至不进行算术平均。,在编制算法程序时,m一般取2、4、8等2的整数幂,以便于用移位来代替除法求得平均值。 这种算法适用于对周期性干扰的信号滤波,1.去极值平均滤波 算术平均滤波不能将明显的偶然的脉冲干扰消除,只是把其平均到采样结果中,从而降低了测量精度。去极值平均滤波是对连续采样的m个数据进行比较,去掉其中的最大值与最小值,然后计算余下的m-2 个数据的算术平均值。 在编制算法程序时,为便于用移位来代替除法求得平均值,m-2应取2、4、8等,故m取4、6、10等。 这种算法适用于工业场合经常遇到的尖脉冲干扰的信号滤波。,2. 加权平均
14、滤波 算术平均滤波和去极值平均滤波都存在平滑性和灵敏度的矛盾。采样次数太少则平滑效果差,次数太多则灵敏度下降,对测量参数的变化趋势不敏感。为协调两者关系,可采用加权平均滤波。 加权平均滤波是对每次采样值不以相同的权系数而以增加新鲜采样值的权重相加。,(7-3),式中,第m次为最新值,C1、C2、Cm 为加权系数,先小后大,且均为小于1但总和等于1的小数,即满足下式,C1 + C2 + + Cm = 1 Cm Cm-1 C1 0,C1、C2、Cm 的取值应视具体情况选取,并通过调试确定。例如,某纯滞后时间为的被控对象,采用m =4的加权平均滤波算式为,= C1 y 1+ C2 y 2+ C3 y
15、 3+ C4 y 4 ,式中权系数,这种算法能协调系统的平滑度和灵敏度的矛盾,提高灵敏度,更适用于纯滞后较大的对象。,4滑动平均滤波 前三种的平均滤波算法有一个共同点:即每取得一个有效采样值必须连续进行若干次采样。,当系统的采样速度较慢或采样信号变化较快时,系统的实时性就无法得到保证。滑动平均滤波是在每个采样周期只采样一次,将这一次采样值和过去的若干次采样值一起求平均,所得结果即为有效采样值。 具体作法可由循环队列结构方式来实现数据的存放,比如取 m 个采样值求滑动平均,只要在RAM中开辟m个数据暂存区,每次新采集一个数据便存入暂存区的队尾, 同时冲掉队首的一个数据,这样在存储器队列中始终保持
16、有m个最新的数据。滑动平均滤波算法流程图如图7-7所示。,而滑动平均滤波算法的最大优势就是实时性好,提高了系统的响应速度。,7.2.2 中值滤波 中值滤波是将信号y的连续m次采样值按大小进行排序,取其中间值作为本次的有效采样值。本算法为取中值,故采样次数m应为奇数,一般35次即可。 编制中值滤波的算法程序,首先把m个采样值从小到大(或从大到小)进行排队,这可采用几种常规的排序算法如冒泡算法,然后再取中间值。 中值滤波对缓变过程中的偶然因素引起的波动或采样器不稳定造成的误差所引起的脉动干扰比较有效,而对快速变化过程(如流量)的信号采样则不适用。,7.2.3 限幅滤波 经验说明,生产过程中许多物理量的变化需要一定的时间,因此相邻两次采样值之间的变化幅度应在一定的限度之内。限幅滤波就是把两次相邻的采样值相减,求其增量的绝对值,再与两次采样所允许的最大差值Y进行比较,如果小于或等于Y,表示本次采样值y(k)是