1. 编码器基础:增量式与绝对式原理、分辨率与精度、ABZ与UVW信号解析

做FOC控制,编码器就是你的眼睛。眼睛看不清,电机就转不好。这个道理我是在一次伺服驱动器调试中深刻体会到的——换相角度差了3度,电机就嗡嗡作响,电流还大得吓人。

所以第一章,咱们先把编码器的基础打牢。增量式和绝对式有什么区别?分辨率到底怎么看?ABZ和UVW信号又是干什么用的?搞懂了这些,后面的换相参数整定才能顺风顺水。

1.1 增量式编码器:简单可靠,但怕掉电

增量式编码器,说白了就是输出脉冲数。你转动它,它就输出一串脉冲。转得快,脉冲频率就高;转得慢,频率就低。

它的核心原理是光栅或磁栅。码盘上刻着等间距的条纹,光通过条纹被接收器检测到,每转过一条条纹就输出一个脉冲。我最早接触的增量式编码器是欧姆龙的E6B2系列,2000线,用在三菱伺服上,皮实耐用。

增量式编码器的特点:

  • 输出信号:A、B两相正交脉冲,加上Z相零位脉冲
  • 优点:结构简单、成本低、响应快、抗干扰能力强
  • 缺点:掉电后位置丢失,需要上电找零
  • 适用场景:对成本敏感、允许上电回零的场合
我的经验:增量式编码器在FOC中做换相,必须配合上电找零流程。我习惯在电机上电后先执行一次"寻零"动作——让电机缓慢转动到Z相位置,以此建立电气角度基准。否则直接启动,电机可能会"跳一下"甚至反转。

1.2 绝对式编码器:位置永不忘,但贵

绝对式编码器就高级多了。它每个位置都有唯一的编码值,上电就知道当前角度。不需要找零,不需要回参考点。

它的原理是码盘上有多个码道,每个码道对应一位二进制数据。多圈绝对式编码器内部还有齿轮组或电池,能记录超过一圈的绝对位置。

绝对式编码器的特点:

  • 输出信号:SSI、BiSS、EnDat、CANopen等数字通信协议
  • 优点:上电即知位置、抗干扰强、适合多轴同步
  • 缺点:价格高、通信延迟、协议复杂
  • 适用场景:高端伺服、机器人关节、数控机床
注意:绝对式编码器虽然上电就有位置,但它的初始位置和电机的电气零位不一定对齐。我曾经在调试KUKA机器人时遇到过——编码器读数是0°,但电机反电动势过零点差了30°。所以绝对式编码器也需要做"零位校准",只是不需要每次上电都做。

1.3 分辨率与精度:别搞混了

很多工程师把分辨率和精度混为一谈。我刚开始做电机控制时也犯过这个错——买了个17位编码器,以为精度就是0.0027°,结果实际误差有0.1°。为什么?

分辨率是编码器能分辨的最小角度变化。比如2000线的增量式编码器,经过4倍频后,分辨率是360°/(2000×4)=0.045°。

精度是编码器实际输出角度和真实角度之间的偏差。它受码盘加工误差、安装偏心、温度漂移等因素影响。

参数 定义 典型值 影响因素
分辨率 最小可检测角度变化 0.045°(2000线×4) 码盘线数、倍频方式
精度 输出值与真实值的偏差 ±0.1°~±0.5° 加工误差、安装偏心、温度
重复精度 多次回到同一点的一致性 ±0.01°~±0.05° 轴承间隙、回差
核心观点:分辨率高不等于精度高。FOC换相需要的是精度,不是分辨率。如果编码器精度差,即使分辨率再高,换相角度也是错的,电机照样抖。

1.4 ABZ信号:增量式编码器的三根命脉

ABZ信号是增量式编码器的标准输出。我画个图帮你理解:

ABZ信号时序图 A相 B相 Z相 A超前B 90° Z相每圈一个脉冲 正转时A超前B A相和B相相位差90°,用于判断旋转方向 Z相每圈一个脉冲,用于建立绝对零位

A相和B相是正交信号。正转时A超前B 90°,反转时B超前A 90°。通过检测这个相位关系,MCU就能知道电机往哪转。

Z相是零位脉冲,每圈只输出一个。我习惯用Z相来做换相基准——当Z相到来时,强制把电气角度设为0°。这样即使掉电重启,也能快速找回位置。

避坑指南:我曾经遇到过Z相脉冲宽度太窄,MCU没捕捉到的情况。后来我在代码里加了"Z相捕获中断+软件滤波",确保每个Z相脉冲都被可靠检测。建议你用示波器先看看Z相的实际脉宽,再配置MCU的捕获时间窗口。

1.5 UVW信号:霍尔式的换相信号

UVW信号是编码器内部的霍尔传感器输出的。它模拟了无刷电机的反电动势过零点,每60°电气角度切换一次状态。

UVW信号有6个状态组合(100、110、010、011、001、101),对应6个换相扇区。FOC控制中,UVW信号用来做初始换相——上电时先读UVW状态,确定转子所在的扇区,然后从这个扇区开始启动。

UVW状态 扇区编号 电气角度范围 对应换相相序
100 1 0°~60° A+ B-
110 2 60°~120° A+ C-
010 3 120°~180° B+ C-
011 4 180°~240° B+ A-
001 5 240°~300° C+ A-
101 6 300°~360° C+ B-
注意:UVW信号的分辨率只有60°,不能直接用于FOC的精确换相。它只用来确定初始扇区。启动后,必须切换到ABZ信号或绝对式编码器的高分辨率角度。我见过有人直接用UVW做FOC,结果电机在低速时抖得像筛子——因为60°的换相步长太大了。

1.6 编码器选型建议

选编码器,我一般看三个指标:

  1. 精度要求:FOC换相需要至少0.1°的精度,对应编码器分辨率至少12位(4096线)
  2. 通信接口:增量式用ABZ+UVW,绝对式用SSI/BiSS,根据MCU的外设资源选
  3. 机械安装:编码器与电机轴的同心度直接影响精度,我建议用弹性联轴器
总结:编码器是FOC控制的第一道关卡。增量式便宜但需要上电找零,绝对式方便但贵。ABZ信号提供高分辨率位置,UVW信号提供初始扇区。搞懂这些,你就能为你的电机选对"眼睛"。