打印

如何让电子秤的数据快速稳定下来?

[复制链接]
楼主: zjyyl
手机看帖
扫描二维码
随时随地手机跟帖
21
dirtwillfly| | 2020-1-16 11:45 | 只看该作者 回帖奖励 |倒序浏览
zjyyl 发表于 2020-1-14 16:30
现在的问题是,同一块主板,别人的就能快速稳定,我的就是很慢。肯定是算法不对头。 ...

这个东西,不光靠主板。还有机械结构等,都会影响稳定的。

使用特权

评论回复
22
质子71| | 2020-1-16 16:11 | 只看该作者
用变长窗口?如果最近的几个值比较稳,就不要再取更多的值了。

使用特权

评论回复
23
zjyyl|  楼主 | 2020-1-16 16:41 | 只看该作者
dirtwillfly 发表于 2020-1-16 11:45
这个东西,不光靠主板。还有机械结构等,都会影响稳定的。

现在是抛开机械结构不说,纯粹从软件角度来考虑。

使用特权

评论回复
24
oufuqiang| | 2020-1-16 16:58 | 只看该作者
你最好能抓个原始波形上来这样才好分析

使用特权

评论回复
25
zjyyl|  楼主 | 2020-1-16 21:19 | 只看该作者
oufuqiang 发表于 2020-1-16 16:58
你最好能抓个原始波形上来这样才好分析

怎么抓呢?请赐教

使用特权

评论回复
26
21ndt| | 2020-1-16 22:49 | 只看该作者
每次比较上一次的AD变化值,
可以分两个条件
1.当AD值变化小于X的时候,认为现在是大缓冲的滑动滤波(假设是128次的滑动滤波),这时慢的话,无所谓,因为需要稳定
2.当AD值变化大于等于X的时候,认为现在重量在变化,此时把滑动滤波的次数减小即可(假设4次),则响应就很快了
这样就能做到响应又快又稳了

使用特权

评论回复
27
oufuqiang| | 2020-1-17 08:42 | 只看该作者
zjyyl 发表于 2020-1-16 21:19
怎么抓呢?请赐教

1.把原始数据串口打印出来
2.示波器抓AD输入脚

使用特权

评论回复
28
感动| | 2020-1-17 09:01 | 只看该作者
滑动平均的滤波方法不合适,改进算法,应该用数字滤波器

使用特权

评论回复
29
gvim| | 2020-1-17 10:02 | 只看该作者
你的有多慢?别人的有多快?相对的才能知道大概的问题。

使用特权

评论回复
30
xch| | 2020-1-17 15:02 | 只看该作者
IIR滤波应该可行。估计电子秤mcu运算能力就只能用它。
最简单的:
Weight (n)= Weight(n-1) *(1-α) + Inp (n)*α;

复杂的:
Weight (n)= Weight(n-1) *( 1 -α -α^2 - ... ) +  Inp (n) * α +Inp (n-1) * α^2 + ....;
内存大,运算速度快就多算几级。

资源够也可以用FIR:

Weight (n)=   Inp (n) * α +Inp (n-1) * α^2 + ....;

切记上述序列系数之和精确 = 1.0。
α 取值等于机械阻尼振荡衰减系数。

使用特权

评论回复
31
zjyyl|  楼主 | 2020-1-17 15:41 | 只看该作者
gvim 发表于 2020-1-17 10:02
你的有多慢?别人的有多快?相对的才能知道大概的问题。

同样的采样10次,求平均值,别人的不到一秒就稳定下来,我的差不多2倍的时间。所以肯定是软件算法有问题

使用特权

评论回复
32
zjyyl|  楼主 | 2020-1-17 15:46 | 只看该作者
xch 发表于 2020-1-17 15:02
IIR滤波应该可行。估计电子秤mcu运算能力就只能用它。
最简单的:
Weight (n)= Weight(n-1) *(1-α) +  ...

谢谢,那个最简单的是不是就是一阶滤波·

使用特权

评论回复
评论
xch 2020-1-17 16:49 回复TA
都是 
33
xch| | 2020-1-18 10:57 | 只看该作者
zjyyl 发表于 2020-1-17 15:46
谢谢,那个最简单的是不是就是一阶滤波·

α 值会算吧?

使用特权

评论回复
34
12864| | 2020-1-18 18:37 | 只看该作者
一般称重AD一秒可以输出10~25个数据,其实已经很快的了,那么你如果用32个数据滑动平均,这个时间就长了,你要求这32个数据触发你的稳定条件并锁定结束测试,可能会比别人慢,因为滑动平均周期越长,跟踪真实信号越慢。但,如果你取8个数据做EMA,并判断这8个连续数据是否触发稳定条件,则会快很多,而且数据少跟踪原始波形的速度也快,就像股票的5日均线跟踪股价很紧密。
我感觉吧,称重没必要要求太高,因为一般廉价AD的单点峰值有效位都可以做到17位(RMS有效位可以做到19位以上),已经远超电子秤要求了,你如果采样保留19位,使用8~16个数据做EMA,基本可以保证19位(1LSB跳),想要稳定速度快,取点就少一些,按照EMA算法,100ms采集一个点,采集8个点才800mS,100ms计算一下8个数据的EMA,100ms可以刷新显示一次,遇到这8个数已经触发稳定条件了就可以冻结。
称重对象上秤后稳定的越快,越容易触发稳定判决条件,但如果称重对象是人,那不确定因素就多了,因为人会一直晃动的,这时候你要想快速稳定,取点还是越少越好,如果对几秒的数据进行判决,人晃动的几率会很大。

使用特权

评论回复
35
song9644| | 2020-1-21 21:12 | 只看该作者
可以合作,1625422362qq主要做电子秤的滤波算法部分

使用特权

评论回复
36
song9644| | 2020-1-21 21:27 | 只看该作者
用数据建立数学模型,找到规律,找到算法设计

使用特权

评论回复
37
song9644| | 2020-1-24 22:28 | 只看该作者
建立了一个模型,运算需要高速单片机,在波形稳定前算出重量,误差0.1%

使用特权

评论回复
38
zjyyl|  楼主 | 2020-2-24 20:44 | 只看该作者

已经实现了,谢谢你的建议。好了很多

使用特权

评论回复
39
zjyyl|  楼主 | 2020-2-24 21:07 | 只看该作者
song9644 发表于 2020-1-24 22:28
建立了一个模型,运算需要高速单片机,在波形稳定前算出重量,误差0.1%

谢谢,最近没来论坛,才看到,加你了,请多指教

使用特权

评论回复
40
zjyyl|  楼主 | 2020-2-24 21:08 | 只看该作者
song9644 发表于 2020-1-24 22:28
建立了一个模型,运算需要高速单片机,在波形稳定前算出重量,误差0.1%

谢谢,最近没来论坛,才看到,加你了,请多指教

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则