編碼器的計數原理與電機測速原理
什么是編碼器
編碼器是一種用來測量機械旋轉或位移的傳感器。它能夠測量機械部件在旋轉或直線運動時的位移位置或速度等信息,并將其轉換成一系列電信號。
光電編碼器
光電編碼器是一種通過光電轉換將輸出軸上的機械幾何位移量轉換成脈沖或數字量的傳感器。這是目前應用最多的傳感器,光電編碼器是由光源、光碼盤和光敏元件組成。
光柵盤是在一定直徑的圓板上等分地開通若干個長方形孔。由于光電碼盤與電動機同軸,電動機旋轉時,光柵盤與電動機同速旋轉,經發光二極管等電子元件組成的檢測裝置檢測輸出若干脈沖信號,通過計算每秒光電編碼器輸出脈沖的個數就能反映當前電動機的轉速。
此外,為判斷旋轉方向,碼盤還可提供相位相差90°的兩路脈沖信號。
霍爾編碼器
霍爾編碼器是一種通過磁電轉換將輸出軸上的機械幾何位移量轉換成脈沖或數字量的傳感器。
霍爾編碼器是由霍爾碼盤(磁環)和霍爾元件組成。
霍爾碼盤是在一定直徑的圓板上等分地布置有不同的磁極。霍爾碼盤與電動機同軸,電動機旋轉時,霍爾元件檢測輸出若干脈沖信號,為判斷轉向,一般輸出兩組存在一定相位差的方波信號。
增量式編碼器
增量式編碼器是將設備運動時的位移信息變成連續的脈沖信號,脈沖個數表示位移量的大小。其特點如下:
1、只有當設備運動時才會輸出信號。
2、一般會輸出通道A和通道B 兩組信號,并且有90° 的相位差(1/4個周期),同時采集這兩組信號就可以計算設備的運動速度和方向。
如下圖,通道A和通道B的信號的周期相同,且相位相差1/4個周期,結合兩相的信號值:
1、當B相和A相先是都讀到高電平(1 1),再B讀到高電平,A讀到低電平(1 0),則為順時針轉
2、當B相和A相先是都讀到低電平(0 0),再B讀到高電平,A讀到低電平(1 0),則為逆時針轉
3、除通道A、通道B 以外,還會設置一個額外的通道Z 信號,表示編碼器特定的參考位置
如下圖,傳感器轉一圈后Z 軸信號才會輸出一個脈沖,在Z軸輸出時,可以通過將AB通道的計數清零,實現對碼盤絕對位置的計算。
增量式編碼器只輸出設備的位置變化和運動方向,不會輸出設備的絕對位置。
絕對式編碼器
絕對式編碼器在總體結構上與增量式比較類似,都是由碼盤、檢測裝置和放大整形電路構成,但是具體的碼盤結構和輸出信號含義不同。
它是將設備運動時的位移信息通過二進制編碼的方式(特殊的碼盤)變成數字量直接輸出。其特點如下:
1、其碼盤利用若干透光和不透光的線槽組成一套二進制編碼,這些二進制碼與編碼器轉軸的每一個不同角度是唯一對應的。
2、絕對式編碼器的碼盤上有很多圈線槽,被稱為碼道,每一條(圈)碼道內部線槽數量和長度都不同。它們共同組成一套二進制編碼,一條(圈)碼道對應二進制數的其中一個位(通常是碼盤最外側的碼道表示最低位,最內側的碼道表示最高位)。
3、碼道的數量決定了二進制編碼的位數,一個絕對式編碼器有N 條碼道,則它輸出二進制數的總個數是2的N次方個。
4、讀取這些二進制碼就能知道設備的絕對位置,所以稱之為絕對式編碼器。
5、編碼方式一般采用自然二進制、格雷碼或者BCD 碼等。
自然二進制的碼盤易于理解,但當碼盤的制造工藝有誤差時,在兩組信號的臨界區域,所有碼道的值可能不會同時變化,或因為所有傳感器檢測存在微小的時間差,導致讀到錯誤的值。比如從000跨越到111,理論上應該讀到111,但如果從內到外的3條碼道沒有完全對齊,可能會讀到如001或其它異常值。
格雷碼(相鄰的兩個2進制數只有1個位不同)碼盤可以避免二進制碼盤的數據讀取異常,因為格雷碼碼盤的相鄰兩個信號組只會有1位的變化,就算制造工藝有誤差導致信號讀取有偏差,最多也只會產生1個偏差(相鄰信號的偏差)。
編碼器參數解析
分辨率
指編碼器能夠分辨的最小單位。
對于增量式編碼器,其分辨率表示為編碼器轉軸旋轉一圈所產生的脈沖數,即脈沖數/轉(Pulse Per Revolution 或PPR)。
碼盤上透光線槽的數目其實就等于分辨率,也叫多少線,較為常見的有5-6000 線。
對于絕對式編碼器,內部碼盤所用的位數就是它的分辨率,單位是位(bit),具體還分單圈分辨率和多圈分辨率。
精度
首先明確一點,精度與分辨率是兩個不同的概念。
精度是指編碼器每個讀數與轉軸實際位置間的最大誤差,通常用角度、角分或角秒來表示。
例如有些絕對式編碼器參數表里會寫±20′′,這個就表示編碼器輸出的讀數與轉軸實際位置之間存在正負20 角秒的誤差。
精度由碼盤刻線加工精度、轉軸同心度、材料的溫度特性、電路的響應時間等各方面因素共同決定。
最大響應頻率
指編碼器每秒輸出的脈沖數,單位是Hz。計算公式為:
最大響應頻率= 分辨率* 軸轉速/60
例如某電機的編碼器的分辨率為100(即光電碼盤一圈有100條柵格),軸轉速為120轉每分鐘(即每秒轉2圈),則響應頻率為100*120/60=200Hz,即該轉速下,編碼器每秒輸出200個脈沖(電機帶動編碼器轉了2圈嘛)。
編碼器的信號輸出形式
對于增量式編碼器,每個通道的信號獨立輸出,輸出電路形式通常有集電極開路輸出、推挽輸出、差分輸出等。
對于絕對式編碼器,由于是直接輸出幾十位的二進制數,為了確保傳輸速率和信號質量,一般采用串行輸出或總線型輸出,例如同步串行接口(SSI)、RS485、CANopen 或EtherCAT 等,也有一部分是并行輸出,輸出電路形式與增量式編碼器相同。
碼盤測速原理
編碼器倍頻
編碼器倍頻是什么意思呢,比如某光柵編碼器一圈有N個柵格,理論上電機帶動編碼器轉一圈,只能輸出N個信號,通過倍頻技術,可以實現轉一圈,卻能輸出N*n個信號,這里的n為倍頻數。
增量式編碼器輸出的脈沖波形一般為占空比50% 的方波,通道A 和B 相位差為90°。
1、如果只使用通道A計數,并且只捕獲通道A的上升沿,則一圈的計數值=碼盤的柵格數,即為1倍頻(沒有倍頻)
2、如果只使用通道A計數,并且捕獲了通道A的上升沿和下降沿,則編碼器轉一圈的計數值翻倍,實現2倍頻
3、如果既使用通道A計數,又使用通道B計數,且都捕獲了上升沿和下降沿,則實現了4倍頻
假設某個增量式編碼器它的分辨率是600PPR,能分辨的最小角度是0.6°,對它進行4 倍頻之后就相當于把分辨率提高到了600*4=2400PPR,此時編碼器能夠分辨的最小角度為0.15°。
M法測速
又叫做頻率測量法。該方法是在一個固定的時間內(以秒為單位),統計這段時間的編碼器脈沖數,計算速度值。M法適合測量高速。
假設:
編碼器單圈總脈沖數為C(常數)
統計時間為 T0 (固定值,單位秒)
該時間內統計到的編碼器脈沖數為 M0(測量值)
則:轉速n(圈/秒)的計算公式為:
注意: 如何理解這個公式:
M0即統計時間內有多少個編碼器脈沖,再除以統計時間 T0,即1s(單位時間)內轉了多少圈
例如:統計時間T0為3s,在3s內測得的脈沖數 M0為60,而編碼器的單圈脈沖數C為20,則轉速n=60/(20*3)=1圈每秒
由于C 是常數,所以轉速n 跟 M0成正比。這就使得:
1、在高速時,測量時 M0變大,可以獲得較好的測量精度和平穩性
2、但在低速時(低到每個 T0內只有少數幾個脈沖),此時算出的速度誤差就會比較大,并且很不穩定。
如下圖,方波為編碼器某一通道輸出的脈沖。
當轉速較高時,每個統計時間 T0內的計數值較大,可以得到較準確的轉速測量值。
當轉速較低時,每個統計時間 T0內的計數值較小,由于統計時間的起始位置與編碼器脈沖的上升沿不一定對應,當統計時間的起始位置不同時,會有一個脈沖的誤差(只統計上升沿時,最多會有1個脈沖誤差,統計上升沿和下降沿時,最多會有2個脈沖的誤差)。
通過倍頻提高單位時間測得的脈沖數可以改善M 法在低速測量的準確性(比如原本捕獲到的脈沖 M0只有4 個,經過4 倍頻后,相同電機狀態 M0變成了16 個),但也不能從根本上改變低速時的測量問題。
T法測速
又叫做周期測量法。這種方法是建立一個已知頻率的高頻脈沖并對其計數。T法適合測量低速。
假設:
編碼器單圈總脈沖數為C(常數)
高頻脈沖的頻率為 F0(固定值,單位Hz)
捕獲到編碼器相鄰兩個脈沖的間隔時間為 TE,其間的計數值為 M1(測量值)
則:轉速n 的計算公式為:
如何理解這個公式:
1/ TE,即1s內有多少個編碼器脈沖,再除以一圈的脈沖數C,即1s內轉了多少圈
F0即1s內的高頻脈沖數除以兩編碼器脈沖間的高頻脈沖數,也即1s內有多少個編碼器脈沖,再除以一圈的脈沖數C,即1s內轉了多少圈
例如:高頻脈沖的周期是1ms,即頻率 F0為1000Hz,在編碼器的兩個脈沖之間,產生的高頻脈沖數 M1為50個(即兩個編碼器脈沖的間隔 TE為0.05s),編碼器一圈的脈沖數C為20,則轉速 n = 1000 / ( 50 ? 20 ) = 1 n=1000/(50*20)=1 n=1000/(50?20)=1圈每秒。
由于C 和 F0是常數,所以轉速n 跟 M1成反比。這就使得:
1、在高速時,編碼器脈沖間隔時間 TE很小,使得測量周期內的高頻脈沖計數值 M1也變得很少,導致測量誤差變大
2、在低轉速時, TE足夠大,測量周期內的 M1也足夠多,所以T法和M法剛好相反,更適合測量低速。
3、如下圖,黑色方波為編碼器某一通道輸出的脈沖,黃色方波為高頻測量脈沖。
4、當轉速較低時,高頻測量脈沖數 M1較大,可以得到較準確的轉速測量值。
當轉速較高時,編碼器兩脈沖間的時間間隔變短,導致高頻測量脈沖數 M1較小,由于高頻脈沖的上升沿位置與編碼器脈沖的上升沿不一定對應,當兩波的上升沿位置不同時,會有一個脈沖的誤差。
M/T法測速
這種方法綜合了M 法和T 法各自的優勢,既測量編碼器脈沖數又測量一定時間內的高頻脈沖數。
在一個相對固定的時間內,假設:
編碼器脈沖數產生 M0個 (測量值)
計數一個已知頻率為 F0(固定值,單位Hz)的高頻脈沖,計數值為 M1(測量值),計算速度值
碼器單圈總脈沖數為C(常數)
則轉速n 的計算公式為: 在這里插入圖片描述 例如:在一個相對固定的時間內,編碼器脈沖數 M0為3個;高頻脈沖的周期是1ms,即頻率 F0為1000Hz,產生的高頻脈沖數 M1為150個;編碼器一圈的脈沖數C為20,則轉速 n = 1000 ? 3 / ( 150 ? 20 ) = 1 n=10003/(15020)=1 n=1000?3/(150?20)=1圈每秒。
由于M/T 法公式中的 F0 和C 是常數,所以轉速n 就只受 M0和 M1的影響。
1、高速時, M0增大, M1減小,相當于M 法
2、低速時, M1增大, M0減小,相當于T 法。
沖數 M=0為3個;高頻脈沖的周期是1ms,即頻率 F0 為1000Hz,產生的高頻脈沖數 M1為150個;編碼器一圈的脈沖數C為20,則轉速 n = 1000 ? 3 / ( 150 ? 20 ) = 1 n=10003/(15020)=1 n=1000?3/(150?20)=1圈每秒。
由于M/T 法公式中的 F0和C 是常數,所以轉速n 就只受 M0和 M1的影響。
1、高速時, M0增大, M1減小,相當于M 法
2、低速時, M1增大, M0減小,相當于T 法。
了解更多編碼器相關知識,敬請關注西安德伍拓自動化傳動系統有限公司網站。公司技術團隊為您免費提供
編碼器的選型、安裝、調試、保養等技術指導服務,盡量避免企業因為編碼器技術人員的短缺帶來的損失,采取“線上+線下”服務的服務形式,幫助企業解決技術難題。