旋转编码器详解(主要讨论增量式编码器与绝对式编码器)
参考资料:旋转编码器的原理是什么?增量式编码器和绝对式编码器有什么区别?0. 前言我们在选电机时,非常注重电机的扭矩和尺寸,因为这直接决定了电机是否能按规定的运动模式拖动负载,能不能很好地布置在有限的空间之中。但在精密机械设计中,其实还有一个和扭矩及尺寸同等重要的参数,那就是分辨率。说起分辨率,很多时候,在电机参数中,可以看到一组数据,例如2000Count/Turn=2000脉冲/圈,和17bi
参考资料:旋转编码器的原理是什么?增量式编码器和绝对式编码器有什么区别?
0. 前言
我们在选电机时,非常注重电机的扭矩和尺寸,因为这直接决定了电机是否能按规定的运动模式拖动负载,能不能很好地布置在有限的空间之中。
但在精密机械设计中,其实还有一个和扭矩及尺寸同等重要的参数,那就是分辨率。
说起分辨率,很多时候,在电机参数中,可以看到一组数据,例如2000Count/Turn=2000脉冲/圈,和17bit/33bit等。
对旋转电机有所了解的朋友都知道,2000C/T,这其实是说,这个电机带有一个增量式编码器,转一圈对应着2000个脉冲,所以该编码器的分辨率是360/2000=0.18度。
由于相对式编码器通常可以做4倍频(后面我会解释为什么),所以2000C/T的分辨率可以变成0.18°/4=0.045度。
而17bit/33bit则是在说,这个电机带有一个17位的多圈绝对编码器。
那么问题来了,绝对式编码器和增量式编码器原理上有什么区别?应用上有什么区别?绝对式编码器为什么用二进制表示分辨率?单圈和多圈绝对式编码器有什么区别?
我想,弄清楚这几个问题,对于电机或者需要用到旋转编码器的地方,心里就不会像过去那样模模糊糊,而是会清晰明了地,直接选择合适的编码器。
1. 旋转编码器的类型和优缺点
现在市面上通常有三种编码器:光学编码器(Optical Encoder),磁编码器(Magnetic Encoder),和电容式编码器(Capacitive Encoder)。
-
光学编码器:在光学编码器中,黑色线条会挡住光线;透明窗口使光线穿过码盘(或者在码盘上反射)到达传感器。当传感器接收到光时,输出高电平,而当光被阻挡时,输出低电平。
-
磁编码器:磁编码器的内部有一系列磁极交替排列的旋转磁铁,还有一个检测磁场位置的传感器。
-
电容式编码器:电容式编码器内部,包含一个发射高频信号的发射器,一个对信号进行调制的转子,以及一个将信号转换并发送给运动控制器的接收器。
光学编码器是最常用,也是精度最高的一种,但同时其价格也最高。
光学编码器相对磁和电容编码器来说,更容易受到环境的影响,比如在低温下使用光学编码器,如果环境温度急剧上升,可能在光学码盘上形成凝雾,这会导致读不到信号或者信号扭曲。
磁编码器就不那么容易受到环境的影响,但是由于其天然的非线性,磁编码器不如光学编码器的精度高。它们通常用于灰尘,蒸汽,振动和其他可能干扰光学编码器性能的环境中。
同时在各种液体环境下,磁编码器也可以工作,磁编码器使用的功耗也比光学编码器少。
电容编码器是工业自动化相对较新的事物,这种编码器与磁编码器一样耐环境,但也无法实现光学编码器的高分辨率和准确性。
接下来以用得最多的光学编码器为例来介绍增量式编码器和绝对式编码器。
2. 增量式编码器
2.1 增量式编码器的原理
下图为增量式光学编码器的构成图。该系统包含一个码盘,以及位于码盘一侧的LED光源,和位于其另外一侧的光电探测器芯片Detector Chip。
码盘上有一系列的黑色标线和透明窗口,黑色标线不透光,而窗口是可以透光的。
LED光经过透镜(Lens)后,形成平行光,打在码盘上,光线在黑色刻线处被阻挡,而在透明窗口处穿过码盘,照射到下面的感应器感应区域。
感应器上有两个区域是可以感应信号的,一个是Index Sensor Area,也就是起始零位感应区域,一个是位置信号变化感应区域A/B Sensor Area。
零位感应也叫Home,有的地方也叫Zero,把它探测所产生的信号叫Z信号。
并不是所有的增量式编码器都有参考零位,比如有些传送带上的应用就不需要,而有的增量式编码器有不止一个参考零位,
LED光线通过码盘窗口,透射到另外一侧的感应器感应区域。码盘旋转,固定的感应器便可以读取到光的这种交替变化模式,进而将位置信息报告回机械系统。
感应器所产生的波形如下图,是重复的方波(有的编码器传送正弦波或者余弦波),且高电平和低电平占用时间相同,因为码盘上的不透明刻线和透明窗口间隔的角度相同,一个黑线和一个透明扇区域构成一个周期,对应着波形图中的一个低电平和一个高电平,也就是一个360度电周期。
为什么波形图中有两个通道,一个A,一个B?用来干什么?
首先说明,A/B Sensor Area就是产生两个通道信号的原因。接下来给出增量式光学编码器的细节图,从下面这张图中可以看出,光电感应器A和感应器B并没有在同一半径方向上,而是有一个角度错位,错位多少呢,刚好是一个刻线所占据角度的一半,也就是1/4物理周期。
我们知道,如果只有一个感应器A,那么当触发零位后,感应器A就开始计数了,每经过一个黑线和一个透明线,波形就形成一个低电平和一个高电平,也就是一个周期,但是它并不知道码盘的旋转方向,可能是逆时针旋转,也可能是顺时针旋转。
所以,感应器B加入的目的就很明显了:和感应器A配合,用于判断码盘的旋转方向。
因为A和B错位1/4物理周期,(也就是相差90度电脉冲周期,所以也叫做正交脉冲,英文是Quadrature,我们常听到的A-Quad-B就是从这儿来的),所以光线会先后透射过透明窗口,打在感应器A和B上,形成1/4个周期差。
例如,如果顺时针旋转,A领先于B四分之一周期,那么逆时针旋转,A必然滞后于B四分之一周期。从而可以根据A领先于B,还是滞后于B来判断旋转方向。
OK,到这里,我们理解了增量式编码器的工作原理:通过Index找到零位,通过脉冲数目计算旋转角度,通过AB通道的相对滞后性判断旋转方向,通过波形所占据的时间,或者波的脉冲频率来判断速度。
再仔细想一下,AB通道相差1/4周期,还可以用来干什么?
或许你已经猜到,就是我在一开始就说到的4倍频(倍乘)分辨率。
怎么实现呢?
2.2 4倍频(倍乘)分辨率的实现
接下来,将通过如下波形图来讲解实现原理。
这里,以每圈100个物理周期码盘来举例。
- 一倍乘X1:码盘旋转时,如果我们计算通道A脉冲的每个上升沿(由0变成5V),则每转将获得100个脉冲。
- 2倍乘X2:码盘旋转时,如果我们计算通道A的每个上升沿和每个下降沿(由5V变成0),则每个周期将获得2个脉冲,每转总计200个脉冲。
- 4倍乘X4:如果我们计算通道A和通道B的每个上升沿和下降沿,则每个物理周期将获得4个脉冲,每转总计400个脉冲。
因为增量式编码器的物理刻线相距角度一样,本质上来说,它是通过计算脉冲数量,来计算旋转角度的。
同样的一圈,不同的倍频法得到的每圈脉冲数不同,显然4倍频得到的分辨率最高。
这就是分辨率4倍频的原理。
所以2000C/T的分辨率可以变成0.18°/4=0.045度。
但是需要明白的是,这个4倍乘,并没有改变码盘的物理刻线之间的角度,仅仅是电脉冲数量的变化,而且这个倍乘通常是在控制器或者计数器中完成的,信号质量好,可靠。
3. 绝对式编码器
3.1 绝对式编码器的原理
绝对式编码器的工作原理和增量式有所不同。这里通过绝对式旋转编码器的细节图来说明。
下图是一个4位绝对式编码器细节示意图。整圈被分成了16份,也就是有16个扇区。它和增量式编码器的图相似,但是又有一点不一样:在半径方向上,每一个扇区又被分成了4份。
LED光从码盘一侧照射下来,相应地,在码盘另外一侧有一个探测芯片,探测芯片有4个感应区,每个感应区,可以获取同一个扇区每一份的状态。
透明的窗口,光线穿过去,感应区感应到信号,不透明的区域,光线无法穿过,感应区无法感应到。
如果把有感应和无感应看成是两种状态,分别用1和0表示,那么每一个感应区可以表示2种状态。
进而,同一个扇区中这4份(4位),可以表示2^4=16种状态,这也是为什么这个码盘在圆周方向上被分为了16份,其实相当于对每一个位置进行了编码,每个编码对应着一个特定的位置。
比如下面这幅图,从左到右可以分别表示0001, 0101, 1100,用十进制表示就是第1, 第5,第12个位置。
到这里,我们基本上明白了绝对式编码器的原理:对每一个位置,给定一个唯一的编码,再用传感器去识别每个位置的编码,输出与之相对应的唯一信号,用来表示特定的位置。
如果要获得更高的分辨率,那么就需要更多的编码位数,也就是需要在圆周方向上,刻上更多的特定编码(这通常都会加大码盘)。
比如需要17位,也就是2^17=131072个位置,那么就需要131072个不同的编码,这时的分辨率是360/131072=0.00275°。
当然,并不是每个厂家的编码方法,都和上面这个例子一样。有的厂家不在半径方向上划分,只在圆周方向上划分,但是基本理念是一样的,就是用唯一的编码表示唯一的位置。
这就是绝对式编码器的核心思想。
光学绝对编码器的输出波形如下图所示。这里使用的是脉冲带宽调制(PWM=Pulse Width Modulation)。
一个10位绝对编码器可以输出2^10=1024个独特编码,在图中怎么表示每一个特定的位置呢?
用脉冲宽度来表示。
例如,起始零位,用一个最小的脉冲宽度1微秒来表示这个位置。在180°,用512微秒的脉冲带宽来表示。
类似地,对于其他的位置,用不同的脉冲宽度来表示,当码盘旋转,越来越长的脉冲带宽被传递。
3.2 绝对式单圈和多圈编码器有何不同
绝对式编码器又分为单圈和多圈,即Single-Turn Absolute Encoder和Multi-Turn Absolute Encoder。
单圈很好理解,就像钟表中只有分针,一圈一圈地不停转,60分钟之后,表重置,并不记录旋转的圈数,在这里,也就是不知道是几个小时。
多圈,就像是钟表中即有分针,还有时针。在任何时刻,分钟和小时数都可以被读取。
所以多圈编码器可以记录很多很多圈。
实际的多圈编码器,常用3种方法来实现圈数记录。
- 第一种,就像上面那张图一样,在编码器内部,用机械齿轮耦合多个轴,用来计算总的圈数,这种方法,因为用到了机械齿轮,所以会带来磨损,使得精度降低,同时机械齿轮会占用很多空间,所以编码器尺寸偏大。
- 第二种,就是用电子计数器和电容器,来计算总共转过的圈数,但是代价是需要在编码器内部安装电池,而且需要定期检查电池。
- 第三种,在一些磁编码器中,采用韦根金线(Wiegand wire),并利用韦根效应来计数(Wiegand effect)。这种编码器没有太多机械结构件,可以做得很小。
当然,单圈编码器也可以通过信号重复的次数,来计算旋转的圈数,但是就没有多圈编码器那么直接。
单圈编码器,如果转了超过一圈,断电重启后,不知道转了几圈,也就是说,不知道绝对位置的。
这个特性,决定了单圈绝对编码器只适用于开机需要绝对位置,但是在运转过程中,旋转不满一圈的应用中。
而多圈编码器,是有圈数物理绝对位置记录的,所以,多圈相对于单圈可以获得更长更远的绝对位置。
对于多圈编码器,当旋转的圈数超过了它的总记录容量时,圈数会溢出。
这时,要么重新计数,要么驱动器和控制器提供一种特殊的位置跟踪,称为“模数定位”,它可以存储任何溢出运动,即超出记录圈数的旋转部分,并使用此信息提供准确的定位。
到此,我们重新理解了单圈和多圈编码器的区别:单圈只能记录一圈之内的运动,多圈可以记录很长的旋转或者直线位移。
3.3 电机参数中17bit/33bit的含义
17bit/33bit的含义是:17bit就是说每转一圈有2^17=131072个脉冲,而33bit表示总共的脉冲位数是2^33=2^17*2^16,那么这个多圈编码器可以记录33-17=16bit=2^16=65536圈。
这里计算分辨率要注意,它的分辨率只和一圈的脉冲数有关,而和总的圈数无关,也就是说这个编码器的分辨率是360/131072=0.00275度。
如果一个马达使用了这个编码器,用此马达驱动滚珠丝杠,运动一圈前进5毫米,那么理论上的分辨率就是:5mm/131072cnt=0.038um/cnt。
当然,实际分辨率肯定要比这个低,毕竟滚珠丝杠系统也是有间隙的,而且大多数时候,机械系统的间隙才是整个系统的短板。
4. 增量式编码器和绝对式编码器的区别
4.1 技术角度
通过上面的解释,我们理解了增量和绝对式两种旋转编码器的工作原理。
绝对式旋转编码器的原理和增量式的原理类似,都是通过传感器来读取码盘上明暗相间的刻线获得脉冲,根据脉冲数目来表示位置。
不同的是,绝对式编码器,断电可以记住当前位置,即使断电后有机械移位,通电后也知道移动到哪里去了,因为绝对式编码器对每一个位置,有一个唯一的编码。
而增量式编码器不同,它没有记忆,断电后重启,需要找到参考点后,才能找回需要的位置。
增量式编码器很适合用于确定速度,距离或运动方向。
如果需要在断电重启时就知道位置,那么就需要绝对式编码器了。
例如,如果你要设计机械臂,在断电后可能没有足够的空间或灵活性,使其无法移动到原始位置,在这种情况下,需要使用绝对编码器。
4.2 成本与应用角度
5. 如何选择编码器
选择编码器时,至少需要考虑以下几点:
- 开机是否需要知道绝对位置,用来决定选择增量式还是绝对式。实际运行过程中可能的旋转圈数,用来决定多圈还是单圈编码器。
- 精度要求,分辨率要求,决定编码器的分辨率选择。
- 最大速度。分辨率选定,需要结合最大速度计算编码器产生信号的频率。编码器输出的频率,需要比控制器或者计数器能够接受的最大输入频率低,否则需要重新选择编码器,重新匹配。另外编码器本身也有最大转速要求。
- 价格。结合预算考虑价格。
- 安装方式。轴孔安装,空间大小评估,安装公差要求,出线的方向等。
- 外围环境。灰尘,湿度,温度,振动,电磁环境等,决定编码器的选择类型和信号线的屏蔽等,例如选择光学式,还是磁式,还是电容式,选择屏蔽线还是非屏蔽线等。
当然,实际选择时,如果有不太确定的地方,一定有一个办法可以帮你解决问题。
那就是联系你的供应商,说出你的问题,毕竟他们是专业的,很多时候,他们可以给你一些很好的选择建议,这个时候,往往也是很好的学习机会。
关于编码器,如果要深挖的话,还有很多话题的,比如噪声的来源,如何控制噪声等。
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)