用neza系列plc实现递推平均滤波算法.doc_第1页
用neza系列plc实现递推平均滤波算法.doc_第2页
用neza系列plc实现递推平均滤波算法.doc_第3页
用neza系列plc实现递推平均滤波算法.doc_第4页
免费预览已结束,剩余1页可下载查看

下载本文档

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

文档简介

1、用 neza 系列 plc 实现递推平均滤波算法用 NEZA系列 PLC 实现递推平均滤波算法施耐德电气投资有限公司NEZA产品部张福在工业控制系统中,为减小外部环境的干扰,采集到的模拟量数据一般需要进行数字滤波处理,常用的滤波算法比较多,递推平均滤波因为算法简单,计算速度快等特点,在实际应用中采用的比较多。本文提供一种在 Schneider 公司的 NEZA系列 PLC基础上实现的递推平均滤波的方法,供大家参考。递推平均滤波是平滑滤波的一种,它的原理是在存储区中划定一个区域,作为测量值的暂存队列区域,队列的长度为固定值N,每得到一个新的测量数据后,先将队首的数据舍弃,再将队列向前移动一位,然

2、后把新的测量数据放入队尾,再将队列中的N个取样值作算术平均值运算。这样,做N 次采样滤波运算比算术平均值运算快N 1 倍。其数学公式为: y(k)=x(k)+x(k-1) +x(k-2)+ +x(k -N+1)/N考虑到数据累加后存在进位等因素,为避免运算过程复杂化,可以先做除法运算,再求商的累加和。时由于 PLC是周期扫描执行方式运行,作多次累加可以在建立队列的过程中同时进行,队列建立完成时,该队列的累加和也同时完成。此后的运算则可以先将队列首部的数据临时保存,接着将队列向前推进一位,再将新的采样数据队列尾部,然后把队列尾部数据加入累加和中,最后再把放在暂存器中的队列首部数据从累加和中减去,

3、得到最终结果。因此将以上公式改为:y(k+1)= x(k+1)/N+x(k)/N +x(k-1)/N+ +x(k-N+1)/N-x(k-N)/N而 NEZA系列 PLC没有浮点数运算,如果只保留商结果,最终运算得到的滤波值可能会有很大误差,因此,必须将余数建一队列,参与滤波运算:y(k+1)= a(k+1)/N+a(k)/N +a(k-1)/N+a(k-N+1)/N-a(k-N)/N +b(k+1)+b(k) +b(k-1)+b(k -N+1)-b(k-N)/N其中, a(k+1) 与 b(k+1) 分别为第 k 1 次采样数据除以N后商与余数。在递推平均滤波算法中, N 的取值决定了滤波的平

4、滑程度,N值越大,平滑程度越高,但是滤波结果值的滞后性越大。因此,在实际使用时,可以根据具体要求选择合适的N值,一般来说, N值可在 464 范围内选取。分析以上内容,可以知道建立队列需 N 2 个扫描周期 ( 含不作运算的第一个扫描周期) ,队列建立后得到 N个采样数据的算术平均值只需一个扫描周期。在以下 NEZA PLC的程序中使用数据区MW300 MW315作商队列存储区,数据区MW350 MW365作余数队列存储区,N 取值为 16。 MW100存放处理后的AD值(%IW2.0) ,MW102用来控制商队列与余数队列的累加和的项数,MW104与 MW106分别存放商队尾与余数队尾数据,

5、MW110与 MW112分别存放商累加和与余数累加和,MW114内容为余数平均值, MW116为滤波后结果值。在队列未建立完毕时,只作累加运算,队列建立完毕后( M81为 1) ,队尾数据加入运算中。下面给出源程序指令表清单(中为程序注释):(*初始化部分数据区;M80第一个扫描周期不作运算*)LD %S0OR %S1OR %S13 %MW100:20 := 0 ST %M80STN %M81(*商队列与余数尾部数据取出*)LD %M81 %MW104 := %MW315 %MW106 := %MW365 (*以下为商队列与余数队的移动*)LD 1 %MW315 := %MW314 %MW31

6、4 := %MW313 %MW313 := %MW312 %MW312 := %MW311 LD 1 %MW311 := %MW310 %MW310 := %MW309 %MW309 := %MW308 %MW308 := %MW307 LD 1 %MW307 := %MW306 %MW306 := %MW305 %MW305 := %MW304 %MW304 := %MW303 (*队列就绪 *)LDN %M80 %MW303 := %MW302 %MW302 := %MW301 %MW301 := %MW300 MPSAND %MW102 %MW104 := %MW315 %MW106 :

7、= %MW365 %MW102 := %MW102 + 1 MPPAND %MW102 = 17 ST %M81LD 1 %MW365 := %MW364 %MW364 := %MW363 %MW363 := %MW362 %MW362 := %MW361 LD 1 %MW361 := %MW360 %MW360 := %MW359 %MW359 := %MW358 %MW358 := %MW357 LD 1 %MW357 := %MW356 %MW356 := %MW355 %MW355 := %MW354 %MW354 := %MW353 LD 1 %MW353 := %MW352 %MW352 := %MW351 %MW351 := %MW350 (*采集数据的产生*)LD 1 %MW100 := %IW2.0 AND 4095 %MW300 := %MW100 / 16 %MW350 := %MW100 REM 16 (*商队列与余数队列的累积和*)LDN %M80 %MW110 := %MW110 + %MW300 %MW112 := %MW112 + %MW350 (*获得平均值 %MW116 *)LD %M81 %MW110 := %MW110 - %MW104 %MW112 := %MW112 - %MW10

温馨提示

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

评论

0/150

提交评论