克服随机误差的软件算法.ppt_第1页
克服随机误差的软件算法.ppt_第2页
克服随机误差的软件算法.ppt_第3页
克服随机误差的软件算法.ppt_第4页
克服随机误差的软件算法.ppt_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第四章 微机应用系统中软件设计,微机应用系统中的软件组成 : 监控程序; 中断服务程序; 完成各种测控算法的功能模块 。 主要介绍直接与测量与控制有关算法,如: 克服随机误差的数字滤波算法; 克服系统误差的校正算法; PID控制算法等, 以及监控程序设计的基本方法。,4.1 克服随机误差的软件算法,随机误差是由窜入仪表的随机干扰所引起,这种误差是指在相同条件下测量同一量时,其大小和符号作无规则的变化而无法预测,但在多次测量中它是符合统计规律的误差。 为了克服随机干扰引入的误差,首先必须在仪器的结构和电路上采取各种防护干扰的措施和方法。减小外界干扰对仪器的影响(如,屏蔽、滤波等)在此基础上再按统

2、计规律用软件算法来进一步抑制有效信号中的干扰成分,消除随机误差,以保证系统的正常,可靠运行。,采用数字滤波算法克服随机干扰引入的误差具有如下优点: (1) 数字滤波无需硬件,只是一个计算过程,因此可靠性高,不存在阻抗匹配问题,尤其是数字滤波可以对频率很高或很低的信号进行滤波,这是模拟滤波器所不及的。 (2) 数字滤波是用软件算法实现的。因此可以使多个输入通道共用一个软件“滤波器”,从而降低仪器仪表的硬件成本。 (3) 只要适当改变软件滤波器的滤波程序或运算参数,就能方便地改变滤波特性,这对于低频,脉冲干扰,随机噪声特别有效。,一、一阶惯性滤波 进行数字化处理:,设: 得: 而且 若取采样间隔t

3、足够小,则atRC,滤波器的截止频率为: 一阶惯性滤波算法适用滤波常数要求较大的场合,且对于周期干扰具有良好的抑制作用。,二、限幅滤波 基本方法是比较相邻(n和n-1时刻)的两个采样值 和 ,如果它们的差值过大,超过了参数可能的最大变化范围,则认为发生了随机干扰,并视后一次采样值 为非法值,应予剔除, 作废后,可以用 替代 ,或采用递推方法由 , (n-1,n-2时刻的滤波值)来近似推出,其相应算法为: 上式中a表示相邻两个采样值之差的最大可能变化范围,上述限幅滤波算法很容易用程序判断的方法实现,故又称程序判断法。,设Data1和Data2为内部RAM单元,分别存放上次滤波值 和本次采样值 ,

4、滤波值也存入Data2单元(均为单字节),则实现算法的程序如下所示: PRODET: MOV A,DATA2 CLR C SUBB A,DATA1 JNC PRODT1;若 转PRODT1 CPL A ;若 则求补 INC A PRODT1: CJNE A,#a,PRODT2 ;若 转PRODT2 AJMP DONE PRODT2:JC DONE ;若 转DONE MOVE DATA2,DATA1 ;否则 DONE: RET,三、中位值滤波 中位值滤波是对某一被测参数连续采样n次(一般n取奇数),然后把n次采样值按大小排列,取中间值为本次采样值。 中位值滤波能有效地克服偶然因素引起的波动或采样

5、器不稳定引起的误码等脉冲干扰。 对温度,液位等缓慢变化的被测参数,采用此法能收到良好的滤波效果,但对于流量,压力等快速变化的参数一般不宜采用中位值滤波。 设SAMP为存放采样值的内存单元首地址,DATA为存放滤波值的内存单元地址,N为采样值个数,中位值滤波程序如下:,FILTER: MOV R3,#N-1 ;置循环初值 SORT: MOV R2,R3 ;循环次数送R2 MOV R0,#SAMP ;采样值首地址送R0 LOOP: MOV A,R0 INC R0 CLR C SUBB A,R0 ; yn-yn-1A JC DONE ; ynyn-1转DONE ADD A,R0 ;恢复A XCH A

6、,R0 ; ynyn-1交换数据 DEC R0 MOV R0,A INC R0 DONE: DJNZ R2 LOOP ; R20 继续比较 DJNZ R3 SORT ; R30 继续循环,MOV A,R0 ADD A,SAMP ;计算中值地址 CLR C RRC A MOV R0,A MOV DATA,R0 ;存放滤波值 ENT,四、算术平均滤波法 算术平均滤波法就是连续取n个采样值进行算术平均,其数学表达式为: 算术平均滤波法适用于对一般具有随机干扰的信号进行滤波,这种信号的特点是信号本身在某一数值范围附近上下波动,在这种情况下仅取一个采样值作依据显然是不准确的。 算术平均滤波法对信号的平滑

7、程度取决于N,当N较大时,平滑度高,但灵敏度低,当N较小时,平滑度低,但灵敏度高,应视具体情况选取N,以使既少占用计算时间,又达到最好的效果,,五、递推平均滤波法 递推平均滤波法是把N个测量数据看成一个队列,队列的长度固定为N,每进行一次新的测量,把测量结果放入队尾,而扔掉原来队首的一次数据,这样在队列中始终有N个 “最新”的数据,计算滤波值时,只要把队列中的N个数据进行算术平均,就可得到新的滤波值,这样每进行一次测量,就可以得到一个新的平均滤波值,这种滤波算法称为递推平均滤波法,其数学表达式为: 设N为采样值个数,SAMP为存放双字节采样值的内存单元首址,P_SAMP为指针(单字节),get

8、_Data为一采集子程序,其结果存放在R6、R7单元,则实现递推平均滤波的子程序如下:,START: LCALL get_data MOV R0,P_SAMP MOV A,R7 MOV R0,A INC R0 MOV A,R6 MOV R0,A INC R0 MOV P_SAMP,R0 MOV A,#SAMP ADD A,#N*2 CJNE A,P_SAMP,LP1 LP1: JNC LP2 MOV P_SAMP,#SAMP LP2: LCALL FILTER RET,六、加权滑动平均滤波 N项加权滑动平均滤波算法为: 式中,y为第n采样值经滤波后的输出;Xn-i为未经滤波的第n-i次采样值;C0,C1.Cn-1为权系数,且满足如下条件: C0 + C1 + C2 + . + Cn-1 = 1 C0 C1 . Cn-1 0 选择权系数Ci的灵

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论