M/T測速實現

       

  實際應用中,單片機根據脈衝計數來測量轉速的方法有以下三種:

(1)在規定時間內測量所產生的脈衝個數來獲得被測速度,稱爲M法測速;

(2)測量相鄰兩個脈衝的時間來測量速度,稱爲T法測速;

(3)同時測量檢測時間和在此時間內脈衝發生器發出的脈衝個數來測量速度,稱爲M/T法測速。以上三中測速方法中,M法適合於測量較高的速度,能獲得較高分辨率(最容易想到);T法適合於測量較低的速度,這時能獲得較高的分辨率;而M/T法則無論高速低速都適合測量(詳細介紹)。

        M法是測量單位時間內的脈數換算成頻率,因存在測量時間內首尾的半個脈衝問題,可能會有2個脈的誤差。速度較低時,因測量時間內的脈衝數變少,誤差所佔的比例會變大,所以M法宜測量高速。如要降低測量的速度下限,可以提高編碼器線數或加大測量的單位時間,使用一次採集的脈衝數儘可能多。

       T法是測量兩個脈衝之間的時間換算成周期,從而得到頻率。因存在半個時間單位的問題,可能會有1個時間單位的誤差。速度較高時,測得的週期較小,誤差所佔的比例變大,所以T法宜測量低速。如要增加速度測量的上限,可以減小編碼器的脈衝數,或使用更小更精確的計時單位,使一次測量的時間值儘可能大。

M法、T法各且優劣和適應範圍,編碼器線數不能無限增加、測量時間也不能太長(得考慮實時性)、計時單位也不能無限小,所以往往候M法、T法都無法勝任全速度範圍內的測量。因此產生了M法、T法結合的 M/T 測速法:表現爲低速時測週期、高速時測頻率。
        M/T法,在脈衝上升沿開啓定時時間計數,在定時時間Tg到達後,繼續等待一個上升沿脈衝,時間爲Td; 記錄在此期間的脈衝數,由脈衝數除以時間,得到準確的頻率(速度)。

    M/T 法中的“低速”、“高速”如何確定呢?
    假定能接受的誤差範圍爲1%、M法測得脈衝數爲f, T 法測得時間爲 t 。

    M法:2/f <= 1% ==> f >= 200
         即一次測量的最小脈衝數爲 200,設此頻率對應的速度爲 V1,大於V1,精度更高

    T法:( 1/(t-1) - 1/t ) / (1/t) <= 1% ==> t >= 101
         即一次測量的時間爲 101 個單位,設此週期對應的速度爲 V2,小於 V2,精度更高
         若計時單位爲mS,則 t>= 101mS

       這只是理論精度,實際應用還要考慮脈衝信號採集的延遲,軟件處理所需花費的時間。

    若 V1 < V2,則 M/T 法能滿足全範圍內的速度測量。一個系統設計之前,就需要詳細的計算,使V1<V2或儘可能接近。不能光憑經驗估算確定高低速、傳動比、編碼線數。然後很不幸,很多現有系統中會出現 V1 > V2,就會出現(V2, V1) 這一段速度無論 M 法還是 T 法都無法覆蓋的情況,一個緩解的辦法就是在(V2,V1)段同時使用 M法和T法測量,然後取平均值,但要解決好M/T測量的同步問題。

    STM32F103RBT6實現測速算法,更新中......

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章