李 勇,潘松峰
(青島大學 自動化與電氣工程學院,青島 266071)
電機是各種自動化設備中的主要組成部分,對電機轉速的精確、快速的測量是衡量一個系統好壞的重要指標。尤其在工業生產中,精確的測量點擊轉速可以安全有效的對機械設備進行故障預防,增加系統的安全性,減小設備的維護成本。
因此,設計一個高精度,款范圍且可靠性高的電機轉速表,在各種生產設備中顯得尤為重要。本文利用光電碼盤,結合DSP芯片設計了一款寬范圍高精度的測速表。
測速表的硬件組成示意圖如圖1所示。

圖1 測速表示意圖
其中主要硬件包括兩部分:光電碼盤和DSP芯片。
光電編碼器是被廣泛使用于電機測量。碼盤旋轉時,一對光感應器件輸出的信號和另外一對光感應器件輸出的信號的相位相差90°,這就是通常所說的正交信號QEPA和QEPB。根據相位情況可以判定碼盤的旋轉方向。在實際應用中,常常定義為QEPA比QEPB相位超前90°到來時,電機轉向為順時針方向。當電機正轉時,光電編碼器輸出的波形如圖2所示。
作為C2000系列一款典型的控制芯片,TMS320F28335芯片將常用的轉速測量電路集成于芯片內部,組成了增強型正交編碼模塊eQEP。當工作在正交計數模式下,正交解碼單元可對正交信號進行4倍頻處理,為位置計數器寄存器的計數提供時鐘頻率。例如,一個2000線的編碼器旋轉一周時,會輸出8000個計數脈沖。同時還會通過判定正交信號的先后順序來確定電機的轉向。
該模塊內的捕獲單元可以根據系統時鐘分頻后工作,為變M/T法提供時間的計算,分頻可以通過設置相應的寄存器來設置。
應用光電碼盤測速時,常見的方法主要有四種,分別是M法,T法,M/T法和變M/T法。本次設計是采用的變M/T法,在此之前,先簡單介紹一下其他三種原理。
M法又稱之為測頻法,其原理是先設定一定的時間,然后在這段時間TC內,對光電碼盤輸出的信號的個數進行計數。在測量過程中,計取的脈沖數M1不一定正好是整數,M1可能存在±1的誤差。計取的M1的值越大,所得的誤差越小,因此M法適用于高速轉速的測量。
T法又稱之為測周法,此測量原理是在一個脈沖周期內對高頻脈沖數進行計數。為了減小誤差,計得的高頻脈沖M2應盡量大,因此T法測量適用于低速測量。
M/T法是將M法和T法兩種方法結合起來,即在一定的時間范圍TC內,計取光電碼盤輸出的脈沖數M1的同時,也對高頻脈沖M2進行計數。TC時間到來后,再計取ΔT時間內的高頻脈沖數m,ΔT是時間TC結束后到碼盤信號下一個脈沖上升沿的時間間隔,如圖3所示。則電機的轉速:

M/T能夠適用于較廣的測量范圍,測量精度也相對較高,但這種方法的缺點是,測量精度取決于ΔT的測取。測取的過程較為復雜,針對這個缺點,本文采用了變M/T的測速方法。

圖3 M/T法測速原理
變M/T法的原理在電機轉速測量的過程中,測量時間TC并不是一成不變的,而是根據當前的電機轉速的大小來調節TC的大小。即測取得光電碼盤脈沖數M1和高頻脈沖數M2都是變化的。時間TC在測量的過程始終等于M1個脈沖的周期之和,如圖2所示。其中時間TC的大小由已知的高頻脈沖數M2來計算,即法方法TC=M2/f0,速度公式為:


圖4 變M/T法測速原理
當電機轉速較低時,可以減下時間TC來彌補M/T法在低速檢測時誤差較大的缺點。同時也不需要測取M/T法中的ΔTT,其性能均等于或超過M法和T法。
式(1)中,f0是eQEP模塊內的高頻時鐘頻率,N是光電編碼器旋轉一周后輸出的脈沖個數。此次設計的測速表多用的編碼器為2000線,即N=2000。在測量時間TC內,式(1)中的M1始終是一個整數,不存在M法中的±1個脈沖的誤差,只有高頻脈沖會存在±1個脈沖的誤差。
即誤差公式:

相對誤差:

顯然檢測誤差只與M2的大小有關且成反比。由M2=TC.f0知,增大高頻時鐘頻率f0和增大允許測量時間TC可以減小檢測誤差。
TMS320F28335芯片eQEP模塊內含邊沿捕獲單元,可以通過設置該單元寄存器中的值來改變高頻時鐘頻率f0。由式(4)可知,M2的數值越大,即時鐘頻率越高,所得到的速度誤差越小??紤]到時鐘計數寄存器為16位寄存器(即最大值為65535)。故TC時間一定的情況下,f0盡可能大的前提是該計數器沒有發生溢出。本測量TC的最大值大約在10ms左右,故設置為32頻,可使得時鐘計數器的值盡可能大(為46875)且不溢出。
下面推導M1的選取:
改變測量時間的大小是通過設置不同的M2的值來實現的,其中N為編碼器的線數,N=2000,測量時間公式為:

由式(5)可得:

同時,為保證測量誤差在萬分之一以內,則M2的值必須大于10000,測量時間需有一個下限值,即f0.t≥M2=10000,可得測量時間需t≥2.2ms。
又由2.2ms≤t≤10ms可得M1與轉速r的關系為:

由式(7)針對不同的轉速范圍,設定不同的M1,具體如下:
速度在0~40r/min時,M1=12;40~160r/min時,M1=50;160~600r/min時,M1=200;600~1500r/min時,M1=500;1500~5000r/min時,M1=1800;5000~20000r/min時,M1=6400。
當確定高頻時鐘頻率后,測量時間TC的選取(即M1的選?。┦歉鶕斍半姍C的轉速范圍而定,當電機轉速較高時,為減小誤差可將M1取的較大,相當于M法;當電機轉速較低時,考慮到快速響應的問題,可以將M1的值取的較小,相當于T法。
流程圖說明:
當轉速表接到電機軸上時,由于無法確定當前速度的范圍,故需要粗測一次速度值來確定具體的M1。此時,可允許測量的時間較長,可令M1=6400,然后根據式(2)粗測一次速度。然后再根據粗測速度所在的速度范圍確定相應的M1的值,然后再高精度的測量。
變M/T法實現的前提是,測量時間等、始終等于碼盤脈沖數M1。即在正交信號的上升沿或下降沿到來時,開啟位置計數器(QPOSCNT)和捕獲定時寄存器(QCTMR)??梢酝ㄟ^設置相應的外圍硬件加以實現,由于指令執行周期短,也可以設置相應的軟件程序來實現。程序處理如下:開啟兩個計數器之后,當位置計數器增加到1的時候,將捕獲時鐘寄存器清零。做到位置計數器,高頻時鐘時鐘和正交信號三者同步。
程序流程圖如圖5所示。

圖5 程序流程圖
測量所得數據如表1所示。

表1 測量結果表
從實際測量的數據來看,DSP結合光電碼盤所設計的測速表滿足萬分之一的測量的精度要求。若要進一步減小誤差,提高測量精度,可適當減小分頻數,提高時鐘頻率;或者增加速度段,增大M1的值,來增大測量時間。
此測速表的設計采用變M/T法,從理論上推導了,為達到萬分一的誤差精度以及一定的響應時間所需要的M1的值,并且用測量數據驗證了該方法的可行性。同時也高效利用了DSP芯片中可編程的高頻脈沖的特性。讀者可根據自己所需要的測量精度和響應時間對M1的取值做出相應的修改。對程序加以修改,也可以用于伺服系統速度反饋環的設計。
[1]肖兵,薛琦,余師棠.基于DSP的M/T測速法的改進[J].重慶工學院學報(自然科學),2009(10):65-68.
[2]候濤,范多旺.基于增量式光電編碼器的高精度測速應用研究[J].自動化與儀器儀表,2010(6):9-14.
[3]夏承光,陳沖,張晉格,等.數字伺服系統中光電碼盤測量的變M/T法[J].自動化技術與應用,1986(2):40-45.
[4]劉廷霞.基于CPLD的全數字測速法[J].長春理工大學學報,2004(3).
[5]韓安太.DSP控制器原理及其在運動控制系統中的應用[J].北京:清華大學出版社,2003.
[6]劉和平.TMS320LF240XDSPC 語言開發與應用[M].北京:航空航天大學出版社,2003.
[7]高瑞昌.DSP在測速中的應用[J].自動化技術與應用,2004(3).
[8]陳爽,殷佳琳,段國艷.基于DSP/QEP電路的電機位置檢測和轉速測量研究[J].電子技術,2009.
[9]蘇奎峰,呂強,鄧志東,等.TMS320x28xxx原理與開發[M].北京:電子工業出版社,2009.
[10]梁利華,趙林.增量式光電碼盤變M/T方法應用[J].應用科技,2000,27(4):13-15.
[11]寧改娣,楊栓科.DSP控制器原理及應用[M].北京:科學出版社,2002.
[12]肖本賢.一種提高轉速測量范圍與精度的新方法[J].自動化儀表,1997(11):21-23.