常用应用程序设计.ppt
《常用应用程序设计.ppt》由会员分享,可在线阅读,更多相关《常用应用程序设计.ppt(91页珍藏版)》请在三一办公上搜索。
1、第3章 常用应用程序设计,3.1 数字滤波3.2 标度变换3.3 越限报警3.4 键盘控制程序3.5 显示程序设计,3.1 数字滤波,所谓数字滤波,就是在计算机中用某种计算方法对输入的信号进行数学处理,以便减少干扰在有用信号中的比重,提高信号的真实性。,这种滤波方法不需要增加硬件设备,只需根据预定的滤波算法编制相应的程序即可达到信号滤波的目的。数字滤波可以对各种干扰信号,甚至极低频率的信号进行滤波。数字滤波由于稳定性高,滤波参数修改也方便,一种滤波子程序可以被各控制回路调用,因此得到广泛的应用。,3.1 数字滤波,3.1.1 程序判断滤波,程序判断滤波的方法,是根据生产经验,确定出两次采样输入
2、信号可能出现的最大偏差y。若超过此偏差值,则表明该输入信号是干扰信号,应该去掉;如小于此偏差值,可将信号作为本次采样值。,当采样信号由于随机干扰,如大功率用电设备的启动或停止,造成电流的尖峰干扰或误检测,以及变送器不稳定而引起的严重失真等,使得采样数据偏离实际值太远,可采用程序判断滤波。,3.1 数字滤波,1限幅滤波,当|Y(n)-Y(n-1)|Y时,则取Y(n)=Y(n),取本次采样值当|Y(n)-Y(n-1)|Y时,则取Y(n)=Y(n-1),取上次采样值,Y(n)第n次采样值;Y(n-1)第n-1次采样值;Y相邻两次采样值所允许的最大偏差,它的大小取决于采样周期T及被测参数Y应有的正常变
3、化率。,一定要按照实际情况来确定Y,否则非但达不到滤波效果,反而会降低控制品质。Y通常可根据经验数据获得,必要时,也可由实验得出。,程序流程图,3.1 数字滤波,设Y存放在LIMIT单元,两次采样值Y(n-1)、Y(n)存放在DATA1、DATA2中,滤波结果存放在DATA单元中,限幅滤波程序如下:,PUSHPSW;保护现场PUSHA CLRC;进位标志位清零MOVDATA,DATA1MOVA,DATA2SUBBA,DATA;求Y(n)Y(n-1)JNCCOMPARE;如果Y(n)-Y(n-1)0,转COMPARECPLA;如果Y(n)-Y(n-1)0,求补INCA,51程序,3.1 数字滤波
4、,COMPARE:CLRCSUBBA,LIMIT;Y(n)-Y(n-1)和Y比较JCOVER;如果Y(n)-Y(n-1)Y,DATA2DATAMOVDATA,DATA1;如果Y(n)-Y(n-1)Y,DATA1DATAOVER:POPA;恢复现场POPPSWRET;返回LIMITEQU30HDATA1EQU31HDATA2EQU32HDATAEQU33H,限幅滤波能有效地克服因偶然因素引起的脉冲干扰,但无法抑制周期性的干扰且平滑度差。,51程序,BEGIN:MOV AX,DATA1 MOV BX,AX MOV AX,DATA2 SUB AX,BX JG CHECK1 NEG AX CHECK1
5、:CMP AX,LIMIT JG DONE MOV AX,DATA2 JMP OVERDONE:MOV AX,DATA1OVER:MOV DATA,AX,设上次采样值存在DATA1单元,本次采样值存放在DATA2中,滤波结果存放在DATA单元中,限幅滤波程序如下:,8086程序,3.1 数字滤波,2限速滤波,设顺序采样时刻tn-1、tn、tn+1所采集的参数分别为Y(n-1)、Y(n)、Y(n+1),那么,3.1 数字滤波,限速滤波是一种折衷的方法,既照顾了采样的实时性,又顾及了采样值变化的连续性。缺点:第一是Y的确定不够灵活,必须根据现场的情况不断更换新值;第二是不能反映采样点数n3时各采样
6、数值受干扰情况。因此,它的应用受到一定的限制。在实际使用中,可用 取代Y,这样也可基本保持限速滤波的特性,虽增加一步运算,但灵活性大为提高。,3.1 数字滤波,程序流程图,3.1 数字滤波,3.1.2 算术平均值滤波,实质-把一个采样周期内对信号的n次采样值进行算术平均,作为本次的输出,即,n值决定了信号平滑度和灵敏度。随着n的增大,平滑度提高,灵敏度降低。为方便求平均值,n值一般取4、8、16之类的2的整数幂,以使用移位来代替除法。通常流量信号取12项,压力信号取6项,温度、成分等缓慢变化的信号取2项甚至不平均。,PUSH BEGIN:XOR AX,AX MOV BX,DATA1 MOV C
7、X,NUMBER MOV DX,NUMBERREDO:ADC AX,BX INC BX LOOP REDO;循环 DIV DX MOV DATA2,AX POP,8086程序如下(采样首地址为DATA1单元,采样次数为NUMBER,结果存于DATA2单元):,设8次采样值依次存放在以DIGIT为首地址的连续单元中,求出平均值后,结果保留在SAMP单元中。计算的中间结果存放在FLAG和TEMP单元中,程序清单如下:,PUSHPSW;现场保护PUSHAMOVFLAG,#00H;进位位清零MOVR0,#DIGIT;设置数据存储区首址MOVR7,#08H;设置采样数据个数CLRA;清累加器LOOP:A
8、DDA,R0;两数相加JNCNEXT;无进位,转NEXTINCFLAG;有进位,进位位加1,8051程序如下,NEXT:INCR0;数据指针加1DJNZR7,LOOP;未加完,继续加MOVR7,#03H;设置循环次数DIVIDE:MOVTEMP,A;保存累加器中的内容MOVA,FLAG;累加结果除2CLRCRRCAMOVFLAG,A MOVA,TEMPRRCADJNZR7,DIVIDE;未结束,继续执行MOVSAMP,A;保存结果至SAMP中POPA;恢复现场POPPSWRET,算术平均值滤波主要用于对压力、流量等周期脉动的采样值进行平滑加工,但对偶然出现的脉冲性干扰的平滑作用尚不理想,因而它
9、不适用于脉冲性干扰比较严重的场合。另外该滤波方法比较浪费RAM。,3.1 数字滤波,3.1.3 加权平均值滤波,加权平均值滤波法公式为,其中,k0、k1、kn-1为加权系数,体现了各次采样值在平均值中所占的比例,它们都为大于0的常数项,且满足,一般采样次数愈靠后,取的比例愈大,这样可增加新的采样值在平均值中的比例。这种滤波方法可以根据需要突出信号的某一部分,抑制信号的另一部分。适用于纯滞后较大的被控对象。,PUSH BEGIN:XOR AX,AX XOR BX,BX MOV SI,DATA1 MOV DI,DATA2 MOV CX,NUMBERREDO:ADC AX,SI MUL DI INC
10、 SI INC DI ADC BX,AX LOOP REDO MOV DATA,BX POP,8086程序如下(加权系数为DATA1单元,采样值存于DATA2单元,个数为NUMBER,结果存于DATA0单元):,3.1 数字滤波,3.1.4 中值滤波,所谓中值滤波是对某一参数连续采样n次(一般n取奇数),然后把n次的采样值从小到大或从大到小排队,再取中间值作为本次采样值。,n 个数据按大小顺序排队的具体做法是:两两进行比较,设R1为存放数据区首地址,先将(R1)与(R1)+1)进行比较,若是(R1)(R1)+1)则不交换存放位置,否则将两数位置对调。继而再取(R1)+1)与(R1)+2)比较,
11、判断方法亦然,直到最大数沉底为止。然后再重新进行比较,把次大值放到n-1位,如此做下去,则可将n个数从小到大顺序排列。,3.1 数字滤波,设采样值从8位A/D转换器输入5次,存放在SAMP为首地址的内存单元中,其程序流程图如图3-3所示。,3.1 数字滤波,51程序清单如下:,ORG8000HINTER:MOVR4,#04H;置大循环次数SORT:MOVA,R4;小循环次数R5MOVR5,AMOVR1,#SAMP;采样数据存放首地址R1LOOP:MOVA,R1;比较INCR1MOV R2,ACLRCSUBBA,R1MOVA,R2JCDONE,3.1 数字滤波,MOV A,R1;(R1)(R1)
12、+1)DECR1XCHA,R1INCR1MOVR1,ADONE:DJNZR5,LOOP;R50,小循环继续进行DJNZR4,SORT;R40,大循环继续进行INCR1MOVR1,ARET,中值滤波对于去掉由于偶然因素引起的波动或采样器不稳定而造成的误差所引起的脉动干扰比较有效。若变量变化比较缓慢,采用中值滤波效果比较好,但对快速变化过程的参数(如流量),则不宜采用。一般n取59次。,3.1 数字滤波,3.1.5 去极值平均滤波,去极值平均值滤波的算法是:连续采样n次,去掉一个最大值,再去掉一个最小值,求余下n-2个采样值的平均值。程序的流程图如图3-4所示。,为使平均滤波方便,n-2应为2、4
13、、8、16,故n常取4、6、10、18。,3.1 数字滤波,图3-4 去极值平均滤波,3.1 数字滤波,3.1.6 滑动平均滤波,滑动平均滤波法把n个测量数据看成一个队列,队列的长度固定为n,每进行一次新的采样,把测量结果放入队尾,而去掉原来队首的一个数据,这样在队列中始终有n个“最新”的数据。然后把队列中的n个数据进行算术平均运算,就可获得新的滤波结果。,滑动平均值滤波对周期性干扰有良好的抑制作用,平滑度高,灵敏度低;但对偶然出现的脉冲性干扰的抑制作用差,不易消除由于脉冲干扰引起的采样值的偏差,因此它不适用于脉冲干扰比较严重的场合,而适用于高频振荡系统。,通常对流量信号,n取12,压力信号n
14、取4,液面参数n取412,温度信号n取14。,3.1 数字滤波,假定n个双字节型采样值,40H单元为采样队列内存单元首地址,n个采样值之和不大于16位。新的采样值存于3EH、3FH单元,滤波值存于60H、61H单元。FARFIL为算术平均滤波程序。51程序清单为:,MOVR2,N-1;采样个数MOVR0,42H;队列单元首地址MOVR1,43HLOOP:MOVA,R0;移动低字节DECR0DECR0MOVR0,AMOVA,R0;修改低字节地址ADDA,04HMOVR0,A,3.1 数字滤波,MOVA,R1;移动高字节DECR1DECR1MOVR1,AMOVA,R1;修改高字节地址ADDA,04
15、HMOVR1,ADJNZR2,LOOPMOVR0,3EH;存新的采样值MOVR1,3FHACALLFARFIL;求算术平均值RET,3.1 数字滤波,3.1.7 低通数字滤波(惯性滤波),对于变化过程比较缓慢的随机变量采用短时间内连续采样,然后求平均值的方法进行滤波,其效果往往不够理想。为了提高滤波效果,可以仿照模拟系统RC低通滤波器的方法,将普通硬件RC低通滤波器的微分方程用差分方程来表示,便可以用软件算法来模拟硬件滤波器的功能。,RC低通滤波器,3.1 数字滤波,模拟低通滤波器的传递函数为,其中,为RC滤波器的时间常数,。,用一阶向后差分法离散化后,可得:,Y(n)=(1-)Y(n-1)+
16、X(n),式中,X(n)本次采样值;Y(n-1)上次的滤波输出值;滤波系数,,T采样周期;Y(n)本次滤波的输出值。,PUSH BEGIN:XOR AX,AX MOV BX,DATA1 MOV AX,COE MUL BX PUSH DX PUSH AX MOV AX,01D SUB AX,COE MUL DATA2NEXT:POP BX ADD AX,BX POP BX ADC DX,BXOVER:POP,Y(n)=(1-)Y(n-1)+X(n),3.1 数字滤波,3.1.8 复合滤波程序,为了进一步提高滤波效果,改善控制精度,有时可以把两种或两种以上有不同滤波效果的数字滤波器组合起来,形成复
17、合数字滤波器,或称多级数字滤波器。,例如:把中值滤波和算术平均值滤波结合起来(去极值平均值滤波),就可以结合两者的优点,既可以消除周期性的干扰信号,又可对随机的脉冲干扰信号进行滤波。滤波步骤为:,把n次采样值按照从大到小或者从小到大的顺序排列。采用中值滤波,去掉最大值和最小值。对其余的n-2个采样值取算术平均值,作为滤波的输出值。,3.1 数字滤波,此外,也可以采用多重滤波的方法,把多个滤波器串联起来,前一个数字滤波器的输出作为后一个数字滤波器的输入。,比如:可以把两个低通滤波器串联起来,形成双重滤波,这样滤波效果会更好些。其滤波算式可以采用迭代方法求出。,3.1 数字滤波,由式,第一级滤波输
18、出为 Y(n)=(1-)Y(n-1)+X(n)(3-9),第二级滤波输出为 Z(n)=(1-)Z(n-1)+Y(n)(3-10),将式(3-9)代入式(3-10)得Z(n)=(1-)Z(n-1)+(1-)Y(n-1)+2X(n)(3-11),Y(n)=(1-)Y(n-1)+X(n),3.1 数字滤波,由式(3-10)可以求出 Y(n)=Z(n)-(1-)Z(n-1)(3-12),再用n-1代替n,可得Y(n-1)=Z(n-1)-(1-)Z(n-2)(3-13),将式(3-13)代入式(3-11),就得到两级数字滤波算式Z(n)=2(1-)Z(n-1)-(1-)2Z(n-2)+2X(n)(3-1
19、4),数字滤波方法的选取,对于变化缓慢的参数(如温度),可选用程序判断滤波及惯性滤波,对于变化较快的信号(如压力和流量等),可选用算术平均或加权平均滤波,对于要求较高的系统,可选用复合滤波,滤波效果相同时,应选用执行时间短的程序,3.2 标度变换,标度变换:在计算机控制系统中,生产中的各个参数都有着不同的数值和量纲,所有这些参数都经过变送器转换成A/D转换器所能接收的05V统一电压信号,又由AD转换成00FFH(8位)的数字量。为进一步显示、记录、打印以及报警等,必须把这些数字量转换成不同的单位,以便操作人员对生产过程进行监视和管理。这就是所谓的标度变换。,3.2 标度变换,3.2.1 线性参
20、数标度变换,所谓线性参数,指一次仪表测量值与A/D转换结果具有线性关系,或者说一次仪表是线性刻度的。,标度变换公式为,式中,A0 一次测量仪表的下限;Am 一次测量仪表的上限;Ax 实际测量值(工程量);N0 仪表下限对应的数字量;Nm 仪表上限对应的数字量;Nx 测量值所对应的数字量。,3.2 标度变换,为使程序简单,一般把被测参数的起点A0(输入信号为0)所对应的A/D输出值为0,即N0=0,这样上式可化作,(3-16),比如:某热处理炉温度测量仪表的量程为2001000,在某一时刻计算机采样并经数字滤波后的数字量为0CDH,设仪表量程为线性的,求出此时温度值。,A0=200,Am=100
21、0,Nx=0CDH=(205)D,Nm=0FFH=(255)D,根据式(3-16)可得此时温度为,3.2 标度变换,有时,工程量的实际值还需经过一次变换。如电压测量值是电压互感器的二次侧的电压,则其一次侧的电压还有一个互感器的变比问题,这时上式应再乘上一个比例系数,即,(3-17),3.2 标度变换,3.2.2 非线性参数标度变换,比如:在过程控制中,最常见的非线性关系是差压变送器信号P与流量Q的关系,(3-18),式中,Q流量;k流量系数,与流体的性质及节流装置的尺寸有关;P节流装置前后的差压。,3.2 标度变换,据此,可得测量流量时的标度变换式为,整理得,(3-19),式中 Q0流量仪表的
22、下限值;Qm流量仪表的上限值;Qx被测量的流量值;N0差压变送器下限所对应的数字量;Nm差压变送器上限所对应的数字量;Nx差压变送器所测得的差压值(数字量)。,3.2 标度变换,对于流量测量仪表,一般下限取0,此时Q0=0,N0=0,故上式变为,3.3 越限报警,在计算机控制系统中,为了安全生产,对于一些重要的参数或系统部位,都设有上、下限检查及报警系统,以便提醒操作人员注意或采取相应的措施。其方法就是把计算机采集的数据经计算机进行数据处理、数字滤波、标度变换之后,与该参数上、下限给定值进行比较,如果高于(或低于)上限(或下限),则进行报警,否则就作为采样的正常值,以便进行显示和控制。,报警系
23、统一般为声光报警信号,在某些系统中,需要增加功能,还带有打印输出,如记下报警的参数、时间等,并能自动进行处理,如自动切换到手动,切断阀门或自动拨出电话号码等。,3.3 越限报警,报警程序的设计方法主要有两种:一种是软件报警。这种方法的基本作法是把被测参数如温度、压力、流量、速度、成分等参数,经传感器、变送器、AD转换送入计算机后,再与规定的上、下限值进行比较,根据比较的结果进行报警或处理,整个过程都由软件实现。另一种是直接报警。基本作法是被测参数与给定值的比较在传感器中进行,如果被测参数超过给定值,就会通过硬件向CPU提出中断请求,CPU响应中断后,会产生报警信号。,不论是软件报警,还是直接报
24、警,都需要经过以下三个步骤:对被测参数进行采样。将采样值与给定值的上、下限值进行比较。根据比较结果执行相应的报警处理程序。,3.3 越限报警,3.3.1 软件报警程序设计,假设被测参数的采样值为Ux,设定该参数的上、下限值分别为Umax、Umin。要求若被测参数Ux Umax时,则上限报警;若被测参数Ux Umin时,则下限报警。为此设计的报警电路如图3-6所示。,3.3 越限报警,当参数正常时,绿灯亮。若超过上限或低于下限值,将发出声光报警。由于参数位都接有反相器,所以当某位为“1”时,该位的灯亮。,本程序的设计思想是设置一个报警模型标志单元ALARM,然后把参数的采样值分别与上、下限值进行
25、比较。若某一位需要报警,则将相应位置“1”,否则,清“0”。待参数判断完后,看报警模型标志单元ALARM的内容是否为00H。如果为00H,说明参数正常,使绿灯发光;如果不为00H,则说明参数越限,输出报警模型。其程序流程图如图3-7所示。,3.3 越限报警,图3-7 软件报警程序流程图,3.3 越限报警,设采样值存放在SAMP单元中,报警上限值存放在30H单元中,下限值存放在31H单元中,报警标志单元为ALARM。软件报警程序如下:,ORG8000HALARM:MOVDPTR,#SAMP;采样值存放地址DPTRMOVXA,DPTR;取采样值UxMOVALARM,#00H;报警模型单元清0ALA
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 常用 应用 程序设计
链接地址:https://www.31ppt.com/p-6386737.html