旋转编码器的原理是什么?增量式和绝对式有什么区别?
以上为广告
先给出结论,最重要的区别在于:增量式编码器没有记忆,断电重启必须回到参考零位,才能找到需要的位置,而绝对式编码器,有记忆,断电重启不用回到零位,即可知道目标所在的位置。作为机械设计人员,我们在选电机时,非常注重电机的扭矩和尺寸,因为这直接决定了电机是否能按规定的运动模式拖动负载,能不能很好地布置在有限的空间之中。但在精密机械设计中,其实还有一个和扭矩及尺寸同等重要的参数,那就是分辨率。说起分辨率,很多时候,在电机参数中,可以看到一组数据,例如2000Count/Turn=2000脉冲/圈,和17bit/33bit等。对旋转电机有所了解的朋友都知道,2000C/T,这其实是说,这个电机带有一个增量式编码器,转一圈对应着2000个脉冲,所以该编码器的分辨率是360/2000=0.18度。由于相对式编码器通常可以做4倍频(后面我会解释为什么),所以2000C/T的分辨率可以变成0.18°/4=0.045度。而17bit/33bit则是在说,这个电机带有一个17位的多圈绝对编码器。那么问题来了,绝对式编码器和增量式编码器原理上有什么区别?应用上有什么区别?绝对式编码器为什么用二进制表示分辨率?单圈和多圈绝对式编码器有什么区别?我想,弄清楚这几个问题,对于电机或者需要用到旋转编码器的地方,心里就不会像过去那样模模糊糊,而是会清晰明了地,直接选择合适的编码器。现在市面上通常有三种编码器:光学编码器(Optical Encoder),磁编码器(Magnetic Encoder),和电容式编码器(Capacitive Encoder)。在光学编码器中,黑色线条会挡住光线;透明窗口使光线穿过码盘(或者在码盘上反射)到达传感器。当传感器接收到光时,输出高电平,而当光被阻挡时,输出低电平。磁编码器的内部有一系列磁极交替排列的旋转磁铁,还有一个检测磁场位置的传感器。电容式编码器内部,包含一个发射高频信号的发射器,一个对信号进行调制的转子,以及一个将信号转换并发送给运动控制器的接收器。光学编码器是最常用,也是精度最高的一种,但同时其价格也最高。光学编码器相对磁和电容编码器来说,更容易受到环境的影响,比如在低温下使用光学编码器,如果环境温度急剧上升,可能在光学码盘上形成凝雾,这会导致读不到信号或者信号扭曲。磁编码器就不那么容易受到环境的影响,但是由于其天然的非线性,磁编码器不如光学编码器的精度高。它们通常用于灰尘,蒸汽,振动和其他可能干扰光学编码器性能的环境中。同时在各种液体环境下,磁编码器也可以工作,磁编码器使用的功耗也比光学编码器少。电容编码器是工业自动化相对较新的事物,这种编码器与磁编码器一样耐环境,但也无法实现光学编码器的高分辨率和准确性。要理解增量式编码器(Incremental Encoder)和绝对式编码器(Absolute Encoder)之间的区别,首先要明白他们的工作原理,对吗。如上图,该系统包含一个码盘,以及位于码盘一侧的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倍频(倍乘)分辨率。一倍乘X1:码盘旋转时,如果我们计算通道A脉冲的每个上升沿(由0变成5V),则每转将获得100个脉冲。2倍乘X2:码盘旋转时,如果我们计算通道A的每个上升沿和每个下降沿(由5V变成0),则每个周期将获得2个脉冲,每转总计200个脉冲。4倍乘X4:如果我们计算通道A和通道B的每个上升沿和下降沿,则每个物理周期将获得4个脉冲,每转总计400个脉冲。因为增量式编码器的物理刻线相距角度一样,本质上来说,它是通过计算脉冲数量,来计算旋转角度的。同样的一圈,不同的倍频法得到的每圈脉冲数不同,显然4倍频得到的分辨率最高。所以2000C/T的分辨率可以变成0.18°/4=0.045度。但是需要明白的是,这个4倍乘,并没有改变码盘的物理刻线之间的角度,仅仅是电脉冲数量的变化,而且这个倍乘通常是在控制器或者计数器中完成的,信号质量好,可靠。如果在不改变码盘条件下,还想获得更高的分辨率,怎么办?可以用Interpolation,也就是信号插值。插值的含义是什么呢?我理解得也不是很多,但是数学上来说,插值就是通过已知的数据,去预测未知的数据。在编码器应用中,因为实际的位置,可能位于黑色刻线和透明窗口之间,插值就可以得到这些位置的值,从而获得更高的分辨率。理论上,插值可以获得无限的分辨率,但是过高的插值也会引入新的问题,例如信号容易受到电噪声的影响从而降低精度,需要与之相匹配的驱动和控制器,大量的数据处理需要花费更多的时间,需要更快的响应等。目前,我在某供应商的产品目录中,看到最高的插值倍数是20000倍,分辨率达到0.002arcsec。当然,这个码盘也很大,外径达到206mm,一圈的物理周期是32400(也就是32400 Line Count)。这个码盘的物理分辨率是:360/32400=0.01111°,插值后分辨率是:0.01111/20000*3600=0.002arcsec,这里除以3600是单位的换算。这款编码器安装后能实现的精度是±1arcsec=±1/3600°。这个图是一个16位绝对式编码器示意图。整圈被分成了16份,也就是有16个扇区。它和增量式编码器的图相似,但是又有一点不一样:在半径方向上,每一个扇区又被分成了4份。LED光从码盘一侧照射下来,相应地,在码盘另外一侧有一个探测芯片,探测芯片有4个感应区,每个感应区,可以获取同一个扇区每一份的状态。透明的窗口,光线穿过去,感应区感应到信号,不透明的区域,光线无法穿过,感应区无法感应到。如果把有感应和无感应看成是两种状态,分别用1和0表示,那么每一个感应区可以表示2种状态。进而,同一个扇区中这4份(4位),可以表示2^4=16种状态,这也是为什么这个码盘在圆周方向上被分为了16份,其实相当于对每一个位置进行了编码,每个编码对应着一个特定的位置。可能你也想问,能不能在半径方向分4份,而在圆周方向多分几份。多分没有意义,因为半径方向只有4位,无法表示更多的位置。少分又不能充分利用好感应到的状态总数,所以分成2^4=16份刚刚好。比如下面这幅图,从左到右可以分别表示0001, 0101, 1100,用十进制表示就是第1, 第5,第12个位置。0101转换成10进制:0*2^3+1*2^2+0*2^1+1*2^0=5。1100转换成10进制:1*2^3+1*2^2+0*2^1+0*2^0=12。到这里,我们基本上明白了绝对式编码器的原理:对每一个位置,给定一个唯一的编码,再用传感器去识别每个位置的编码,输出与之相对应的唯一信号,用来表示特定的位置。如果要获得更高的分辨率,那么就需要更多的编码位数,也就是需要在圆周方向上,刻上更多的特定编码(这通常都会加大码盘)。比如需要17位,也就是2^17=131072个位置,那么就需要131072个不同的编码,这时的分辨率是360/131072=0.00275°。当然,并不是每个厂家的编码方法,都和上面这个例子一样。有的厂家不在半径方向上划分,只在圆周方向上划分,但是基本理念是一样的,就是用唯一的编码表示唯一的位置。刚刚说完了编码方法,那么绝对式编码器输出的波形图和增量式有什么不同呢?还是以光学绝对编码器为例来说明,一个典型的绝对编码器输出波形如下,右图。这里使用的是脉冲带宽调制(PWM=Pulse Width Modulation)。一个10位绝对编码器可以输出2^10=1024个独特编码,在图中怎么表示每一个特定的位置呢?例如,起始零位,用一个最小的脉冲宽度1微秒来表示这个位置。在180°,用512微秒的脉冲带宽来表示。类似地,对于其他的位置,用不同的脉冲宽度来表示,当码盘旋转,越来越长的脉冲带宽被传递。顺便说一下,上图左边,是一个绝对式磁编码器的波形图,它是用电压的高低来表示不同的位置。这些波形信息,按照控制系统的配置,可以通过不同的通信接口,传递给控制器,用来做反馈控制。绝对式编码器又分为单圈和多圈,即Single-Turn Absolute Encoder和Multi-Turn Absolute Encoder。单圈很好理解,就像钟表中只有分针,一圈一圈地不停转,60分钟之后,表重置,并不记录旋转的圈数,在这里,也就是不知道是几个小时。多圈,就像是钟表中即有分针,还有时针。在任何时刻,分钟和小时数都可以被读取。第一种,就像上面那张图一样,在编码器内部,用机械齿轮耦合多个轴,用来计算总的圈数,这种方法,因为用到了机械齿轮,所以会带来磨损,使得精度降低,同时机械齿轮会占用很多空间,所以编码器尺寸偏大。第二种,就是用电子计数器和电容器,来计算总共转过的圈数,但是代价是需要在编码器内部安装电池,而且需要定期检查电池。第三种,在一些磁编码器中,采用韦根金线(Wiegand wire),并利用韦根效应来计数(Wiegand effect)。这种编码器没有太多机械结构件,可以做得很小。韦根效应,也是我在了解编码器的过程中才知道的,所以多做一点说明。韦根金线,它由一种特殊的合金制成,具有硬磁(永磁,不易退磁)的金属外壳和软磁(容易退磁和磁化)的金属芯。韦根线表现出具有两个明显不连续的磁滞曲线,称为韦根效应。在适当磁场强度的作用下,韦根线芯磁场会反向,其磁场和和外硬层相同或者相反,让处在附近的线圈产生一个脉冲,该脉冲的大小和形状与外部磁场变化的速度无关,磁编码器就是利用这个脉冲来记录转动的圈数,并把数据写入稳定的存储器中。当然,单圈编码器也可以通过信号重复的次数,来计算旋转的圈数,但是就没有多圈编码器那么直接。单圈编码器,如果转了超过一圈,断电重启后,不知道转了几圈,也就是说,不知道绝对位置的。这个特性,决定了单圈绝对编码器只适用于开机需要绝对位置,但是在运转过程中,旋转不满一圈的应用中。而多圈编码器,是有圈数物理绝对位置记录的,所以,多圈相对于单圈可以获得更长更远的绝对位置。但是与此同时,关于多圈编码器,又出现了一个新的问题。这时,圈数会溢出,要么重新计数,要么驱动器和控制器提供一种特殊的位置跟踪,称为“模数定位”,它可以存储任何溢出运动,即超出记录圈数的旋转部分,并使用此信息提供准确的定位。到此,我们重新理解了单圈和多圈编码器的区别:单圈只能记录一圈之内的运动,多圈可以记录很长的旋转或者直线位移。现在我们回过头去看一下,在文章一开始就提到的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。当然,实际分辨率肯定要比这个低,毕竟滚珠丝杠系统也是有间隙的,而且大多数时候,机械系统的间隙才是整个系统的短板。六、增量式编码器和绝对式编码器有什么不同?包括原理,价格,应用等通过上面的解释,我们理解了增量和绝对式两种旋转编码器的工作原理。绝对式旋转编码器的原理和增量式的原理类似,都是通过传感器来读取码盘上明暗相间的刻线获得脉冲,根据脉冲数目来表示位置。不同的是,绝对式编码器,断电可以记住当前位置,即使断电后有机械移位,通电后也知道移动到哪里去了,因为绝对式编码器对每一个位置,有一个唯一的编码。而增量式编码器不同,它没有记忆,断电后重启,需要找到参考点后,才能找回需要的位置。如果需要在断电重启时就知道位置,那么就需要绝对式编码器了。例如,如果你要设计机械臂,在断电后可能没有足够的空间或灵活性,使其无法移动到原始位置,在这种情况下,需要使用绝对编码器。但是其实从成本,应用方面来看,两者也有不同之处,我就不多探讨了,直接给出结果。1.开机是否需要知道绝对位置,用来决定选择增量式还是绝对式。实际运行过程中可能的旋转圈数,用来决定多圈还是单圈编码器。2.精度要求,分辨率要求,决定编码器的分辨率选择。3.最大速度。分辨率选定,需要结合最大速度计算编码器产生信号的频率。编码器输出的频率,需要比控制器或者计数器能够接受的最大输入频率低,否则需要重新选择编码器,重新匹配。另外编码器本身也有最大转速要求。5.安装方式。轴孔安装,空间大小评估,安装公差要求,出线的方向等。6.外围环境。灰尘,湿度,温度,振动,电磁环境等,决定编码器的选择类型和信号线的屏蔽等,例如选择光学式,还是磁式,还是电容式,选择屏蔽线还是非屏蔽线等。当然,实际选择时,如果有不太确定的地方,一定有一个办法可以帮你解决问题。那就是联系你的供应商,说出你的问题,毕竟他们是专业的,很多时候,他们可以给你一些很好的选择建议,这个时候,往往也是很好的学习机会。关于编码器,如果要深挖的话,还有很多话题的,比如噪声的来源,如何控制噪声等。