版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第5章数据处理技术学习目标:1.理解对测量数据的预处理技术2.学会几种常用的数字滤波方法3.掌握几种非线性补偿方法4.学习查表方法返回总目录第5章数据处理技术学习目标:1.理解对测量数据的预处理技1引言5.1查表技术5.2测量数据的预处理技术5.3非线性补偿5.4数字滤波方法本章主要内容引言本章主要内容2引言
在微机控制系统中,数据采集是最基本的一种模式。一般是通过传感器、变送器把生产过程的各种物理参数转换成电信号,然后经A/D通道或DI通道,把数字量送入计算机中。计算机在对这些数字量进行显示和控制之前,还必须根据需要进行相应的数据处理。
数据处理离不开数值计算,而最基本的数值计算为四则运算。由于控制系统中遇到的现场环境不同,采集的数据种类与数值范围不同,精度要求也不一样,各种数据的输入方法及表示方法也各不相同。因此,为了满足不同系统的需要,设计出了许多有效的数据处理技术方法,如数据的极性、字长预处理,数字滤波,标度变换,查表,非线性补偿和越限报警等。引言35.1查表法所谓查表法就是把事先计算或测得的数据按照一定顺序编制成表格,查表程序的任务就是根据被测参数的值或者中间结果,查出最终所需要的结果。它是一种非数值计算方法,利用这种方法可以完成数据的补偿、计算、转换等各种工作。比如输入通道中对热电偶特性的处理,可以用非线性插值法进行标度变换,也可以采用精度更高效果更好的查表法进行标度变换——利用热电偶的mV-℃分度表,通过计算机的查表指令就能迅速便捷地由电势mV值查到相应的温度℃值;当然控制系统中还会有一些其它参数或表格也是如此,如对数表、三角函数表、模糊控制表等。5.1查表法所谓查表法就是把事先计算或测得4查表程序的繁简程度及查询时间的长短,除与表格的长短有关外,很重要的因素在于表格的排列方法。一般来讲,表格有两种排列方法:(1)无序表格,即表格中的数据是任意排列的;(2)有序表格,即表格中的数据按一定的顺序排列。表格的排列不同,查表的方法也不尽相同。具体的查表方法有:顺序查表法,计算查表法,折半查表法等。查表程序的繁简程度及查询时间的长短,除与表格的长5
5.1.1顺序查表法
顺序查表法是针对无序表格的一种方法。其查表方法类似人工查表。因为无序表格中所有各项的排列均无一定的规律,所以只能按照顺序从第一项开始逐项寻找,直到找到所要查找的关键字为止。顺序查表法虽然比较“笨”,但对于无序表格或较短表格而言,仍是一种比较常用的方法。5.1.1顺序查表法顺序查表法是65.1.2计算查表法在微机数据处理中,一般使用的表格都是线性表,它是若干个数据元素X1,X2,…,Xn的集合,各数据元素在表中的排列方法及所占的存储器单元个数都是一样的。因此,要搜索的内容与表格的排列有一定的关系。只要根据所给的关键字,通过一定的计算,求出此关键字所对应的数值的地址,然后将该地址单元的内容取出即可。
关键字与表格数据地址之间的关系能用数学公式表示的一个有序表格5.1.2计算查表法在微机数据处理中,一7这种有序表格要求各元素在表中的排列格式及所占用的空间必须一致,而且各元素是严格按顺序排列。其关键在于找出一个计算表地址的公式,只要公式存在,查表的时间与表格的长度无关。正因为它对表格的要求比较严格,并非任何表格均可采用。通常它适用于某些数值计算程序、功能键地址转移程序以及数码转换程序等。例如,某计算机温度巡回检测系统中,要求能对128个温度采样点的状态进行监视。当某采样点温度超限(高于上限值或低于下限值)时,控制报警装置进行报警。这种有序表格要求各元素在表中的排列格式及所占用8步骤:1)在计算机存储器内建立一个“温度超限报警数据表”。在该表中,顺次存放各检测回路采样点的上限报警值、下限报警值。2)设此数据表的首地址为F,巡回检测回路的路号是K,则报警值所在单元地址D为:D=F+2K3)将K路的采样数据分别与D单元及D+1单元的数据进行比较。步骤:95.1.3折半查表法在前面介绍的两种查表方法中,顺序查表法速度比较慢,计算查表法虽然速度很快,但对表格的要求比较挑剔,因而具有一定的局限性。在实际应用中,很多表格都比较长,且难以用计算查表法进行查找,但它们一般都满足从大到小或从小到大的排列顺序,如热电偶mV-℃分度表,流量测量中差压与流量对照表等等。对于这样的表格,通常采用快速而有效的折半查表法。
按关键字大小顺序排列的数据表格5.1.3折半查表法在前面介绍的两种查10
折半查表法的具体做法是:(假设数据表中数据按从小到大的顺序排列)先取数组的中间值D=n/2进行查找,与要搜索的X值进行比较,若相等,则查到;如果X>n/2项,则下一次取n/2~n间的中值,即3n/4与X进行比较;若X<n/2项,则取0~n/2的中值,即n/4进行比较。如此比较下去,则可逐次逼近要搜索的关键字,直到找到为止。折半查表法的具体做法是:(假设数据表中数据按从115.2数据的预处理5.2.1数据极性的预处理控制系统中处理的信号很多是双极性的,如温度、压力、位置、角度信号等。这就要求在实施控制时,不仅要考虑信号的幅度,还要考虑到信号的极性。为此,在对A/D转换后的数据和D/A转换前的数据进行处理前,必须根据数据的极性先进行预处理,才能保证得到正确的结果。系统中有的输入信号是单极性的,而输出信号则要求是双极性的,如流量、压力等控制回路;有的则是要求输入和输出信号都是双极性的,如位置、角度等控制回路。下面就这两种情况分别加以讨论。5.2数据的预处理5.2.1数据极性的预处理121.输入、输出信号同为双极性在输入、输出都是双极性信号的控制系统中,程序处理的输入和输出数据不仅反映信号幅度的大小,也反映信号的极性。假设信号的变化范围为-5V~+5V,信号经A/D转换得到的数字量为00H~FFH,数字量的最高位D7表示信号的极性。当D7=0时,表示输入信号为负极性,即数字量00H~7FH表示-5V~0V的模拟信号;当D7=1时,表示输入信号为正极性,即数字量7FH~FFH表示0V~+5V的模拟信号。1.输入、输出信号同为双极性13在由双极性信号组成的闭环定值控制系统中,设给定信号为Y,采样输入信号为X,则偏差值E=Y-X。因为Y和X的值对应的是双极性信号,所以偏差值E也是双极性信号,因此在参加运算前也必须进行预处理才能保证最终结果的正确性。
预处理的规则:如果偏差值的绝对值大于80H(此为无符号数),则偏差信号取最大值,即信号极性为负时取00H,信号极性为正时取FFH。否则,将运算结果直接作为偏差信号。在由双极性信号组成的闭环定值控制系统中,设给定信142.输入、输出信号分为单双极性在控制系统中,有时会出现输入信号和给定信号是单极性的,即数字量00H~FFH对应同极性的信号,如0~+5V;而输出信号则要求是双极性的,即数字量00H~FFH对应的是双极性的,如-5V~+5V。这类系统的数据预处理与双极性的输入输出系统的方法相同,由于系统的输入是单极性的,因此不必判断极性,只需根据偏差值的大小和符号判断即可。系统的数据预处理程序流程图如图5.2所示。2.输入、输出信号分为单双极性15图5.2输入单极性输出双极性的数据预处理程序流程图图5.2输入单极性输出双极性的数据预处理程序流程图165.2.2数据字长的预处理
在微机控制系统中经常会出现数据字长不一致的情况。如有的系统采用12位A/D转换器采样数据,而输出采用8位D/A转换器;有的系统使用8位A/D转换器进行采样,而为了提高计算的精度,采用双字节运算程序计算。为了满足不同的精度要求,数据在进行数字滤波、标度变换和控制运算后必须对数字量的位数加以处理。1.输入位数大于输出位数当输入器件的分辨率高于输出器件时,如采用10位A/D转换器采样,而CPU把处理后的10位二进制数通过8位D/A转换器输出,就会出现输入位数大于输出位数的情况。5.2.2数据字长的预处理1.输入位数大于输出位数17
对输入位数大于输出位数的处理方法就是忽略高位数的最低几位。如:10位A/D转换器的输入值为0011111010,此值经处理后送入8位D/A转换器的值就变为00111110。这在计算机中通过向右移位的方法是很容易实现的。由于10位A/D转换器的采样分辨率要比8位A/D转换器高的多,因此,虽然舍去了最低的两位数会产生一定的误差,但这一误差仍比采用8位输入8位输出系统的误差小。设输入值存放在IN_H和IN_L单元中,转换后的数值存于OUT单元中。程序清单为:对输入位数大于输出位数的处理方法就是忽略高位数18CLR CMOV A,IN_HRRC AMOV IN_H,AMOV A,IN_LRRC AMOV IN_L,ACLR CMOV A,IN_HRRC AMOV A,IN_LRRC AMOV OUT,ACLR C19为了提高转换精度,可以采用“四舍五入”的方法对最低两位进行转换。方法为:将移位前的数据加上0000000010B后再进行处理。但是当10位数字量为1111111111B和1111111110B时,”四舍五入“后的结果为10000000000B,显然结果是错误的。解决的方法:在加上0000000010B并进行移位后,再检查是否有溢出,如果有,则将移位的结果减一,没有则保持原结果。程序清单:CLR CADD IN_H,#02HADDC IN_L,#00HMOV A,IN_HRRC AMOV IN_H,A为了提高转换精度,可以采用“四舍五入”的方法对最低两位进行转20
MOV A,IN_L RRC A MOV IN_L,A
CLR C MOV A,IN_H RRC A MOV IN_H,A MOV A,IN_L RRC A
JNB IN_H.0,END_C DEC AEND_C: MOV OUT,A RET MOV A,IN_L21
输入位数小于输出位数的最好处理方法是:将8位数左移两位构成10位数,10位数的最低两位用“0”填充。如;转换前的8位输入值为:××××××××;转换后的10位输出值为:××××××××00。这种处理方法的优点在于构成的10位数接近10位A/D转换器的满刻度值,其误差在10位数字量的3个步长电压之内。2.输入位数小于输出位数当输入器件的分辨率比输出器件低时,如采用8位A/D转换器采样,而通过10位D/A转换器进行输出,就会出现输入位数小于输出位数的情况输入位数小于输出位数的最好处理方法是:将8位数225.4数字滤波方法数字滤波,就是计算机系统对输入信号采样多次,然后用某种计算方法进行数字处理,以削弱或滤除干扰噪声造成的随机误差,从而获得一个真实信号的过程。这种滤波方法是根据预定的滤波算法编制相应的程序,实质上是一种程序滤波。因而可靠性高,稳定性好,修改滤波参数也容易,而且一种滤波子程序可以被多个通道所共用,因而成本很低。另外,数字滤波可以对各种干扰信号,甚至极低频率的信号进行滤波。它的不足之处是需要占用CPU的机时。总之,数字滤波与硬件滤波器相比优点甚多,因此得到了普遍的应用。常用的数字滤波方法有:限幅滤波、限速滤波、中值滤波、平均值滤波(算术平均值、加权平均值、去极值平均值、滑动平均值)等。5.4数字滤波方法235.4.1限幅滤波经验说明,生产过程中许多物理量的变化需要一定的时间,因此相邻两次采样值之间的变化幅度应在一定的限度之内。限幅滤波就是把两次相邻的采样值相减,求其增量的绝对值,再与两次采样所允许的最大差值X进行比较,如果小于或等于X,表示本次采样值X(n)是真实的,则取X(n)为有效采样值;反之,X(n)是不真实的,则取上次采样值X(n1)作为本次有效采样值。5.4.1限幅滤波24当|
X(n)X(n1)|
X
时,则取
Y(n)=X(n)当|
X(n)X(n1)|>X时,则取Y(n)=X(n-1)
式中:X(n)──t=nT时的采样值;
X(n-1)──t=(n-1)T时的采样值;
X──相邻两次采样值所允许的最大偏差,其大小取决于控制系统采样周期T和信号X的正常变化率。限幅滤波对随机干扰或采样器不稳定引起的失真有良好的滤波效果。当|X(n)X(n1)|X时,则取Y(n255.4.2限速滤波1、当|
X(n)X(n1)|
X
时,则取
Y(n)=X(n)
2、当|
X(n)X(n1)|>X时,则X(n)不用,但先保留,再取第三次采样值X(n+1)
(1)若|
X(n+1)X(n)|
X,则取Y(n)=X(n+1)(2)若|
X(n+1)X(n)|>X,则取Y(n)=[X(n+1)+X(n)
]/2,即以折中值作为数值滤波器的输出。5.4.2限速滤波265.4.3中(位)值滤波中值滤波是将信号X的连续k次采样值按大小进行排序,取其中间值作为本次的有效采样值。本算法为取中值,故采样次数k应为奇数,一般3~9次。编制中值滤波的算法程序,首先把k个采样值从小到大(或从大到小)进行排队,这可采用几种常规的排序算法如冒泡算法,然后再取中间值。中值滤波对缓变过程中的偶然因素引起的波动或采样器不稳定造成的误差所引起的脉动干扰比较有效,而对快速变化过程(如流量)的信号采样则不适用。5.4.3中(位)值滤波275.4.4平均值滤波平均值滤波就是对多个采样值进行平均算法,这是消除随机误差最常用的方法。具体又可分为如下几种。1.算术平均滤波算术平均滤波是在采样周期T内,对测量信号X进行N次采样,把N个采样值相加后的算术平均值作为本次的有效采样值Y,即5.4.4平均值滤波28
采样次数N值决定了信号的平滑度和灵敏度。提高N的值,可提高平滑度,但系统的灵敏度随之降低,采样次数N的取值随被控对象的不同而不同。一般情况下,流量信号可取10左右,压力信号可取4左右,温度、成分等缓变信号可取2甚至不进行算术平均。
在编制算法程序时,N一般取2、4、8等2的整数幂,以便于用移位来代替除法求得平均值。这种算法适用于对周期性干扰的信号滤波
采样次数N值决定了信号的平滑度和灵敏度。提高N的292.加权平均滤波
算术平均滤波和去极值平均滤波都存在平滑性和灵敏度的矛盾。采样次数太少则平滑效果差,次数太多则灵敏度下降,对测量参数的变化趋势不敏感。为协调两者关系,可采用加权平均滤波。加权平均滤波是对每次采样值不以相同的权系数而以增加新鲜采样值的权重相加。2.加权平均滤波30
式中,第m次为最新值,C1、C2、…、Cm为加权系数,先小后大,且均为小于1但总和等于1的小数,即满足下式
C1+C2+…+Cm=1Cm>Cm-1>…C1>0C1、C2、…、Cm的取值应视具体情况选取,并通过调试确定。如,某纯滞后时间为τ的被控对象,采用m=4的加权平均滤波算式为=C1
y
1+C2
y
2+C3
y
3+C4
y
4
式中,第m次为最新值,C1、C2、…、Cm31式中权系数,,,,这种算法能协调系统的平滑度和灵敏度的矛盾,提高灵敏度,更适用于纯滞后时间常数较大的对象。由于需要测试过程的纯滞后时间,并计算各位权系数,所以增加了计算量,降低了控制速度。式中权系数,,,,这种算法能协调系统的平323.抗脉冲干扰平均值滤波(去极值平均滤波)
算术平均滤波不能将明显的偶然的脉冲干扰消除,只是把其平均到采样结果中,从而降低了测量精度。将算术平均滤波和中值滤波相结合得到的去极值平均滤波是对连续采样的m个数据进行比较,去掉其中的最大值与最小值,然后计算余下的m-2个数据的算术平均值。在编制算法程序时,为便于用移位来代替除法求得平均值,m-2应取2、4、8等,故m取4、6、10等。这种算法适用于工业场合经常遇到的尖脉冲干扰的信号滤波。3.抗脉冲干扰平均值滤波(去极值平均滤波)33保护现场采样次数R0采样数据排序对除了最大值、最小值以外的N-2个数算术平均保存滤波数据恢复现场返回开始保护现场采样次数R0采样数据排序对除了最大值、最小值以保344.滑动平均值滤波前三种的平均滤波算法有一个共同点:即每取得一个有效采样值必须连续进行若干次采样。当系统的采样速度较慢或采样信号变化较快时,系统的实时性就无法得到保证。为了克服这一缺点,可采用滑动平均滤波,它指的是在每个采样周期只采样一次,将这一次采样值和过去的若干次采样值一起求平均,所得结果即为有效采样值。具体作法可由循环队列结构方式来实现数据的存放,比如取
m
个采样值求滑动平均,只要在RAM中开辟m个数据暂存区,每次新采集一个数据便存入暂存区的队尾,同时冲掉队首的一个数据,这样在存储器队列中始终保持有m个最新的数据。4.滑动平均值滤波35具体为:(1)在计算机的RAM内建立一个数据缓冲区,各单元中依次存放N次采样值;(2)每当一个采样周期到来,采集到一个新的数据时,首先将该数据缓冲区的数据顺次移动一位,使最早的采样数据丢失,然后将本次采样值存入缓冲区入口处。(3)求出当前RAM缓冲区中的N个数据的算术平均值,并将此值作为当前采样的有效值。滑动平均滤波算法的最大优势就是实时性好,提高了系统的响应速度。具体为:365.3非线性补偿
在过程控制中,由于由传感器等检测元件测得的电信号与被检测的物理参数之间往往存在非线性关系,例如,温度测量中,热电偶输出的热电势信号与温度之间的关系是非线性的。为了得到均匀的显示刻度,希望系统的输出与输入有线性关系,往往采用非线性补偿方法,将非线性关系转化为线性关系。硬件补偿:补偿精度不高软件补偿:方法灵活,补偿精度高5.3非线性补偿在过程控制中,由于由传感器等检测元件37软件补偿方法:当参数间的非线性关系可以用数学方程式来表示时,计算机直接按公式进行计算即可;当无法用数学方程式表示时,可查表法、分段线性化等方法来实现。查表法,指的是事先将计算好的数据按一定顺序编制成表格,并存入计算机中。然后我们根据被测参数的实测数据,查表查出被测量数值。由于受存储容量的限制,表格中一般只给出了一些稀疏点上的数据,而对于相邻两点之间的函数值没有给出,为了获得这部分数值,可以用插值法进行计算。软件补偿方法:385.3.1线性插值法1.线性插值原理设某传感器输入信号X和输出信号Y之间的关系如下图所示。5.3.1线性插值法39从上图可以看出:(1)曲线斜率变化越小,替代直线越逼近特性曲线,则线性插值法带来的误差就越小。因此,线性插值法适用于斜率变化不大的特性曲线的线性化。(2)插值节点取得越多,替代直线越逼近实际的曲线,插值计算的误差就越小。因此,只要插值节点足够多,就可以获得足够的精度。从上图可以看出:402.线性插值的计算机实现利用计算机实现线性插值的步骤如下:(1)用实验法测出传感器输出特性曲线,应尽可能保证该曲线的精确性;(2)选取插值节点,将绘制好的曲线分段;(3)计算并存储各相邻插值节点间逼近曲线的斜率Ki;(4)计算X-Xi;(5)读出X所在区间的斜率Ki,计算Ki(X-Xi);(6)计算Y=Yi+Ki(X-Xi)。2.线性插值的计算机实现415.3.2二次抛物线插值法线性插值法是利用两个插值节点(x0,y0),(x1,y1)确定的一条直线段来求得y=f(x)的近似值,误差较大。二次抛物线插值法是通过特性曲线上三个节点(x0,y0),(x1,y1),(x2,y2)做一条抛物线,用此抛物线替代特性曲线进行参数计算。由于抛物线比直线能更好地逼近特性曲线,所以抛物线插值法能够提高非线性补偿的精度。线性插值法和抛物线插值法补偿精度比较如图所示。5.3.2二次抛物线插值法42假设系数M0、M1和M2已经求出并存储到到相应的内存单元中,根据上面的讨论可以画出用抛物线插值法进行线性化的程序流程框图,如图所示。其中,假设系数M0、M1和M2已经求出并存储到到相应的43本章小结本章介绍了微机测控系统对测量数据的常用数据处理技术:查表,数据字长和极性的预处理,数字滤波和非线性补偿等技术方法。数字滤波由于具有突出的效果,所以在计算机测控系统中除了设计必要的硬件滤波电路之外,一般都要用软件对采样信号做进一步的数字滤波。读者应掌握几种主要的数字滤波的算法及其应用场合。在非线性补偿的几种插值法中,应注意,线性插值法速度快,但是精度较低;二次抛物线插值法精度稍高,但是速度慢,可根据实际情况选择。本章小结本章介绍了微机测控系统对测量数据的常用44思考题l.查表法有哪几种?说明它们的查找过程和适用范围。2.掌握数据字长的预处理方法,并会用程序实现。3.何为数字滤波?所学习的数字滤波方法有哪些?简述各种常用数字滤波方法的原理或算法及适用场合。4.了解插值法的原理。思考题l.查表法有哪几种?说明它们的查找过程和适用范围。45第5章数据处理技术学习目标:1.理解对测量数据的预处理技术2.学会几种常用的数字滤波方法3.掌握几种非线性补偿方法4.学习查表方法返回总目录第5章数据处理技术学习目标:1.理解对测量数据的预处理技46引言5.1查表技术5.2测量数据的预处理技术5.3非线性补偿5.4数字滤波方法本章主要内容引言本章主要内容47引言
在微机控制系统中,数据采集是最基本的一种模式。一般是通过传感器、变送器把生产过程的各种物理参数转换成电信号,然后经A/D通道或DI通道,把数字量送入计算机中。计算机在对这些数字量进行显示和控制之前,还必须根据需要进行相应的数据处理。
数据处理离不开数值计算,而最基本的数值计算为四则运算。由于控制系统中遇到的现场环境不同,采集的数据种类与数值范围不同,精度要求也不一样,各种数据的输入方法及表示方法也各不相同。因此,为了满足不同系统的需要,设计出了许多有效的数据处理技术方法,如数据的极性、字长预处理,数字滤波,标度变换,查表,非线性补偿和越限报警等。引言485.1查表法所谓查表法就是把事先计算或测得的数据按照一定顺序编制成表格,查表程序的任务就是根据被测参数的值或者中间结果,查出最终所需要的结果。它是一种非数值计算方法,利用这种方法可以完成数据的补偿、计算、转换等各种工作。比如输入通道中对热电偶特性的处理,可以用非线性插值法进行标度变换,也可以采用精度更高效果更好的查表法进行标度变换——利用热电偶的mV-℃分度表,通过计算机的查表指令就能迅速便捷地由电势mV值查到相应的温度℃值;当然控制系统中还会有一些其它参数或表格也是如此,如对数表、三角函数表、模糊控制表等。5.1查表法所谓查表法就是把事先计算或测得49查表程序的繁简程度及查询时间的长短,除与表格的长短有关外,很重要的因素在于表格的排列方法。一般来讲,表格有两种排列方法:(1)无序表格,即表格中的数据是任意排列的;(2)有序表格,即表格中的数据按一定的顺序排列。表格的排列不同,查表的方法也不尽相同。具体的查表方法有:顺序查表法,计算查表法,折半查表法等。查表程序的繁简程度及查询时间的长短,除与表格的长50
5.1.1顺序查表法
顺序查表法是针对无序表格的一种方法。其查表方法类似人工查表。因为无序表格中所有各项的排列均无一定的规律,所以只能按照顺序从第一项开始逐项寻找,直到找到所要查找的关键字为止。顺序查表法虽然比较“笨”,但对于无序表格或较短表格而言,仍是一种比较常用的方法。5.1.1顺序查表法顺序查表法是515.1.2计算查表法在微机数据处理中,一般使用的表格都是线性表,它是若干个数据元素X1,X2,…,Xn的集合,各数据元素在表中的排列方法及所占的存储器单元个数都是一样的。因此,要搜索的内容与表格的排列有一定的关系。只要根据所给的关键字,通过一定的计算,求出此关键字所对应的数值的地址,然后将该地址单元的内容取出即可。
关键字与表格数据地址之间的关系能用数学公式表示的一个有序表格5.1.2计算查表法在微机数据处理中,一52这种有序表格要求各元素在表中的排列格式及所占用的空间必须一致,而且各元素是严格按顺序排列。其关键在于找出一个计算表地址的公式,只要公式存在,查表的时间与表格的长度无关。正因为它对表格的要求比较严格,并非任何表格均可采用。通常它适用于某些数值计算程序、功能键地址转移程序以及数码转换程序等。例如,某计算机温度巡回检测系统中,要求能对128个温度采样点的状态进行监视。当某采样点温度超限(高于上限值或低于下限值)时,控制报警装置进行报警。这种有序表格要求各元素在表中的排列格式及所占用53步骤:1)在计算机存储器内建立一个“温度超限报警数据表”。在该表中,顺次存放各检测回路采样点的上限报警值、下限报警值。2)设此数据表的首地址为F,巡回检测回路的路号是K,则报警值所在单元地址D为:D=F+2K3)将K路的采样数据分别与D单元及D+1单元的数据进行比较。步骤:545.1.3折半查表法在前面介绍的两种查表方法中,顺序查表法速度比较慢,计算查表法虽然速度很快,但对表格的要求比较挑剔,因而具有一定的局限性。在实际应用中,很多表格都比较长,且难以用计算查表法进行查找,但它们一般都满足从大到小或从小到大的排列顺序,如热电偶mV-℃分度表,流量测量中差压与流量对照表等等。对于这样的表格,通常采用快速而有效的折半查表法。
按关键字大小顺序排列的数据表格5.1.3折半查表法在前面介绍的两种查55
折半查表法的具体做法是:(假设数据表中数据按从小到大的顺序排列)先取数组的中间值D=n/2进行查找,与要搜索的X值进行比较,若相等,则查到;如果X>n/2项,则下一次取n/2~n间的中值,即3n/4与X进行比较;若X<n/2项,则取0~n/2的中值,即n/4进行比较。如此比较下去,则可逐次逼近要搜索的关键字,直到找到为止。折半查表法的具体做法是:(假设数据表中数据按从565.2数据的预处理5.2.1数据极性的预处理控制系统中处理的信号很多是双极性的,如温度、压力、位置、角度信号等。这就要求在实施控制时,不仅要考虑信号的幅度,还要考虑到信号的极性。为此,在对A/D转换后的数据和D/A转换前的数据进行处理前,必须根据数据的极性先进行预处理,才能保证得到正确的结果。系统中有的输入信号是单极性的,而输出信号则要求是双极性的,如流量、压力等控制回路;有的则是要求输入和输出信号都是双极性的,如位置、角度等控制回路。下面就这两种情况分别加以讨论。5.2数据的预处理5.2.1数据极性的预处理571.输入、输出信号同为双极性在输入、输出都是双极性信号的控制系统中,程序处理的输入和输出数据不仅反映信号幅度的大小,也反映信号的极性。假设信号的变化范围为-5V~+5V,信号经A/D转换得到的数字量为00H~FFH,数字量的最高位D7表示信号的极性。当D7=0时,表示输入信号为负极性,即数字量00H~7FH表示-5V~0V的模拟信号;当D7=1时,表示输入信号为正极性,即数字量7FH~FFH表示0V~+5V的模拟信号。1.输入、输出信号同为双极性58在由双极性信号组成的闭环定值控制系统中,设给定信号为Y,采样输入信号为X,则偏差值E=Y-X。因为Y和X的值对应的是双极性信号,所以偏差值E也是双极性信号,因此在参加运算前也必须进行预处理才能保证最终结果的正确性。
预处理的规则:如果偏差值的绝对值大于80H(此为无符号数),则偏差信号取最大值,即信号极性为负时取00H,信号极性为正时取FFH。否则,将运算结果直接作为偏差信号。在由双极性信号组成的闭环定值控制系统中,设给定信592.输入、输出信号分为单双极性在控制系统中,有时会出现输入信号和给定信号是单极性的,即数字量00H~FFH对应同极性的信号,如0~+5V;而输出信号则要求是双极性的,即数字量00H~FFH对应的是双极性的,如-5V~+5V。这类系统的数据预处理与双极性的输入输出系统的方法相同,由于系统的输入是单极性的,因此不必判断极性,只需根据偏差值的大小和符号判断即可。系统的数据预处理程序流程图如图5.2所示。2.输入、输出信号分为单双极性60图5.2输入单极性输出双极性的数据预处理程序流程图图5.2输入单极性输出双极性的数据预处理程序流程图615.2.2数据字长的预处理
在微机控制系统中经常会出现数据字长不一致的情况。如有的系统采用12位A/D转换器采样数据,而输出采用8位D/A转换器;有的系统使用8位A/D转换器进行采样,而为了提高计算的精度,采用双字节运算程序计算。为了满足不同的精度要求,数据在进行数字滤波、标度变换和控制运算后必须对数字量的位数加以处理。1.输入位数大于输出位数当输入器件的分辨率高于输出器件时,如采用10位A/D转换器采样,而CPU把处理后的10位二进制数通过8位D/A转换器输出,就会出现输入位数大于输出位数的情况。5.2.2数据字长的预处理1.输入位数大于输出位数62
对输入位数大于输出位数的处理方法就是忽略高位数的最低几位。如:10位A/D转换器的输入值为0011111010,此值经处理后送入8位D/A转换器的值就变为00111110。这在计算机中通过向右移位的方法是很容易实现的。由于10位A/D转换器的采样分辨率要比8位A/D转换器高的多,因此,虽然舍去了最低的两位数会产生一定的误差,但这一误差仍比采用8位输入8位输出系统的误差小。设输入值存放在IN_H和IN_L单元中,转换后的数值存于OUT单元中。程序清单为:对输入位数大于输出位数的处理方法就是忽略高位数63CLR CMOV A,IN_HRRC AMOV IN_H,AMOV A,IN_LRRC AMOV IN_L,ACLR CMOV A,IN_HRRC AMOV A,IN_LRRC AMOV OUT,ACLR C64为了提高转换精度,可以采用“四舍五入”的方法对最低两位进行转换。方法为:将移位前的数据加上0000000010B后再进行处理。但是当10位数字量为1111111111B和1111111110B时,”四舍五入“后的结果为10000000000B,显然结果是错误的。解决的方法:在加上0000000010B并进行移位后,再检查是否有溢出,如果有,则将移位的结果减一,没有则保持原结果。程序清单:CLR CADD IN_H,#02HADDC IN_L,#00HMOV A,IN_HRRC AMOV IN_H,A为了提高转换精度,可以采用“四舍五入”的方法对最低两位进行转65
MOV A,IN_L RRC A MOV IN_L,A
CLR C MOV A,IN_H RRC A MOV IN_H,A MOV A,IN_L RRC A
JNB IN_H.0,END_C DEC AEND_C: MOV OUT,A RET MOV A,IN_L66
输入位数小于输出位数的最好处理方法是:将8位数左移两位构成10位数,10位数的最低两位用“0”填充。如;转换前的8位输入值为:××××××××;转换后的10位输出值为:××××××××00。这种处理方法的优点在于构成的10位数接近10位A/D转换器的满刻度值,其误差在10位数字量的3个步长电压之内。2.输入位数小于输出位数当输入器件的分辨率比输出器件低时,如采用8位A/D转换器采样,而通过10位D/A转换器进行输出,就会出现输入位数小于输出位数的情况输入位数小于输出位数的最好处理方法是:将8位数675.4数字滤波方法数字滤波,就是计算机系统对输入信号采样多次,然后用某种计算方法进行数字处理,以削弱或滤除干扰噪声造成的随机误差,从而获得一个真实信号的过程。这种滤波方法是根据预定的滤波算法编制相应的程序,实质上是一种程序滤波。因而可靠性高,稳定性好,修改滤波参数也容易,而且一种滤波子程序可以被多个通道所共用,因而成本很低。另外,数字滤波可以对各种干扰信号,甚至极低频率的信号进行滤波。它的不足之处是需要占用CPU的机时。总之,数字滤波与硬件滤波器相比优点甚多,因此得到了普遍的应用。常用的数字滤波方法有:限幅滤波、限速滤波、中值滤波、平均值滤波(算术平均值、加权平均值、去极值平均值、滑动平均值)等。5.4数字滤波方法685.4.1限幅滤波经验说明,生产过程中许多物理量的变化需要一定的时间,因此相邻两次采样值之间的变化幅度应在一定的限度之内。限幅滤波就是把两次相邻的采样值相减,求其增量的绝对值,再与两次采样所允许的最大差值X进行比较,如果小于或等于X,表示本次采样值X(n)是真实的,则取X(n)为有效采样值;反之,X(n)是不真实的,则取上次采样值X(n1)作为本次有效采样值。5.4.1限幅滤波69当|
X(n)X(n1)|
X
时,则取
Y(n)=X(n)当|
X(n)X(n1)|>X时,则取Y(n)=X(n-1)
式中:X(n)──t=nT时的采样值;
X(n-1)──t=(n-1)T时的采样值;
X──相邻两次采样值所允许的最大偏差,其大小取决于控制系统采样周期T和信号X的正常变化率。限幅滤波对随机干扰或采样器不稳定引起的失真有良好的滤波效果。当|X(n)X(n1)|X时,则取Y(n705.4.2限速滤波1、当|
X(n)X(n1)|
X
时,则取
Y(n)=X(n)
2、当|
X(n)X(n1)|>X时,则X(n)不用,但先保留,再取第三次采样值X(n+1)
(1)若|
X(n+1)X(n)|
X,则取Y(n)=X(n+1)(2)若|
X(n+1)X(n)|>X,则取Y(n)=[X(n+1)+X(n)
]/2,即以折中值作为数值滤波器的输出。5.4.2限速滤波715.4.3中(位)值滤波中值滤波是将信号X的连续k次采样值按大小进行排序,取其中间值作为本次的有效采样值。本算法为取中值,故采样次数k应为奇数,一般3~9次。编制中值滤波的算法程序,首先把k个采样值从小到大(或从大到小)进行排队,这可采用几种常规的排序算法如冒泡算法,然后再取中间值。中值滤波对缓变过程中的偶然因素引起的波动或采样器不稳定造成的误差所引起的脉动干扰比较有效,而对快速变化过程(如流量)的信号采样则不适用。5.4.3中(位)值滤波725.4.4平均值滤波平均值滤波就是对多个采样值进行平均算法,这是消除随机误差最常用的方法。具体又可分为如下几种。1.算术平均滤波算术平均滤波是在采样周期T内,对测量信号X进行N次采样,把N个采样值相加后的算术平均值作为本次的有效采样值Y,即5.4.4平均值滤波73
采样次数N值决定了信号的平滑度和灵敏度。提高N的值,可提高平滑度,但系统的灵敏度随之降低,采样次数N的取值随被控对象的不同而不同。一般情况下,流量信号可取10左右,压力信号可取4左右,温度、成分等缓变信号可取2甚至不进行算术平均。
在编制算法程序时,N一般取2、4、8等2的整数幂,以便于用移位来代替除法求得平均值。这种算法适用于对周期性干扰的信号滤波
采样次数N值决定了信号的平滑度和灵敏度。提高N的742.加权平均滤波
算术平均滤波和去极值平均滤波都存在平滑性和灵敏度的矛盾。采样次数太少则平滑效果差,次数太多则灵敏度下降,对测量参数的变化趋势不敏感。为协调两者关系,可采用加权平均滤波。加权平均滤波是对每次采样值不以相同的权系数而以增加新鲜采样值的权重相加。2.加权平均滤波75
式中,第m次为最新值,C1、C2、…、Cm为加权系数,先小后大,且均为小于1但总和等于1的小数,即满足下式
C1+C2+…+Cm=1Cm>Cm-1>…C1>0C1、C2、…、Cm的取值应视具体情况选取,并通过调试确定。如,某纯滞后时间为τ的被控对象,采用m=4的加权平均滤波算式为=C1
y
1+C2
y
2+C3
y
3+C4
y
4
式中,第m次为最新值,C1、C2、…、Cm76式中权系数,,,,这种算法能协调系统的平滑度和灵敏度的矛盾,提高灵敏度,更适用于纯滞后时间常数较大的对象。由于需要测试过程的纯滞后时间,并计算各位权系数,所以增加了计算量,降低了控制速度。式中权系数,,,,这种算法能协调系统的平773.抗脉冲干扰平均值滤波(去极值平均滤波)
算术平均滤波不能将明显的偶然的脉冲干扰消除,只是把其平均到采样结果中,从而降低了测量精度。将算术平均滤波和中值滤波相结合得到的去极值平均滤波是对连续采样的m个数据进行比较,去掉其中的最大值与最小值,然后计算余下的m-2个数据的算术平均值。在编制算法程序时,为便于用移位来代替除法求得平均值,m-2应取2、4、8等,故m取4、6、10等。这种算法适用于工业场合经常遇到的尖脉冲干扰的信号滤波。3.抗脉冲干扰平均值滤波(去极值平均滤波)78保护现场采样次数R0采样数据排序对除了最大值、最小值以外的N-2个数算术平均保存滤波数据恢复现场返回开始保护现场采样次数R0采样数据排序对除了最大值、最小值以保794.滑动平均值滤波前三种的平均滤波算法有一个共同点:即每取得一个有效采样值必须连续进行若干次采样。当系统的采样速度较慢或采样信号变化较快时,系统的实时性就无法得到保证。为了克服这一缺点,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论