4、编码器与换相的关联:为什么编码器能用于换相、编码器信号与电机转子位置的关系

好,我们进入第四章。前面几章我们把编码器的种类、原理都过了一遍,现在要聊一个核心问题:编码器凭什么能用来换相?

说白了,换相的本质就是在正确的时间,给正确的绕组通正确的电流。那什么叫「正确的时间」?你得知道转子此刻转到哪了。编码器干的事,就是把这个位置告诉你。

核心逻辑链:

编码器输出位置 → 控制器算出转子角度 → 根据角度决定导通相序 → 输出PWM给逆变器 → 电机转动

没有位置反馈,换相就是开环瞎蒙。有了编码器,才是闭环伺服。

4.1 编码器信号如何映射转子位置

不同类型的编码器,映射方式不一样。我分别说一下。

4.1.1 增量式编码器

增量式编码器输出A、B两路正交方波,再加一个Z脉冲(零位信号)。

  • A、B信号:相位差90°,用来判断转向和计数。每来一个脉冲,代表转子转过了一个固定的机械角度(取决于编码器线数)。
  • Z信号:每转一圈输出一个脉冲,用来校准绝对零位。

你想想看,如果编码器是2500线,那每转一圈就有2500个A相脉冲。每个脉冲对应的机械角度就是 360° / 2500 = 0.144°。再配合四倍频技术,分辨率能到 0.036°。

我的经验:增量式编码器上电时不知道绝对位置,必须做一次「寻零」操作。我早期有个项目,上电直接给速度指令,结果电机反向飞车——就是因为没等Z信号校准。后来我习惯在初始化流程里强制让电机低速转一圈,抓到Z信号后再切入正常控制。

4.1.2 绝对式编码器

绝对式编码器就省心多了。它直接输出一个二进制码或SSI/BiSS协议数据,代表当前转子的绝对机械位置。上电就能读,不需要寻零。

比如一个17位单圈绝对式编码器,分辨率是 2^17 = 131072 线/圈,每个码值对应 360° / 131072 ≈ 0.0027°。这个精度,做换相绰绰有余。

编码器类型 位置获取方式 上电是否可知位置 换相适用性
增量式 脉冲计数 + Z信号校准 否,需寻零 可以,但需初始化流程
绝对式 直接读取码值 是 直接可用,更安全

4.2 从机械位置到电气角度的换算

这里有个关键概念:电气角度和机械角度不是一回事。

对于一对极的电机,机械转一圈,电气也转一圈。但对于多对极电机,比如4对极,机械转一圈,电气要转4圈。

换算公式很简单:

θ_e = (θ_m × P) % 360°

其中:

  • θ_e:电气角度(°)
  • θ_m:机械角度(°)
  • P:电机极对数

换相逻辑用的是电气角度。你编码器读回来的是机械角度,必须做这个换算。

我曾经踩过的坑:有一次调试6对极的电机,换相总是抖动。查了半天,发现是电气角度换算时用了整数除法,导致角度跳变。后来改成浮点运算,再做了角度补偿滤波,问题才解决。记住:极对数越高,角度换算的精度要求也越高。

4.3 编码器换相的典型信号流

我画了一张图,把整个信号链路串起来。你看一眼就明白了。

编码器换相信号流 电机 编码器 信号处理 滤波/倍频/解码 位置计算 机械角→电气角 换相逻辑 查表/计算导通相 逆变器 说明: 编码器检测电机转子机械位置 → 信号处理后换算为电气角度 → 换相逻辑根据电气角度决定导通相序 → 逆变器执行换相 → 电机转动。 这是一个闭环:电机转动 → 编码器更新位置 → 换相逻辑重新计算 → 下一拍换相。

4.4 为什么编码器能用于换相?三个关键原因

我总结一下,编码器能用于换相,靠的是这三条:

  1. 位置分辨率足够高:现代编码器动辄几千线甚至上万线,对应的电气角度分辨率远小于换相所需的步进角(通常60°或120°)。精度完全够用。
  2. 实时性满足控制周期:编码器信号通过硬件解码(比如FPGA或专用计数器),延迟在微秒级。伺服控制的电流环周期通常是50μs~100μs,编码器完全跟得上。
  3. 能同时提供速度和位置:换相需要位置,速度环需要速度。编码器通过脉冲间隔或M/T法测速,一个传感器解决两个需求。

我个人的习惯:在选型阶段,我会先算一下编码器分辨率对应的电气角度步进。公式很简单:电气角度步进 = 360° / (编码器线数 × 4 × 极对数)。如果这个值大于1°,我就要考虑换相抖动的问题了。一般建议控制在0.5°以内。

4.5 一个常见的误解

有人觉得,编码器线数越高,换相就越平滑。其实不完全对。

换相平滑度主要取决于电气角度的更新频率和PWM调制策略。编码器线数高,只是让位置测量更精细,但如果你控制周期是固定的,那换相点之间的插值算法才是关键。

举个例子:你用的是2500线编码器,四倍频后每圈10000个脉冲。电机转速3000rpm,那每秒就是 3000/60 × 10000 = 500,000个脉冲。如果控制周期是100μs,那每个周期内能收到50个脉冲。位置更新很密,换相自然平滑。

但如果转速只有10rpm呢?每秒只有约1667个脉冲,每个控制周期只能收到0.167个脉冲——也就是好几个周期才更新一次位置。这时候换相就会感觉「卡顿」。怎么办?要么用更高线数的编码器,要么在软件里做位置插值预测。

我曾经遇到的情况:一个低速高精度的转台项目,客户要求0.1rpm运行平稳。我用的是17位绝对式编码器,但换相时还是有轻微抖动。后来我在换相逻辑里加入了角度前馈补偿,根据前几拍的速度趋势预测当前角度,才把抖动压下去。记住:低速时,编码器脉冲间隔变长,换相精度依赖算法补足。

4.6 小结

编码器能用于换相,根本原因在于它能提供连续、高精度、低延迟的转子位置信息。从机械角度到电气角度的换算,是连接编码器和换相逻辑的桥梁。不同类型的编码器在初始化流程上有所区别,但最终目的都一样:让控制器知道「转子现在在哪,下一步该给哪相通电」。