回复:怎么才能对西门子S7-1500模拟量输入取平均值? 调完硬件滤波的情况下

已锁定

yming

西门子1847工业学习平台

  • 帖子

    23731
  • 精华

    915
  • 被关注

    1289

论坛等级:至圣

注册时间:2004-03-06

钻石 钻石 如何晋级?

发布于 2022-12-07 18:10:39

4楼

首先,要知道为啥要滤波。滤波的目的是哪类?

如果是信号真值,你为啥要滤掉?

通常使用滤波,是因为信号中参杂了干扰信号,目的是去掉干扰信号,获得信号真值。

如果干扰信号是50Hz(20ms周期),那么,就应该以此周期(差模干扰信号平均值为0)去掉干扰。获得信号真值。

对于共模干扰信号,只能通过偏移量去除。

其次,平均值获取真值,有明显的信号延迟、滞后;后续在使用PID调节时,要充分注意延迟环节带来的可能系统震荡。

再说,去掉最小值、最大值的方式并不可取。是真值为啥要去除?错误的信号未必是最小值、最大值;而是不可能出现的斜率。

再说了,这种滤波,不要使用浮点实数!所有传感器AD信号都是变换为整数。只是在人机界面上才需要显示工程量实数。

最后,

1、不要用浮点数(运算慢又易出错。)用整数!

2、算法:

为啥要保存每次采集值到数组,再求和;再除数量?

平均值Yn =(X1+X2+X3+..+Xn)/n = X1/n+X2/n+X3/n+..+Xn/n

Yn+1=(Yn - X1)/n +( Xn+1)/n

若n=2、4、8、16,那么,信号整数Xn只需要右移就是/2/4/8/16

提示:用好数组,数组不是必须从零开始,也可以是-1,-2;可以把平均值、最大最小值指定放在那里!

不要用数组移动,用数组元素指针INDEX 存放!


学而时习之,不亦说乎?温故而知新,不亦乐乎?
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-1500系列

共有11145条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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