訊號問題圖鑑
症狀:停轉時計數在兩個值之間來回跳——遲滯與微振的排查

停在邊沿附近時,噪聲或微振讓比較器反覆過閾值,計數在兩個值之間跳。本文用 Rice 公式給出遲滯判據(1 MHz 頻寬下 H 約需 15σ_v),用 ΔV ≈ A·2π·x_v/p 估算微振,說明遲滯死區的代價和斷開驅動、鎖軸、加遲滯的排查順序。
馬達停住了,上位機的位置卻在 1000 和 1001 之間來回跳,有時幾秒跳一次,有時快得數不過來;換個位置停,又完全不跳。這是停轉時的計數抖動:軸停在某個 A 或 B 邊沿附近,比較器輸入在閾值上下徘徊,輸出隨之反覆翻轉。原因可能是電噪聲,也可能是軸真的在動(伺服保持時的往復、機床結構振動),兩者的處理方法截然不同。本文先把兩者的定量判據推出來,再說明遲滯的代價,最後給出現場排查順序。

停在邊沿上會發生什麼
設軸停在距 A 相邊沿 d 處。邊沿附近正弦訊號近似線性,比較器輸入為
v ≈ A·2π·(d + x_v·sin2πf_v t)/p + n(t)
其中 A 為訊號幅值,p 為節距,x_v 為機械微振幅值,n(t) 為電噪聲(均方根 σ_v)。電壓噪聲摺合成位置噪聲為
σ_x = p·σ_v / (2πA)
算例:p = 20 μm、A = 0.5 V、σ_v = 2 mV(σ_v/A = 0.4%)時 σ_x ≈ 12.7 nm。沒有遲滯時,只要停止點離邊沿不到約 5σ_x(±66 nm),按下文的穿越率公式每秒就會翻轉一次以上。每個訊號週期有 4 個邊沿,於是隨機停車時約有 4 × 0.13 / 20 ≈ 2.6% 的位置會出現計數抖動,這正是“換個位置就不跳”的原因。
四倍頻解碼時,B 不變而 A 來回翻轉,計數就在 +1、−1 之間交替,淨值不累積。這一點與邊沿順序翻轉導致的永久少計不同(見本系列計數倒退一篇)。
判據一:遲滯要蓋住噪聲的長時峰值
對稱遲滯總寬為 H 時,上翻點在閾值上方 H/2,下翻點在下方 H/2。最壞情況是訊號正好停在遲滯帶中央,此時每次翻轉都需要噪聲衝出 H/2。對頻寬為 B 的高斯白噪聲,按 Rice 公式,越過電平 u 的平均次數為
ν = (B/√3)·exp(−u² / 2σ_v²)
取 u = H/2、B = 1 MHz:
| H/2 | 每小時翻轉次數 |
|---|---|
| 5σ_v | 約 7.8×10³ |
| 6σ_v | 約 32 |
| 7σ_v | 約 0.05 |
| 7.5σ_v | 約 1.3×10⁻³ |
所以“遲滯大於噪聲峰峰值”要按長時間統計來理解。示波器一屏 1 萬個點看到的峰峰值約 7.7σ_v,H 只比它大一點,停在帶中央時每小時仍可能跳幾十次;要做到每小時 10⁻³ 次,1 MHz 頻寬下 H 約需 15σ_v,100 kHz 頻寬時約 14σ_v(見圖2左)。頻寬對結果影響不大,起決定作用的是 H/σ_v。
判據二:微振的電壓擺幅要小於 H/2
軸真的在動時,微振在比較器輸入端產生的擺幅為
ΔV ≈ A·2π·x_v / p
p = 20 μm 時,0.1 μm 的微振就佔幅值的 3.1%;p = 10 μm 時翻倍。不翻轉的條件是微振擺幅加上噪聲裕量仍留在遲滯帶內:
H/2 ≥ A·2π·x_v/p + k·σ_v
k 按上一節取 7.5 左右。上例中只計噪聲時 H/A ≈ 6%;再加 0.1 μm 微振,需要約 12.3%(見圖2右)。節距越細,同樣的微振越容易被看到。

這裡要先分清一個原則:如果軸確實在動,編碼器跟著 ±1 計數是正確的測量,加遲滯只是把真實運動藏進死區。只有當這種運動對系統無害、但計數抖動會引起報警或顯示閃爍時,才用遲滯去蓋住它。
遲滯的代價:位置滯後與正反向死區
遲滯讓每個邊沿都晚一點出現。歸一化遲滯 h = H/(2A),上升沿和下降沿各滯後
φ_h = arcsin(h)(電角度)
正向和反向的翻轉點之間相差 2φ_h,相當於一個死區,換成位移為 2φ_h·p/(2π)。H/A = 6% 時死區約 3.4°(p = 20 μm 時約 0.19 μm),H/A = 12.3% 時約 7.0°(約 0.39 μm)。
這個死區在四倍頻方波輸出下(每計數 90°)幾乎看不出來,但對細分輸出就不同了:每週期 100 個計數時 7.0° 約等於 2 個計數,每週期 400 個計數時約 8 個計數,反向時會出現明顯的“空走”(見圖3)。另一個容易忽略的問題是幅值:H 是按電壓設定的,碼盤汙染或間隙變大使 A 減半時,h 翻倍,死區也約翻倍。所以遲滯要按最小工作幅值核算,並在設計上保證 H 遠小於 2A_min。

排查順序:先判斷軸是不是真的在動
- 看翻轉節奏。 用示波器看 A 方波,或記錄計數隨時間的變化。隨機、成簇、間隔很短,多為電噪聲;週期性翻轉,頻率與伺服環路或機械結構對得上,多為真實運動。
- 斷開驅動。 在保證安全(立式軸先確認制動或支撐)的前提下關閉伺服使能。抖動隨之消失,是位置環在 ±1 個計數之間往復,屬於控制問題:調整增益、積分或在控制器裡設位置死區,而不是改編碼器。
- 鎖軸。 用夾具或制動器把軸鎖死,並停掉附近的振動源。抖動消失,說明是結構振動傳進來的真實位移;仍然存在,才是電噪聲。
- 測噪聲。 慢慢轉動找到會抖的位置,在比較器輸入(或差分測試點)測系統頻寬內的 σ_v 和幅值 A。按 H/2 ≥ 7.5σ_v 核對現有遲滯;若噪聲中有與馬達 PWM 同步的尖峰,先處理接地與遮蔽。
- 加遲滯或收窄頻寬。 按兩條判據選 H,再核算死區摺合的計數;頻寬只要覆蓋最高訊號頻率 N·n/60 並留餘量即可,過寬只會增加噪聲。
工程要點
- 停轉計數抖動只出現在邊沿附近,σ_v/A = 0.4%、p = 20 μm 時約 2.6% 的停車位置會遇到,換位置復現是第一步。
- 遲滯要按長時峰值設計:1 MHz 頻寬、每小時 10⁻³ 次以下,H 約需 15σ_v,約為示波器所見峰峰值的 2 倍。
- 微振判據為 A·2π·x_v/p + 7.5σ_v ≤ H/2,20 μm 節距下 0.1 μm 微振就佔幅值約 3%。
- 遲滯死區為 2·arcsin(H/2A),高倍細分時要摺合成計數核對,並按最小幅值計算。
- 先斷開驅動、再鎖軸,最後才動電路:伺服往復和結構振動都是真實運動,不應靠遲滯掩蓋。
- 收窄頻寬和改善接地降低的是 σ_v,比單純加大遲滯代價小。
小結
停轉時計數在兩個值之間跳,是訊號停在邊沿附近、噪聲或微振讓比較器反覆過閾值的結果。遲滯要同時蓋住噪聲的長時峰值和微振擺幅,但它會帶來 2·arcsin(H/2A) 的死區,在高倍細分和低幅值下尤其明顯。現場先用斷開驅動和鎖軸判斷軸是否真的在動,再按 σ_v 定量設定遲滯或降低噪聲。
延伸閱讀:ENC7 編碼器碼盤生產廠家(中文首頁) · 碼盤技術文庫
關於我們:晶正光電專注編碼器碼盤研發製造,玻璃、金屬、PC 碼盤均可按圖客製。
官網:https://enc7.com
© 廊坊晶正光電技術有限公司 版權所有,未經書面許可不得轉載、摘編。本文藉助 AI 輔助創作。