3、角度获取:编码器如何提供转子绝对位置与电角度

好,咱们进入第三个核心话题。FOC 控制里,角度信息就是灵魂。没有准确的角度,电流解耦就是空谈,转矩输出也会乱套。我见过不少新手,上来就调 PI 参数,结果电机嗡嗡响就是转不起来——最后发现是编码器角度根本没对上。

说白了,FOC 需要两个角度:转子绝对位置和电角度。前者告诉你在机械空间里转子转到哪了,后者告诉你磁场应该怎么定向。编码器就是干这个活的。

3.1 绝对位置 vs 电角度:别搞混了

先理清概念。我刚开始做 FOC 时也犯过糊涂,以为编码器读出来的角度直接就能扔进 Park 变换。其实不是这么回事。

角度类型 含义 范围 用途
机械绝对位置 转子在物理空间中的实际角度 0° ~ 360°(机械) 速度计算、位置环、多圈累计
电角度 磁场定向所需的电气角度 0° ~ 360°(电气) Park 变换、逆 Park 变换

它们之间差一个极对数倍数。比如一个 4 对极的电机,转子转一圈机械角度,电角度已经跑了 4 圈。你想想看,如果直接把机械角度扔进 Park,电流解耦全乱套。

核心公式:

θe = (θm × P) mod 360°

其中 θe 是电角度,θm 是机械角度,P 是极对数。

3.2 编码器怎么读出绝对位置

编码器分两大类:增量式和绝对式。我个人的习惯是,只要成本允许,优先用绝对式。为什么?因为上电即知位置,不用找零位,省心太多。

3.2.1 绝对式编码器

绝对式编码器内部有码盘,每个位置对应唯一的二进制码。上电后直接读寄存器就能拿到 0~360° 内的绝对角度。常用的通信接口有 SPI、SSI、BiSS-C 等。

举个例子,我用过一款 17 位单圈绝对式编码器,分辨率是 360° / 2¹⁷ ≈ 0.0027°。这个精度对于大多数伺服应用已经绰绰有余。

我的经验: 读绝对式编码器时,注意 SPI 时钟频率不要超过芯片手册的上限。我曾经在项目里为了追求速度把时钟拉到 10 MHz,结果数据偶尔跳变,排查了两天才发现是时序裕量不够。

3.2.2 增量式编码器 + 找零位

增量式编码器只输出 A、B、Z 三路脉冲。上电时不知道转子在哪,必须通过 Z 信号或者预定位来找零位。我早期做的一个风机项目用的就是增量式,每次上电都要让电机转一圈找 Z 脉冲,那个过程噪音大、还容易抖动。

增量式的角度计算流程:

  1. 上电时角度未知,记录为 0
  2. 通过 A/B 脉冲计数,累加得到相对角度
  3. 遇到 Z 脉冲时,将角度重置为预设的零位值
  4. 之后继续累加计数

注意: 增量式编码器掉电后角度丢失。如果系统要求掉电保持位置,必须加电池备份或者改用绝对式。

3.3 从机械角度到电角度的转换

拿到机械角度后,乘以极对数再取模,就得到电角度。但这里有个坑——初始相位对齐。

编码器的 0° 机械位置,不一定对应电角度的 0°。因为电机绕组和磁钢的安装有偏差。所以我们需要做一次校准,把编码器零位和电机反电动势零位对齐。

我常用的校准方法:

  • 给电机通一个固定的 d 轴电流(比如 Id = 1A,Iq = 0)
  • 转子会被拉到 d 轴对齐位置
  • 此时记录编码器角度,作为偏移量
  • 后续电角度 = (机械角度 - 偏移量) × 极对数

校准后的电角度计算公式:

θe = ((θm - θoffset) × P) mod 360°

3.4 角度获取的完整流程

下面这张图是我在项目中常用的角度处理链路,你可以参考一下:

编码器角度获取与电角度计算流程 编码器角度获取与电角度计算流程 编码器硬件 原始位置数据 滤波/纠错/插值 机械绝对角度 θm 零位偏移 θoffset 电角度 θe Park/逆Park变换 说明: 绝对式:直接读寄存器 增量式:A/B计数 + Z校准 注意SPI时序和抗干扰 关键公式: θe = (θm - θoffset) × P 取模 360° 后使用

3.5 实际项目中的避坑指南

做了这么多年电机控制,我在角度获取上踩过的坑真不少。挑几个典型的说说:

  • 编码器安装偏心: 机械安装时编码器轴心和电机轴心不重合,会导致角度周期性误差。我曾经用示波器抓电流波形,发现每转一圈就有一次畸变,最后发现是联轴器没装正。
  • SPI 通信干扰: 编码器线缆和功率线走同一个线槽,高频噪声会耦合进时钟和数据线。我建议编码器线用屏蔽双绞线,并且远离功率线至少 10 cm。
  • 电角度初始相位错误: 校准偏移量如果算错 180°,电机能转但效率极低,还会发热。我习惯在校准后用手转动转子,观察反电动势波形和电角度是否对齐。
  • 多圈溢出处理: 增量式编码器长时间运行后,计数值可能溢出。需要软件做圈数管理,或者用 32 位计数器。

我的小技巧: 在调试阶段,把机械角度和电角度同时通过 DAC 输出到示波器。一眼就能看出角度转换是否正确,比看寄存器快多了。

3.6 不同编码器方案的对比

最后给个对比表,方便你选型时参考:

方案 上电位置 分辨率 成本 抗干扰 适用场景
绝对式(SPI) 立即获取 高(12~20位) 高 好 伺服、机器人、高端设备
增量式(A/B/Z) 需找零位 中(取决于倍频) 低 中 风机、泵、通用变频
磁编码器(SPI) 立即获取 中(10~14位) 中 中(易受外磁场干扰) 紧凑空间、低成本伺服