機器人驅控系統編碼器任意分周比研究

文:丁信忠,嚴彩忠2017年第6期

    摘要:在機器人驅控系統中,需要通過全閉環控制保證末端工具中心點位置精度,因此需要將執行機構上的編碼器位置信息按照特定分周比分頻輸出給控制器。本文研究并實現了一種基于FPGA的自適應分周比的分頻方法,該方法實現了對各種編碼器類型進行任意分周比分頻,將雙模前置方法和積分分頻方法進行了算法上的統一,克服了傳統雙模前置等方法中占用邏輯資源較多和分頻延時的缺陷。仿真和實驗結果驗證了所研究方案的可行性和有效性。

0引言

    編碼器機器人驅控系統中是必備組件之一,常安裝于電機末端進行半閉環控制,在對機器人末端工具中心點(ToolCenterPoint,TCP)有高精度要求的應用時,還需在執行機構中安裝編碼器進行全閉環控制。隨著編碼器技術的發展,高分辨率、通訊式接口的編碼器越來越普及,由于通訊式編碼器的分辨率通常為2的整數次方,而控制器端為方便計算和顯示,常采用10000、100000這樣的整數值,因此需要對編碼器的反饋值進行分周比轉換。

    在總線型機器人驅控系統中,雖然可以通過總線接口將伺服位置信息直接上傳控制器,但由于現用總線通訊周期相對于伺服控制周期較長,且存在較大通訊抖動,如果用于全閉環控制難以獲得理想的性能,所以仍需要將編碼器數值分頻后通過正交脈沖接口實時反饋到控制器。

    整數分頻技術已經比較成熟,通過可控占空比反轉方法可對奇數、偶數分頻進行占空比可控的分頻,而若要獲得50%的占空比,則可采用脈沖周期剔除法進行奇數分頻[1],使用半數反轉方法即可實現偶數分頻。

    對于小數分頻,通常采用雙模前置的方法,該方法的主要思想是:假設分頻比是M.N,其中M是整數部分,N是小數部分,遵循雙模前置規律,先對輸入脈沖進行P1次M分頻,然后再對輸入脈沖進行P2次M+1分頻,實現在P1+P2個分頻周期內,使分頻比的有效值等于M.N[2,3]。這種分頻方法一般通過FPGA/CPLD等可編程邏輯器件實現,由于算法較為復雜,尤其在分頻比的小數位數比較長時,較為占用邏輯資源[4]。此外,楊明等利用DSP的運算能力和CPLD的邏輯功能設計了一種正交脈沖小數分頻方法,該方法將本周期獲取的外部輸入脈沖數經過DSP分頻計算后,將整數部分在后續周期中用CPLD輸出,并將小數部分保存在DSP中用于下一周期的分頻計算[5]。這個方法較好的解決了小于分頻系數的脈沖丟失的問題,但這個方法每次分頻均包含采集、計算、發送三個過程,需要DSP的全時參與,因而造成至少1個采樣周期的分頻延時,在全閉環應用中可能降低系統的動態性能。

    本文結合脈沖型和通訊型編碼器的特點,將雙模前置和積分分頻法進行了改進和算法統一,提出了一種可自適應編碼器類型和任意分周比系數的分頻方法,該方案克服了以往分頻方法對通訊式編碼器分頻占用資源多、實時性不好的缺陷。

1設計原理

    對于任意實數總可以表示為形如R=N/D的分數形式,其中,N和D均為整數。由于分周比均大于等于1,故N≥D。當D=1時,R為整數,對于2M偶數分頻,可以使用模M翻轉的方法來簡單實現等占空比分頻輸出。而對于2M+1的奇數分頻,采用觸發前移半個脈沖周期來補償半個脈沖周期,即脈沖周期剔除法。具體的,將待分頻脈沖分別用上升沿和下降沿觸發進行模M計數分頻,然后將得到的兩個分頻所得的脈沖信號相或即可得到等占空比的2M+1分頻。

    上述整數分頻較為直觀,但是對于機器人系統中使用的編碼器分辨率和機器人控制器端期望的分辨率往往無法整除,因此需要所設計的分頻器能夠適應各種分周比,即N和D可以是任意整數。設分頻器輸入脈沖數為P,輸出脈沖數為C,則有式(1)所示關系。

(1)

    由于N>D,故式(1)可以表示為以下形式:

(2)

    其中,N=AD+B

    基于公式(2),任意分周比分頻的主要原理為:對輸入脈沖的上升或下降沿進行累加計數,每次累加值為D,當累加值大于2N時取余后繼續累加,直到累加值對2N取余返回0時,一個分頻周期結束,記為T。在每個累加過程中,累加值小于N的時候記為0,大于等于N的時候記為1,然后統計連續0和連續1的個數,這個數就是分頻系數。按照上述方法得到的分頻系數進行分頻,在一個分頻周期T內即可得到分周比為N/D的輸出脈沖。例如對輸入脈沖進行8/3分頻,步驟如表1所示。

表1使用積分雙模前置法進行8/3分頻的步驟

Tab.1Theprocessof8/3frequencydivisionwithintegraldual-modemethod

    由表1可見,如需進行8/3分頻,只要按照該方法得出的分頻比,在周期T內按照3→3→2→3→3→2的分頻比進行分頻,即可對輸入脈沖實現分頻比為8/3的脈沖分頻。

    機器人反饋系統中,由于需要對機器人的各姿態下的所有關節絕對位置進行反饋,所以一般采用絕對式編碼器,這種編碼器的分辨率通常為2m的形式。對此類編碼器進行分頻操作時,可在上述方法的基礎上,利用2m的特殊性,通過積分分頻[6]的方式對算法進行統一和優化,進而減少FPGA邏輯資源的占用率。

    具體的,對于此類編碼器的分頻操作,公式x中的分頻系數N/D可表示為2m-1/D,其中N=2m-1。對于m位二進制數N每次累加D,假定累加x次累加值低m位回到0,同時越過數值2N(2m)y次,那么,當前累加的數值應該是Dx=2my。累加時,每越過2m一次,最高位變化2次,所以,累加x次,最高位變化2y次,進而等效為分頻的分頻器,本文稱這種方法為積分雙模前置法。

    例如,當m=4,D=3時,即表1中的8/3分頻,當累加16次時,累加值為48,最低4位全部為0,同時越過24三次,最高位變化6次,由此得到分頻的分頻器。操作時,只需要判斷累加值最高位的數值即可得到分頻系數。具體如表2所示:

表2使用積分分頻法進行8/3分頻的步驟

Tab.2Theprocessof8/3frequencydivisionwithintegralmethod

    基于上述積分雙模前置方法,僅需對分母進行累加,然后判斷最高位的數值即可得到分頻系數,相比之前的方法更加簡潔,節省FPGA邏輯資源。

2方案設計及實現

    本文針對機器人反饋系統中的任意分周比功能重點設計了脈沖分頻模塊和正交脈沖生成模塊兩大功能模塊,除此之外還包括編碼器轉換模塊、管理模塊等,這些模塊的關系如圖1所示:

圖1功能模塊連接示意圖

Fig.1Schematicdiagramoffunctionmodulesstructure

2.1編碼器轉換模塊和管理模塊

    編碼器轉換模塊用于將通訊式編碼器周期性采樣的編碼器數值轉換成增量脈沖,用于脈沖分頻模塊的輸入。而管理模塊主要負責根據編碼器類型、分周比設定值配置編碼器轉換模塊、脈沖分頻模塊的內部調用關系和狀態機管理等工作,協調整個功能塊的正常運行。

2.2脈沖分頻模塊

    脈沖分頻模塊是本文設計的重點,根據設計原理,本模塊包含偶數分頻、奇數分頻、積分雙模前置分頻3個子模塊,然而這些子模塊并非獨立運行的,本方案將這些子模塊通過分時復用進行統一,并通過管理模塊進行自適應配置,以適應各種分周比的分頻需求。

    方案主要思想是首先計算分頻比,然后進行整數分頻。具體的,根據用戶設定的分周比,由管理模塊決定是否需要計算分頻比,如果分周比不是整數,則需要根據積分雙模前置方法確定分頻比。進一步,如果被分頻的編碼器分辨率為2m的形式,則通過積分分頻方法確定分頻比,如果不是這種形式,則采用雙模前置方法確定分頻比。得到分頻比后,即可通過調用整數分頻模塊進行最終的脈沖分頻操作。整數分頻模塊對輸入脈沖的上升沿和下降沿均按照分頻比進行計數翻轉,然后根據分頻比是偶數還是奇數決定最終輸出脈沖根據模M翻轉輸出還是根據脈沖剔除法進行輸出。這一過程的程序流程圖如圖2所示:

圖2脈沖分頻流程圖

Fig.2Flowchartofproposedfrequencydivisionmethod

    由上述分析可知,所設計方案相比雙模前置和DSP協同處理方式,具有以下改進:首先,將雙模前置方法和積分分頻方法進行了算法上的統一,對于機器人系統常用的編碼器類型設計了積分雙模前置方法,相比傳統雙模前置方法更加節省邏輯資源。其次,該方案將各類分頻系數進行統一,無需單獨配置偶數分頻、奇數分頻、小數分頻,實現分周比自適應;最后,所設計方案克服了采用DSP協同處理時1個采樣周期分頻延時的問題。

    圖3為機器人關節正反轉時,對編碼器反饋進行8/3分頻時的仿真波形。

圖3使用積分分頻法進行8/3分頻的仿真波形

Fig3Simulationof8/3frequencydivisionbyintegralmethod

    其中,SourceSignal_A為輸入脈沖;SourceSignal_B為脈沖方向,高電平代表脈沖正向,低電平為脈沖反向;ResultSignal_A為分頻后脈沖,ResultSignal_B為分頻后脈沖方向。仿真結果可以看出,每輸入8個脈沖,輸出3個脈沖,且在反向時也可正確輸出。

2.3正交脈沖生成模塊

    分頻后的脈沖需要以某種形式輸出給控制器使用,現代機器人系統中通常采用正交脈沖的形式,這種脈沖形式通過兩路脈沖的相位表征正交脈沖的方向,一般的,當A超前于B四分之一周期時,代表正交脈沖為正向,A、B相的狀態循環為10、11、01和00;當B超前于A四分之一周期時,代表正交脈沖為反向,A、B相的狀態循環為01、11、10和00。而脈沖邊沿的數量代表轉過的角度或運動的距離。基于以上方向鑒別和脈沖計數原理,所設計的編碼器分周比功能需要將分頻后的脈沖轉換為具備上述特征的正交脈沖。

    本文基于上述狀態特征在在正交脈沖生成模塊中設計了正交脈沖狀態機,用于根據脈沖分頻模塊輸入的分頻后脈沖和方向信號生成正交脈沖,如圖4所示。

圖4正交脈沖狀態機

Fig4Statemachineofquadratepulsesgeneration

    當機器人系統中的編碼器正向轉動時,輸入正交脈沖生成模塊的信號為正向方向信號和分頻后的脈沖信號,此時,本模塊由輸入脈沖的上升沿觸發,按照圖4的狀態生成正交脈沖。反之亦然。圖5為根據輸入脈沖和方向信號的仿真波形。 

圖5生成正交脈沖仿真波形

Fig5Simulationofquadratepulsesgeneration

    其中,SourceSignal_A為脈沖分頻模塊輸入的分頻后脈沖,SourceSignal_B為脈沖方向,高電平代表脈沖正向,低電平為脈沖反向;而ResultSignal_A/B為經過本模塊生成的正交脈沖,可以看出,在輸入脈沖正反向運行時,可以生成具有上述特征的正交脈沖。

3實驗驗證

    實驗采用一套交流伺服驅動系統來模擬機器人系統中的一個關節,這套系統的主要參數指標為:電機額定功率1kW;額定轉速2000rpm;軸端編碼器為多摩川17位多圈絕對值;輸出脈沖采樣由橫河DLM2024示波器采樣和計數,實驗平臺如圖6所示。

圖6實驗平臺

Fig6Experimentplatform

    實驗1中,設定電機轉動一圈,輸出的脈沖數為10000,而編碼器的分辨率為217,故分頻系數為,控制電機以600rpm的轉速正向轉動,用示波器采集分頻后的正交脈沖如圖7所示。

圖7600rpm勻速運行時分頻輸出實驗波形

Fig7Experimentalresultoffrequencydivisionoutputwiththevelocityof600rpm

    圖7中,對脈沖頻率進行測量,可以看到輸出脈沖的頻率為100khz,符合實驗的分頻預期。

    實驗2中,采用與實驗1相同的分頻系數,控制電機運行1轉,然后用示波器采集輸出正交脈沖的數量,如圖8所示。

圖8電機正轉1圈時的分頻輸出實驗波形

Fig8ExperimentalresultoffrequencydivisionoutputwithCCWrotationofonecircle

    從圖8的實驗結果中可以看出,電機轉動一圈后,示波器采集到脈沖數量正好10000個,符合實驗分頻個數預期。

4結論

    機器人系統中,常常需要將執行機構端編碼器的反饋值按照特定分周比分頻后傳給控制器。本文研究并實現了針對脈沖型和通訊式編碼器反饋數據的任意分周比分頻輸出功能,將各類分頻系數進行統一,實現分周比自適應,并設計積分雙模前置方法降低了傳統雙模前置方法的資源占用。本文所設計方法通過仿真和實物實驗進行了驗證,表明了方法正確、可靠,具有較強的工程應用價值。

中傳動網版權與免責聲明:

凡本網注明[來源:中國傳動網]的所有文字、圖片、音視和視頻文件,版權均為中國傳動網(www.hysjfh.com)獨家所有。如需轉載請與0755-82949061聯系。任何媒體、網站或個人轉載使用時須注明來源“中國傳動網”,違反者本網將追究其法律責任。

本網轉載并注明其他來源的稿件,均來自互聯網或業內投稿人士,版權屬于原版權人。轉載請保留稿件來源及作者,禁止擅自篡改,違者自負版權法律責任。

如涉及作品內容、版權等問題,請在作品發表之日起一周內與本網聯系,否則視為放棄相關權利。

伺服與運動控制

關注伺服與運動控制公眾號獲取更多資訊

直驅與傳動

關注直驅與傳動公眾號獲取更多資訊

中國傳動網

關注中國傳動網公眾號獲取更多資訊

熱搜詞
  • 運動控制
  • 伺服系統
  • 機器視覺
  • 機械傳動
  • 編碼器
  • 直驅系統
  • 工業電源
  • 電力電子
  • 工業互聯
  • 高壓變頻器
  • 中低壓變頻器
  • 傳感器
  • 人機界面
  • PLC
  • 電氣聯接
  • 工業機器人
  • 低壓電器
  • 機柜
回頂部
點贊 0
取消 0
往期雜志
  • 2025年第一期

    2025年第一期

    伺服與運動控制

    2025年第一期

  • 2024年第六期

    2024年第六期

    伺服與運動控制

    2024年第六期

  • 2024年第五期

    2024年第五期

    伺服與運動控制

    2024年第五期

  • 2024年第四期

    2024年第四期

    伺服與運動控制

    2024年第四期

  • 2024年第三期

    2024年第三期

    伺服與運動控制

    2024年第三期