前言:
此时兄弟们对“99模板均值滤波算法”可能比较珍视,看官们都想要学习一些“99模板均值滤波算法”的相关内容。那么小编也在网上网罗了一些有关“99模板均值滤波算法””的相关文章,希望姐妹们能喜欢,各位老铁们快快来学习一下吧!使用PLC读取现场一些模拟量信号时,除了系统块内的滤波外,建议在程序里也加入滤波,可以有效过改善信号质量或者滤掉非正常的干扰。
常用的数字滤波方法很多,以下是一个最简单的平均值滤波的程序,方法就是连续读取N个采样值直接做算数平均运算。
主程序:
子程序中使用了10ms定时器,这里将采样周期设为常量10,实际采样周期就是100ms。将采样次数也设为10,由此,数据的滤波周期就是1秒。
当然,采样周期和次数均可设置为变量,以便查看不同参数下的滤波效果。
子程序:
考虑到采样次数较多的情况,所以"滤波累加值"变量类型设置为双整数。这时子程序中就需要数据类型转换。(如果采样少,可以不用转换)
段①:变量的初始化。其实如果滤波周期较小或者程序运行开始滤波的结果对系统运行影响不大,此段不要也行。(引申一下,有时PLC刚上电,由于某些模拟量信号读取的较慢,会造成开机就报警。正常操作只要复位下就可以,但客户会有质疑。我通常的做法是PLC上电后,报警子程序延迟几秒接通)
段②、③:使用定时器生成一个固定的采样周期,在每个接通周期,采样值累加,滤波计数递增。
段④:当滤波计数到达设定的采样次数,求取数据在该滤波周期的平均值。接着将滤波计数和滤波累加值清0,为下一滤波周期准备。
下面看一下滤波效果:
对随机干扰有一定效果;
对随机干扰有一定效果,但数据滞后时间较长;
数据比较同步,但滤波效果不好;
对持续性干扰的滤波效果不好;
以上测试并不完善,仅供参考,有条件的可以自行试一下。
总之,该滤波程序适用于一般具有随机干扰的信号,对于测量速度较慢或要求数据刷新速度较快的实时控制不适用,也比较浪费PLC的RAM。
[赞]+[比心]哦,[作揖]!
标签: #99模板均值滤波算法