張 策,田 凱,金書輝,張東陽,單 智
(天津電氣科學研究院有限公司 天津 300180)
在工業生產中,高性能的電機傳動系統可滿足各類機械對轉矩、速度、位置等性能的預期要求。速度信息的獲取是實現高性能電機控制的關鍵因素,測速不準確會造成電機磁場定向不準,從而導致系統控制性能惡化,甚至無法正常工作[1]。電機控制系統一般采用裝于電動機軸上的編碼器(下文用“碼盤”)進行電動機轉子位置和速度的反饋測量[2]。然而工業現場存在各種各樣的干擾因素,如機械振動、電磁干擾、共模干擾等,均會造成碼盤A、B脈沖波形畸變,導致計數誤差,影響轉速測量的準確度,因此需要采用脈沖抗擾技術來提高測量精度。
對碼盤A、B脈沖波形干擾信號的處理,部分文獻采用集成芯片或多級D觸發器濾除硬件[2-3],但硬件方法成本高、資源消耗多。因此,目前采用比較廣泛的是軟件濾波方法[4-7]。
本文針對工業現場干擾因素導致碼盤脈沖波形畸變,引起轉速計算不準確問題,提出了一種碼盤抗干擾測速方法,旨在通過軟件濾波方法有效降低干擾信號對測速精度的影響,便于工程應用。
光電編碼器與電動機同軸相連,電動機旋轉帶動碼盤同步旋轉。碼盤每轉一圈便發出一定數目的方波脈沖,脈沖頻率與電機轉速成一定比例。理論上每轉脈沖數越高,測量精度越高。在實際應用時,通常采用對碼盤A、B脈沖的上升沿和下降沿進行計數,實現碼盤4倍頻,如圖1所示。

圖1 碼盤A、B脈沖信號示意圖 Fig.1 Schematic diagram of pulse signals of encoders A and B
圖2為碼盤M/T法測速時序。A、B分別表示A、B脈沖。在一個測速周期內,會采集到M1個碼盤脈沖沿,當正脈沖信號發生時,M1=M1+1;當負脈沖信號發生時,M1=M1-1。M1個碼盤脈沖沿對應的時鐘脈沖個數為M2,對應時間Tdk=M2Tp(Tp為時鐘脈沖周期),利用M1和Tdk可計算獲得轉速值。

圖2 測速時序 Fig.2 Timing sequence of speed measurement
在測速周期結束時刻TA,若M1≠0,則輸出M1k=M1,M2k=M2,根據轉速公式更新轉速信息后,再將M1計數器和M2計數器清零;若M1=0,說明該周期內碼盤沒有正負脈沖信號或相互抵消,轉速數據不予更新,直到某一更新時刻TA到來時M1≠0,重復上述計算過程。電機轉一圈時間t的計算公式為:

式中:t表示電機轉一圈的時間,s;PPR為碼盤線數,因采用4倍頻,故轉一圈脈沖沿數為PPR×4;M1k為一個測速周期內的脈沖沿個數;M2k為M1k個脈沖沿對應的采樣時鐘脈沖個數;Tp為時鐘脈沖周期,s。
可得電機轉速n計算公式為:

式中:n為電機轉速計算值,r/min;PP是極對數。
工業現場應用時,信號干擾會導致脈沖A、B的波形產生畸變,如圖3所示。干擾信號會導致實際記錄脈沖數增加或轉速方向反向,使系統性能受到影響。為消除干擾信號影響,采取對脈沖進行濾波處理的方法。

圖3 脈沖干擾及處理 Fig.3 Pulse interference and filtering processing
圖3 中,A_IN和B_IN分別為脈沖A輸入信號和脈沖B輸入信號。B_IN信號的圓圈標記中為干擾信號,為消除該干擾信號,對其進行濾波處理,濾波時間為T。圖3中A和B分別為經過濾波處理后的脈沖A信號和脈沖B信號。
為盡可能濾除干擾信號,希望整形濾波時間T設置越大越好,但如果T超過脈沖高電平時間的一半,會使轉速方向判斷出錯,而且不同轉速下,脈沖高電平時間也不同。為了更好地濾除不同轉速下的干擾信號,將整形濾波時間按照轉速分為多檔。
碼盤的最大響應頻率一般不超過400kHz,對應的高/低電平時間均為1.25μs,此時可選取濾波時間T為0.625μs,假定采樣時鐘周期為0.025μs,則對應的時鐘脈沖數為25。可按照與最大響應頻率成比例的關系進行濾波時間分檔,分檔情況見表1。

表1 碼盤響應頻率與對應脈沖個數 Tab.1 Encoder response frequency and number of corresponding pulses
其中,CNT為對應濾波時間T的時鐘脈沖個數。
為便于編程實現,將碼盤分辨率fs對應成脈沖寬度Tk,即高/低電平時間。脈沖寬度Tk根據上一個測速周期采樣獲得M1(K-1)和M2(K-1)進行計算:

式中:Tk表示碼盤A、B的脈沖寬度,s;M2(K-1)表示上一周期的采樣時鐘脈沖個數;M1(K-1)表示上一周期的碼盤脈沖沿個數。
為保證脈沖信號經過處理后的實時性,在軟件程序中假設A脈沖計數器cnta,當脈沖A高電平時,計數器cnta加1,當脈沖A低電平時,計數器cnta減1,cnta的范圍為0~CNT。
當cnta=CNT時,輸出濾波后信號A=1;當cnta=0時,輸出濾波后信號A=0;
同理,B脈沖濾波處理也采用上述方式。
通過上述方法實現碼盤輸入信號A/B脈沖隨轉速變化的濾波整形,不同轉速下濾波自適應變化。
當電機零速狀態下,由于碼盤的抖動,有可能使測速周期更新時刻左右兩側存在正負脈沖信號,按照轉速計算方法,會導致判斷電機轉速不為0。
上述問題可通過增加狀態變量ac和lac記錄正負脈沖信號變化狀態。當正脈沖信號發生時,ac=1;當負脈沖信號發生時,ac=0。用lac記錄ac上一個周期的值。當更新周期時刻TA到來時,若ac=lac時,即相鄰2個周期的脈沖信號同相,允許碼盤脈沖數M1和時鐘個數M2進行更新;若ac≠lac時,則不允許更新,將TA時刻左右出現的正負脈沖納入更大的時間范圍去進行判斷,由此消除零速時碼盤抖動帶來的轉速誤判影響。
碼盤測速系統控制器由FPGA和DSP芯片構成,其中FPGA芯片負責對碼盤A、B脈沖信號采集、濾波處理、倍頻處理和零速防抖處理。FPGA中生成的碼盤計數值M1k、時鐘脈沖數M2k和轉速方向信息傳遞給DSP,在DSP中完成對碼盤轉速實時計算,碼盤轉速計算原理如圖4所示。

圖4 轉速計算流程圖 Fig.4 Flow chart of speed measurement
測速系統的驗證在異步電動機控制臺上進行。實驗設備:三相異步電動機,額定電壓380V,額定轉速1500r/min;碼盤每轉脈沖數1024,極對數2;勝利DM6234P非接觸式數字測速儀。異步電機測試臺如圖5所示。

圖5 實驗測試機組 Fig.5 Experimental motor unit
測試實驗主要完成電機在調速范圍內測速及正反轉方向辨別。在電機空載狀態下,編碼器線纜不采用屏蔽線纜,與動力電線纜靠近,制造碼盤干擾環境。電機從零速上升到額定轉速,記錄不同轉速時的測速系統測量轉速和數字測速儀的轉速,2種方法各重復測速3次,采用3次重復測速的迭代平均值作為速度反饋結果。2種方法測速結果及兩者對比誤差見圖6(a,b)所示,測速結果驗證了本文抗脈沖干擾測速方法的有效性。

圖6 速度反饋結果 Fig.6 Speed feedback results
工業電機傳動系統中,碼盤測速裝置受到各種干擾因素影響,致使所測轉速不準確,影響系統可靠、高性能運行。針對此問題,本文提出了一種適用于增量式光電編碼器的消除擾動影響的測速方法。根據脈沖寬度,設定不同的濾波時間,從而在不導致計算速度反向情況下,最大程度消除干擾影響。根據相鄰周期脈沖信號狀態判斷轉速是否更新,以消除零速碼盤抖動。
實驗結果表明,測速系統能有效地實現轉速正反向辨別,且有效抑制干擾因素造成的計數錯誤,明顯提高了測速的準確性。本方法計算簡單,便于微處理器編程實現,且占用資源較少,便于工程應用。■