摘 要: 提高位置測量的精度,是提高電機定位精度" title="定位精度">定位精度的主要途徑。作為當前常用轉(zhuǎn)角位置傳感器的增量式光電碼盤,常采用四倍頻的方法提高其測量精度。針對一些精度和穩(wěn)定性不高的四倍頻電路在應(yīng)用中造成的誤差、詳細分析了兩種可應(yīng)用于不同環(huán)境的四倍頻電路,從原理上說明了電路的精度和穩(wěn)定性、其結(jié)論在實際應(yīng)用" title="實際應(yīng)用">實際應(yīng)用中也得到了驗證。
關(guān)鍵詞: 電機控制 伺服電路 光電碼盤
?
在分布于各個行業(yè)的大量機電系統(tǒng)的設(shè)計中,定位精度常常是最關(guān)鍵的性能指標之一。在此類系統(tǒng)的設(shè)計中,當前主要使用電機作為驅(qū)動,因此研究提高電機伺服系統(tǒng)定位精度的方法,對提高機電系統(tǒng)性能具有重要的意義。對于一個設(shè)計完善的伺服系統(tǒng)而言,其定位精度主要取決于位置測量裝置[1]。由于光電碼盤具有分辨率高、響應(yīng)速度快、體積小、重量輕、輸出穩(wěn)定、耐惡劣環(huán)境等特點,所以在電機伺服控制系統(tǒng)中得到了廣泛應(yīng)用。通常,光電碼盤分為絕對式和增量式兩種。絕對式碼盤在任意位置都可給出與位置相對應(yīng)的數(shù)字轉(zhuǎn)角輸出量,不存在四倍頻的問題。增量式碼盤是根據(jù)軸所轉(zhuǎn)過的角度,輸出一系列脈沖,并通過計數(shù)電路,對脈沖進行累計計數(shù),得到相對角位移" title="角位移">角位移。由于單個絕對碼盤的角位移的測量范圍僅為0°~360°,需多個碼盤才能測量大于360°的角位移,從而提高了系統(tǒng)的價格和復(fù)雜程度;而增量式碼盤轉(zhuǎn)角測量范圍只受計數(shù)電路的位數(shù)限制,結(jié)構(gòu)簡單" title="結(jié)構(gòu)簡單">結(jié)構(gòu)簡單,價格較低,因此得到廣泛應(yīng)用。本文提到的光電碼盤,都是指增量式碼盤。
在實際應(yīng)用中,通常采用四倍頻的方法以提高光電碼盤的定位精度。因此,結(jié)構(gòu)簡單、性能穩(wěn)定、運行可靠的四倍頻電路,是電機伺服電路的一個重要組成部分。通常,光電碼盤的四倍頻電路與判向電路設(shè)計為一個整體,故又統(tǒng)稱為四倍頻及判向電路。能夠?qū)崿F(xiàn)四倍頻的電路結(jié)構(gòu)很多,但我們在應(yīng)用中發(fā)現(xiàn),由于某些四倍頻電路的精度或穩(wěn)定性不高,從而使加入四倍頻電路后,精度本應(yīng)得到提高的系統(tǒng),整體性能反而下降,從而使系統(tǒng)無法達到設(shè)計要求[2]。為此,我們在分析幾種常見四倍頻電路的基礎(chǔ)上,針對不同的應(yīng)用,設(shè)計了兩種不同的電路實現(xiàn)方案。下面,對四倍頻電路的設(shè)計原理及兩種方案的結(jié)構(gòu)和使用方法進行討論。
1 四倍頻電路設(shè)計原理
光電碼盤的典型輸出為兩個相位差為90°" title="90°">90°的方波信號(A和B),以及零位脈沖信號Z(見圖1)。其中,A、B兩相信號的脈沖數(shù)標志碼盤軸所轉(zhuǎn)過的角度,A、B之間的相位關(guān)系標志碼盤的轉(zhuǎn)向,即當A相超前B相90°時,標志碼盤正轉(zhuǎn)(見圖1a),當B相超前A相90°時,碼盤反轉(zhuǎn)(見圖1b)。
對于每個確定的碼盤,其脈沖周期T對應(yīng)的碼盤角位移固定為θ,故其量化誤差為θ/2。如果能夠?qū)或B信號四倍頻,則計數(shù)脈沖的周期將減小到T/4,量化誤差下降為θ/8,從而使光電碼盤的角位移測量精度提高4倍。由于伺服系統(tǒng)中的碼盤轉(zhuǎn)速具有不可預(yù)見性,造成脈沖周期T具有不確定的特點,從而無法使用鎖相環(huán)等常用倍頻方案。詳細觀察圖1可以發(fā)現(xiàn),在脈沖周期T內(nèi),A、B兩相信號共產(chǎn)生了四次變化,即t1、t2時刻的上升沿和t3、t4時刻的下降沿。盡管T不確定,但由于A、B兩方波信號之間相位關(guān)系確定,使這四次變化在相位上平均分布,如果利用這四次變化產(chǎn)生四倍頻信號,則可以實現(xiàn)光電碼盤測量精度的提高。
四倍頻后的碼盤信號,需經(jīng)計數(shù)器計數(shù)后,才能轉(zhuǎn)化為相對位置。計數(shù)過程一般有兩種實現(xiàn)方法:一是由可編程計數(shù)器或微處理器內(nèi)部定時/計數(shù)器實現(xiàn)計數(shù);二是由可逆計數(shù)器實現(xiàn)對正反向脈沖的計數(shù)。當需控制的電機數(shù)量少時,前一方案附加元件少,結(jié)構(gòu)簡單,較為容易實現(xiàn)。如使用8031控制一路電機,則無需添加任何器件,利用其內(nèi)部的T0及T1計數(shù)器,即可實現(xiàn)計數(shù)。當需控制的電機數(shù)量較多時,則采用后一種方案,利用復(fù)雜可編程邏輯器件(PLD),實現(xiàn)會更為簡單。
基于以上思路,根據(jù)不同的計數(shù)方案,可以設(shè)計出以下兩種四倍頻電路。
2 面向通用計數(shù)器的四倍頻及判向電路
在實現(xiàn)1~2路電機控制的情況下,使用微控制器內(nèi)部通用計數(shù)器,或簡單地增加可編程計數(shù)器即可實現(xiàn)計數(shù)。因此也要求四倍頻電路結(jié)構(gòu)簡單,便于利用簡單PLD實現(xiàn)集成。為此,我們采用的電路原理如圖2所示。其中,74LS174為6D觸發(fā)器,用于鎖存A、B信號的當前狀態(tài)及原狀態(tài);CP為74LS174的同步時鐘,其周期至少應(yīng)小于碼盤脈沖最小周期的1/4;XA及XB分別為電路生成的正反向四倍頻計數(shù)脈沖,其寬度等于CP的脈沖周期。該電路的邏輯表達式如下:
由于我們主要關(guān)心該電路在輸入狀態(tài)變化時,其輸出狀態(tài)的變化情況,而且四倍頻電路變化較大的也主要是輸入狀態(tài),因此本文采用輸入狀態(tài)轉(zhuǎn)換圖進行電路邏輯分析(下同)。該電路的輸入狀態(tài)轉(zhuǎn)換如圖3所示。
其中,AB表示A、B兩相輸入信號,XA、XB表示四倍頻電路輸出。從狀態(tài)圖可以看出,該電路不僅在輸入正常的條件下能夠穩(wěn)定工作,而且在AB出現(xiàn)同時變化的輸入錯誤狀態(tài)下(輸入在00←→11或01←→10之間跳變),其輸出信號不會發(fā)生任何變化,這一方面顯示了電路邏輯結(jié)構(gòu)的嚴密性,另一方面也提高了抗干擾能力。圖4為該電路實現(xiàn)四倍頻及判向功能的時序圖。
從以上分析可以看出,該電路具有邏輯結(jié)構(gòu)嚴密、不受干擾輸入影響、易于實現(xiàn)簡單PLD器件集成等特點。當前,該電路已成功應(yīng)用于多種機器人控制系統(tǒng)中,包括人工肌肉、圖像監(jiān)控系統(tǒng),以及分辨率達到60nm的微操作機器人等,實際應(yīng)用驗證了該電路的精度和穩(wěn)定性。
3 面向可逆計數(shù)器的四倍頻及判向電路設(shè)計
對于多軸數(shù)控機床、機器人等需要多軸電機控制的場合,如果采用上述設(shè)計方案,往往需要增加較多的可編程計數(shù)器,造成電路元器件眾多、結(jié)構(gòu)復(fù)雜、功耗增加、穩(wěn)定性下降等缺點。當前,解決該問題的一個有效方案,是利用FPGA等復(fù)雜PLD器件,實現(xiàn)多路電機的碼盤接口電路的芯片化設(shè)計,包括光碼盤信號四倍頻電路、判向電路及可逆計數(shù)器電路。下面,以采用FPGA實現(xiàn)為例,說明設(shè)計過程。
首先,為便于使用VHDL語言描述,對碼盤信號作如下分析:
(1)當碼盤正轉(zhuǎn)時,碼盤輸出的A相信號超前B相90°,則在一個周期內(nèi),AB兩相信號共有四次相對變化: (圖1a);這樣,如果每發(fā)生一次變化,可逆計數(shù)器便實現(xiàn)一次加計數(shù),則一個周期內(nèi),共可實現(xiàn)四次加計數(shù),從而實現(xiàn)正轉(zhuǎn)狀態(tài)的四倍頻計數(shù)。
(2)當碼盤反轉(zhuǎn)時,碼盤輸出的A相信號滯后B相90°,則在一個周期內(nèi),AB兩相信號也有四次相對變化:(圖1b);這樣,如果每發(fā)生一次變化,可逆計數(shù)器便實現(xiàn)一次減計數(shù),則一個周期內(nèi),共可實現(xiàn)四次減計數(shù),從而實現(xiàn)反轉(zhuǎn)狀態(tài)的四倍頻計數(shù)。
(3)當線路受到干擾或出現(xiàn)故障時,則可能出現(xiàn)其他狀態(tài)轉(zhuǎn)換過程,此時計數(shù)器應(yīng)不進行計數(shù)操作。
綜合以上分析,可以作出基于FPGA設(shè)計的碼盤信號處理模塊狀態(tài)轉(zhuǎn)換圖(見圖5),其中“+/-1”分別表示計數(shù)器加/減1計數(shù),“0”表示計數(shù)器不動作。
由該狀態(tài)轉(zhuǎn)換圖,可以將該模塊描述如下:
Ecoderinput :process(pa、pb、clr、preset、clk、dbin、cnten、db)
begin
if(clr='0') then
db<=″0000000000000000″;
prestate<=″00″;
state<=″00″;
elsif (clk'event and clk='1') then
if (preset='0') then
db<=dbin;
elsif(cnten='0') then
state(1)<=pa;
state(0)<=pb;
prestate<=state;
if(prestate=″00″) and (state=″10″) then db<=db+″0000000000000001″;
elsif (prestate=″10″) and (state=″11″) then db<=db+″0000000000000001″;
elsif (prestate=″11″) and (state=″01″) then db<=db+″0000000000000001″;
elsif (prestate=″01″) and (state=″00″) then db<=db+″0000000000000001″;
elsif (prestate=″00″) and (state=″01″) then db<=db-″0000000000000001″;
elsif (prestate=″01″) and (state=″11″) then db<=db-″0000000000000001″;
elsif (prestate=″11″) and (state=″10″) then db<=db-″0000000000000001″;
elsif (prestate=″10″) and (state=″00″) then db<=db-″0000000000000001″;
else db<=db;
end if;
end if;
end if;
end process Ecoderinput;
圖6為該模塊實現(xiàn)四倍頻及判向功能的時序圖。
可以看出,利用FPGA設(shè)計碼盤信號處理模塊,無論是設(shè)計過程,還是電路結(jié)構(gòu),都變得更加簡潔。另外,在應(yīng)用中注意FPGA時鐘周期應(yīng)小于碼盤脈沖的1/4,只是通常FPGA的時鐘已經(jīng)遠小于碼盤脈沖周期。該電路已應(yīng)用于對精度、可靠性和穩(wěn)定性都有很高要求的醫(yī)療外科機械臂的設(shè)計中,該機械臂已多次成功應(yīng)用于臨床手術(shù),從而在實踐上驗證了該電路性能。
鑒于光電碼盤四倍頻電路在提高電機定位精度中具有的重要作用,以上詳細分析了兩種面向不同計數(shù)方案的四倍頻電路結(jié)構(gòu)。這兩種電路性能都已在實際應(yīng)用中得到了驗證,希望能對電機伺服電路設(shè)計提供一定的參考。
參考文獻
1 李清新.伺服系統(tǒng)與機床電器控制.北京:機械工業(yè)出版社,1994
2 王守杰.多路氣動數(shù)字控制系統(tǒng)研制.北京:北京航空航天大學(xué)碩士論文,1994
3 韓壯志.新型靈巧手控制器設(shè)計與實現(xiàn).北京:北京航空航天大學(xué)碩士論文,1999.3