旋轉(zhuǎn)編碼器的原理是什么?增量式編碼器和絕對式編碼器有什么區(qū)別?
2021-6-4新聞
先給出結(jié)論,最重要的區(qū)別在于:增量式編碼器沒有記憶,斷電重啟必須回到參考零位,才能找到需要的位置,而絕對式編碼器,有記憶,斷電重啟不用回到零位,即可知道目標(biāo)所在的位置。
接下來細(xì)說一下,主要包含如下的內(nèi)容:
1.增量式旋轉(zhuǎn)編碼器的工作原理是什么?
2.絕對式旋轉(zhuǎn)編碼器的工作原理是什么?
3.增量式和絕對式旋轉(zhuǎn)編碼器有哪些不同?
4.單圈絕對式和多圈絕對式編碼器有什么不同?
5.選擇編碼器,需要考慮的最重要的因素有哪3點(diǎn)?
6.編碼器的實(shí)際應(yīng)用舉例。
1.電機(jī)屁股那點(diǎn)事
作為機(jī)械設(shè)計(jì)人員,我們在選電機(jī)時(shí),非常注重電機(jī)的扭矩和尺寸,因?yàn)檫@直接決定了電機(jī)是否能按規(guī)定的運(yùn)動模式拖動負(fù)載,能不能很好地布置在有限的空間之中。
但在精密機(jī)械設(shè)計(jì)中,其實(shí)還有一個(gè)和扭矩及尺寸同等重要的參數(shù),那就是分辨率。
說起分辨率,很多時(shí)候,在電機(jī)參數(shù)中,可以看到一組數(shù)據(jù),例如2000Count/Turn=2000脈沖/圈,和17bit/33bit等。
對旋轉(zhuǎn)電機(jī)有所了解的朋友都知道,2000C/T,這其實(shí)是說,這個(gè)電機(jī)帶有一個(gè)增量式編碼器,轉(zhuǎn)一圈對應(yīng)著2000個(gè)脈沖,所以該編碼器的分辨率是360/2000=0.18度。
由于相對式編碼器通常可以做4倍頻(后面我會解釋為什么),所以2000C/T的分辨率可以變成0.18°/4=0.045度。
而17bit/33bit則是在說,這個(gè)電機(jī)帶有一個(gè)17位的多圈絕對編碼器。
那么問題來了,絕對式編碼器和增量式編碼器原理上有什么區(qū)別?應(yīng)用上有什么區(qū)別?絕對式編碼器為什么用二進(jìn)制表示分辨率?單圈和多圈絕對式編碼器有什么區(qū)別?
我想,弄清楚這幾個(gè)問題,對于電機(jī)或者需要用到旋轉(zhuǎn)編碼器的地方,心里就不會像過去那樣模模糊糊,而是會清晰明了地,直接選擇合適的編碼器。
這也是我本次理清編碼器這個(gè)基本概念的目的。
2. 旋轉(zhuǎn)編碼器的類型和優(yōu)缺點(diǎn)
現(xiàn)在市面上通常有三種編碼器:光學(xué)編碼器(Optical Encoder),磁編碼器(Magnetic Encoder),和電容式編碼器(Capacitive Encoder)。
光學(xué)編碼器是最常用,也是精度最高的一種,但同時(shí)其價(jià)格也最高。
光學(xué)編碼器相對磁和電容編碼器來說,更容易受到環(huán)境的影響,比如在低溫下使用光學(xué)編碼器,如果環(huán)境溫度急劇上升,可能在光學(xué)碼盤上形成凝霧,這會導(dǎo)致讀不到信號或者信號扭曲。
磁編碼器就不那么容易受到環(huán)境的影響,但是由于其天然的非線性,磁編碼器不如光學(xué)編碼器的精度高。它們通常用于灰塵,蒸汽,振動和其他可能干擾光學(xué)編碼器性能的環(huán)境中。
同時(shí)在各種液體環(huán)境下,磁編碼器也可以工作,磁編碼器使用的功耗也比光學(xué)編碼器少。
電容編碼器是工業(yè)自動化相對較新的事物,這種編碼器與磁編碼器一樣耐環(huán)境,但也無法實(shí)現(xiàn)光學(xué)編碼器的高分辨率和準(zhǔn)確性。
3. 增量式旋轉(zhuǎn)編碼器的工作原理是什么
要理解增量式編碼器(Incremental Encoder)和絕對式編碼器(Absolute Encoder)之間的區(qū)別,首先要明白他們的工作原理,對嗎。
增量式編碼器的工作原理是什么?
這里以用得最多的光學(xué)編碼器為例來說明。
先放一張圖。
如上圖,該系統(tǒng)包含一個(gè)碼盤,以及位于碼盤一側(cè)的LED光源,和位于其另外一側(cè)的光電探測器芯片Detector Chip。
碼盤上有一系列的黑色標(biāo)線和透明窗口,黑色標(biāo)線不透光,而窗口是可以透光的。
LED光經(jīng)過透鏡(Lens)后,形成平行光,打在碼盤上,光線在黑色刻線處被阻擋,而在透明窗口處穿過碼盤,照射到下面的感應(yīng)器感應(yīng)區(qū)域。
感應(yīng)器上有兩個(gè)區(qū)域是可以感應(yīng)信號的,一個(gè)是Index Sensor Area,也就是起始零位感應(yīng)區(qū)域,一個(gè)是位置信號變化感應(yīng)區(qū)域A/B Sensor Area。
零位感應(yīng)也叫Home,有的地方也叫Zero,把它探測所產(chǎn)生的信號叫Z信號。
并不是所有的增量式編碼器都有參考零位,比如有些傳送帶上的應(yīng)用就不需要,而有的增量式編碼器有不止一個(gè)參考零位,這里不過多地討論,感興趣的可以自己去了解一下。
LED光線通過碼盤窗口,透射到另外一側(cè)的感應(yīng)器感應(yīng)區(qū)域。碼盤旋轉(zhuǎn),固定的感應(yīng)器便可以讀取到光的這種交替變化模式,進(jìn)而將位置信息報(bào)告回機(jī)械系統(tǒng)。
感應(yīng)器所產(chǎn)生的波形如下圖,是重復(fù)的方波(有的編碼器傳送正弦波或者余弦波),且高電平和低電平占用時(shí)間相同,因?yàn)榇a盤上的不透明刻線和透明窗口間隔的角度相同,一個(gè)黑線和一個(gè)透明扇區(qū)域構(gòu)成一個(gè)周期,對應(yīng)著波形圖中的一個(gè)低電平和一個(gè)高電平,也就是一個(gè)360度電周期。
為什么波形圖中有兩個(gè)通道,一個(gè)A,一個(gè)B?用來干什么?
細(xì)心的你,也許從剛剛前面那張圖就發(fā)現(xiàn)了,A/B Sensor Area就是產(chǎn)生兩個(gè)通道信號的原因。
怎么解釋呢,再來一張細(xì)節(jié)圖。
從上面這張圖中可以看出,光電感應(yīng)器A和感應(yīng)器B并沒有在同一半徑方向上,而是有一個(gè)角度錯(cuò)位,錯(cuò)位多少呢,剛好是一個(gè)刻線所占據(jù)角度的一半,也就是1/4物理周期。
我們知道,如果只有一個(gè)感應(yīng)器A,那么當(dāng)觸發(fā)零位后,感應(yīng)器A就開始計(jì)數(shù)了,每經(jīng)過一個(gè)黑線和一個(gè)透明線,波形就形成一個(gè)低電平和一個(gè)高電平,也就是一個(gè)周期,但是它并不知道碼盤的旋轉(zhuǎn)方向,可能是逆時(shí)針旋轉(zhuǎn),也可能是順時(shí)針旋轉(zhuǎn)。
所以,感應(yīng)器B加入的目的就很明顯了:和感應(yīng)器A配合,用于判斷碼盤的旋轉(zhuǎn)方向。
因?yàn)锳和B錯(cuò)位1/4物理周期,(也就是相差90度電脈沖周期,所以也叫做正交脈沖,英文是Quadrature,我們常聽到的A-Quad-B就是從這兒來的),所以光線會先后透射過透明窗口,打在感應(yīng)器A和B上,形成1/4個(gè)周期差。
例如,如果順時(shí)針旋轉(zhuǎn),A領(lǐng)先于B四分之一周期,那么逆時(shí)針旋轉(zhuǎn),A必然滯后于B四分之一周期。從而可以根據(jù)A領(lǐng)先于B,還是滯后于B來判斷旋轉(zhuǎn)方向。
OK,到這里,我們理解了增量式編碼器的工作原理:通過Index找到零位,通過脈沖數(shù)目計(jì)算旋轉(zhuǎn)角度,通過AB通道的相對滯后性判斷旋轉(zhuǎn)方向,通過波形所占據(jù)的時(shí)間,或者波的脈沖頻率來判斷速度。
再仔細(xì)想一下,AB通道相差1/4周期,還可以用來干什么?
或許你已經(jīng)猜到,就是我在一開始就說到的4倍頻(倍乘)分辨率。
怎么實(shí)現(xiàn)呢?
看波形圖吧。
這里,以每圈100個(gè)物理周期碼盤來舉例。
一倍乘X1:碼盤旋轉(zhuǎn)時(shí),如果我們計(jì)算通道A脈沖的每個(gè)上升沿(由0變成5V),則每轉(zhuǎn)將獲得100個(gè)脈沖。
2倍乘X2:碼盤旋轉(zhuǎn)時(shí),如果我們計(jì)算通道A的每個(gè)上升沿和每個(gè)下降沿(由5V變成0),則每個(gè)周期將獲得2個(gè)脈沖,每轉(zhuǎn)總計(jì)200個(gè)脈沖。
4倍乘X4:如果我們計(jì)算通道A和通道B的每個(gè)上升沿和下降沿,則每個(gè)物理周期將獲得4個(gè)脈沖,每轉(zhuǎn)總計(jì)400個(gè)脈沖。
因?yàn)樵隽渴骄幋a器的物理刻線相距角度一樣,本質(zhì)上來說,它是通過計(jì)算脈沖數(shù)量,來計(jì)算旋轉(zhuǎn)角度的。
同樣的一圈,不同的倍頻法得到的每圈脈沖數(shù)不同,顯然4倍頻得到的分辨率最高。
這就是分辨率4倍頻的原理。
所以2000C/T的分辨率可以變成0.18°/4=0.045度。
但是需要明白的是,這個(gè)4倍乘,并沒有改變碼盤的物理刻線之間的角度,僅僅是電脈沖數(shù)量的變化,而且這個(gè)倍乘通常是在控制器或者計(jì)數(shù)器中完成的,信號質(zhì)量好,可靠。
如果在不改變碼盤條件下,還想獲得更高的分辨率,怎么辦?
可以用Interpolation,也就是信號插值。
插值的含義是什么呢?我理解得也不是很多,但是數(shù)學(xué)上來說,插值就是通過已知的數(shù)據(jù),去預(yù)測未知的數(shù)據(jù)。
在編碼器應(yīng)用中,因?yàn)閷?shí)際的位置,可能位于黑色刻線和透明窗口之間,插值就可以得到這些位置的值,從而獲得更高的分辨率。
理論上,插值可以獲得無限的分辨率,但是過高的插值也會引入新的問題,例如信號容易受到電噪聲的影響從而降低精度,需要與之相匹配的驅(qū)動和控制器,大量的數(shù)據(jù)處理需要花費(fèi)更多的時(shí)間,需要更快的響應(yīng)等。
目前,我在某供應(yīng)商的產(chǎn)品目錄中,看到最高的插值倍數(shù)是20000倍,分辨率達(dá)到0.002arcsec。當(dāng)然,這個(gè)碼盤也很大,外徑達(dá)到206mm,一圈的物理周期是32400(也就是32400 Line Count)。
這個(gè)碼盤的物理分辨率是:360/32400=0.01111°,插值后分辨率是:0.01111/20000*3600=0.002arcsec,這里除以3600是單位的換算。這款編碼器安裝后能實(shí)現(xiàn)的精度是±1arcsec=±1/3600°。
4. 絕對式旋轉(zhuǎn)編碼器的工作原理是什么?
絕對式編碼器的工作原理和增量式有所不同。
怎么個(gè)不同法?
分餅游戲開始了。
還是先看一張圖。
這個(gè)圖是一個(gè)16位絕對式編碼器示意圖。整圈被分成了16份,也就是有16個(gè)扇區(qū)。
它和增量式編碼器的圖相似,但是又有一點(diǎn)不一樣:在半徑方向上,每一個(gè)扇區(qū)又被分成了4份。
LED光從碼盤一側(cè)照射下來,相應(yīng)地,在碼盤另外一側(cè)有一個(gè)探測芯片,探測芯片有4個(gè)感應(yīng)區(qū),每個(gè)感應(yīng)區(qū),可以獲取同一個(gè)扇區(qū)每一份的狀態(tài)。
透明的窗口,光線穿過去,感應(yīng)區(qū)感應(yīng)到信號,不透明的區(qū)域,光線無法穿過,感應(yīng)區(qū)無法感應(yīng)到。
如果把有感應(yīng)和無感應(yīng)看成是兩種狀態(tài),分別用1和0表示,那么每一個(gè)感應(yīng)區(qū)可以表示2種狀態(tài)。
進(jìn)而,同一個(gè)扇區(qū)中這4份(4位),可以表示2^4=16種狀態(tài),這也是為什么這個(gè)碼盤在圓周方向上被分為了16份,其實(shí)相當(dāng)于對每一個(gè)位置進(jìn)行了編碼,每個(gè)編碼對應(yīng)著一個(gè)特定的位置。
可能你也想問,能不能在半徑方向分4份,而在圓周方向多分幾份。多分沒有意義,因?yàn)榘霃椒较蛑挥?位,無法表示更多的位置。少分又不能充分利用好感應(yīng)到的狀態(tài)總數(shù),所以分成2^4=16份剛剛好。
比如下面這幅圖,從左到右可以分別表示0001, 0101, 1100,用十進(jìn)制表示就是第1, 第5,第12個(gè)位置。
0101轉(zhuǎn)換成10進(jìn)制:0*2^3+1*2^2+0*2^1+1*2^0=5。1100轉(zhuǎn)換成10進(jìn)制:1*2^3+1*2^2+0*2^1+0*2^0=12。
到這里,我們基本上明白了絕對式編碼器的原理:對每一個(gè)位置,給定一個(gè)唯一的編碼,再用傳感器去識別每個(gè)位置的編碼,輸出與之相對應(yīng)的唯一信號,用來表示特定的位置。
如果要獲得更高的分辨率,那么就需要更多的編碼位數(shù),也就是需要在圓周方向上,刻上更多的特定編碼(這通常都會加大碼盤)。
比如需要17位,也就是2^17=131072個(gè)位置,那么就需要131072個(gè)不同的編碼,這時(shí)的分辨率是360/131072=0.00275°。
當(dāng)然,并不是每個(gè)廠家的編碼方法,都和上面這個(gè)例子一樣。有的廠家不在半徑方向上劃分,只在圓周方向上劃分,但是基本理念是一樣的,就是用唯一的編碼表示唯一的位置。
這就是絕對式編碼器的核心思想。
剛剛說完了編碼方法,那么絕對式編碼器輸出的波形圖和增量式有什么不同呢?
還是以光學(xué)絕對編碼器為例來說明,一個(gè)典型的絕對編碼器輸出波形如下,右圖。
這里使用的是脈沖帶寬調(diào)制(PWM=Pulse Width Modulation)。
一個(gè)10位絕對編碼器可以輸出2^10=1024個(gè)獨(dú)特編碼,在圖中怎么表示每一個(gè)特定的位置呢?
用脈沖寬度來表示。
例如,起始零位,用一個(gè)最小的脈沖寬度1微秒來表示這個(gè)位置。在180°,用512微秒的脈沖帶寬來表示。
類似地,對于其他的位置,用不同的脈沖寬度來表示,當(dāng)碼盤旋轉(zhuǎn),越來越長的脈沖帶寬被傳遞。
順便說一下,上圖左邊,是一個(gè)絕對式磁編碼器的波形圖,它是用電壓的高低來表示不同的位置。
這些波形信息,按照控制系統(tǒng)的配置,可以通過不同的通信接口,傳遞給控制器,用來做反饋控制。
5. 絕對式單圈和多圈編碼器有什么不同?
絕對式編碼器又分為單圈和多圈,即Single-Turn Absolute Encoder和Multi-Turn Absolute Encoder。
單圈很好理解,就像鐘表中只有分針,一圈一圈地不停轉(zhuǎn),60分鐘之后,表重置,并不記錄旋轉(zhuǎn)的圈數(shù),在這里,也就是不知道是幾個(gè)小時(shí)。
多圈,就像是鐘表中即有分針,還有時(shí)針。在任何時(shí)刻,分鐘和小時(shí)數(shù)都可以被讀取。
所以多圈編碼器可以記錄很多很多圈。
實(shí)際的多圈編碼器,常用3種方法來實(shí)現(xiàn)圈數(shù)記錄。
第一種,就像上面那張圖一樣,在編碼器內(nèi)部,用機(jī)械齒輪耦合多個(gè)軸,用來計(jì)算總的圈數(shù),這種方法,因?yàn)橛玫搅藱C(jī)械齒輪,所以會帶來磨損,使得精度降低,同時(shí)機(jī)械齒輪會占用很多空間,所以編碼器尺寸偏大。
第二種,就是用電子計(jì)數(shù)器和電容器,來計(jì)算總共轉(zhuǎn)過的圈數(shù),但是代價(jià)是需要在編碼器內(nèi)部安裝電池,而且需要定期檢查電池。
第三種,在一些磁編碼器中,采用韋根金線(Wiegand wire),并利用韋根效應(yīng)來計(jì)數(shù)(Wiegand effect)。這種編碼器沒有太多機(jī)械結(jié)構(gòu)件,可以做得很小。
韋根效應(yīng),也是我在了解編碼器的過程中才知道的,所以多做一點(diǎn)說明。
韋根金線,它由一種特殊的合金制成,具有硬磁(永磁,不易退磁)的金屬外殼和軟磁(容易退磁和磁化)的金屬芯。韋根線表現(xiàn)出具有兩個(gè)明顯不連續(xù)的磁滯曲線,稱為韋根效應(yīng)。
在適當(dāng)磁場強(qiáng)度的作用下,韋根線芯磁場會反向,其磁場和和外硬層相同或者相反,讓處在附近的線圈產(chǎn)生一個(gè)脈沖,該脈沖的大小和形狀與外部磁場變化的速度無關(guān),磁編碼器就是利用這個(gè)脈沖來記錄轉(zhuǎn)動的圈數(shù),并把數(shù)據(jù)寫入穩(wěn)定的存儲器中。
當(dāng)然,單圈編碼器也可以通過信號重復(fù)的次數(shù),來計(jì)算旋轉(zhuǎn)的圈數(shù),但是就沒有多圈編碼器那么直接。
單圈編碼器,如果轉(zhuǎn)了超過一圈,斷電重啟后,不知道轉(zhuǎn)了幾圈,也就是說,不知道絕對位置的。
這個(gè)特性,決定了單圈絕對編碼器只適用于開機(jī)需要絕對位置,但是在運(yùn)轉(zhuǎn)過程中,旋轉(zhuǎn)不滿一圈的應(yīng)用中。
而多圈編碼器,是有圈數(shù)物理絕對位置記錄的,所以,多圈相對于單圈可以獲得更長更遠(yuǎn)的絕對位置。
但是與此同時(shí),關(guān)于多圈編碼器,又出現(xiàn)了一個(gè)新的問題。
如果旋轉(zhuǎn)的圈數(shù)超過了它的總記錄容量會發(fā)生什么?
這時(shí),圈數(shù)會溢出,要么重新計(jì)數(shù),要么驅(qū)動器和控制器提供一種特殊的位置跟蹤,稱為“模數(shù)定位”,它可以存儲任何溢出運(yùn)動,即超出記錄圈數(shù)的旋轉(zhuǎn)部分,并使用此信息提供準(zhǔn)確的定位。
到此,我們重新理解了單圈和多圈編碼器的區(qū)別:單圈只能記錄一圈之內(nèi)的運(yùn)動,多圈可以記錄很長的旋轉(zhuǎn)或者直線位移。
好了。
現(xiàn)在我們回過頭去看一下,在文章一開始就提到的17bit/33bit。
這是什么含義?相信你從上面的解釋中,已經(jīng)明白了。
17bit/33bit的含義是:17bit就是說每轉(zhuǎn)一圈有2^17=131072個(gè)脈沖,而33bit表示總共的脈沖位數(shù)是2^33=2^17*2^16,那么這個(gè)多圈編碼器可以記錄33-17=16bit=2^16=65536圈。
這里計(jì)算分辨率要注意,它的分辨率只和一圈的脈沖數(shù)有關(guān),而和總的圈數(shù)無關(guān),也就是說這個(gè)編碼器的分辨率是360/131072=0.00275度。
如果一個(gè)馬達(dá)使用了這個(gè)編碼器,用此馬達(dá)驅(qū)動滾珠絲杠,運(yùn)動一圈前進(jìn)5毫米,那么理論上的分辨率就是:5mm/131072cnt=0.038um/cnt。
當(dāng)然,實(shí)際分辨率肯定要比這個(gè)低,畢竟?jié)L珠絲杠系統(tǒng)也是有間隙的,而且大多數(shù)時(shí)候,機(jī)械系統(tǒng)的間隙才是整個(gè)系統(tǒng)的短板。
6. 增量式編碼器和絕對式編碼器有什么不同?包括原理,價(jià)格,應(yīng)用等
通過上面的解釋,我們理解了增量和絕對式兩種旋轉(zhuǎn)編碼器的工作原理。
絕對式旋轉(zhuǎn)編碼器的原理和增量式的原理類似,都是通過傳感器來讀取碼盤上明暗相間的刻線獲得脈沖,根據(jù)脈沖數(shù)目來表示位置。
不同的是,絕對式編碼器,斷電可以記住當(dāng)前位置,即使斷電后有機(jī)械移位,通電后也知道移動到哪里去了,因?yàn)榻^對式編碼器對每一個(gè)位置,有一個(gè)唯一的編碼。
而增量式編碼器不同,它沒有記憶,斷電后重啟,需要找到參考點(diǎn)后,才能找回需要的位置。
增量式編碼器很適合用于確定速度,距離或運(yùn)動方向。
如果需要在斷電重啟時(shí)就知道位置,那么就需要絕對式編碼器了。
例如,如果你要設(shè)計(jì)機(jī)械臂,在斷電后可能沒有足夠的空間或靈活性,使其無法移動到原始位置,在這種情況下,需要使用絕對編碼器。
這是從技術(shù)角度說明兩者的不同。
但是其實(shí)從成本,應(yīng)用方面來看,兩者也有不同之處,我就不多探討了,直接給出結(jié)果。
有如下的這個(gè)表格:
7. 選擇編碼器,最重要的參考因素有哪3點(diǎn)?
1. 開機(jī)是否需要知道絕對位置,用來決定選擇增量式還是絕對式。實(shí)際運(yùn)行過程中可能的旋轉(zhuǎn)圈數(shù),用來決定多圈還是單圈編碼器。
2. 精度要求,分辨率要求,決定編碼器的分辨率選擇。
3. 最大速度。分辨率選定,需要結(jié)合最大速度計(jì)算編碼器產(chǎn)生信號的頻率。編碼器輸出的頻率,需要比控制器或者計(jì)數(shù)器能夠接受的最大輸入頻率低,否則需要重新選擇編碼器,重新匹配。另外編碼器本身也有最大轉(zhuǎn)速要求。
4. 價(jià)格。結(jié)合預(yù)算考慮價(jià)格。
5. 安裝方式。軸孔安裝,空間大小評估,安裝公差要求,出線的方向等。
6. 外圍環(huán)境?;覊m,濕度,溫度,振動,電磁環(huán)境等,決定編碼器的選擇類型和信號線的屏蔽等,例如選擇光學(xué)式,還是磁式,還是電容式,選擇屏蔽線還是非屏蔽線等。
當(dāng)然,實(shí)際選擇時(shí),如果有不太確定的地方,一定有一個(gè)辦法可以幫你解決問題。
那就是聯(lián)系你的供應(yīng)商,說出你的問題,畢竟他們是專業(yè)的,很多時(shí)候,他們可以給你一些很好的選擇建議,這個(gè)時(shí)候,往往也是很好的學(xué)習(xí)機(jī)會。
關(guān)于編碼器,如果要深挖的話,還有很多話題的,比如噪聲的來源,如何控制噪聲等。
但是限于主題和篇幅,今天就到這里吧。