作者 | 主题 |
---|---|
凌飞翼 奇侠 ![]() 经验值:7092 发帖数:3450 精华帖:26 |
楼主
![]() 主题:中值滤波库(不排序,已验证) ![]()
本程序适用于PID回路反馈控制信号的滤波处理,可以减少或防止受控设备抖动。
占用存储器数量=表长*2+16B。(数据区长度最小为4,最大为64) 表长=64的情况下耗时24.4mS,表长=4时,耗时3.3mS。 设计该库,是我一直以来的一个梦想。以前用数组滤波,稳定有了,偏差又来了。 面对调节阀的抖动,我十分心痛,不知道它这一生做了多少无用功。 如果因此而延长了调节阀寿命,不说省钱,少一次故障、少一次维修,也算是为低碳经济做贡献。 密码自己找1718 滤波效果图(下载) 量程&滤波(下载) (2011-6-12增补:库中参数及说明请看5楼)
制冷、热工-许可证试验室承建,给了我深究测量与控制的绝好机会。分享-值得期待!
|
Zaxife 至圣 ![]() 经验值:12573 发帖数:2503 精华帖:31 |
58楼
![]() ![]()
如果纯粹的为了给输入模拟量滤波,我认为根本没必要这样做得这么复杂吧?
感觉还是直接用VW0映射AIW0,初始化时直接把AIW0传送给VW0,然后每周期都去判断; 如果 AIW0 > VW0,那么PID模拟量使用的是VW0 * 1.01的结果; 如果 AIW0 < VW0,那么PID模拟量使用的是VW0 * 0.99的结果; 这样就像是电容滤波的效果,对尖脉冲有很好的过滤效果。 如果闲过滤不好,可以降低比例,比如1.001,0.999; 这样做总比那些求平均值和楼主的中值滤波要高效吧? |