時間:2018-01-11 13:42:08來源:丁信忠,嚴彩忠
摘要:在機器人驅控系統(tǒng)中,需要通過全閉環(huán)控制保證末端工具中心點位置精度,因此需要將執(zhí)行機構上的編碼器位置信息按照特定分周比分頻輸出給控制器。本文研究并實現(xiàn)了一種基于FPGA的自適應分周比的分頻方法,該方法實現(xiàn)了對各種編碼器類型進行任意分周比分頻,將雙模前置方法和積分分頻方法進行了算法上的統(tǒng)一,克服了傳統(tǒng)雙模前置等方法中占用邏輯資源較多和分頻延時的缺陷。仿真和實驗結果驗證了所研究方案的可行性和有效性。
0引言
編碼器在機器人驅控系統(tǒng)中是必備組件之一,常安裝于電機末端進行半閉環(huán)控制,在對機器人末端工具中心點(ToolCenterPoint,TCP)有高精度要求的應用時,還需在執(zhí)行機構中安裝編碼器進行全閉環(huán)控制。隨著編碼器技術的發(fā)展,高分辨率、通訊式接口的編碼器越來越普及,由于通訊式編碼器的分辨率通常為2的整數(shù)次方,而控制器端為方便計算和顯示,常采用10000、100000這樣的整數(shù)值,因此需要對編碼器的反饋值進行分周比轉換。
在總線型機器人驅控系統(tǒng)中,雖然可以通過總線接口將伺服位置信息直接上傳控制器,但由于現(xiàn)用總線通訊周期相對于伺服控制周期較長,且存在較大通訊抖動,如果用于全閉環(huán)控制難以獲得理想的性能,所以仍需要將編碼器數(shù)值分頻后通過正交脈沖接口實時反饋到控制器。
整數(shù)分頻技術已經(jīng)比較成熟,通過可控占空比反轉方法可對奇數(shù)、偶數(shù)分頻進行占空比可控的分頻,而若要獲得50%的占空比,則可采用脈沖周期剔除法進行奇數(shù)分頻[1],使用半數(shù)反轉方法即可實現(xiàn)偶數(shù)分頻。
對于小數(shù)分頻,通常采用雙模前置的方法,該方法的主要思想是:假設分頻比是M.N,其中M是整數(shù)部分,N是小數(shù)部分,遵循雙模前置規(guī)律,先對輸入脈沖進行P1次M分頻,然后再對輸入脈沖進行P2次M+1分頻,實現(xiàn)在P1+P2個分頻周期內(nèi),使分頻比的有效值等于M.N[2,3]。這種分頻方法一般通過FPGA/CPLD等可編程邏輯器件實現(xiàn),由于算法較為復雜,尤其在分頻比的小數(shù)位數(shù)比較長時,較為占用邏輯資源[4]。此外,楊明等利用DSP的運算能力和CPLD的邏輯功能設計了一種正交脈沖小數(shù)分頻方法,該方法將本周期獲取的外部輸入脈沖數(shù)經(jīng)過DSP分頻計算后,將整數(shù)部分在后續(xù)周期中用CPLD輸出,并將小數(shù)部分保存在DSP中用于下一周期的分頻計算[5]。這個方法較好的解決了小于分頻系數(shù)的脈沖丟失的問題,但這個方法每次分頻均包含采集、計算、發(fā)送三個過程,需要DSP的全時參與,因而造成至少1個采樣周期的分頻延時,在全閉環(huán)應用中可能降低系統(tǒng)的動態(tài)性能。
本文結合脈沖型和通訊型編碼器的特點,將雙模前置和積分分頻法進行了改進和算法統(tǒng)一,提出了一種可自適應編碼器類型和任意分周比系數(shù)的分頻方法,該方案克服了以往分頻方法對通訊式編碼器分頻占用資源多、實時性不好的缺陷。
1設計原理
對于任意實數(shù)總可以表示為形如R=N/D的分數(shù)形式,其中,N和D均為整數(shù)。由于分周比均大于等于1,故N≥D。當D=1時,R為整數(shù),對于2M偶數(shù)分頻,可以使用模M翻轉的方法來簡單實現(xiàn)等占空比分頻輸出。而對于2M+1的奇數(shù)分頻,采用觸發(fā)前移半個脈沖周期來補償半個脈沖周期,即脈沖周期剔除法。具體的,將待分頻脈沖分別用上升沿和下降沿觸發(fā)進行模M計數(shù)分頻,然后將得到的兩個分頻所得的脈沖信號相或即可得到等占空比的2M+1分頻。
上述整數(shù)分頻較為直觀,但是對于機器人系統(tǒng)中使用的編碼器分辨率和機器人控制器端期望的分辨率往往無法整除,因此需要所設計的分頻器能夠適應各種分周比,即N和D可以是任意整數(shù)。設分頻器輸入脈沖數(shù)為P,輸出脈沖數(shù)為C,則有式(1)所示關系。
(1)
由于N>D,故式(1)可以表示為以下形式:
(2)
其中,N=AD+B
基于公式(2),任意分周比分頻的主要原理為:對輸入脈沖的上升或下降沿進行累加計數(shù),每次累加值為D,當累加值大于2N時取余后繼續(xù)累加,直到累加值對2N取余返回0時,一個分頻周期結束,記為T。在每個累加過程中,累加值小于N的時候記為0,大于等于N的時候記為1,然后統(tǒng)計連續(xù)0和連續(xù)1的個數(shù),這個數(shù)就是分頻系數(shù)。按照上述方法得到的分頻系數(shù)進行分頻,在一個分頻周期T內(nèi)即可得到分周比為N/D的輸出脈沖。例如對輸入脈沖進行8/3分頻,步驟如表1所示。
表1使用積分雙模前置法進行8/3分頻的步驟
Tab.1Theprocessof8/3frequencydivisionwithintegraldual-modemethod
由表1可見,如需進行8/3分頻,只要按照該方法得出的分頻比,在周期T內(nèi)按照3→3→2→3→3→2的分頻比進行分頻,即可對輸入脈沖實現(xiàn)分頻比為8/3的脈沖分頻。
機器人反饋系統(tǒng)中,由于需要對機器人的各姿態(tài)下的所有關節(jié)絕對位置進行反饋,所以一般采用絕對式編碼器,這種編碼器的分辨率通常為2m的形式。對此類編碼器進行分頻操作時,可在上述方法的基礎上,利用2m的特殊性,通過積分分頻[6]的方式對算法進行統(tǒng)一和優(yōu)化,進而減少FPGA邏輯資源的占用率。
具體的,對于此類編碼器的分頻操作,公式x中的分頻系數(shù)N/D可表示為2m-1/D,其中N=2m-1。對于m位二進制數(shù)N每次累加D,假定累加x次累加值低m位回到0,同時越過數(shù)值2N(2m)y次,那么,當前累加的數(shù)值應該是Dx=2my。累加時,每越過2m一次,最高位變化2次,所以,累加x次,最高位變化2y次,進而等效為分頻的分頻器,本文稱這種方法為積分雙模前置法。
例如,當m=4,D=3時,即表1中的8/3分頻,當累加16次時,累加值為48,最低4位全部為0,同時越過24三次,最高位變化6次,由此得到分頻的分頻器。操作時,只需要判斷累加值最高位的數(shù)值即可得到分頻系數(shù)。具體如表2所示:
表2使用積分分頻法進行8/3分頻的步驟
Tab.2Theprocessof8/3frequencydivisionwithintegralmethod
基于上述積分雙模前置方法,僅需對分母進行累加,然后判斷最高位的數(shù)值即可得到分頻系數(shù),相比之前的方法更加簡潔,節(jié)省FPGA邏輯資源。
2方案設計及實現(xiàn)
本文針對機器人反饋系統(tǒng)中的任意分周比功能重點設計了脈沖分頻模塊和正交脈沖生成模塊兩大功能模塊,除此之外還包括編碼器轉換模塊、管理模塊等,這些模塊的關系如圖1所示:
圖1功能模塊連接示意圖
Fig.1Schematicdiagramoffunctionmodulesstructure
2.1編碼器轉換模塊和管理模塊
編碼器轉換模塊用于將通訊式編碼器周期性采樣的編碼器數(shù)值轉換成增量脈沖,用于脈沖分頻模塊的輸入。而管理模塊主要負責根據(jù)編碼器類型、分周比設定值配置編碼器轉換模塊、脈沖分頻模塊的內(nèi)部調(diào)用關系和狀態(tài)機管理等工作,協(xié)調(diào)整個功能塊的正常運行。
2.2脈沖分頻模塊
脈沖分頻模塊是本文設計的重點,根據(jù)設計原理,本模塊包含偶數(shù)分頻、奇數(shù)分頻、積分雙模前置分頻3個子模塊,然而這些子模塊并非獨立運行的,本方案將這些子模塊通過分時復用進行統(tǒng)一,并通過管理模塊進行自適應配置,以適應各種分周比的分頻需求。
方案主要思想是首先計算分頻比,然后進行整數(shù)分頻。具體的,根據(jù)用戶設定的分周比,由管理模塊決定是否需要計算分頻比,如果分周比不是整數(shù),則需要根據(jù)積分雙模前置方法確定分頻比。進一步,如果被分頻的編碼器分辨率為2m的形式,則通過積分分頻方法確定分頻比,如果不是這種形式,則采用雙模前置方法確定分頻比。得到分頻比后,即可通過調(diào)用整數(shù)分頻模塊進行最終的脈沖分頻操作。整數(shù)分頻模塊對輸入脈沖的上升沿和下降沿均按照分頻比進行計數(shù)翻轉,然后根據(jù)分頻比是偶數(shù)還是奇數(shù)決定最終輸出脈沖根據(jù)模M翻轉輸出還是根據(jù)脈沖剔除法進行輸出。這一過程的程序流程圖如圖2所示:
圖2脈沖分頻流程圖
Fig.2Flowchartofproposedfrequencydivisionmethod
由上述分析可知,所設計方案相比雙模前置和DSP協(xié)同處理方式,具有以下改進:首先,將雙模前置方法和積分分頻方法進行了算法上的統(tǒng)一,對于機器人系統(tǒng)常用的編碼器類型設計了積分雙模前置方法,相比傳統(tǒng)雙模前置方法更加節(jié)省邏輯資源。其次,該方案將各類分頻系數(shù)進行統(tǒng)一,無需單獨配置偶數(shù)分頻、奇數(shù)分頻、小數(shù)分頻,實現(xiàn)分周比自適應;最后,所設計方案克服了采用DSP協(xié)同處理時1個采樣周期分頻延時的問題。
圖3為機器人關節(jié)正反轉時,對編碼器反饋進行8/3分頻時的仿真波形。
圖3使用積分分頻法進行8/3分頻的仿真波形
Fig3Simulationof8/3frequencydivisionbyintegralmethod
其中,SourceSignal_A為輸入脈沖;SourceSignal_B為脈沖方向,高電平代表脈沖正向,低電平為脈沖反向;ResultSignal_A為分頻后脈沖,ResultSignal_B為分頻后脈沖方向。仿真結果可以看出,每輸入8個脈沖,輸出3個脈沖,且在反向時也可正確輸出。
2.3正交脈沖生成模塊
分頻后的脈沖需要以某種形式輸出給控制器使用,現(xiàn)代機器人系統(tǒng)中通常采用正交脈沖的形式,這種脈沖形式通過兩路脈沖的相位表征正交脈沖的方向,一般的,當A超前于B四分之一周期時,代表正交脈沖為正向,A、B相的狀態(tài)循環(huán)為10、11、01和00;當B超前于A四分之一周期時,代表正交脈沖為反向,A、B相的狀態(tài)循環(huán)為01、11、10和00。而脈沖邊沿的數(shù)量代表轉過的角度或運動的距離。基于以上方向鑒別和脈沖計數(shù)原理,所設計的編碼器分周比功能需要將分頻后的脈沖轉換為具備上述特征的正交脈沖。
本文基于上述狀態(tài)特征在在正交脈沖生成模塊中設計了正交脈沖狀態(tài)機,用于根據(jù)脈沖分頻模塊輸入的分頻后脈沖和方向信號生成正交脈沖,如圖4所示。
圖4正交脈沖狀態(tài)機
Fig4Statemachineofquadratepulsesgeneration
當機器人系統(tǒng)中的編碼器正向轉動時,輸入正交脈沖生成模塊的信號為正向方向信號和分頻后的脈沖信號,此時,本模塊由輸入脈沖的上升沿觸發(fā),按照圖4的狀態(tài)生成正交脈沖。反之亦然。圖5為根據(jù)輸入脈沖和方向信號的仿真波形。
圖5生成正交脈沖仿真波形
Fig5Simulationofquadratepulsesgeneration
其中,SourceSignal_A為脈沖分頻模塊輸入的分頻后脈沖,SourceSignal_B為脈沖方向,高電平代表脈沖正向,低電平為脈沖反向;而ResultSignal_A/B為經(jīng)過本模塊生成的正交脈沖,可以看出,在輸入脈沖正反向運行時,可以生成具有上述特征的正交脈沖。
3實驗驗證
實驗采用一套交流伺服驅動系統(tǒng)來模擬機器人系統(tǒng)中的一個關節(jié),這套系統(tǒng)的主要參數(shù)指標為:電機額定功率1kW;額定轉速2000rpm;軸端編碼器為多摩川17位多圈絕對值;輸出脈沖采樣由橫河DLM2024示波器采樣和計數(shù),實驗平臺如圖6所示。
圖6實驗平臺
Fig6Experimentplatform
實驗1中,設定電機轉動一圈,輸出的脈沖數(shù)為10000,而編碼器的分辨率為217,故分頻系數(shù)為,控制電機以600rpm的轉速正向轉動,用示波器采集分頻后的正交脈沖如圖7所示。
圖7600rpm勻速運行時分頻輸出實驗波形
Fig7Experimentalresultoffrequencydivisionoutputwiththevelocityof600rpm
圖7中,對脈沖頻率進行測量,可以看到輸出脈沖的頻率為100khz,符合實驗的分頻預期。
實驗2中,采用與實驗1相同的分頻系數(shù),控制電機運行1轉,然后用示波器采集輸出正交脈沖的數(shù)量,如圖8所示。
圖8電機正轉1圈時的分頻輸出實驗波形
Fig8ExperimentalresultoffrequencydivisionoutputwithCCWrotationofonecircle
從圖8的實驗結果中可以看出,電機轉動一圈后,示波器采集到脈沖數(shù)量正好10000個,符合實驗分頻個數(shù)預期。
4結論
機器人系統(tǒng)中,常常需要將執(zhí)行機構端編碼器的反饋值按照特定分周比分頻后傳給控制器。本文研究并實現(xiàn)了針對脈沖型和通訊式編碼器反饋數(shù)據(jù)的任意分周比分頻輸出功能,將各類分頻系數(shù)進行統(tǒng)一,實現(xiàn)分周比自適應,并設計積分雙模前置方法降低了傳統(tǒng)雙模前置方法的資源占用。本文所設計方法通過仿真和實物實驗進行了驗證,表明了方法正確、可靠,具有較強的工程應用價值。
標簽:
下一篇:DA200伺服在飛剪的應用
中國傳動網(wǎng)版權與免責聲明:凡本網(wǎng)注明[來源:中國傳動網(wǎng)]的所有文字、圖片、音視和視頻文件,版權均為中國傳動網(wǎng)(m.u63ivq3.com)獨家所有。如需轉載請與0755-82949061聯(lián)系。任何媒體、網(wǎng)站或個人轉載使用時須注明來源“中國傳動網(wǎng)”,違反者本網(wǎng)將追究其法律責任。
本網(wǎng)轉載并注明其他來源的稿件,均來自互聯(lián)網(wǎng)或業(yè)內(nèi)投稿人士,版權屬于原版權人。轉載請保留稿件來源及作者,禁止擅自篡改,違者自負版權法律責任。