張 策,田 凱,金書輝,張東陽,單 智
(天津電氣科學(xué)研究院有限公司 天津 300180)
在工業(yè)生產(chǎn)中,高性能的電機(jī)傳動系統(tǒng)可滿足各類機(jī)械對轉(zhuǎn)矩、速度、位置等性能的預(yù)期要求。速度信息的獲取是實(shí)現(xiàn)高性能電機(jī)控制的關(guān)鍵因素,測速不準(zhǔn)確會造成電機(jī)磁場定向不準(zhǔn),從而導(dǎo)致系統(tǒng)控制性能惡化,甚至無法正常工作[1]。電機(jī)控制系統(tǒng)一般采用裝于電動機(jī)軸上的編碼器(下文用“碼盤”)進(jìn)行電動機(jī)轉(zhuǎn)子位置和速度的反饋測量[2]。然而工業(yè)現(xiàn)場存在各種各樣的干擾因素,如機(jī)械振動、電磁干擾、共模干擾等,均會造成碼盤A、B脈沖波形畸變,導(dǎo)致計數(shù)誤差,影響轉(zhuǎn)速測量的準(zhǔn)確度,因此需要采用脈沖抗擾技術(shù)來提高測量精度。
對碼盤A、B脈沖波形干擾信號的處理,部分文獻(xiàn)采用集成芯片或多級D觸發(fā)器濾除硬件[2-3],但硬件方法成本高、資源消耗多。因此,目前采用比較廣泛的是軟件濾波方法[4-7]。
本文針對工業(yè)現(xiàn)場干擾因素導(dǎo)致碼盤脈沖波形畸變,引起轉(zhuǎn)速計算不準(zhǔn)確問題,提出了一種碼盤抗干擾測速方法,旨在通過軟件濾波方法有效降低干擾信號對測速精度的影響,便于工程應(yīng)用。
光電編碼器與電動機(jī)同軸相連,電動機(jī)旋轉(zhuǎn)帶動碼盤同步旋轉(zhuǎn)。碼盤每轉(zhuǎn)一圈便發(fā)出一定數(shù)目的方波脈沖,脈沖頻率與電機(jī)轉(zhuǎn)速成一定比例。理論上每轉(zhuǎn)脈沖數(shù)越高,測量精度越高。在實(shí)際應(yīng)用時,通常采用對碼盤A、B脈沖的上升沿和下降沿進(jìn)行計數(shù),實(shí)現(xiàn)碼盤4倍頻,如圖1所示。
圖1 碼盤A、B脈沖信號示意圖 Fig.1 Schematic diagram of pulse signals of encoders A and B
圖2為碼盤M/T法測速時序。A、B分別表示A、B脈沖。在一個測速周期內(nèi),會采集到M1個碼盤脈沖沿,當(dāng)正脈沖信號發(fā)生時,M1=M1+1;當(dāng)負(fù)脈沖信號發(fā)生時,M1=M1-1。M1個碼盤脈沖沿對應(yīng)的時鐘脈沖個數(shù)為M2,對應(yīng)時間Tdk=M2Tp(Tp為時鐘脈沖周期),利用M1和Tdk可計算獲得轉(zhuǎn)速值。
圖2 測速時序 Fig.2 Timing sequence of speed measurement
在測速周期結(jié)束時刻TA,若M1≠0,則輸出M1k=M1,M2k=M2,根據(jù)轉(zhuǎn)速公式更新轉(zhuǎn)速信息后,再將M1計數(shù)器和M2計數(shù)器清零;若M1=0,說明該周期內(nèi)碼盤沒有正負(fù)脈沖信號或相互抵消,轉(zhuǎn)速數(shù)據(jù)不予更新,直到某一更新時刻TA到來時M1≠0,重復(fù)上述計算過程。電機(jī)轉(zhuǎn)一圈時間t的計算公式為:
式中:t表示電機(jī)轉(zhuǎn)一圈的時間,s;PPR為碼盤線數(shù),因采用4倍頻,故轉(zhuǎn)一圈脈沖沿數(shù)為PPR×4;M1k為一個測速周期內(nèi)的脈沖沿個數(shù);M2k為M1k個脈沖沿對應(yīng)的采樣時鐘脈沖個數(shù);Tp為時鐘脈沖周期,s。
可得電機(jī)轉(zhuǎn)速n計算公式為:
式中:n為電機(jī)轉(zhuǎn)速計算值,r/min;PP是極對數(shù)。
工業(yè)現(xiàn)場應(yīng)用時,信號干擾會導(dǎo)致脈沖A、B的波形產(chǎn)生畸變,如圖3所示。干擾信號會導(dǎo)致實(shí)際記錄脈沖數(shù)增加或轉(zhuǎn)速方向反向,使系統(tǒng)性能受到影響。為消除干擾信號影響,采取對脈沖進(jìn)行濾波處理的方法。
圖3 脈沖干擾及處理 Fig.3 Pulse interference and filtering processing
圖3 中,A_IN和B_IN分別為脈沖A輸入信號和脈沖B輸入信號。B_IN信號的圓圈標(biāo)記中為干擾信號,為消除該干擾信號,對其進(jìn)行濾波處理,濾波時間為T。圖3中A和B分別為經(jīng)過濾波處理后的脈沖A信號和脈沖B信號。
為盡可能濾除干擾信號,希望整形濾波時間T設(shè)置越大越好,但如果T超過脈沖高電平時間的一半,會使轉(zhuǎn)速方向判斷出錯,而且不同轉(zhuǎn)速下,脈沖高電平時間也不同。為了更好地濾除不同轉(zhuǎn)速下的干擾信號,將整形濾波時間按照轉(zhuǎn)速分為多檔。
碼盤的最大響應(yīng)頻率一般不超過400kHz,對應(yīng)的高/低電平時間均為1.25μs,此時可選取濾波時間T為0.625μs,假定采樣時鐘周期為0.025μs,則對應(yīng)的時鐘脈沖數(shù)為25??砂凑张c最大響應(yīng)頻率成比例的關(guān)系進(jìn)行濾波時間分檔,分檔情況見表1。
表1 碼盤響應(yīng)頻率與對應(yīng)脈沖個數(shù) Tab.1 Encoder response frequency and number of corresponding pulses
其中,CNT為對應(yīng)濾波時間T的時鐘脈沖個數(shù)。
為便于編程實(shí)現(xiàn),將碼盤分辨率fs對應(yīng)成脈沖寬度Tk,即高/低電平時間。脈沖寬度Tk根據(jù)上一個測速周期采樣獲得M1(K-1)和M2(K-1)進(jìn)行計算:
式中:Tk表示碼盤A、B的脈沖寬度,s;M2(K-1)表示上一周期的采樣時鐘脈沖個數(shù);M1(K-1)表示上一周期的碼盤脈沖沿個數(shù)。
為保證脈沖信號經(jīng)過處理后的實(shí)時性,在軟件程序中假設(shè)A脈沖計數(shù)器cnta,當(dāng)脈沖A高電平時,計數(shù)器cnta加1,當(dāng)脈沖A低電平時,計數(shù)器cnta減1,cnta的范圍為0~CNT。
當(dāng)cnta=CNT時,輸出濾波后信號A=1;當(dāng)cnta=0時,輸出濾波后信號A=0;
同理,B脈沖濾波處理也采用上述方式。
通過上述方法實(shí)現(xiàn)碼盤輸入信號A/B脈沖隨轉(zhuǎn)速變化的濾波整形,不同轉(zhuǎn)速下濾波自適應(yīng)變化。
當(dāng)電機(jī)零速狀態(tài)下,由于碼盤的抖動,有可能使測速周期更新時刻左右兩側(cè)存在正負(fù)脈沖信號,按照轉(zhuǎn)速計算方法,會導(dǎo)致判斷電機(jī)轉(zhuǎn)速不為0。
上述問題可通過增加狀態(tài)變量ac和lac記錄正負(fù)脈沖信號變化狀態(tài)。當(dāng)正脈沖信號發(fā)生時,ac=1;當(dāng)負(fù)脈沖信號發(fā)生時,ac=0。用lac記錄ac上一個周期的值。當(dāng)更新周期時刻TA到來時,若ac=lac時,即相鄰2個周期的脈沖信號同相,允許碼盤脈沖數(shù)M1和時鐘個數(shù)M2進(jìn)行更新;若ac≠lac時,則不允許更新,將TA時刻左右出現(xiàn)的正負(fù)脈沖納入更大的時間范圍去進(jìn)行判斷,由此消除零速時碼盤抖動帶來的轉(zhuǎn)速誤判影響。
碼盤測速系統(tǒng)控制器由FPGA和DSP芯片構(gòu)成,其中FPGA芯片負(fù)責(zé)對碼盤A、B脈沖信號采集、濾波處理、倍頻處理和零速防抖處理。FPGA中生成的碼盤計數(shù)值M1k、時鐘脈沖數(shù)M2k和轉(zhuǎn)速方向信息傳遞給DSP,在DSP中完成對碼盤轉(zhuǎn)速實(shí)時計算,碼盤轉(zhuǎn)速計算原理如圖4所示。
圖4 轉(zhuǎn)速計算流程圖 Fig.4 Flow chart of speed measurement
測速系統(tǒng)的驗(yàn)證在異步電動機(jī)控制臺上進(jìn)行。實(shí)驗(yàn)設(shè)備:三相異步電動機(jī),額定電壓380V,額定轉(zhuǎn)速1500r/min;碼盤每轉(zhuǎn)脈沖數(shù)1024,極對數(shù)2;勝利DM6234P非接觸式數(shù)字測速儀。異步電機(jī)測試臺如圖5所示。
圖5 實(shí)驗(yàn)測試機(jī)組 Fig.5 Experimental motor unit
測試實(shí)驗(yàn)主要完成電機(jī)在調(diào)速范圍內(nèi)測速及正反轉(zhuǎn)方向辨別。在電機(jī)空載狀態(tài)下,編碼器線纜不采用屏蔽線纜,與動力電線纜靠近,制造碼盤干擾環(huán)境。電機(jī)從零速上升到額定轉(zhuǎn)速,記錄不同轉(zhuǎn)速時的測速系統(tǒng)測量轉(zhuǎn)速和數(shù)字測速儀的轉(zhuǎn)速,2種方法各重復(fù)測速3次,采用3次重復(fù)測速的迭代平均值作為速度反饋結(jié)果。2種方法測速結(jié)果及兩者對比誤差見圖6(a,b)所示,測速結(jié)果驗(yàn)證了本文抗脈沖干擾測速方法的有效性。
圖6 速度反饋結(jié)果 Fig.6 Speed feedback results
工業(yè)電機(jī)傳動系統(tǒng)中,碼盤測速裝置受到各種干擾因素影響,致使所測轉(zhuǎn)速不準(zhǔn)確,影響系統(tǒng)可靠、高性能運(yùn)行。針對此問題,本文提出了一種適用于增量式光電編碼器的消除擾動影響的測速方法。根據(jù)脈沖寬度,設(shè)定不同的濾波時間,從而在不導(dǎo)致計算速度反向情況下,最大程度消除干擾影響。根據(jù)相鄰周期脈沖信號狀態(tài)判斷轉(zhuǎn)速是否更新,以消除零速碼盤抖動。
實(shí)驗(yàn)結(jié)果表明,測速系統(tǒng)能有效地實(shí)現(xiàn)轉(zhuǎn)速正反向辨別,且有效抑制干擾因素造成的計數(shù)錯誤,明顯提高了測速的準(zhǔn)確性。本方法計算簡單,便于微處理器編程實(shí)現(xiàn),且占用資源較少,便于工程應(yīng)用?!?/p>