面對一臺ZMC300E運動控制器,我們該怎樣讓它工作起來?本文帶你了解其核心算法原理,并詳細講解如何操縱龍門架畫筆平臺繪圖。
?前言
ZMC300E(點擊了解詳情)是廣州致遠電子股份有限公司開發的最新一代智能總線型 EtherCAT 主站控制器,使用A8內核的AM335X為處理器核心,配合Xenomai高實時性Linux系統,支持作為EtherCAT主站使用,其通訊可實現ms周期任務抖動±15μs以內,可滿足運動控制器的高實時性要求。
圖1ZMC300E控制器
可以看到,運動控制器的強項是EtherCAT實時通信,主要工作就是發號施令,通過網絡命令多個電驅和電機工作。通俗的說,運動控制器干腦力活,動口不動手,電驅和電機干體力活,專干重活累活。
那么,運動控制器憑什么當上智力擔當的?原來運動控制器是計算能手,擁有三大絕活算法:軌跡插補,速度規劃,運動前瞻。憑借這三大絕活,運動控制器就能指揮電驅和電機完成各種運動任務。
?算法原理
接下來簡單地介紹運動控制器的三大絕活算法:軌跡插補,速度規劃,運動前瞻。這三大算法包含較多子類別的算法,本文只對最基礎最實用的子算法進行介紹,后面實戰繪圖也會用到這些算法:軌跡插補-直線插補,速度規劃-梯形速度規劃,運動前瞻-拐角減速。1.軌跡插補運動任務的核心任務就是繪制各種軌跡,運動控制器的看家本領就是軌跡插補。插補算法根據給定的信息進行數字計算,不斷計算出參與運動的各坐標軸的進給指令,然后分別驅動各自相應的執行部件產生協調運動,以使被控機械部件按理想的路線與速度移動。插補最常見的兩種方式是直線插補和圓弧插補。插補運動至少需要兩個軸參與,進行插補運動時,首先需要建立坐標系,將規劃軸映射到相應的坐標系中,運動控制器根據坐標映射關系,控制各軸運動,實現要求的運動軌跡。直線運動的插補示意圖如下,插補運動中由起始點處沿 X 方向走一小段(給一個脈沖當量軸走一段固定距離),發現終點在實際輪廓的下方,則下一條線段沿 Y 方向走一小段,此時如果線段終點還在實際輪廓下方,則繼續沿 Y 方向走一小段,直到在實際輪廓上方以后,再向 X 方向走一小段,依次循環類推,直到到達輪廓終點為止。
圖2直線插補示意圖除了直線插補,ZMC300E還支持多種軌跡插補:圓弧插補,橢圓弧插補,漸開線插補,螺旋線插補,貝塞爾曲線插補。2.速度規劃運動控制器還可以為軌跡插補賦予速度規劃。速度規劃這里特指,在已知運動的起點和終點和完整路徑的情況下,基于給定的時間約束, 最大速度約束和最大加速度減速度約束的條件,設計運動速度隨時間的曲線。常見的速度規劃算法有梯形速度規劃算法,S形速度規劃算法。梯形速度曲線,也稱為直線加減速或T型加減速。其算法十分簡易,規劃周期耗時短,有利于縮減系統的連續運行時間,從而提高系統的運動控制速度,實施起來比較容易,應用廣泛。
圖3梯形速度規劃-速度示意圖
該速度由3段組成,第一個段黃色段是加速段,第二段(綠色段)是勻速段,第三段(黃色段)是減速段。
圖4梯形速度規劃-位移示意圖圖5梯形速度規劃-加速度示意圖
除了梯形速度規劃,ZMC300E還支持多種S型速度規劃:加加速度(二次加速度)給定條件的S型速度規劃,彎曲時間給定條件的S型速度規劃,和加減速時間和彎曲時間給定條件的S型速度規劃。
3.運動前瞻
運動控制器能夠更加高效規劃運動,這要求運動控制器支持連續插補運動,支持運動前瞻。
這里給一個矩形繪圖作為連續插補的示例。一個普通的矩形軌跡如下圖。
圖6矩形軌跡該矩形含有四段軌跡。
使用梯形速度規劃,可以得到以下的速度曲線,可以看到,由4段曲線組成。
圖7不開啟運動前瞻的速度-時間示意圖不開啟連續插補和運動前瞻,每段速度都減速到零。縱軸為速度,橫軸為時間。下圖是開啟連續插補的速度-時間圖。速度是通過位置和發射時間推算出來的,不完全精確,速度出現毛刺是正常的。
圖8連續插補速度-時間示意圖
開啟連續插補,每段速度不再減速到0。可以看到,時間相比不開啟運動前瞻更短。但是有個嚴重問題:拐角處的速度是最大值,過高的速度可能影響電機和刀具穩定性。
圖9運動前瞻速度-時間示意圖
開啟連續插補和運動前瞻,拐角減速,每段速度不再減速到0,而是根據拐角角度決定速度。可以看到,時間相比不開啟運動前瞻更短,相比連續插補更長,避免刀具高速通過拐角處的問題。
運動控制器的運動前瞻功能可以根據用戶的運動路徑自動計算出平滑的速度規劃,以防止軌跡的拐角處速度過快。運動前瞻包括三種模式:拐角減速、倒角、小圓限速,而這三種模式也可混合使用。拐角減速會根據夾角大小確定拐角處的最大速度,倒角則會設置前后兩個軌跡在拐角處的倒角,而小圓限速則會對半徑小于設置值的圓弧軌跡進行限速。
?實戰繪圖
介紹完了算法原理,接下來我們使用ZMC300E運動控制器來進行實戰繪圖。
首先把運動控制器和畫筆平臺使用網線連接。畫筆平臺是一個3軸的龍門架,可以在xyz三軸空間移動,夾具上只有一根常見的鉛筆。
圖10畫筆平臺
選擇一幅SVG格式圖片作為我們畫圖的圖案,這里我們選擇的是致遠電子公司的logo圖片。
圖11Logo圖片
對于輸入圖片,我們可以把矢量圖解析成多個筆畫,每個筆畫解析成直線曲折相連,這樣就可以得到對應繪圖軌跡。G代碼(G-code)是最為廣泛使用的計算機數控編程語言,主要在計算機輔助制造中用于控制自動機床。
我們使用開源工具svg_to_gcode,把svg文件轉成G代碼文件。
圖12G代碼文件
查看G代碼文件,可以看到都是G1指令,說明都是直線插補命令。這說明我們只用直線插補命令就能完成繪圖。對應的繪圖圖案如下,不同的顏色對應不同的筆劃,可以看到圖片包含十八筆的仿真筆畫圖。
圖13 筆畫軌跡圖片
每一筆劃都要有進筆(筆尖觸及紙張),作畫(筆尖寫字)和退筆(筆尖遠離紙張)。G代碼中進筆對應M3指令(進刀),退筆對應M5指令(退刀)。這樣才能書寫多個筆劃。
目標圖形總共有十八筆的筆畫,要想作畫就得先對筆畫進行排序。這里使用最直觀的筆劃排序算法,先左后右,先上后下。
加入筆畫的連接,可以得到以下的筆畫仿真繪圖。
圖14 連筆筆畫繪圖
可以看到,仿真效果大體上符合我們的預期。我們就可以在運動控制器中運行G代碼腳本。使用ssh連接運動控制器,啟動控制程序。設置左下方為原點,沿著紙張往右邊寫字,紙張寬度至少280mm,高度60mm。使用梯形速度規劃,配置最大速度100mm/s,最大加速度和最大減速度為100mm/s^2。進筆和退筆,對應z軸上下的運動,進筆量和退筆量都設為10mm。為了提高繪圖效率,開啟了連續插補,運動前瞻和拐角減速。
圖15 繪圖可以看到,我們使用ZMC300E控制器漂亮地完成了繪圖。
-
控制器
+關注
關注
112文章
16214瀏覽量
177472 -
Linux
+關注
關注
87文章
11232瀏覽量
208943
發布評論請先 登錄
相關推薦
評論