正交編碼器在系統中的工作與訊號變化

什麼是正交編碼器?

正交編碼器是一種機電感測器,用於測量角位置、旋轉速度和方向的變化。它也可以測量相對於已知起始位置的位置。它的特點是兩個感測器在物理上相對於一個旋轉的中斷機構偏移。由此產生的組件產生正交波形。圖1給了一個例子。在這個例子中,一對 Banner EngineeringDS18VP6LP 逆向反射式感測器被一個機械快門打斷。

更多逆向反射式感測器

正交編碼器這個術語包含了廣泛的技術。圖1給出了一個典型的例子,其中包括光學感測器和中斷盤。磁碟每轉一圈提供 4 個視窗。與商業上可用的感測器相比,這看起來很粗糙,每轉一圈就有幾十個甚至幾百個窗口。然而,即使是這種簡單的機制也能將圓分成16個部分(22.5度增量)。

正交編碼器是由輸出訊號定義的,而不是用於開發這些訊號的技術。請注意,正交編碼器也可以使用磁鐵和霍爾感測器、機械開關,甚至是黑白象限交替的紙張來製造。在所有情況下,都使用一對感測器來檢測變化。

圖 1:大型 3D 列印正交編碼器示範器的圖片

「正交」這個字是什麼意思?

正交是描述兩個訊號之間相位關係的關係術語。具體來說,它描述了一個90度的關係。最主要的例子是如圖2所示的正弦和餘弦波形之間的關係。三角定義與此對話相關,因為 sin 和 cos 從根本上與物體的旋轉有關。

有可能產生一個基於正弦和餘弦訊號的直接測量的編碼器。一個罕見的,也許是老式的,模擬的例子是同步和伺服系統,其中測量正交或三相信號。

實際上,使用表示波形的數字方法要容易得多。如圖 2 的下半部所示,當對應的波形為正時,感測器 Q1 和 Q2 會做出反應。在這個系統中,我們將波形分成 4 個象限。我們看到每個感測器在兩個象限內都是正的。有時兩個感測器都是開啟的,有時兩個感測器都是關閉的。

透過觀看影片 1 可以更好地理解圖 2 中的模型。觀察狀態變化遵循一個可預測的模式,該模式使用 2 位元灰色編碼描述,序列為 00、01、11 和 10。回想一下,灰色碼描述了一個系統,其中一個位元在任何給定時間都發生變化。當你觀看影片時,感測器的 LED 指示燈似乎在向下「行走」。後來隨著方向從順時針變成逆時針,它們似乎正在向上行走。

image

圖 2:正向(CW)方向的正交訊號,藍色訊號引導綠色訊號。當對應的訊號為正時,Q1 和 Q2 感測器啟動。

小貼士 :術語正交在電子和通訊中經常遇到。從歷史的角度來看,一些最早的多相AC電動機是由90度偏移的訊號驅動的。這包括著名的特斯拉 AC 電機,與現代單相 AC 電機的啟動電路有著強烈的連結。在另一個例子中,正交描述了無線電接收機和發射機中的一個過程,我們使用「I」和「Q」訊號對應於同相和正交相信號。

影片 1:影片顯示正交編碼器,順時針 3 秒,逆時針 3 秒。

隨著旋轉方向的改變,正交訊號是如何變化的?

到目前為止,我們假設正交訊號之間的相位關係是恆定的。換一種說法,我們假設一個系統沿著單一方向旋轉。

圖 3 顯示了旋轉方向反轉時的變化。訊號的正交(90度)性質仍然存在。然而,綠色波形現在處於領先地位。回想一下,原來的灰色編碼是 00、01、11、10。現在它被轉換成一個 00、10、11和 01 序列。

image

圖 3 :反向(CCW)方向的正交訊號,綠色訊號引導藍色訊號。

在具有正交編碼器的系統中如何保持位置?

我們謹慎地聲明,正交編碼器可以測量相對於已知起始位置的位置。換句話說,正交編碼器不是絕對位置感測器,因為它無法確定軸的位置作為直接讀取。相反,配備正交感測器的數位系統必須計算觀察到的轉換次數。這樣的系統必須在已知的「家」或「零」位置初始化計數。因此,所有的位置測量都被解釋為相對於主位置。錯過計數或失去記憶將導致丟失位置。

再一次,我們認識到相應的數位系統必須追蹤正交編碼器。它透過監控感測器灰色碼的「方向」來實現這一點。數字系統會在每次灰碼轉換時更新計數(位置變數)。

正交編碼器和相關係統會出現什麼問題?

這種系統級的整合需要仔細的程式設計。也許最大的挑戰之一與相關微控制器或可程式邏輯控制器(PLC)所使用的速度和程式技術有關。如果設備很慢或程式很慢(阻塞),它將錯過感測器轉換。因此,我們必須防範這種類型的錯誤以及噪音、感測器故障和間歇性電線問題。

一個典型的錯誤是從程式的超級循環(如Arduino loop()函數)內部監視編碼器感測器。系統看起來會正常工作,但隨著旋轉速度的增加,可能會失去計數。這個問題是複雜的,當馬達和感測器被納入一個回授系統,如比例積分導數控制器(PID)。這是非常困難的調試,因為問題可能是在PID程式碼或在推算位置(計數)。

使用中斷將大大有助於消除位置錯誤。然而,當我們考慮到維持這個臨界數字的重要性時,這是不夠的。當旋轉編碼器用於定位大型機器時,尤其如此。當一個錯誤的位置數字導致機構撞到末端停止時,這樣的系統往往會發生災難性的故障。我們必須包含一種偵測錯誤的穩健方法。

使用狀態機來監控旋轉編碼器的灰色碼

仔細檢查正向和反向的灰色碼,可以發現它們是相關的。使用圖 4 所示的狀態圖表示可以最好地看到這一點。如果我們順時針方向「行走」圖 4,我們得到正向(圖 2)關係。如果我們順時針方向「行走」,我們會看到圖3的模式。

這個狀態圖為一種簡單而穩健的確定方向的方法提供了一個框架。從我們的數位系統內部,我們維護一個內部的狀態推算。然後,我們從 Q1 和 Q2 感測器中尋找適當的轉換。例如,如果我們處於狀態 00,則有三個有效條件和一個故障條件。這個表格給出了基於感測器輸入的結果。

  • 00:保持目前狀態
  • 01:移動到狀態01並將位置計數增加1
  • 10:移動到狀態10,並將位置計數減1
  • 11:錯

每個狀態都需要類似的表格,所有這些表格都可以從圖 4 中匯出。請注意,故障條件沒有回傳值。相反,必須重置系統,並在必要時執行歸航操作。

作為測試條件,假設該機構處於過渡的邊緣,並且在感測器條件 00 和 10 之間切換。這對系統來說不是問題,因為它的內部推算將在兩個狀態之間反彈,增加或減少每個狀態轉換的數量。

在另一個測試條件下,考慮當感測器的灰色程式碼被違反時會發生什麼。回想一下,灰色碼允許改變單一位元。如果我們處於內部狀態 00,感測器過渡到 11,就表示出了問題,計數被破壞了。正確的反應是進入故障狀態,關閉系統。

image

圖 4 :正交編碼器訊號的狀態圖表示。氣泡代表狀態,線條上的數字代表感測器值。為了清晰起見,已經消除了剩餘狀態迴路。

基於正交編碼器系統的歸位

歸位(零位置)方法取決於系統的複雜程度。對於一些旋轉編碼器應用,通電重設到零或重設到最後一個已知值就足夠了。例如,旋轉編碼器可以用作音量控制。當設備通電時,可以​​從非揮發性記憶體位置檢索計數。音訊系統現在具有與關機時相同的音量。

一個更複雜的例子是一台有獨立的 X、Y 和 Z 馬達加上編碼器的機器。通電重設是不合適的,因為當設備關閉時,我們對機器的刀具位置沒有移動的置信度為零。對於這種情況,我們使用經典的歸位程序:

  1. 移動到主位置限制開關
  2. 檢測到家時停止
  3. 稍微後退
  4. 非常緩慢地移動以激活開關

也許你已經看過這個演算法的實際操作。同樣的技術也被用於許多 3D 列印機的步進馬達。這是另一個系統的例子,其中位置以數字計數的形式保存。

正交編碼器代碼的實現

請將此頁加入書籤。

這是指向未來裝置的連結的佔位符。期待一個基於梯形邏輯的正交編碼器狀態機的實現,以及一個用 C 寫的例子。

結論

本文章介紹了正交編碼器。最重要的考慮因素之一是正交編碼器與相關 PLC 或微控制器不可分割的性質。狀態機實作提供了一種健全的方法來防止各種錯誤,包括緩慢的硬體或軟體 PLC 或微控制器實現以及感測器和間歇性接線故障。