您當前的位置:檢測資訊 > 科研開發
嘉峪檢測網 2025-03-09 09:56
1. 電機測速方法介紹
在電機控制類應用中,經常會需要對電機轉速進行檢測,測速常用的方式有M法測速和T法測速。
M法測速是利用在規定時間Ts內編碼器輸出脈沖數量M1計算電機轉速,如下圖所示,信號A和B為正交編碼器的輸出信號,C解碼后的計數脈沖(4x)。
▲ 圖1. M法測速原理
單位時間(1s)內編碼器輸出脈沖數量,即脈沖頻率:
假設電機每旋轉一圈正交編碼器(4x)的輸出脈沖數量為Z,則電機轉速為(r/min 代表圈/分鐘):
M法測速的分辨率為:
M法測速的誤差率為:
由上可知,M法測速的分辨率與速度無關,要提高分辨率,即減小Q值,必須增大編碼器每圈輸出的脈沖個數Z,或者增大采樣周期Ts。M法測速誤差率與測定時間內的脈沖數量成反比關系,轉速越高M1值越大,當轉速很低時,M1值很小,誤差率會變大,因此M法適合高速測量。
T法測速是測量編碼器輸出兩個脈沖之間的間隔來計算轉速,通過計算高頻時鐘脈沖數量M2來衡量編碼器兩個脈沖間隔的時間。
▲ 圖2. T法測速原理
假設高頻時鐘的頻率為ft,那么編碼器兩個脈沖之間的時間:
假設電機每旋轉一圈正交編碼器(4x)的輸出脈沖數量為Z,則電機轉速為:
T法測速的分辨率為:
T法測速的誤差率為:
由上可知,T法測速的分辨率Q與M2相關,當轉速越低時M2的值越大,Q值越小,分辨能力越強。T法測速的誤差率也與M2相關,當轉速越低時M2的值越大,誤差率越小,因此T法測速非常適合低速測量。
2.M法與T法測速在STM32中的實現
STM32中的很多定時器都帶編碼器接口,在對輸入編碼器信號進行計數的同時,還通過該接口可以將正交編碼器的輸入信號解碼成脈沖輸出映射到TIMx_TRGO,手冊中的原文描述如下:
結合上述的測速原理,在STM32中應用定時器的編碼器接口完成M法測速和T法測速的方案框圖如下:
▲ 圖3. STM32定時器測速方案框圖
使用兩個32bit的定時器TIM2和TIM3來處理編碼器信號,TIM3的編碼器接口與外部的編碼器信號連接直接實現4x計數;解碼后的輸出映射到TIM3_TRGO,并作為TIM2的定時器捕獲和復位的觸發源。TIM6作為基本定時器,實現一個ms級別的中斷,在中斷服務程序中實現M法和T法測速的計算。
M法測速中,在TIM6的定時中斷服務程序中讀取TIM3的計數值TIM3_CNT,兩次連續讀取值的差值即為圖1種的M1,TIM6的中斷定時時間即為Ts,在Z為已知固定值的情況下,根據公式(1)即可計算出轉速n。
T法測速中,在TIM6的定時中斷服務程序中讀取TIM2捕獲值 TIM2_CCR1(TIM3_TRGO內部連接到TIM2_CH1),TIM2_CCR1即為圖2中所示的編碼器連續兩個輸出脈沖之間的高頻脈沖數量M2,TIM2的時鐘頻率即為ft,在 Z為已知固定值的情況下,根據公式(2)即可計算出轉速n。
3.方案測試結果
基于以上的方案,通過定時器模擬生成編碼器輸出信號A和B,分別的高速和低速情況下進行模擬測試,結果如下,圖中Speed_M_Ref和Speed_T_Ref為速度參考值,Speed_M和Speed_T為測試結果值。
高速M法測試結果(1460rpm~2920rpm):
高速T法測試結果(1460rpm~2920rpm):
中速M法測試結果(146rpm~292rpm):
中速T法測試結果(146rpm~292rpm):
低速M法測試結果(19rpm~35rpm):
低速T法測試結果(19rpm~35rpm):
4.小結
本文簡單介紹了電機控制中M法和T法測速的原理,給出了在STM32中如何利用定時器的編碼器接口和多個定時器合作的方式實現兩種測速的方案,并對方案進行了模擬測試,給出測試結果,高速下M法的效果更好,在低速情況下M法測速偏差大,T法測速更適合低速測速。
來源:STM32