发表于:2017/10/13 9:17:25
#10楼
以下是引用845352686在2017/10/12 20:59:56的发言:
《递推平均滤波法(又称滑动平均滤波法)》
A、方法:
把连续取N个采样值看成一个队列
队列的长度固定为N
每次采样到一个新数据放入队尾,并扔掉原来队首的一次数据.(先进先出原则)
把队列中的N个数据进行算术平均运算,就可获得新的滤波结果
以下是引用cvlsam在2017/10/12 20:30:04的发言:
那你的描述不是要得到10个数的平均值,而是应该是A时间段到B时间段的采用平均值。
那需要移位干什么,间接寻址(或者称作变址)就可以了。
信捷的PLC抄三菱的,应该有变址的功能,且支持C语言,那么用数组的下标就可以了。
Good Luck~
我说的采样平均值方式就是和下面滤波的例子是一个意思!就通过移动才能实现先进先出求平均值!以下是引用845352686在2017/10/12 20:03:34的发言:
如果用右移指令每秒把数据右移一个字的位置,这样每秒都可以有10个数据可以求和做平均值!
如果要是一分钟60个数据做求和平均。前一种方式要一分钟才能得到一个平均值!而后一种在初始装满60个数据后,以后通过每秒右移一次先进后出!就可以每秒更新求得一个60个数据的平均值!
以下是引用cvlsam在2017/10/12 19:37:24的发言:
你累加10次采集值除以10不就好了,反正是浮点数,又不需要考虑溢出的问题。
Good Luck~
这是读电表的实时功率做需量控制,打个比方如果要每秒累加一次要10个要十秒出一个平均值!以下是引用845352686在2017/10/12 19:02:46的发言:
我可能没表达清楚!我说的意思是字的右移和左移,每次移一个字的位置!我想实现双字的右移和左移,每次移一个双字的位置!
每一秒依次左移或右移一个双字的位置,共十个位置!每秒平均一次!得一每秒更新一次的平均值!
我可能没表达清楚!我说的意思是字的右移和左移,每次移一个字的位置!我想实现双字的右移和左移,每次移一个双字的位置!
每一秒依次左移或右移一个双字的位置,共十个位置!每秒平均一次!得一每秒更新一次的平均值!
你累加10次采集值除以10不就好了,反正是浮点数,又不需要考虑溢出的问题。
Good Luck~
如果用右移指令每秒把数据右移一个字的位置,这样每秒都可以有10个数据可以求和做平均值!
如果要是一分钟60个数据做求和平均。前一种方式要一分钟才能得到一个平均值!而后一种在初始装满60个数据后,以后通过每秒右移一次先进后出!就可以每秒更新求得一个60个数据的平均值!
那你的描述不是要得到10个数的平均值,而是应该是A时间段到B时间段的采用平均值。
那需要移位干什么,间接寻址(或者称作变址)就可以了。
信捷的PLC抄三菱的,应该有变址的功能,且支持C语言,那么用数组的下标就可以了。
Good Luck~
《递推平均滤波法(又称滑动平均滤波法)》
A、方法:
把连续取N个采样值看成一个队列
队列的长度固定为N
每次采样到一个新数据放入队尾,并扔掉原来队首的一次数据.(先进先出原则)
把队列中的N个数据进行算术平均运算,就可获得新的滤波结果
有空去与前辈争论滤波表达方式还是什么毫无意义,有这点空去官网下载本手册问题都解决了!
虽然我不用信捷,为了彻底解决你的问题我不得不去信捷的官网下载了手册,其中有一页这样描述,当然前面前辈已经告诉你了,变址。
如果你看了这段还是写不出来的话,我接受你的项目外包,因为我下载手册的同时也下载了软件,就这个问题的功能200元可以给你写的例程。
HAVE FUN!