1. 编码器基础与分类

做电机控制这些年,我接触过各种各样的编码器。说实话,选错编码器类型,后面调试起来真是欲哭无泪。这一章咱们先把四种最常用的位置传感器掰开揉碎讲清楚。

核心观点:没有最好的编码器,只有最合适的。增量式、绝对式、旋变、霍尔——每种都有它的脾气。

编码器分类与核心原理 位置传感器 增量式编码器 绝对式编码器 旋转变压器 霍尔传感器 输出:A/B/Z 脉冲 特点:断电丢失位置 分辨率:刻线数×4 输出:二进制/格雷码 特点:断电记忆位置 分辨率:位数决定 输出:正余弦模拟量 特点:耐高温/振动 分辨率:RDC芯片定 输出:开关量信号 特点:仅6个扇区 用途:无刷电机换相

1.1 增量式编码器原理

增量式编码器,说白了就是只告诉你「动了多少」,不告诉你「在哪儿」。它内部有个码盘,上面刻满了明暗相间的条纹。光透过缝隙照到光敏管上,就产生了脉冲。

我习惯把增量式编码器比作一把尺子——它能量长度,但不知道起点在哪。每次上电,你必须先找一下参考零位。

我的经验:增量式编码器最怕断电。有一次客户反馈设备重启后位置跑偏,查了半天,原来是没做上电回零。从那以后,我设计的系统都会强制要求上电找零流程。

典型的增量式编码器输出两路信号:A相和B相,相位差90°。通过判断谁先跳变,就能知道正反转。Z相是零位脉冲,每转一圈输出一个。

信号 功能 典型频率
A相 主计数脉冲 最高可达MHz级
B相 方向判别(滞后A相90°) 与A相同频
Z相 零位参考(每圈1个脉冲) 与转速成正比

分辨率怎么算?举个例子:码盘刻线2500线,经过4倍频后,每圈就是10000个脉冲。嗯,这里要注意,4倍频不是编码器自己做的,是你在控制器里用A、B相的上升沿和下降沿拼出来的。

// 增量式编码器脉冲计数示例(伪代码)
int count = 0;
void encoder_irq() {
    if (A_rising && B_high) count++;    // 正转
    if (A_rising && B_low)  count--;    // 反转
}

1.2 绝对式编码器原理

绝对式编码器就高级多了。它每个位置都有唯一的编码值,上电就知道自己在哪。你想想看,这省了多少麻烦。

我最早接触绝对式编码器是在一台进口数控机床上。当时觉得这玩意儿真神奇,断电再开机,位置一点不差。后来拆开研究,发现码盘上是一圈圈同心码道,每圈代表一个二进制位。

避坑指南:绝对式编码器分单圈和多圈。单圈的只能记一圈内的位置,多圈的用齿轮或电池来记圈数。我曾经遇到过选型时没注意,用了单圈编码器做多圈应用,结果每次转超过一圈就乱套。

绝对式编码器的输出格式常见有两种:

  • 并行输出:每位一根线,实时性高,但线缆多
  • 串行输出:SSI、BISS、EnDat等协议,线少但有时延

分辨率由位数决定。17位的编码器,一圈有2^17 = 131072个位置。我个人的习惯是,伺服系统至少用17位以上,普通定位用13位就够了。

1.3 旋转变压器原理

旋转变压器,简称旋变。它本质上是个小变压器,转子转的时候,定子上的感应电压会跟着变。

说实话,旋变这东西精度不如光学编码器,但它皮实。我在做电动汽车项目时,电机要工作在120°C的环境下,光学编码器根本扛不住,最后还是上了旋变。

旋变的工作原理是这样的:

  1. 励磁绕组通入高频正弦波(通常10kHz)
  2. 转子旋转改变磁路耦合
  3. 两相输出绕组产生正余弦信号
  4. RDC(旋变数字转换器)解算出角度

关键参数:旋变的极对数必须与电机极对数匹配。我见过有人把4对极的旋变装到8对极的电机上,结果角度算出来永远差一倍,电机抖得像筛子。

旋变的输出是模拟量,需要专门的RDC芯片来解码。常用的RDC有ADI的AD2S1200系列,分辨率可以设到12~16位。

// 旋变解码角度计算(简化)
theta = atan2(sin_signal, cos_signal);
// 注意:需要做相位补偿和偏移校正

1.4 霍尔传感器原理

霍尔传感器,成本最低,精度也最低。它利用霍尔效应,检测磁场方向,输出开关量信号。

无刷直流电机(BLDC)里,通常装3个霍尔,间隔120°或60°。每个霍尔输出高或低,组合起来就是6个状态,对应6个扇区。

霍尔状态 (H1 H2 H3) 对应扇区 导通相
101 扇区1 A+ B-
100 扇区2 A+ C-
110 扇区3 B+ C-
010 扇区4 B+ A-
011 扇区5 C+ A-
001 扇区6 C+ B-

我的经验:霍尔安装位置偏差是常见故障源。如果霍尔安装角度偏了,换相时序就会错,电机效率下降,噪音变大。我曾经用示波器抓霍尔波形,发现边沿位置不对,重新调整安装座后才解决。

霍尔传感器的分辨率很低,每圈只有6个位置信息。所以它只适合做换相,不适合做精确的速度或位置控制。如果你需要平滑控制,还得配合其他传感器。

注意:霍尔传感器对磁场强度敏感。如果磁钢退磁或者安装间隙过大,霍尔可能检测不到信号。我遇到过一台老设备,霍尔输出一直为低,换了霍尔片没用,最后发现是转子磁钢掉了两块。

好了,四种传感器的基础原理就讲到这里。每种都有它的应用场景,没有绝对的优劣。选型的时候,多想想你的工况——温度、振动、精度要求、成本预算,综合考虑才能选对。