黃蘇融,高詩林,王 爽,石 堅(jiān)(上海大學(xué)機(jī)電工程與自動化學(xué)院,上?!?00072)
?
一種提高測速響應(yīng)的改進(jìn)M/T算法*
黃蘇融,高詩林,王爽,石堅(jiān)
(上海大學(xué)機(jī)電工程與自動化學(xué)院,上海200072)
摘要:在M/T法的基礎(chǔ)上,提出了一種提高測速響應(yīng)速度的新型速度獲取算法?,F(xiàn)代電驅(qū)動對控制器的響應(yīng)要求越來越高,傳統(tǒng)的速度獲取方法逐漸無法適應(yīng)新的挑戰(zhàn),在傳統(tǒng)M/T算法的基礎(chǔ)上引入滑動窗思想,提高了算法的動態(tài)性能,解決了傳統(tǒng)算法響應(yīng)速度慢的問題。在FPGA平臺上實(shí)現(xiàn)了相關(guān)算法,仿真及試驗(yàn)結(jié)果表明,提出的算法在保證穩(wěn)態(tài)精度不變的前提下,將系統(tǒng)動態(tài)運(yùn)行下的誤差縮小為傳統(tǒng)算法的1/3,比傳統(tǒng)算法更快的逼近真實(shí)速度,提升了動態(tài)響應(yīng)能力。
關(guān)鍵詞:電機(jī)控制;測速;改進(jìn)M/T法;現(xiàn)場可編程門陣列
在現(xiàn)代電驅(qū)動控制系統(tǒng)中,控制器的速度環(huán)帶寬成為了重要的性能指標(biāo)。速度獲取算法的動態(tài)響應(yīng)對速度環(huán)帶寬起著至關(guān)重要的作用,因此電機(jī)轉(zhuǎn)速獲取的響應(yīng)時間成為了提高系統(tǒng)性能的關(guān)鍵點(diǎn)。光電編碼器是一種在伺服控制系統(tǒng)中被廣泛采用的傳感器,具有體積小、精度高、可靠性高等優(yōu)點(diǎn)。在使用光電編碼器作為速度信號傳感器時,傳統(tǒng)的測速方法有T法、M法和M/T法等[1],其中M/T法兼顧了M法和T法的優(yōu)點(diǎn),有高精度、寬范圍的特點(diǎn),隨著這種算法的應(yīng)用推廣,不斷有學(xué)者對算法提出相應(yīng)的改進(jìn)完善,其中包括滑動M/T法[2]、同步M/T法[3]、變M/T法[4]等改進(jìn)措施,圍繞噪聲影響、低速性能等方面展開了研究。本文以提高M(jìn)/T法的動態(tài)響應(yīng)為目標(biāo),提出了一種算法改進(jìn)措施,縮短了M/T算法的響應(yīng)時間,將動態(tài)測速誤差的最大值縮減為傳統(tǒng)M/T法的1/3,提升了測速算法的動態(tài)性能。
傳統(tǒng)M/T法測速,在中高速段近似為M法,在低速段近似為T法。它結(jié)合了M法和T法的優(yōu)點(diǎn)[5-6],如圖1所示。對于M/T法而言,在規(guī)定的時間測量高頻時鐘脈沖的數(shù)量,采樣時間Ts為指定值;當(dāng)Ts取值增大時,精度增加,同時增加了延時;當(dāng)Ts取值減小時,精度減小,同時延時減小。這就決定了M/T算法的矛盾性,Ts選取將使系統(tǒng)在精度和響應(yīng)速度之間折中。
圖1 傳統(tǒng)M/T法的測速原理
伺服系統(tǒng)的帶寬是伺服系統(tǒng)的重要指標(biāo),其中測速環(huán)節(jié)的響應(yīng)速度是影響帶寬的一個重要因素,本文旨在提高測速方法的響應(yīng)速度,提出一種M/T算法的改進(jìn)策略。對于基于光電編碼器脈沖和時間的測速算法,其算法速度刷新率近似等于算法周期Ts。傳統(tǒng)M/T法中第i個周期的轉(zhuǎn)速公式:
式中: f0——計(jì)時器高頻脈沖頻率;
P——編碼器線數(shù);
N(i)——第i個周期內(nèi)編碼器發(fā)出的脈沖數(shù);
M(i)——該時間內(nèi)高頻計(jì)數(shù)器得到的高頻時鐘脈沖數(shù)。
在測速算法中,使用速度分辨率Qv來表示穩(wěn)態(tài)情況下的測速精度指標(biāo)[7-8]。定義速度分辨率Qv為轉(zhuǎn)速算法可以分辨的兩個相鄰轉(zhuǎn)速的最小值。傳統(tǒng)M/T測速算法的分辨率為
同時為了對比提出的測速方法與傳統(tǒng)測速方法的動態(tài)性能,如圖2所示。本文定義動態(tài)誤差為某一時刻測量得到速度值與系統(tǒng)運(yùn)行實(shí)際速度值的最大差值,記為Qd。
圖2 動態(tài)誤差
對于傳統(tǒng)的M/T測速算法其速度刷新率近似等于采樣周期Ts。在采樣周期Ts結(jié)束的時刻,更新計(jì)算出速度v。假設(shè)速度的計(jì)算不存在誤差,此v在數(shù)值上其實(shí)是前Ts時刻的速度平均值。
由定義得到傳統(tǒng)M/T測速算法的動態(tài)誤差為
式中: a——系統(tǒng)的加速度;
Ts——M/T法的實(shí)際采樣周期。
對比式(2)、(3)可以得到,Qv和Qd是一對相對矛盾的量。普遍的做法是,通過選取適當(dāng)?shù)恼{(diào)整Ts,在精度和響應(yīng)速度之間找到一個相對的平衡點(diǎn),在滿足精度的前提下提高響應(yīng)速度。
本文對傳統(tǒng)M/T算法提出一種新的改進(jìn)策略。使用比M/T密集的采樣間隔Tp,Tp?Ts。對于傳統(tǒng)M/T法來說,減少Ts可以提高響應(yīng)速度,但將產(chǎn)生更大的測量誤差,如式(2)、(3)所示。本文提出一種新的方法,使用滑動窗的思想,把傳統(tǒng)M/T法的間斷性測速周期連續(xù)化,可以在保證速度分辨率的同時,使響應(yīng)誤差Qd逼近理論最小值。
取一個很短的采樣時間Tp(Tp?Ts),將傳統(tǒng)的采樣周期的長度分為N份,與傳統(tǒng)的M/T法相比較N·Tp≈Ts。
對于每個實(shí)際得到的Mp(i)需要滿足對應(yīng)的Np(i)與脈沖沿對齊。如圖3所示,在經(jīng)過Tp時間后,編碼器的第一個脈沖邊沿,作為Np(i)和Mp(i)計(jì)數(shù)的終止位置。由此得
圖3 高頻時鐘沿及編碼器脈沖沿
在電機(jī)的運(yùn)行過程中,對于實(shí)際的編碼器脈沖與高頻時鐘信號,每一個Np(i + d) (d =0,1,2,…)與對應(yīng)的Mp(i +d)的關(guān)系如圖4所示。
圖4 改進(jìn)的M/T法測速原理
每次得到Np(i + d)和Mp(i + d)數(shù)據(jù)后,采用如下方法計(jì)算得到輸出速度:
(1)計(jì)算每個Mp(i + d)范圍內(nèi),編碼器經(jīng)過的位移Sp(i + d),其計(jì)算方法如式(6)所示:
當(dāng)N足夠大時,可近似滿足:
從圖5中可以看出,使用該算法,在每一個Tp時間段內(nèi),都會有一個速度的計(jì)算值輸出,提高了算法的刷新速度。同時,對比式(3)和式(10)可以得到,該算法的動態(tài)誤差相比于傳統(tǒng)M/T法,縮小了約aTs,縮小為傳統(tǒng)算法的1/3,顯著減小了M/T法存在的動態(tài)誤差。
圖5 改進(jìn)算法的計(jì)算過程
式中: Z——光電編碼器線數(shù)。
(2)計(jì)算此范圍內(nèi)經(jīng)過的時間Tp(i + d),每Mp(i + d)個高頻脈沖內(nèi),實(shí)際消耗的時間:
(3)取連續(xù)的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)]。此分割數(shù)N應(yīng)滿足: Tp=1/N×Ts,圖為N =4的情況。
(4)對于每個窗Window(i)內(nèi),先計(jì)算編碼器移動的總位移和實(shí)際消耗的總時間,再計(jì)算得到速度。每次微型滑動都進(jìn)行一次計(jì)算。Window(i)窗內(nèi)的速度記為ωp(i),可以得到:
使用這種速度獲取算法,可以得到的Qd的值滿足式(9) :
在傳統(tǒng)的MCU/DSP控制系統(tǒng)中,CPU按照指令周期運(yùn)行。在工業(yè)產(chǎn)品中,速度環(huán)指令周期一般為0.001 s,速度獲取及速度環(huán)PID控制都是在此周期內(nèi)完成。
由于M/T法的速度更新周期不穩(wěn)定,若T取0.001 s,實(shí)際Ts會大于此時間,而控制器將進(jìn)入下一個控制周期,致使控制器在當(dāng)前周期無法得到相鄰時段的速度計(jì)算值。若T取值小于0.001 s,上述現(xiàn)象也將周期性發(fā)生,這是速度閉環(huán)不能忍受的[9]。所以在傳統(tǒng)的MCU/DSP控制器的工業(yè)產(chǎn)品中,為使控制器穩(wěn)定犧牲了精度,通常使用的是M法而非M/T法。
FPGA與傳統(tǒng)控制器不同,有著并行處理的主要特性,可以讓系統(tǒng)的各個功能以流水線形式工作,如圖6所示。速度獲取模塊與控制器其他部分獨(dú)立工作,使速度獲取計(jì)算不拘束于控制器周期,從而可以實(shí)現(xiàn)較復(fù)雜的算法。
在FPGA中的實(shí)現(xiàn)流程如圖7所示。
圖6 FPGA控制器與傳統(tǒng)控制器的對比
圖7 FPGA算法流程圖
將編碼器發(fā)出的A、B差分信號通過TI-AM26C32芯片,接入到FPGA中。預(yù)處理模塊由倍頻過的高頻時鐘驅(qū)動,檢測編碼器脈沖的移動方向。
將A、B兩路信號的上一時刻值A(chǔ)q、Bq,與當(dāng)前時刻的值A(chǔ)n、Bn,組成一個四位二進(jìn)制的組合{ Aq,Bq,An,Bn}。在電機(jī)轉(zhuǎn)動過程中將產(chǎn)生8種狀態(tài),分別是: { 1 011} { 1 101} { 0 100} { 0 010} { 1 110} { 1 000} { 0 001} { 0 111},分別代表了電機(jī)正反轉(zhuǎn)情況下,兩路編碼器信號的全部組合,可以將2 500線的編碼器識別為10 000種編碼器狀態(tài)。
由編碼器的狀態(tài)變化觸發(fā)判定,在計(jì)時沒有達(dá)到指定時間Tp時,計(jì)時器處于計(jì)時狀態(tài),直到某次觸發(fā)時滿足計(jì)時器的時間超過給定時間Tp。其后復(fù)位計(jì)時器和位置計(jì)數(shù)器,開始下一輪計(jì)數(shù)。與此同時將計(jì)數(shù)和計(jì)時得到的結(jié)果存入長度為N 的FIFO中。
每一個Location和Time使用FIFO中N個Tp時間之前的值進(jìn)行計(jì)算,得到這N個Tp時間段內(nèi),由編碼器脈沖觸發(fā)得到經(jīng)過準(zhǔn)確的編碼器的位移和經(jīng)過這段位移所消耗的準(zhǔn)確時間,具體計(jì)算步驟如式(4)~(8)所示。這種計(jì)算每隔Tp時間進(jìn)行一次,而參與計(jì)算的數(shù)據(jù)是N個Tp時間內(nèi)的位移和時間。在計(jì)算模塊,通過前面流水線形式的數(shù)據(jù),計(jì)算得到速度值。
基于本文提出的高響應(yīng)M/T算法,應(yīng)用MATLAB進(jìn)行仿真驗(yàn)證,在MATLAB/Simulink環(huán)境中搭建電機(jī)控制回路。為了模擬算法在FPGA中的運(yùn)行情況,各個模塊使用觸發(fā)式工作,使用全局時鐘分別驅(qū)動算法和控制模塊。
圖8所示是在10~300 r/min之間的加減速仿真,速度指令是周期為1 Hz的梯形波。圖8中所示為M/T法和本文所提出的NM/T法(N =10)在該條件下對速度指令的跟隨情況。從圖8中還可以看出本文提出的方法比傳統(tǒng)M/T法對速度指令的跟隨性更好,在圖8中所示的仿真條件下,NM/T法的時延比M/T法的時延縮短了近1 ms。
圖8 恒定加速度響應(yīng)仿真
如圖9所示是在不同轉(zhuǎn)速下,兩種速度算法速度刷新時間的仿真結(jié)果,速度刷新時間是指速度算法每一次計(jì)算得到結(jié)果之間的時間差。這個指標(biāo)表示了速度算法的響應(yīng)速度。在圖9中可以看出,隨著速度的不斷提高,M/T法的速度刷新時間呈周期性變化,每6 r/min出現(xiàn)一次時間最大值,最后趨近于1 ms,而本文提出的NM/T算法,隨著轉(zhuǎn)速的提高,不斷趨近于Ts/N。當(dāng)N的值很大時,這個值將逼近理論最小值。
圖9 速度刷新時間仿真
圖10、11顯示了不同加速度情況下,兩種測速算法的動態(tài)誤差對比。從圖10、11中可以看出,對于速度變化越迅速的系統(tǒng),本文提出的NM/T體現(xiàn)出了更高的響應(yīng)速度,例如在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,當(dāng)N取10情況下,Qd= (1/2 + 1/10)×10× 180 r/s2×0.000 1 s =0. 108 r,與仿真結(jié)果接近。
圖10 動態(tài)誤差分析Acceleration =180 r/s2
圖11 動態(tài)誤差分析Acceleration =300 r/s2
根據(jù)以上提出的算法,在Xilinx公司Sparten 6系列XC6SLX16型號FPGA芯片上,使用Verilog語言編寫了測速算法模塊、上位機(jī)通信模塊、D/A驅(qū)動模塊等,并在平臺上進(jìn)行試驗(yàn)驗(yàn)證,如圖12所示。
圖12 試驗(yàn)平臺
圖13為給定0~300 r的加速運(yùn)動,使用示波器對轉(zhuǎn)速波形進(jìn)行觀測得到的結(jié)果。
圖13 對拖平臺試驗(yàn)
示波器分辨率為10 ms/div,用于對比的M/T法的目標(biāo)采樣時間設(shè)置為1 ms。從試驗(yàn)結(jié)果中可以看到傳統(tǒng)M/T速度輸出存在波動,波動約1 ms出現(xiàn)一次,與理論分析相一致。使用本文提出的算法得到的電機(jī)轉(zhuǎn)速,在電機(jī)轉(zhuǎn)速快速變化時依然保持穩(wěn)定的輸出。
在現(xiàn)代伺服行業(yè)中,測速算法對高響應(yīng)的要求越來越高。在傳統(tǒng)的M/T法基礎(chǔ)上,本文提出了一種新穎的改進(jìn)策略,通過滑動窗的算法思想,在保證穩(wěn)態(tài)精度與傳統(tǒng)算法精度一致的前提下,提高了算法的速度刷新,降低了算法的動態(tài)誤差。為了使算法的實(shí)時性得到保證,本文選擇在FPGA上實(shí)現(xiàn)算法,并給出了算法的實(shí)現(xiàn)流程。通過仿真及試驗(yàn)表明:該算法的計(jì)算刷新速度遠(yuǎn)高于傳統(tǒng)算法,有高響應(yīng)速度的特點(diǎn),同時測速結(jié)果比傳統(tǒng)算法更逼近真實(shí)速度,具有高動態(tài)精度的特點(diǎn)。因此,具有一定的實(shí)用價值。
【參考文獻(xiàn)】
[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法的原理及其實(shí)現(xiàn)[J].電氣自動化,1999,21(5) : 31-34.
[4]趙巖.編碼器測速方法的研究[D].長春:中國科學(xué)院研究生院(長春光學(xué)精密機(jī)械與物理研究所),2003.
[5]陶剛.基于FPGA的伺服電機(jī)測速與控制系統(tǒng)研究[D].上海:上海交通大學(xué),2013.
[6]王少威.永磁交流伺服系統(tǒng)速度檢測與控制研究[D].武漢:華中科技大學(xué),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—),男,教授,研究方向?yàn)殡姍C(jī)及其應(yīng)用控制。通訊作者為黃蘇融。
*基金項(xiàng)目:國家科技支撐計(jì)劃課題(2015BAG03B01)
中圖分類號:TM 301.2
文獻(xiàn)標(biāo)志碼:A
文章編號:1673-6540(2016) 03-0049-05