签到有奖
消息提醒
运维工程师专区
官方商城
扫码分享好友 任选多种周边
最近有个项目,需要求特定时间内模拟通道采集的平均值(采集时间30~300秒设定);
现在自己的做法如下:(不知道能不能够买足客户要求,求大神给指点一二);
1、开始采集和结束采集都有信号;
2、开始采集执行后,根据数据变化触发沿进行数据叠加及叠加次数累加;
3、结束采集时,叠加数据/叠加次数得到平均值;
现在有个问题,采集来的数据有时候不稳定,忽大忽小(大与小的范围及时间长短不确定,解释一下:有时候可能连续采集几秒都是大数据或小数据);
我的解决办法是,加条件判断,大于或小于多少范围忽略该数值,不计入数据叠加及次数叠加;
现在不确定这种方法能不能满足客户需求,还请大神指点一二;
感谢!!!
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
帖子链接:https://www.ad.siemens.com.cn/club/bbs/post.aspx?a_id=1702703&b_id=50&s_id=0&num=4
采集数据后先进行上、下限滤波,超限的扔掉
用队列:fifo,比如你设置为300个元素的数组,最后一个是最新的值,这样你就可以根据需要从后向前取值求平均,下一个周期数据前移一个地址。
没那么难吧?求平均值不就是累加除以次数吗?
如果不能确定是不是干扰, 就保留所有数据;周期性干扰平均值会滤除;
如果是指定某个时间段, 你可以采用迭代求平均值, 省空间
描述:
次数n; 平局值av, 当前值v;
每个中断周期, av = (n*av + v)/ (n + 1) = av*n/(n+1) + v /(n+1);
也就是av= av * n/(n+1) + v/(n + 1);
这个方法不需要保存所有数据, 也不需要累计值; 特别适合当前值非常大的情况;
分享
扫码分享好友 任选多种好礼
收藏
有帮助
欢迎您访问支持中心!
丰富的视频,全方位的文档,大量的网友交流精华……
为了更好的完善这些内容,我们诚邀您在浏览结束后,花20秒左右的时间,完成一个用户在线调查!
感谢您的支持!
密码至少8位,包含大、小写字母,数字和符号至少三种。
允许邮箱和手机接收来自支持中心网站的信息
我已同意《支持中心网站注册协议和隐私政策》
微信登录扫码一键登录
验证码登录
密码登录
二维码失效点击重试
打开微信扫一扫,快速登录/注册
未注册手机验证后自动登录,注册即代表同意《支持中心网站注册协议和隐私政策》
三日内免验证登录
短信登录
登录