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 为什么编码器能用于换相?三个关键原因
我总结一下,编码器能用于换相,靠的是这三条:
- 位置分辨率足够高:现代编码器动辄几千线甚至上万线,对应的电气角度分辨率远小于换相所需的步进角(通常60°或120°)。精度完全够用。
- 实时性满足控制周期:编码器信号通过硬件解码(比如FPGA或专用计数器),延迟在微秒级。伺服控制的电流环周期通常是50μs~100μs,编码器完全跟得上。
- 能同时提供速度和位置:换相需要位置,速度环需要速度。编码器通过脉冲间隔或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 小结
编码器能用于换相,根本原因在于它能提供连续、高精度、低延迟的转子位置信息。从机械角度到电气角度的换算,是连接编码器和换相逻辑的桥梁。不同类型的编码器在初始化流程上有所区别,但最终目的都一样:让控制器知道「转子现在在哪,下一步该给哪相通电」。