0. 前言

前面步进电机文章中讲到其控制一般为开环,若在高精度场合可以利用编码器位置传感器进行闭环控制,那么编码器是如何实现位置检测的呢?本文主要内容包括编码器定义、种类与工作原理等,用于共同学习。

1. 什么是编码器?

编码器(Encoder) 是一种将物理量(如角度、位移、速度等)转换为电信号输出的传感器。它广泛应用于电机控制、机器人、CNC机床、自动化产线等场景,用来实时监测旋转或线性运动的位置、方向和速度。编码器把角位移或直线位移转换成电信号,前者称为码盘(下图右侧就是码盘),后者称为码尺

简单来说,编码器的作用是:“告诉控制系统当前运动部件在哪里、朝哪个方向、移动了多快。”因此,这对于精确控制有重要意义。

2. 编码器分类与原理

按照工作原理编码器主要分为两大类:增量式编码器绝对式编码器;按照读出方式编码器可以分为接触式非接触式;此外,按输出信号形式还可分为数字式模拟式,目前大多数现代编码器为数字式编码器。

2.1 按码盘刻孔方式不同

(1)增量式编码器(Incremental Encoder)

增量顾名思义就是一直在增加,像加法一样,每转过一定的单位角度就会发出一个脉冲信号,因此记录这个脉冲数量就可以指导转过了多少个单位(所以需要计数器计数),具体原理下面介绍。特点:输出脉冲信号,不记录绝对位置。

  • 工作原理:如下图所示,在码盘的边缘上分布有相等角度的缝隙(分为透光和不透光部分),在开缝码盘两边分别安装光源及光敏元件。当码盘转动时,每转过一个缝隙就产生一次光线的明暗变化,再经整形放大,可以得到一定幅值和功率的电脉冲输出信号,脉冲数就等于转过的缝隙数。将该脉冲信号送到计数器中去进行计数,从测得的数码数就能知道码盘转过的角度。

  • 信号输出:增量式编码器是直接利用光电转换原理输出三组脉冲信号A、B和Z相(有的叫C相)。A相、B相为相互延迟1/4周期的脉冲输出,根据延迟关系可以区别正反转,而且通过取A相、B相的上升和下降沿可以进行2或4倍频;Z 相则为单圈脉冲(每圈一个参考零点),每转动一圈会发出一个脉冲。
  • 优点:原理构造简单,机械平均寿命可在几万小时以上,抗干扰能力强,可靠性高,适合于长距离传输。
  • 缺点:断电后位置信息丢失,需每次上电后“回零”(找参考点)。
  • 适用场景:对绝对位置要求不高,但需要高频率速度/位移反馈的场合,如伺服电机速度控制、传送带计数等。比如打印机的扫描仪定位就是利用增量式编码器,每次开机后内部都会先哗哗动一下,其实这就是在找回参考点的过程。包括3D打印机也一样,有些打印机手动控制前需要先让电机回到原位然后才可以控制。

(2)绝对式编码器(Absolute Encoder)

绝对式编码器的基本结构如下图展示,由码盘读码元件(光电元件或电刷)构成,与增量式不同的是绝对式能够记住自己的位置。特点:每个位置对应唯一编码,断电后仍能记住位置。

  • 工作原理:内部有多个码道(类似多圈二进制编码盘),每一角度对应一个唯一数字。在码盘的一侧是光源,另一侧对应每一码道有一光敏元件,当码盘处于不同位置时,各光敏元件根据受光照与否转换出相应的电平信号,所以通过读取每道刻线的明暗,一组从2的零次方到2的n-1次方的唯一的2进制编码(格雷码),这就称为n位绝对编码器。这样的编码器是由码盘的机械位置决定的,它不受停电、干扰的影响。码道数越多精度越大,目前国内已有17位、23位绝对值编码器。
  • 优点:无需回零,上电即知当前位置,因为电刷一上电就可以读取与位置对应的唯一数字码。
  • 缺点:成本高、结构复杂、数据更新速率通常低于增量式。
  • 适用场景:需要精确位置记忆的系统,如机器人关节、天线指向控制、高精度 CNC 轴。

格雷码:

格雷码是由 Frank Gray 在 1940 年代为贝尔实验室申请专利而命名的,最初用于减少电视信号传输中的错误,后来被广泛应用于机械编码器、Karnaugh 图、遗传算法等领域。

工作原理中内部的码道,因为物理传感器存在制造误差、安装偏移或信号读取延迟,如果使用普通二进制码,在两个相邻位置切换时,多个码道可能不会“完美同步”翻转(比如下面左图001到010二进制进位时,就有两个位置同步变换)。而格雷码编码器在抗干扰能力方面具有显著优势。格雷码,作为一种无权码,其编码特点在于任意两相邻代码间仅有一位数码不同,这一特性在编码器的应用中起到了至关重要的作用。

自然二进制码                                      格雷码

在实际的应用中,常常需要进行二进制和格雷码的相互转换,二进制转格雷码的规则是:最高位保持不变,其余各位等于该位与前一位二进制位的异或结果。格雷码转二进制码:这是接收端(单片机/PLC读取数据后)必须做的解码工作,做法就是最高位保留,二进制的第 i位 = 格雷码第 i 位 与二进制的第 i+1 位异或,如下图所示过程。(图源CSDN_探花郎K

二进制码与格雷码互转的代码:

//将自然二进制码转换为格雷码
// num为自然二进制码
unsigned int BinaryToGray(unsigned int num)
{
    return num ^ (num >> 1);
}


//格雷码转自然二进制码

unsigned int GrayToBinary(unsigned int gray)
{
    unsigned int mask = gray;
    while (mask >>= 1) {
        gray ^= mask;
    }
    return gray;
}

 细分技术

在高性能增量式编码器中,提高分辨率的需求往往超越了物理上光栅刻线密度的制造极限。细分技术应运而生,它是一种通过电子手段对编码器输出的周期性模拟信号进行内插(Interpolation)处理,从而将一个物理栅距周期转化为多倍数字脉冲的技术。

细分编码器在码盘的外层制作了等栅距的精密刻线,并通常配置了两路甚至多路精密光学感应系统。这些系统经过特殊设计,其光电接收器能捕获到与旋转角度呈周期性变化的正弦(Sin)和余弦(Cos)模拟信号。下图就是绝对编码技术与细分技术结合,实现2^{-19}分辨率的绝对编码器。

 2.2 按工作原理分类

知道了编码器怎么输出信号(增量/绝对)还不够,面对不同使用环境往往还需要知道编码器内部是用什么“器官”来感知旋转的,这直接决定了它的耐用性和精度。目前常用的有光电式、磁电式(霍尔)以及电容式。

(1)光电式编码器

核心组件是光栅盘(Code Disc)光源(LED或激光)光电接收器(Photodetector Array),尽管光学编码器应用广泛,但仍有几点缺陷。在工业应用等多尘且肮脏的环境中,污染物会堆积在码盘上,从而阻碍LED光透射到光学传感器。由于受污染的码盘可能会导致方波不连续或完全丢失,因而极大地影响了光学编码器的可靠性和精度。

(2)霍尔式编码器

霍尔编码器是一种利用霍尔效应原理来检测磁场变化从而实现位置、速度或方向检测的装置。它是一种非接触式的传感器,通过检测通过霍尔元件附近的磁场强度变化来生成电信号。

如上图,可以看到编码器中心黑色的圆块,这就是磁环(磁环中由多个磁铁构成),当电机旋转时也会带动霍尔磁环进行旋转。其次可以看到箭头所指的两个霍尔器件,当电机带动磁环在转动时,通过不断的交换磁铁的N极和S极与霍尔传感器进行信号交换(霍尔传感器可以通过磁铁的N极、S极产生高低电平信号)。

在转动过程中,当N极经过霍尔器件时,产生高电平,当S极经过霍尔元件时,产生低电平。两个霍尔元件之间刚好差90度。所以在转动过程中会形成方波,两个元件产生的方波会有1/4周期的相位差。

(3)电容式编码器

电容式编码器主要由三部分组成:转子、固定发射器和固定接收器。电容感应使用条状或线状纹路,一极位于固定元件上,另一极位于活动元件上,以构成可变电容器,并配置成一对接收器/发射器。转子上蚀刻了正弦波纹路,随着电机轴的转动,这种纹路可产生特殊但可预测的信号。随后,该信号经由编码器的板载 ASIC 转换,以计算轴的位置和旋转方向。

电容式编码器类似于我们用的数显游标卡尺。通过两片极板之间的相对运动改变电容值,从而检测位置,因此它所提供的解决方案克服了光学和磁性编码器的许多缺点。


声明:本文用于交流学习,如有不足还望指正~

参考资料如下:

编码器汇总_CSDN【云轩】

知乎_攻城狮鹏哥

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐