2018/7/28

旋轉編碼器選用與配合設計

機械設備設計過程中經常會使用到許多市購元件,
並將之整合成設備的規格功能,
如果元件選錯了,自然設備就很可能無法達到所需求的規格功能。

對於旋轉運動,如果想要知道轉動的速度/角度位置,
依靠的就是旋轉編碼器,
英文是Rotary Encoder 或 Shaft Encoder *1;

例如像伺服馬達能夠知道馬達轉動的(經過)角度、速度,就是靠編碼器。

至於編碼器的原理可以參考 *2

所以選擇伺服馬達時,從位置的解析能力需求對應選擇適當的旋轉編碼器規格。

例如台達伺服馬達的型錄中就會列出編碼器解析數:
圖片來源:台達伺服馬達 ASDA-B 型錄

其中有關編碼器的規格就是 2500 ppr 或 10000 ppr

其中 ppr 就是 pulse per revolution 的縮寫*3,
圖片來源:*3

也就是馬達轉一轉可以輸出 2500 或 10000 個輸出,
若是2500個輸出,等於 360 / 2500 = 0.144度輸出一個訊號
若是10000個輸出,等於 360/10000 = 0.036 度輸出一個訊號

在更高規格的 ASDA-A2 有 2500 ppr 跟 2^17、2^20 bit 三種選擇,
其中的 2^20 bit = 1048576,義思就是轉一圈可以切割成 1048576 的輸出,
相當於 0.000343 度輸出一個訊號。
標榜雙軸同步運動的 ASDA-M 系列只有 2^20 bit 一種沒得選;
到最高階的 ASDA-A3則有最高 2^24 bit ,等於 0.0000215 度輸出一個訊號。
圖片來源:台達伺服馬達 ASDA-A3 型錄
有趣的是在型錄中,響應頻寬卻是 3 倍,並不是 2^4 = 16倍,如下圖示:

這跟在 Omron 說明 *4 中看到的最高響應頻率計算結果不同,道理何在?
希望能有高手可以解惑。

在台達伺服馬達上看的到 2^24 bit 超高解析度編碼器,
或者是三菱伺服馬達上看到的 2^22 bit 輸出的超高解析度編碼器,
在一般的獨立販售的編碼器就很難看到,
例如像 OMRON 編碼器產品解析度最高到 6000 ppr:
圖片來源:Omron 網站

不過編碼器解析度的影響何在?

回到第一個圖,4 ppr 代表每轉一圈,編碼器就送出 4 個 pulse,
平均分配就是每轉 90 度編碼器就送出 1 個 pulse,
所以控制器每次收到一個編碼器送過來的 pulse ,
就代表轉動 360/4 = 90 度,這是代表轉動的角度,也就是位置關係;
要計算旋轉速度,必須加上時間的概念,
如果收到 pulse 的時間間隔是 1 秒鐘,代表 1 秒轉 90 度,
轉一圈 360/90 = 4 秒,也就是 1/4 = 0.25 rps 或 15 rpm。

依此類推,以 Omron 最高的編碼器 6000 ppr,
表示控制器每次收到一個 pulse,
就代表轉動 360/6000 = 0.06 度,
藉此可以得到旋轉軸的角度位置變化;
如果要計算旋轉速度的變化,
就需要加入考量控制器收到 pulse 時間的解析度能力,
例如在 0.001 秒的間隔時間收到 1 個編碼器送過來的 pulse,
代表轉速是 0.06/0.001 = 60 度/秒,轉一圈需要 360/60 = 6 秒,
相當於 1/6 rps 或 10 rpm 。
如果是間隔 0.001001秒收到 1 個 pulse,
代表速度是 0.06/0.001001 = 59.94 度/秒。
速度變慢了 60 - 59.94 = 0.06 (度/秒) / 60 = 0.001,速度變慢 0.1%。

從以上的例子可以得知,
轉動的角度位置解析度靠編碼器的解析度,
所以如果要看到細微的角度位置變化,
需要高解析度的編碼器,
越高的 ppr 可以知道越細微的角度變化。

轉動的速度是看收到兩次 pulse 的間隔時間長度,
要看到細微的轉動速度變化,
需要加上編碼器送出 pulse 的訊號升降有多快跟控制器接收 pulse 的能力。
如前述,控制器可以區分到0.000001秒的差異,
就可以辨識出0.1%的速度差異(變化);
若編碼器送出訊號由0變1或由1變0的時間超過0.000001秒,
那就算控制器可以快到0.000001也沒用。

編碼器有分增量型與絕對型,可以參考以下影片:

1 則留言: