1. 编码器基础:增量式与绝对式编码器原理、分辨率与精度、ABZ与UVW信号解析
做电机控制这些年,我接触过各种各样的编码器。说实话,编码器就像是电机的「眼睛」。没有它,你的位置环就是瞎的。今天咱们就把编码器的基础掰开揉碎了讲清楚。
1.1 增量式编码器:最简单的「计数器」
增量式编码器,说白了就是一个脉冲计数器。它每转一个角度,就输出一个脉冲。你数了多少个脉冲,就知道电机转了多少角度。
它的内部结构其实不复杂:一个码盘上刻着密密麻麻的透光条纹,一边是发光管,一边是接收管。码盘一转,光线时断时续,就产生了脉冲信号。
核心特点:
- 只能知道「相对位置」——从开机那一刻开始算
- 断电后位置丢失,必须重新找零
- 结构简单,成本低,响应快
我记得有一次做AGV小车的项目,用的就是增量式编码器。每次断电重启,小车都得先跑回原点校准位置。客户觉得麻烦,后来换成了绝对式编码器才解决。所以选型的时候,一定要想清楚你的系统能不能接受「每次开机找零」这个动作。
1.2 绝对式编码器:自带「记忆」的编码器
绝对式编码器就不一样了。它每个位置都有一个唯一的编码值。你读到的数值,直接对应一个绝对角度。断电?没关系。重启后读到的还是那个位置。
它的码盘是多圈刻道的,每一圈代表一个二进制位。圈数越多,分辨率越高。常见的单圈绝对式编码器有12位、16位、甚至23位。
| 类型 | 输出信号 | 断电记忆 | 典型应用 |
|---|---|---|---|
| 增量式 | 脉冲(A/B/Z) | 否 | 普通伺服、步进电机 |
| 绝对式(单圈) | SSI/BiSS/EnDat | 单圈内记忆 | 机器人关节、数控机床 |
| 绝对式(多圈) | SSI/BiSS/EnDat | 多圈内记忆 | 工业机器人、AGV |
我的建议:如果你的系统需要做绝对位置闭环,或者断电后不能重新找零,直接上绝对式编码器。别为了省几十块钱给自己挖坑。
1.3 分辨率与精度:别搞混了
这两个概念,我见过太多人搞混了。包括一些做了好几年的工程师。
分辨率,是编码器能分辨的最小角度变化。比如一个2500线的增量式编码器,经过4倍频后,分辨率就是 360° / (2500 × 4) = 0.036°。说白了就是「能数多细」。
精度,是编码器输出的角度和实际角度之间的误差。它受码盘加工精度、安装偏心、温度漂移等因素影响。一个分辨率很高的编码器,精度可能并不高。
我曾经踩过的坑:有次选了一个20位的绝对式编码器,分辨率高达0.0013°,心里美滋滋。结果装上去发现,实际定位误差有0.1°。查了半天才发现,编码器的精度只有±0.05°,分辨率再高也没用。精度才是硬指标。
所以选型的时候,先看精度能不能满足你的位置环要求,再看分辨率。分辨率够用就行,不是越高越好。分辨率太高,反而会给控制器带来不必要的计算负担。
1.4 ABZ信号解析:增量式编码器的「三剑客」
增量式编码器输出三路信号:A相、B相、Z相。
- A相和B相:相位差90°的方波信号。通过判断A和B的相位关系,就能知道电机是正转还是反转。A超前B是正转,B超前A是反转。
- Z相:每转一圈输出一个脉冲,用来做零位参考。也叫「索引脉冲」。
实际应用中,我们通常用A、B两相的上升沿和下降沿来做4倍频。这样分辨率直接翻了4倍。比如一个2500线的编码器,4倍频后就是10000个脉冲每圈。
// 典型的ABZ信号解码伪代码
if (A上升沿) {
if (B == HIGH) {
方向 = 反转;
脉冲计数--;
} else {
方向 = 正转;
脉冲计数++;
}
}
if (Z上升沿) {
脉冲计数 = 0; // 归零
}
实际经验:Z相信号一定要做滤波处理。我遇到过电机振动导致Z相误触发的情况,位置直接归零,整个系统乱套。加一个简单的RC低通滤波或者软件去抖,就能解决。
1.5 UVW信号解析:无刷电机的「换相信号」
UVW信号,是专门给无刷直流电机(BLDC)换相用的。它不像ABZ那样连续输出脉冲,而是每60°电角度变化一次状态。
三路信号(U、V、W)组合起来,一共6种状态。每种状态对应一个换相位置。控制器根据这6种状态,就知道该给哪两相通电了。
| U | V | W | 电角度范围 | 通电相 |
|---|---|---|---|---|
| 1 | 0 | 1 | 0° - 60° | A+B- |
| 1 | 0 | 0 | 60° - 120° | A+C- |
| 1 | 1 | 0 | 120° - 180° | B+C- |
| 0 | 1 | 0 | 180° - 240° | B+A- |
| 0 | 1 | 1 | 240° - 300° | C+A- |
| 0 | 0 | 1 | 300° - 360° | C+B- |
嗯,这里要注意:UVW信号只能给出60°的分辨率。如果你要做精确的位置环,光靠UVW是不够的。通常的做法是:用UVW做初始换相,然后用ABZ做精确定位。
1.6 知识体系总览
下面这张图,把编码器的基础知识串起来了。你可以把它当作本章的「思维导图」。
这张图把编码器的两大类型、关键信号、以及核心概念都串起来了。你可以看到,增量式和绝对式各有优劣,ABZ和UVW各司其职。实际项目中,往往是多种信号配合使用。
1.7 小结
编码器基础这块,我讲了增量式和绝对式的区别,分辨率和精度的差异,以及ABZ和UVW信号的具体用法。你想想看,这些东西其实都不复杂,但搞混了就会出大问题。
我个人习惯是:做项目前先把编码器的选型文档从头到尾看一遍,特别是精度参数和电气接口。别像我当年那样,装上去才发现信号电平不匹配,还得加电平转换电路,折腾了好几天。