一乐电子

一乐电子百科

 找回密码
 立即注册

QQ登录

只需一步,快速开始

微信登录或注册

手机号码,快捷登录

搜索
查看: 209|回复: 3
收起左侧

[其他DIY] 关于T50N的电压抖动的软件算法问题

[复制链接]
发表于 2019-7-4 19:58 | 显示全部楼层 |阅读模式

注册本网站需通过微信扫码注册和通过发送手机短信验证。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
刚入手T50N,已经焊上了固态电容,电压波动没什么变化,论坛里看了一下,发现几年前就有一些朋友讨论过这个表头有波动问题。今天进入DEBUG模式,发现ADC的跳动也就是1个数,比如测量的是6.6V,DEBUG ADC显示里是:741-742跳动。但是电压跳动比这个变化大多了,会有0.02V的跳动,围绕着一个中心点。( `! [  p7 d5 y
问题应该不在硬件和线路上面,这里加电容那里加电容,都不是解决问题的根本。既然ADC显示跳动就1,那么导致这些抖动问题都是软件采样滤波算法不合适导致的。3 T- ]& j0 }" p  O" q
也不知道apachectl作者现在还在维护这个项目不。。
$ U! d$ Q: r0 ]& d, ~& k8 ~/ z$ ^下面的话如果有得罪或不太好听请不要介意,我只是比较喜欢这个表,提出我自己的一点算法上的解决办法而已。
% i7 l" @4 d9 V: mapachectl不要老是说,STM32 ADC就这样,什么跳动正常在合理范围内等这些说法,你看那个睿凳的U表UM24,0到24V量程,STM8S做的才10BIT的ADC,缺一点都不抖动,非常平滑,精度也高,他并没有使用外置ADC。。都是在算法上解决的。+ }% X% `* `' `& A; d' P
只要你勤快些,改正一下算法,就会出现大家都喜欢的表头了。! r. i+ o$ h( w3 c
抖动平滑算法,比如:
5 f5 K9 @4 e3 ~9 T+ PN的平均值,N取一个合适的值,每次进行多次采样,进行平均值计算。还可以增加为去除最高最低值,剩下的取平均值进行显示。/ p% H% F) i1 C' k( Q9 B
还可以取中间值而不进行平均值计算等。
8 B% U* u8 ]& }1 I( K& t8 q/ H+ j还可以使用队列平均法,队列固定为N,每次PUSH一个值,POP队列首的值,进行当前队列N的算数平均值计算。
0 o- F+ Z. J4 u( z还有个计数法,每次当前采样后的值和上次的值进行比较,连续N次超过或低于,则用当前采样值替换缓存里的上次的采样值。
# X$ c4 d8 ^1 I9 c7 W7 |在显示刷新率方面,也可以降低比如1秒刷2次显示,等等都会很有效的去除抖动的。
0 a) Q: _- v% d) ?! I- }  h* V以上都是一些很简单的软件去除抖动的办法。
  e' ^  s4 A! o2 C0 y& t2 c我不知道apachectl自己用的是什么滤波算法,,但是根据ADC抖动的范围来看,你的滤波算法不太合适,,要么过于复杂,导致电压抖动范围过大。
* H7 j# n. J! H8 P$ ]" H: e$ |0 B希望作者apachectl看到后能抽出宝贵的时间,进行算法的改进,放出新固件,你的表头会更完美更完善。
  h3 e, [6 Q* n( l) Z- X, K9 F如有得罪或不才之处,请多海涵。。。。
: g7 P8 \* f8 \
发表于 2019-7-5 15:22 | 显示全部楼层
本帖最后由 apachectl 于 2019-7-5 15:32 编辑
  B9 a& s2 G. L+ _9 O) P: G; F7 }+ O2 n* b' Q- H2 Z
http://shmictrl.com/shmidoc/?key=4129013062   36V5A电压电流表头   7 h' |% ?1 ]6 t' j8 O& x

' v- v; h  L8 H, W# I1 O% O+ L软件的算法和这个开源表头的算法完全一样,DMA连续采样50个点到内存中,然后用滤波算法合并求解出AD值,然后AD值通过校准算法转成电压,DEBUG界面显示的AD值就是已经合并出来的值,该值转换成电压显示是1:1的计算显示,不会存在AD变化小,显示值变化大的问题;
2 v2 i# m& y- t' T6 o! H其他表头没有曲线,因为曲线要求相应速度,因此表头在设计的时候,动态范围要比其他表头高,如果一味的减少跳动,会影响曲线的采样显示;
9 W1 L# v$ `  _; C/ E如果想不跳,理论上就是指采样AD拉大采样时间做平均,比如缩到每秒1次采样,采样超多次,进行平均计算,这样肯定是不跳的,但是同样,动态反应就会迟钝,只是每个人的喜好问题所在了;
: Q& C9 V. @& g0 D) X当前的算法确实不够优秀,如果能将曲线显示和数字显示走两路处理,可以弥补各自的不足,但是内存就显得不够了,而且代码可能改动非常大(相当于采样显示部分重构),如果有这个精力,我都建议直接使用新产品直接设计新表头可能更简单一些。: u% ~: U& z  M( `5 ]2 D: [
如果你做数控电源,就知道,能做到20mv以下纹波的数控电源,就算不错了,因此0.02V的跳动其实是可以理解的,但是坛子里的很多人的强迫症也是可以理解的,大家都没有错,只是很多情况下精力不够,只能多搞些开源的,大家一起来共同发展;
  P& p! J" H* e# ~( |& N9 N
 楼主| 发表于 2019-7-5 21:01 | 显示全部楼层
你这样说我就明白了,众口难调,有的喜欢稳,有的喜欢快。。当然如果显示追求速度来说,任何滤波算法都没办法完美平滑了。。降低显示刷新效果是很好,但是带来了速度的迟滞。
( H) Y5 K9 f) M可惜这个不开源,要是有个刷新设置就好了。。喜欢快的就设快,喜欢慢的就设慢。那样就照顾了不同的人群了。毕竟用的地方不一样,对速度要求不一样。& u1 r4 R. f! h7 M/ ]& a
拿你发的那套开源表头,结合现在的屏幕,进行设计新表头,也是个好办法。不过有重复造轮子之嫌。8 W5 ?# G9 B& K, F
感谢你的回复,以后会持续关注。
发表于 2019-7-8 11:11 | 显示全部楼层
本帖最后由 apachectl 于 2019-7-8 11:27 编辑
+ T2 M0 r2 w8 A# Y! v) U) p* p5 Z' e0 l. ?
这次做烙铁的时候,关注了这个问题,好爱烙铁是新系统,新系统做界面非常简单,于是做了两条路,由用户选择,可以看到,选择稳定优先的时候,烙铁曲线的小波峰就没了,选择动态优先的时候,曲线比较真实5 ~# c; d/ @7 s0 X) n$ b% U
稳定优先的波形:
9 f/ E9 V# N1 Y1 e 截图201907081125136506.png 5 B" @" G$ p# P, S! B

5 U6 x2 R! ]/ z动态优先的波形:2 L* {# I; ?: F, U! R% w
截图201907081126303448.png 0 a0 z8 e, ^4 R4 a+ i0 f
* l) B3 R  {+ G/ _* D. S
# y* J9 t9 b6 m' z/ e2 d2 l, a- x1 E* c+ ?
作为电烙铁,估计大多数人喜欢稳定优先,但是作为表头,可能更关注电流的异常波动,而不是看一个趋势
8 K- q4 U3 j; r- t8 [% g  t& f
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|一乐电子百科 ( 粤ICP备09076165号-1粤公网安备44522102000183号 )

GMT+8, 2019-7-22 13:53 , Processed in 0.047394 second(s), 29 queries , Gzip On.

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表