1. 编码器基础:什么是编码器、编码器在电机控制中的作用、增量式与绝对式编码器的区别

大家好,我是你们的老朋友。咱们这门课叫《编码器换相在电机控制中的完整部署》,第一讲,得先把地基打牢。

编码器这东西,说白了就是一个传感器。它把电机转子的机械位置、转速,甚至是转向,统统变成电信号,告诉控制器。没有它,你的电机就是个瞎子,你让它转90度,它可能转过了头,也可能没到位。

我刚开始做电机驱动那会儿,总觉得编码器可有可无,开环跑跑不也挺好?直到有一次,一个机械臂项目,空载时精度还行,一加上负载,位置直接跑偏。从那以后,我再也不敢小看编码器了。

1.1 编码器在电机控制中的作用

编码器到底干了哪些活?我给大家捋一捋,其实就三件事:

  • 测位置:转子现在转到哪了?是0度还是180度?这是换相的基础。
  • 测速度:转子转得多快?是1000转还是3000转?这是调速的基础。
  • 测转向:是正转还是反转?这在闭环控制里至关重要。

你想想看,如果没有编码器,你只能靠反电动势过零点来估算位置。但电机低速时,反电动势信号弱得可怜,估算出来的位置误差大,换相就容易出错。编码器就是那个给你“实锤”的家伙。

核心观点:编码器是电机控制中“感知层”的核心器件。没有它,你的控制算法再牛,也是盲人摸象。

1.2 增量式与绝对式编码器的区别

这是新手最容易搞混的地方。我直接给你们画个对比表,一目了然。

对比项 增量式编码器 绝对式编码器
输出信号 A、B两路正交脉冲,Z相零位脉冲 多路并行二进制码或串行协议数据
位置记忆 断电丢失,上电需回零 断电不丢失,上电即知绝对位置
分辨率 取决于码盘刻线数,可做很高 取决于码道数,通常比增量式低
抗干扰 脉冲计数易受干扰,累计误差 抗干扰能力强,无累计误差
成本 低 高
典型应用 伺服电机、工业机器人关节 数控机床主轴、航天、雷达

我个人的习惯是:能用绝对式,尽量用绝对式。虽然贵一点,但省心。尤其是那些断电后不允许乱动的场合,比如机械臂的关节,你总不希望每次上电都让机械臂先“找家”吧?

增量式编码器的工作原理

增量式编码器内部有一个码盘,上面刻满了明暗相间的条纹。发光二极管照射码盘,光敏元件接收透过来的光。码盘一转,光信号就变成了一串脉冲。

它输出两路相位差90度的脉冲,叫A相和B相。通过判断A相和B相谁先谁后,就能知道转向。比如A相超前B相90度,那就是正转;反过来就是反转。

另外还有一个Z相,每转一圈输出一个脉冲,用来做零位参考。

小技巧:我曾经在调试一个高速电机时,发现编码器脉冲计数总是丢。后来发现是A、B相脉冲频率太高,MCU的输入捕获中断响应不过来。解决办法是改用正交编码器接口(QEI)硬件模块,或者降低编码器线数。

绝对式编码器的工作原理

绝对式编码器就高级多了。它的码盘上有多个同心码道,每个码道对应一位二进制数。码盘在不同位置,光敏元件读到的二进制组合就不同。这个组合直接对应一个绝对角度。

比如一个12位的绝对式编码器,一圈有4096个位置。你上电一读,就知道转子在4096个位置中的哪一个,完全不需要回零操作。

绝对式编码器的输出方式也分两种:

  • 并行输出:每个码道一根线,直接输出高低电平。优点是实时性好,缺点是线多,分辨率高了之后线束太粗。
  • 串行输出:通过SSI、BISS、EnDat等协议,用两根线把数据传出来。优点是线少,缺点是实时性略差,有通信延迟。

避坑指南:我曾经在一个项目中选了并行输出的绝对式编码器,12位,需要12根数据线加电源地线,一共14根线。结果电机线缆太粗,弯折几次后断线了。后来换成SSI串行协议,4根线搞定,再也没出过问题。所以,线数多不一定是好事,要考虑工程可靠性。

1.3 编码器知识体系总览

为了让大家对编码器有个整体认识,我画了一张图,把核心知识点串起来。

编码器知识体系总览 编码器 增量式编码器 输出:A相、B相、Z相脉冲 特点:断电丢失位置 应用:伺服电机、机器人 绝对式编码器 输出:二进制码 / 串行协议 特点:断电记忆位置 应用:数控机床、航天 选型建议 低速高精度选绝对式,高速低成本选增量式

1.4 如何选择编码器?

这个问题没有标准答案,但我可以给你一个决策思路:

  1. 看精度要求:如果要求定位精度在0.1度以内,建议用绝对式。如果精度要求不高,增量式就够了。
  2. 看断电行为:如果设备断电后不允许移动,必须用绝对式。否则每次上电都要回零,浪费时间不说,还可能撞机。
  3. 看成本预算:增量式便宜,绝对式贵。如果项目预算紧张,增量式加回零逻辑也能凑合。
  4. 看通信接口:如果控制器有正交编码器接口(QEI),用增量式很方便。如果控制器支持SSI或BISS,用绝对式更省线。

我的建议:对于初学者,我建议先从增量式编码器入手。因为它原理简单,接口通用,调试起来也直观。等你把增量式玩透了,再上绝对式,会轻松很多。