AS5600与KTH78放在一起看:滤波和延迟到底该怎么平衡

首发于公众号「如是有为」 · 查看原文

AS5600与KTH78放在一起看:滤波和延迟到底该怎么平衡

很多人一聊磁编码器,就喜欢先比位数、再比分辨率,最后顺手把“滤波开大一点”当成通用解法。

这个思路在低速演示里通常没问题,一上真系统就容易出事。因为编码器从来不是单独工作的,它永远活在一条更长的链路里:磁体、安装、采样、接口、滤波、控制环,再加上温漂、振动和电磁噪声。只看静态角度误差,不看延迟和动态跟随,最后调出来的往往不是更稳的系统,而是一个“安静但反应慢”的系统。

把 AS5600 和 KTH78 放在一起看,很容易看出两种完全不同的设计哲学。AS5600 的长处是便宜、成熟、板级接入轻,适合把绝对角度能力快速塞进一个成本敏感的小系统;它的短板也很明确,I2C 地址固定,多器件并联不友好,系统一复杂,很快就会从“省事”变成“总线管理地狱”。KTH78 则不是这条路线。已有资料里它更像高速磁编码前端,响应做到 0.5us、采样率做到 2MHz、接口直接给到 20MHz SPI。这种器件的意义,不是让参数表更好看,而是把延迟预算留给系统,让控制器、融合算法和保护逻辑还有回旋余地。

真正值得盯的,不是“谁更准”,而是谁在滤波和延迟这对矛盾上更像工程器件。AS5600 这类低成本方案更像“先把角度读出来”,然后在系统层面想办法让结果可用;KTH78 这种高速前端更像“先保证角度来得够快”,再决定后面要不要拿滤波去换噪声。这个顺序差别很大。前者默认接受链路慢一些、接口窄一些、系统容错低一些;后者默认承认高速动态里最稀缺的不是静态精度,而是时间。

一、滤波不是免费午餐,延迟也不是抽象代价

做过电机和关节控制的人都知道,滤波最诱人的地方,是它看起来总能把波形变漂亮。抖动小了,曲线顺了,示波器上也更体面。但工程上真正要问的是:这份平滑是拿什么换来的。

答案通常只有一个:延迟。

延迟一旦进了链路,代价不会只停在编码器本身。它会沿着控制回路往后传,表现成三种最常见的问题:

低速时看着很稳,高速时相位开始落后。

静态读数很漂亮,动态跟踪却越来越钝。

噪声被压下去了,但碰撞、反冲、失步这些真正该尽快看见的异常,也一起被“抹平”了。

所以滤波参数该怎么设,从来不是“能开多大开多大”,而是先回答一句话:这个位置反馈到底是给谁用的。

如果它主要服务显示、记录和低速定位,链路允许慢一点,滤波确实可以重一些。

如果它同时承担换向、速度估计、碰撞检测、保护接管,延迟就会比噪声更危险。

很多系统最后翻车,不是因为精度差,而是因为该快的时候不够快。

二、AS5600的问题,不是它不够准,而是它太容易被用到不该去的地方

AS5600 最容易让人误判的地方,是它太像“顺手可用”的方案了。板子上挂一个,I2C 一连,角度就出来了,开发初期体验很好。但一旦系统从单点走向多点,问题就会一个接一个冒出来。

第一层问题是总线。固定地址意味着同类器件扩展受限,多节点时往往要上 PCA9548A / TCA9548A 这类复用器。

这类板子当然有用,但它解决的是“能不能接起来”,不是“系统是不是更好了”。很多时候它只是把矛盾从编码器本体,转移到了总线仲裁、轮询节拍和软件复杂度上。硬件看起来便宜了,系统却不一定更轻。

第二层问题是角色错位。像 AS5600 这种器件,更适合做低成本角度感知、旋钮、轻载执行机构、或者局部闭环里对动态要求不高的节点。把它硬塞进对延迟和多节点通信都敏感的系统,再寄希望于后级滤波和控制算法把一切补回来,往往就是麻烦的开始。

第三层问题是错把“能读”当成“能控”。很多板子在台架上能稳定出角度,到了真实电机和机械结构上,却开始暴露总线调度、采样时序和瞬时毛刺问题。这不是芯片突然变差,而是系统终于把真实约束摊开了。

三、KTH78的价值,不在“更高端”,而在它给系统留了时间

KTH78 这类高速前端看起来门槛更高,实际上它解决的是更硬的问题。它不是把磁编码器做成一颗“万能答案”,而是把最稀缺的东西先保住:时间预算。

已有资料里,KTH78 的典型特征很明确:

响应快

采样率高

SPI

链路宽

更适合进入融合、补偿和高速控制链路

这类器件的思路不是“先滤干净再说”,而是“先尽量快地把信息交出来,再决定后面哪些部分该滤、哪些部分绝不能滤”。这是资深玩家和普通方案商最大的区别之一。普通方案商喜欢拿滤波掩盖系统问题,老玩家更在意链路里哪里必须保真、哪里可以做交易。

对高速控制来说,编码器最怕的不是有一点噪声,而是已经失真了,系统还以为自己看见的是真实位置。只要响应够快,后级总还有机会做速度估计、观测器融合、陷波和状态机保护;一旦原始位置已经慢了,后面再聪明也只是补作业。

四、AS5600与KTH78真正的分界线,是系统分工,不是价格档位

如果只按价格分层,会很容易把这两类器件写成“低端”和“高端”。这个写法太浅。

更准确的说法应该是:

AS5600更像一个低门槛角度入口,适合把功能先做出来。

KTH78更像一个高速反馈前端,适合把动态性能和系统余量先守住。

前者强调的是“有没有”。

后者强调的是“来不来得及”。

在很多控制系统里,第二件事比第一件事更贵。因为“有没有角度”只决定系统能不能启动,“来不来得及”决定系统会不会在工况上升后突然变得难调、易抖、难保护。

这也是为什么不少老工程师最后会把架构改成局部单元:电机控制 MCU、编码器、驱动尽量收在同一块板上,局部闭环就地完成,再通过 CAN 或其他更适合系统级通信的链路往上交互。这样做不是为了“高级”,而是为了把最敏感的那一小段反馈链路缩短。

读到过一句判断其实很到位:把“电机控制 MCU + 编码器”做成局部单元,很多问题会一下子变简单。真正成熟的系统,往往不是靠某一颗器件全能,而是靠架构把不必要的复杂度挡在外面。

五、滤波到底该怎么平衡

如果只给一个结论,我会这么说:

低速、低成本、低风险节点,优先保留结构简单和系统可维护性,滤波可以稍重,但不要把多器件总线复杂度想得太轻。

高速、动态、保护敏感节点,优先保留时间预算,先让反馈足够快,再谈滤波要加到哪里、加多少。

更具体一点,经验上可以抓三条:

不要用滤波去掩盖接口和架构问题。总线慢、轮询乱、采样不同步,这些都不是滤波该解决的。

不要把静态平滑当成动态稳定。位置曲线更顺,不等于控制链路更强。

真正关键的异常量,尽量保留一条低延迟观察通道。哪怕主通路做了平滑,也别把所有快速变化都一起埋掉。

这三条想通了,AS5600 和 KTH78 就不再是“谁替代谁”的关系,而是两种完全不同的系统哲学。

结语

把 AS5600 和 KTH78 放在一起看,最容易得出的错误结论是“一个便宜,一个高级”。更接近事实的结论其实是:前者解决的是角度可得性,后者解决的是反馈时间的尊严。

磁编码器真正难的,从来不是把角度读出来,而是决定哪一段信息可以慢,哪一段信息绝不能慢。能把这件事想清楚,才算真正摸到滤波和延迟的平衡点。

应作如是观
公众号「如是有为」二维码

关注公众号「如是有为」

微信扫一扫,新文章先在公众号发出。