回复:滤波程序的一些参数怎么确定好?

已锁定

Zaxife

  • 帖子

    2450
  • 精华

    31
  • 被关注

    78

论坛等级:至圣

注册时间:2008-07-24

普通 普通 如何晋级?

发布于 2020-08-09 09:14:29

15楼

展开查看
以下是引用芳季在2020-08-08 09:24:08的发言 >8楼


上面是plc通过AE04一个通道测得某传感器在相邻1毫秒之间的增量,单位:分度。这个变化率应该接近设备的最大变化率了。

传感器是一个磁致伸缩尺。这是设备的最大速度。

这样的信号用什么滤波方法好?

数据中看见有些增量是相邻的增量的两倍。这个是什么原因导致的呢?究竟是不是1毫秒间隔太大了?

随时的1毫秒,模块都已经准备好了信号。所以没有出现相邻1毫秒是相同数值。(如果用相邻两个扫描周期测的话,就会出现相邻两个周期出现相同的数值,此时应该是模块来不及刷新。)但是1毫秒已经是最小的了。同样的括号原因,也不见得扫描可以读到每一毫秒的采集信号。假如扫描有4毫秒,假如程序没有滤波,那么程序相邻两个扫描就丢失了两三次转换的结果。

此时,还是那句问题:这样的信号用什么滤波方法好?

滤波系数选多少合适?这得看实际信号与期望值有关。结合曲线图来分析更有效率。

发一个一阶滤波的曲线图,你可以根据期望值连选择系数范围。

一阶滤波就是低通滤波,衰减高频通过低频,如果模拟电子计数过关的话,应该能够理解低通滤波。


计算周期?这个要看你需要的信号的频率来决定了。

比如你说的400Hz(2.5ms)/50%的方波,那么根据检测测量原理中的推荐1/10滤波对0.25ms及更高频的信号进行RC滤波,那么得到的是边角圆滑的矩形波而不是实际的边角尖峰波(比如开关电源MOS管驱动波形整形)。

又比如要从AM调制广播中检波出音频信号这种也可以算是低通滤波。只取调制波的音频轮廓,过滤高频调制信号。


平均值滤波消耗RAM?很明显吧,平均值滤波需要保存很多个历史值到表中的,这些历史值都是一直保存在RAM中的。越多的模拟量使用平均值滤波,就需要越多个表,对于单片机只有1KB RAM来说,这真是太奢侈了。哪怕是PLC也是12KB RAM,如果一个表要保存16个AI就消耗32个BYTE,12KB的RAM也就300多个模拟量滤波表。而一阶滤波根本不需要历史值,所以根本就不会大量啃噬RAM,哪怕1000个滤波也不怎么占用RAM。


消除干扰脉冲,最常用的就是平均值滤波+去掉最大、最小值。


很多场合,滤波是采用多种滤波算法结合来得到期望的信号的,而不是仅采用单一滤波算法。


其实,对于模拟量滤波,在输入端并联一个合适的滤波电容比什么算法都要简单高效稳定。


评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-200 SMART

共有9282条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
X 图片
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。