一乐电子

一乐电子百科

 找回密码
 立即注册

QQ登录

只需一步,快速开始

快捷登录

手机号码,快捷登录

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

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

[复制链接]
发表于 2019-7-4 19:58 | 显示全部楼层 |阅读模式
刚入手T50N,已经焊上了固态电容,电压波动没什么变化,论坛里看了一下,发现几年前就有一些朋友讨论过这个表头有波动问题。今天进入DEBUG模式,发现ADC的跳动也就是1个数,比如测量的是6.6V,DEBUG ADC显示里是:741-742跳动。但是电压跳动比这个变化大多了,会有0.02V的跳动,围绕着一个中心点。) q4 {( j, c/ _1 I  f# @
问题应该不在硬件和线路上面,这里加电容那里加电容,都不是解决问题的根本。既然ADC显示跳动就1,那么导致这些抖动问题都是软件采样滤波算法不合适导致的。/ i; ^9 f& X' |, \: u
也不知道apachectl作者现在还在维护这个项目不。。) T' ^  {' [! \$ l
下面的话如果有得罪或不太好听请不要介意,我只是比较喜欢这个表,提出我自己的一点算法上的解决办法而已。8 N. T; ~5 o3 y, v
apachectl不要老是说,STM32 ADC就这样,什么跳动正常在合理范围内等这些说法,你看那个睿凳的U表UM24,0到24V量程,STM8S做的才10BIT的ADC,缺一点都不抖动,非常平滑,精度也高,他并没有使用外置ADC。。都是在算法上解决的。8 V5 U3 S6 _+ M# ]  [1 U
只要你勤快些,改正一下算法,就会出现大家都喜欢的表头了。3 C+ R5 b6 t% n6 ~3 f
抖动平滑算法,比如:! W- E1 U# x' U. y4 Y- G( {# M
N的平均值,N取一个合适的值,每次进行多次采样,进行平均值计算。还可以增加为去除最高最低值,剩下的取平均值进行显示。
" J/ y7 f5 q# X还可以取中间值而不进行平均值计算等。
* |. U. F; @$ Z5 ]+ k还可以使用队列平均法,队列固定为N,每次PUSH一个值,POP队列首的值,进行当前队列N的算数平均值计算。% y% g2 l4 H( o+ ^* C& a* A
还有个计数法,每次当前采样后的值和上次的值进行比较,连续N次超过或低于,则用当前采样值替换缓存里的上次的采样值。
( [! H, @' n% M0 s0 l% E& F& z7 c在显示刷新率方面,也可以降低比如1秒刷2次显示,等等都会很有效的去除抖动的。+ n0 X7 D3 {/ n5 `
以上都是一些很简单的软件去除抖动的办法。
: V& |" l# _' `2 y* X: O我不知道apachectl自己用的是什么滤波算法,,但是根据ADC抖动的范围来看,你的滤波算法不太合适,,要么过于复杂,导致电压抖动范围过大。* M" z  q5 ]! o: M7 C
希望作者apachectl看到后能抽出宝贵的时间,进行算法的改进,放出新固件,你的表头会更完美更完善。
: ^# C- ]! p+ U4 w* _如有得罪或不才之处,请多海涵。。。。4 G  c& V. `8 _! b9 X5 O- N
发表于 2019-7-5 15:22 | 显示全部楼层
本帖最后由 apachectl 于 2019-7-5 15:32 编辑 * v* N9 I5 T+ A( ^( y1 i
& \4 t) g8 }3 n9 c
http://shmictrl.com/shmidoc/?key=4129013062   36V5A电压电流表头   * Q5 H! A# R( ^5 H
6 m* G& f5 H$ a" x
软件的算法和这个开源表头的算法完全一样,DMA连续采样50个点到内存中,然后用滤波算法合并求解出AD值,然后AD值通过校准算法转成电压,DEBUG界面显示的AD值就是已经合并出来的值,该值转换成电压显示是1:1的计算显示,不会存在AD变化小,显示值变化大的问题;  a0 m- ~' m8 ]9 V4 `
其他表头没有曲线,因为曲线要求相应速度,因此表头在设计的时候,动态范围要比其他表头高,如果一味的减少跳动,会影响曲线的采样显示;
$ u4 [( l* }$ t' `/ ^' d, p如果想不跳,理论上就是指采样AD拉大采样时间做平均,比如缩到每秒1次采样,采样超多次,进行平均计算,这样肯定是不跳的,但是同样,动态反应就会迟钝,只是每个人的喜好问题所在了;
# I+ K; e0 ^( [; U0 P% Y  C) U: L- Y当前的算法确实不够优秀,如果能将曲线显示和数字显示走两路处理,可以弥补各自的不足,但是内存就显得不够了,而且代码可能改动非常大(相当于采样显示部分重构),如果有这个精力,我都建议直接使用新产品直接设计新表头可能更简单一些。) b, z  ?3 `9 v+ z3 P
如果你做数控电源,就知道,能做到20mv以下纹波的数控电源,就算不错了,因此0.02V的跳动其实是可以理解的,但是坛子里的很多人的强迫症也是可以理解的,大家都没有错,只是很多情况下精力不够,只能多搞些开源的,大家一起来共同发展;
$ u: p9 q: z, x, _; a- ~
 楼主| 发表于 2019-7-5 21:01 | 显示全部楼层
你这样说我就明白了,众口难调,有的喜欢稳,有的喜欢快。。当然如果显示追求速度来说,任何滤波算法都没办法完美平滑了。。降低显示刷新效果是很好,但是带来了速度的迟滞。2 O+ o9 p, y8 k
可惜这个不开源,要是有个刷新设置就好了。。喜欢快的就设快,喜欢慢的就设慢。那样就照顾了不同的人群了。毕竟用的地方不一样,对速度要求不一样。
: E6 U* w2 J" Y* r& ^% }拿你发的那套开源表头,结合现在的屏幕,进行设计新表头,也是个好办法。不过有重复造轮子之嫌。
8 _. a1 ]' t1 M8 w感谢你的回复,以后会持续关注。
发表于 2019-7-8 11:11 | 显示全部楼层
本帖最后由 apachectl 于 2019-7-8 11:27 编辑 1 s# t0 W' r* S4 g5 Y  M
# c) P& H" Q  W) P0 {  G7 u8 a
这次做烙铁的时候,关注了这个问题,好爱烙铁是新系统,新系统做界面非常简单,于是做了两条路,由用户选择,可以看到,选择稳定优先的时候,烙铁曲线的小波峰就没了,选择动态优先的时候,曲线比较真实
( n; H* E1 ]- I. l+ M3 k6 g3 b稳定优先的波形:1 m4 l+ q. g& W# S
截图201907081125136506.png
5 W0 m" i% r/ K! w4 v
- G* z6 m' S& u& t) I动态优先的波形:
1 i" f; O) ]3 |( ?7 L. g- ^ 截图201907081126303448.png   z" [$ b/ A5 a7 ]  g6 D

( |' Q' U5 y' n. n  m  o( Z3 n# [: i: Q+ S) ?8 {& J1 b
作为电烙铁,估计大多数人喜欢稳定优先,但是作为表头,可能更关注电流的异常波动,而不是看一个趋势5 `$ v, U8 D9 l  S* z9 m% U  I6 ^+ p
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|一淘宝店|手机版|商店|电子DIY套件|一乐电子 ( 粤ICP备09076165号-1粤公网安备44522102000183号 )

GMT+8, 2019-9-22 18:42 , Processed in 0.086251 second(s), 38 queries , Gzip On.

Powered by yleee

© 2008-2019 一乐电子

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