黃蘇融,高詩林,王 爽,石 堅(上海大學機電工程與自動化學院,上?!?00072)
?
一種提高測速響應的改進M/T算法*
黃蘇融,高詩林,王爽,石堅
(上海大學機電工程與自動化學院,上海200072)
摘要:在M/T法的基礎上,提出了一種提高測速響應速度的新型速度獲取算法。現代電驅動對控制器的響應要求越來越高,傳統的速度獲取方法逐漸無法適應新的挑戰,在傳統M/T算法的基礎上引入滑動窗思想,提高了算法的動態性能,解決了傳統算法響應速度慢的問題。在FPGA平臺上實現了相關算法,仿真及試驗結果表明,提出的算法在保證穩態精度不變的前提下,將系統動態運行下的誤差縮小為傳統算法的1/3,比傳統算法更快的逼近真實速度,提升了動態響應能力。
關鍵詞:電機控制;測速;改進M/T法;現場可編程門陣列
在現代電驅動控制系統中,控制器的速度環帶寬成為了重要的性能指標。速度獲取算法的動態響應對速度環帶寬起著至關重要的作用,因此電機轉速獲取的響應時間成為了提高系統性能的關鍵點。光電編碼器是一種在伺服控制系統中被廣泛采用的傳感器,具有體積小、精度高、可靠性高等優點。在使用光電編碼器作為速度信號傳感器時,傳統的測速方法有T法、M法和M/T法等[1],其中M/T法兼顧了M法和T法的優點,有高精度、寬范圍的特點,隨著這種算法的應用推廣,不斷有學者對算法提出相應的改進完善,其中包括滑動M/T法[2]、同步M/T法[3]、變M/T法[4]等改進措施,圍繞噪聲影響、低速性能等方面展開了研究。本文以提高M/T法的動態響應為目標,提出了一種算法改進措施,縮短了M/T算法的響應時間,將動態測速誤差的最大值縮減為傳統M/T法的1/3,提升了測速算法的動態性能。
傳統M/T法測速,在中高速段近似為M法,在低速段近似為T法。它結合了M法和T法的優點[5-6],如圖1所示。對于M/T法而言,在規定的時間測量高頻時鐘脈沖的數量,采樣時間Ts為指定值;當Ts取值增大時,精度增加,同時增加了延時;當Ts取值減小時,精度減小,同時延時減小。這就決定了M/T算法的矛盾性,Ts選取將使系統在精度和響應速度之間折中。

圖1 傳統M/T法的測速原理
伺服系統的帶寬是伺服系統的重要指標,其中測速環節的響應速度是影響帶寬的一個重要因素,本文旨在提高測速方法的響應速度,提出一種M/T算法的改進策略。對于基于光電編碼器脈沖和時間的測速算法,其算法速度刷新率近似等于算法周期Ts。傳統M/T法中第i個周期的轉速公式:

式中: f0——計時器高頻脈沖頻率;
P——編碼器線數;
N(i)——第i個周期內編碼器發出的脈沖數;
M(i)——該時間內高頻計數器得到的高頻時鐘脈沖數。
在測速算法中,使用速度分辨率Qv來表示穩態情況下的測速精度指標[7-8]。定義速度分辨率Qv為轉速算法可以分辨的兩個相鄰轉速的最小值。傳統M/T測速算法的分辨率為

同時為了對比提出的測速方法與傳統測速方法的動態性能,如圖2所示。本文定義動態誤差為某一時刻測量得到速度值與系統運行實際速度值的最大差值,記為Qd。

圖2 動態誤差
對于傳統的M/T測速算法其速度刷新率近似等于采樣周期Ts。在采樣周期Ts結束的時刻,更新計算出速度v。假設速度的計算不存在誤差,此v在數值上其實是前Ts時刻的速度平均值。
由定義得到傳統M/T測速算法的動態誤差為

式中: a——系統的加速度;
Ts——M/T法的實際采樣周期。
對比式(2)、(3)可以得到,Qv和Qd是一對相對矛盾的量。普遍的做法是,通過選取適當的調整Ts,在精度和響應速度之間找到一個相對的平衡點,在滿足精度的前提下提高響應速度。
本文對傳統M/T算法提出一種新的改進策略。使用比M/T密集的采樣間隔Tp,Tp?Ts。對于傳統M/T法來說,減少Ts可以提高響應速度,但將產生更大的測量誤差,如式(2)、(3)所示。本文提出一種新的方法,使用滑動窗的思想,把傳統M/T法的間斷性測速周期連續化,可以在保證速度分辨率的同時,使響應誤差Qd逼近理論最小值。
取一個很短的采樣時間Tp(Tp?Ts),將傳統的采樣周期的長度分為N份,與傳統的M/T法相比較N·Tp≈Ts。
對于每個實際得到的Mp(i)需要滿足對應的Np(i)與脈沖沿對齊。如圖3所示,在經過Tp時間后,編碼器的第一個脈沖邊沿,作為Np(i)和Mp(i)計數的終止位置。由此得


圖3 高頻時鐘沿及編碼器脈沖沿
在電機的運行過程中,對于實際的編碼器脈沖與高頻時鐘信號,每一個Np(i + d) (d =0,1,2,…)與對應的Mp(i +d)的關系如圖4所示。

圖4 改進的M/T法測速原理
每次得到Np(i + d)和Mp(i + d)數據后,采用如下方法計算得到輸出速度:
(1)計算每個Mp(i + d)范圍內,編碼器經過的位移Sp(i + d),其計算方法如式(6)所示:

當N足夠大時,可近似滿足:

從圖5中可以看出,使用該算法,在每一個Tp時間段內,都會有一個速度的計算值輸出,提高了算法的刷新速度。同時,對比式(3)和式(10)可以得到,該算法的動態誤差相比于傳統M/T法,縮小了約aTs,縮小為傳統算法的1/3,顯著減小了M/T法存在的動態誤差。

圖5 改進算法的計算過程
式中: Z——光電編碼器線數。
(2)計算此范圍內經過的時間Tp(i + d),每Mp(i + d)個高頻脈沖內,實際消耗的時間:

(3)取連續的N個Tp(i)時間,Tp(i),Tp(i + 1),Tp(i + 2),…,Tp(i + N-1),作為一個滑動窗,如圖5所示,每次滑動使i的值增加1,即Window(i) =[Tp(i),Tp(i + N-1)]。此分割數N應滿足: Tp=1/N×Ts,圖為N =4的情況。
(4)對于每個窗Window(i)內,先計算編碼器移動的總位移和實際消耗的總時間,再計算得到速度。每次微型滑動都進行一次計算。Window(i)窗內的速度記為ωp(i),可以得到:

使用這種速度獲取算法,可以得到的Qd的值滿足式(9) :

在傳統的MCU/DSP控制系統中,CPU按照指令周期運行。在工業產品中,速度環指令周期一般為0.001 s,速度獲取及速度環PID控制都是在此周期內完成。
由于M/T法的速度更新周期不穩定,若T取0.001 s,實際Ts會大于此時間,而控制器將進入下一個控制周期,致使控制器在當前周期無法得到相鄰時段的速度計算值。若T取值小于0.001 s,上述現象也將周期性發生,這是速度閉環不能忍受的[9]。所以在傳統的MCU/DSP控制器的工業產品中,為使控制器穩定犧牲了精度,通常使用的是M法而非M/T法。
FPGA與傳統控制器不同,有著并行處理的主要特性,可以讓系統的各個功能以流水線形式工作,如圖6所示。速度獲取模塊與控制器其他部分獨立工作,使速度獲取計算不拘束于控制器周期,從而可以實現較復雜的算法。
在FPGA中的實現流程如圖7所示。

圖6 FPGA控制器與傳統控制器的對比

圖7 FPGA算法流程圖
將編碼器發出的A、B差分信號通過TI-AM26C32芯片,接入到FPGA中。預處理模塊由倍頻過的高頻時鐘驅動,檢測編碼器脈沖的移動方向。
將A、B兩路信號的上一時刻值Aq、Bq,與當前時刻的值An、Bn,組成一個四位二進制的組合{ Aq,Bq,An,Bn}。在電機轉動過程中將產生8種狀態,分別是: { 1 011} { 1 101} { 0 100} { 0 010} { 1 110} { 1 000} { 0 001} { 0 111},分別代表了電機正反轉情況下,兩路編碼器信號的全部組合,可以將2 500線的編碼器識別為10 000種編碼器狀態。
由編碼器的狀態變化觸發判定,在計時沒有達到指定時間Tp時,計時器處于計時狀態,直到某次觸發時滿足計時器的時間超過給定時間Tp。其后復位計時器和位置計數器,開始下一輪計數。與此同時將計數和計時得到的結果存入長度為N 的FIFO中。
每一個Location和Time使用FIFO中N個Tp時間之前的值進行計算,得到這N個Tp時間段內,由編碼器脈沖觸發得到經過準確的編碼器的位移和經過這段位移所消耗的準確時間,具體計算步驟如式(4)~(8)所示。這種計算每隔Tp時間進行一次,而參與計算的數據是N個Tp時間內的位移和時間。在計算模塊,通過前面流水線形式的數據,計算得到速度值。
基于本文提出的高響應M/T算法,應用MATLAB進行仿真驗證,在MATLAB/Simulink環境中搭建電機控制回路。為了模擬算法在FPGA中的運行情況,各個模塊使用觸發式工作,使用全局時鐘分別驅動算法和控制模塊。
圖8所示是在10~300 r/min之間的加減速仿真,速度指令是周期為1 Hz的梯形波。圖8中所示為M/T法和本文所提出的NM/T法(N =10)在該條件下對速度指令的跟隨情況。從圖8中還可以看出本文提出的方法比傳統M/T法對速度指令的跟隨性更好,在圖8中所示的仿真條件下,NM/T法的時延比M/T法的時延縮短了近1 ms。

圖8 恒定加速度響應仿真
如圖9所示是在不同轉速下,兩種速度算法速度刷新時間的仿真結果,速度刷新時間是指速度算法每一次計算得到結果之間的時間差。這個指標表示了速度算法的響應速度。在圖9中可以看出,隨著速度的不斷提高,M/T法的速度刷新時間呈周期性變化,每6 r/min出現一次時間最大值,最后趨近于1 ms,而本文提出的NM/T算法,隨著轉速的提高,不斷趨近于Ts/N。當N的值很大時,這個值將逼近理論最小值。

圖9 速度刷新時間仿真
圖10、11顯示了不同加速度情況下,兩種測速算法的動態誤差對比。從圖10、11中可以看出,對于速度變化越迅速的系統,本文提出的NM/T體現出了更高的響應速度,例如在a =180 r/s2的情況下,M/T法的理論最小Qd= 1.5×a×Ts= 1.5× 180 r/s2×0.001 s = 0.27 r/s2,而在相同條件下,NM/T法的理論最小Qd= (1/2 +1/N)×N×a× Tp,當N取10情況下,Qd= (1/2 + 1/10)×10× 180 r/s2×0.000 1 s =0. 108 r,與仿真結果接近。

圖10 動態誤差分析Acceleration =180 r/s2

圖11 動態誤差分析Acceleration =300 r/s2
根據以上提出的算法,在Xilinx公司Sparten 6系列XC6SLX16型號FPGA芯片上,使用Verilog語言編寫了測速算法模塊、上位機通信模塊、D/A驅動模塊等,并在平臺上進行試驗驗證,如圖12所示。

圖12 試驗平臺
圖13為給定0~300 r的加速運動,使用示波器對轉速波形進行觀測得到的結果。

圖13 對拖平臺試驗
示波器分辨率為10 ms/div,用于對比的M/T法的目標采樣時間設置為1 ms。從試驗結果中可以看到傳統M/T速度輸出存在波動,波動約1 ms出現一次,與理論分析相一致。使用本文提出的算法得到的電機轉速,在電機轉速快速變化時依然保持穩定的輸出。
在現代伺服行業中,測速算法對高響應的要求越來越高。在傳統的M/T法基礎上,本文提出了一種新穎的改進策略,通過滑動窗的算法思想,在保證穩態精度與傳統算法精度一致的前提下,提高了算法的速度刷新,降低了算法的動態誤差。為了使算法的實時性得到保證,本文選擇在FPGA上實現算法,并給出了算法的實現流程。通過仿真及試驗表明:該算法的計算刷新速度遠高于傳統算法,有高響應速度的特點,同時測速結果比傳統算法更逼近真實速度,具有高動態精度的特點。因此,具有一定的實用價值。
【參考文獻】
[1]OHMAE T,MATSUDA T,KAMIYAMA K,et al.A microprocessor-controlled high-accuracy wide-range speed regulator for motor drives[J].IEEE Transactions on Industrial Electronics,1982,29(3) : 207-211.
[2]宋寶,唐小琦,蔣俊敏,等.基于FPGA的速度滑動估算策略[J].電氣傳動,2009,39(3) : 44-46.
[3]鄧貽云.同步M/T法的原理及其實現[J].電氣自動化,1999,21(5) : 31-34.
[4]趙巖.編碼器測速方法的研究[D].長春:中國科學院研究生院(長春光學精密機械與物理研究所),2003.
[5]陶剛.基于FPGA的伺服電機測速與控制系統研究[D].上海:上海交通大學,2013.
[6]王少威.永磁交流伺服系統速度檢測與控制研究[D].武漢:華中科技大學,2012.
[7]TSUJI T,MIZUOCHI M,NISHI H,et al.A velocity measurement method for acceleration control[C]∥Industrial Electronics Society,2005,31st Annual Conference of IEEE,2005: 6-10.
[8]TSUJI T,HASHIMOTO T,KOBAYASHI H,et al.A wide-range velocity measurement method for motion control[J].Industrial Electronics,IEEE Transactions on,2009,56(2) : 510-519.
[9]KILIC E,BASER O,DOLEN M,et al.An enhanced adaptive windowing technique for velocity and acceleration estimation using incremental position encoders[C]∥Signals and Electronic Systems (ICSES),2010 International Conference on IEEE,2010: 61-64.
A High Dynamic M/T Method for Velocity Acquiring
HUANG Surong,GAO Shilin,WANG Shuang,SHI Jian
(School of Mechatronic Engineering and Automation,Shanghai University,Shanghai 200072,China)
Abstract:On the basis of M/T method,a new algorithm to improve the response of velocity acquisition was proposed.The demand of response was increasing in modern servo controller,and the traditional methods could hardly adapt to the new challenges.The method performed significantly improvement of dynamic performance compared with traditional M/T method.Simulation and experimental results showed that the proposed algorithm improved the dynamic performance with the resolution unchanged.
Key words:motor control; velocity acquisition; improved M/T method; FPGA
收稿日期:2015-09-06
作者簡介:黃蘇融(1953—),男,教授,研究方向為電機及其應用控制。通訊作者為黃蘇融。
*基金項目:國家科技支撐計劃課題(2015BAG03B01)
中圖分類號:TM 301.2
文獻標志碼:A
文章編號:1673-6540(2016) 03-0049-05