于增坤,侯 文,劉沛堯
(中北大學,太原030051)
伺服系統是用來精確地跟隨或復現某個過程的反饋控制系統,其在航空航天、軍工和一般的工業(yè)領域都有較為廣泛的應用。隨著時代的發(fā)展和實際需求的不斷提高,人們對相關儀器設備的伺服系統性能也提出了更高的要求。在伺服系統中,電機轉速的測量或計算是一個非常重要的環(huán)節(jié),電機轉速測量的精度對系統性能有著至關重要的作用[1-2]。針對傳統M/T 測速法在電機低轉速下測量實時性差的問題,本文提出了一種新的自適應M/T 電機測速算法。
測量轉速的方法有很多,目前國內外常用的測速方法有光電編碼器測速法、霍爾元件測速法、離心式轉速表測速法、測速發(fā)電機測速法、漏磁測速法、閃光測速法和振動測速法等[3]。在用電機轉子位置和轉速同時作為反饋變量的電機伺服控制系統中常用光電編碼器進行測速,本文提出的電機測速算法也是基于光電編碼器實現的。
光電編碼器是一種利用光電效應,將角度、位置、轉速等物理量轉化為電信號的傳感器,它具有分辨率高、響應速度快、結構簡單、壽命長等特點[4],常被用于電機轉速測量。光電編碼器按編碼方式可分為絕對式和增量式兩種類型。絕對式光電編碼器主要用來測定電機轉子的位置,增量式編碼器主要用來實現測速功能[5-6]。光電編碼器的分辨率是以編碼器軸轉動一周所產生的脈沖個數來表示的,即脈沖數/轉。在測量電機轉速的實際應用中,可根據不同的需要,選擇具有合適分辨率的增量式光電編碼器。
基于光電編碼器的測速方法有M 法、T 法和M/T 法。
在一定時間內測量光電編碼器所產生的脈沖個數并計算得到轉速,稱為M 法。用該方法測速時首尾脈沖可能產生±個脈沖誤差[7-8],當轉速較低時,由于測量時間內的脈沖數變少,誤差所占的比例會變大,所以M 法適合于測量高轉速[9];測量相鄰2個脈沖的時間并計算得到轉速,稱為T 法。用該方法測速時可能會有±1 個檢測時鐘周期誤差。轉速較高時,測得的時間較短,誤差所占的比例變大,所以T 法適合于測量低轉速[9];M/T 法是M 法和T 法的結合,適合測量高、低轉速。測速時同時對光電編碼器脈沖個數(計數為m1)和高頻時鐘脈沖個數(計數為m2)進行計數,檢測時間T 等于m1(可預置)個光電編碼器脈沖信號周期之和。所以M/T 法的檢測時間T 是不固定的,轉速越高,檢測時間越少[6],轉速測量的實時性也隨之提高[7]。M/T 測速原理[10]如圖1 所示。
圖1 M /T 測速法原理圖
若光電編碼器線數為P,檢測時鐘頻率為fc,則電機轉速計算公式:
由于檢測時鐘脈沖計數時可能出現±1 個脈沖的誤差,故用M/T 法測得的電機轉速分辨率:
測得的電機轉速的相對誤差:
由式(1)可得:
將式(4)代入式(3)可得電機轉速的相對誤差:
雖然傳統M/T 法在整個轉速范圍內都有較好的準確性,但在低轉速時輸出轉速的實時性較差,無法滿足轉速檢測系統的快速動態(tài)響應指標。
本文提出一種新的自適應M/T 測速算法,該算法通過設置轉速的大致輸出時間間隔來保證測量的實時性,同時對時間間隔進行動態(tài)微調來保證測量精度,從而可以實現高精度、快速測量。時間間隔微調準則及整個工作流程如圖2 所示。
設置光電編碼器脈沖計數器變量PulseCounter,檢測時鐘脈沖計數器變量ClockCounter,時鐘脈沖計數閾值Threshold(常量),對兩個計數器初始化,即令PulseCounter=0,ClockCounter =0,然后兩個計數器同時計數,其間判斷PulseCounter = 1 時Clock-Counter 的值,如果ClockCounter≥Threshold,則m1=1,此時則可利用傳統M/T 轉速算法即式(1)計算并輸出電機轉速,同時,將兩個計數器進行清零,準備下次計數;否則兩個計數器繼續(xù)計數,判斷當Pulse-Counter=2 時,ClockCounter≥Threshold 是否成立,如果成立,則m1=2,然后根據式(1)計算并輸出電機轉速,同時,兩個計數器清零,準備下次計數;否則兩個計數器繼續(xù)計數,直到PulseCounter =k 時對應的ClockCounter≥Threshold 為止,此時m1=k,然后根據式(1)計算并輸出電機轉速;以此類推。
圖2 自適應M/T 算法流程圖
以電編碼器線數P =1 000、檢測時鐘頻率fc=50 MHz為例,選取時鐘脈沖計數閾值Threshold =5 ms(根據需要不同可選取其他閾值),分別以ω1=5 000 r/min 和ω2=50 r/min 代表高、低轉速,針對自適應M/T 測速算法進行分析。
如果采用M/T 算法,在m1=50、m1=100、m1=200、m1=400 時,電機轉速輸出時間間隔與轉速的關系曲線如圖3 所示??梢钥闯?,4 條曲線的共同特點是在電機低轉速下輸出轉速的時間間隔較大,且m1越大,曲線越靠上。而從式(5)來看,要保證高轉速下的測量精度需要選取較大的m1,這就使得低轉速下測量的實時性也更差。與之相對應的新算法輸出轉速的時間間隔可以預先設置,在高、低速情況下均具有較好的實時性,其輸出時間間隔曲線如圖4 所示。
圖3 傳統M/T 算法轉速輸出時間間隔曲線
圖4 自適應M/T 算法轉速輸出時間間隔曲線
由于對電機轉速輸出時間間隔的控制,使得用于計算的m1實現了動態(tài)自適應調整,圖5 為電機轉速在0 ~5 000 r/min 范圍內m1的變化情況。可以看出,m1幾乎隨轉速的增大而線性增加,且光電編碼器線數P 越大m1增加越快,式(5)對于保證測速精度十分有利。
由圖6 可以看出,電機轉速在0 ~5 000 r/min的范圍內,相對誤差都在10-6量級,可見新的自適M/T 測速算法能夠保證較高的測速精度,且光電編碼器線數P 的減少對測速精度的影響較小。
圖6 相對誤差隨轉速變化曲線
FPGA 是在PAL、GAL、CPLD 等可編程器件的基礎上進一步發(fā)展的產物,具有集成度高、結構靈活、速度快和可靠性高等特點[4]。本文提出的自適應M/T 測速算法將用FPGA 來實現。圖7 為在電機轉速為50 r/min 的情況下,運用自適應M/T 測速算法在FPGA 的開發(fā)軟件——Quartus II 中的仿真波形。
圖7 自適應M/T 算法在Quartus II 軟件中的仿真波形
本文提出的自適應M/T 測速算法,通過對電機轉速輸出時間間隔的控制,實現了光電編碼器脈沖計數的動態(tài)自適應調整。與傳統M/T 法相比,該自適應M/T 測速算法在低轉速測量的實時性有了顯著的提高,而且在高、低轉速情況下均具有較高的測量精度。
[1] 袁鵬程,張偉峰.改進的M/T 法在電機測速中的應用[J]. 輕工機械,2012,30(1):59.
[2] 吳利濤,洪帆.高精度智能轉速測量模板的設計[J].計算機測量與控制,2003,11(6):412.
[3] 瞿彩萍.微電機無接觸測速方法研究與電路設計[D]. 武漢:華中科技大學,2004.
[4] BAO Bengang,LI Zhiyong,LIU Kun. High - speed waveform acquisition system design and implementation based on FPGA[C]//International Conference on Intelligent Systems Design and Engineering Applications,2012:1271 -1276.
[5] 王書峰. 基于可編程邏輯器件的光電編碼器測速方法研究[D].北京:北京郵電大學,2012.
[6] 李為民,姜漫.基于光電編碼器的速度反饋與控制技術[J].現代電子技術,2004,27(23):84 -85.
[7] 錢偉康,張成爽,謝凱年. 基于FPGA 的光電編碼器信號處理方法[J].測控技術,2010,29(12):44.
[8] 李大英.基于FPGA 的電機測速電路設計與實現[J]. 機械設計與制造,2011(12):79.
[9] GUO Yao-hua,MA Jun-shuang,LI An-shan.The embedded measurement system for multiple motor speed based on FPGA[C]//IEEE International Conference on Information and Automation.2010:2201.
[10] 王恕.基于FPGA 的伺服電機速度測量算法研究與實現[D].上海:上海交通大學,2012.