崔玉霞,段奕林
(青島科技大學 機電工程學院,山東 青島 266061)
對于給定的一個目標任務,機械臂會有多種可行方式完成,即多種運動路徑,但機械臂運行只能有一條確定的路徑,所以需要在這些可行的路徑中選擇一條最優的路徑。由于得到每一種可行路徑都是由機械臂正逆運動學推導出來的,所以會存在一些微小的計算誤差,最終導致機械臂實際到達的位置與理論計算的位置不太吻合。為了得到一條誤差較小的路徑,提高機械臂精度,可以通過Adams與Simulink的聯合仿真找出誤差最小的一組路徑。
李白雅等人使用4-3-4多項式來對機械臂的運動路徑進行規劃,再基于粒子群算法對該路徑進行優化,綜合考慮了多種指標,包括時間、能量等[1]。游瑋等人在考慮了動力學和運動學之后,使用改進的樣條插值函數對運動路徑進行規劃,再以時間和能耗為目標,使用多目標遺傳算法對得到的路徑進行優化[2]。ZANCHETTIN A M等人提出添加魯棒約束對軌跡進行規劃,將傳統的軌跡生成方法和基于控制策略的優化方法綜合起來[3]。ABE A希望通過尋找最小能量來規劃機械臂的運動軌跡,將驅動機械臂運動所耗費的能量作為目標函數,并將產生的殘余振動作為約束條件,采用帶精英策略的非支配排序遺傳算法來抑制能耗最優的情況下產生的殘余振動[4]。RUBIO F等人先規劃出了一條沒有障礙物存在的最優時間運動軌跡,再考慮當有障礙物存在的時候如何將此軌跡演化成為一個新的無碰撞軌跡,將軌跡離散化,逐漸逼近全局最優解,并且考慮了機械臂的最大轉矩、能耗以及振動的約束,完成軌跡優化[5]。
本文將通過聯合仿真來得到一組誤差最小的最優路徑,提高機械臂的精度,具體篩選流程如圖1所示。

圖1 最優路徑篩選流程
目前,基本上每個學科領域都有自己的CAE分析手段,但當涉及到多個相關學科領域的產品性能整體優化時,技術還不是很成熟。實際上,利用各個相關學科領域的技術特點來提升產品性能,實現各種仿真軟件的無縫鏈接和數據交換,進而完成各相關學科的集成分析,以提升產品的整體性能,已經成為了一種主流趨勢,這樣既可以充分發揮不同領域仿真軟件的優點,又使求解結果更加真實可靠。
本文研究的聯合仿真用到了Simulink這一可視化仿真工具,它主要采用框圖設計,可以實現動態系統建模、仿真以及分析[6]。
聯合仿真的本質是對不同的仿真軟件建立連接之后,把其中某一仿真軟件計算得到的結果作為輸入信號傳送到另一個仿真軟件的模型中。要傳送的計算結果可以是力、力矩、速度(角速度),位移(角位移)等,后一仿真軟件中的模型在這一輸入信號的驅動下會產生與之相關的響應,再將這些響應反饋給前者,最終實現數據在不同仿真軟件之間的雙向傳遞。
在進行仿真之前要先建立合適的仿真環境,除了Adams/View用戶界面模塊之外,還需要用到Adams/Controls控制模塊以及Adams/Solver求解器模塊,其中Adams/Controls模塊是一個接口模塊,它將View模塊中的三維模型信息轉換為Simulink可以識別的模型信息并導入,而Adams/Solver模塊則是用來求解計算運動方程,將計算得到的結果輸入到Controls模塊中。然后作為輸出信號進入控制系統,經過Simulink處理后,將得到的數據作為輸入信號導入Adams模型中。反復重復,直到仿真結束。若要觀察仿真結果,則需要通過Adams/PostProcessor模塊將仿真結果以圖像或者動畫的形式顯示[7]。簡單來說,聯合仿真就是將Adams的輸出狀態量作為Simulink的輸入狀態量,將Simulink的輸出狀態量作為Adams的輸入狀態量,構成一個閉環控制系統,實現Adams與Simulink的交互運行。這樣的好處是不僅可以提高輸入信號的精確度,還可以降低對系統變化的敏感度,并且減小非線性對整個系統的影響。聯合仿真原理如圖2所示。

圖2 聯合仿真原理
將空間中的點(500,300,500)定為目標位置進行聯合仿真,對建立好的機械臂模型進行參數化建模,由于模型已經設定好基本參數,故可以直接創建狀態變量。
需要用到的包括位移函數與速度函數,它們的調用格式分別是:
位移函數DX(Y/Z)(To Marker,From Marker,Along Marker),其中的To Marker表示“到坐標系”,From Marker表示“從坐標系”,Along Marker表示“參考坐標系”,若不指定參考坐標系,那么就會默認使用全局坐標系。
速度函數WX(Y/Z)(To Marker,From Marker,About Marker),其中的To Marker和From Marker與位移函數的表達一樣,About Marker則是表示“參考坐標系”,若不指定參考坐標系,同樣地就會默認使用全局坐標系。
根據所述的函數調用方式,依次設置每個關節的角速度狀態變量(V_1~V_6)以及目標點位置狀態變量(D_X、D_Y、D_Z),然后定義輸入輸出變量,如表1和表2所示。

表1 定義輸入變量 單位:rad/s

表2 定義輸出變量 單位:mm
其中輸出變量4-6是為了實時跟蹤末端執行器的位置。定義完輸入和輸出變量之后,輸出用作接口的.m文件。

圖3 輸入輸出信息
在MATLAB命令行窗口輸入Controls_P_01運行,出現圖3所示信息。可以看到定義了6個輸入和6個輸出,說明接口信息沒有問題。然后建立該六自由度串聯機械臂反饋控制系統,如圖4所示,設置仿真時間為20s,規定0.005s進行一次數據的交換。

圖4 機械臂反饋控制系統
以同樣的方式建立4個反饋控制系統,然后編寫Matlab程序對這些模塊進行統一調用。
反饋控制系統建立完成之后,運行仿真,在每一次數據交換時自動輸出機械臂當前狀態下末端執行器中心點此時位置的三維坐標,并將4個反饋控制系統輸出的實際到達位置與理論位置進行對比,篩選出誤差最小的兩組路徑。
確定誤差最小的兩組路徑后,打開Adams的后處理模塊,分別將這兩組路徑的仿真信息導入,查看具體的仿真運動過程。圖5所示為第1組路徑,圖6所示為第2組路徑。
將圖5與圖6進行對比,可以看出是兩種不同的運動路徑。


圖5 第1組仿真運動過程

圖6 第2組仿真運動過程
分別輸出兩組路徑下機械臂末端執行器中心點MARKER_14的坐標變化圖,如圖7和圖8所示。同時,輸出Simulink中得到的在兩種路徑下該機械臂末端執行器中心點的坐標變化曲線以及仿真結束后中心點的坐標,如圖9和圖10所示。
將圖7與圖8、圖9與圖10分別進行對比,可以看出在兩種路徑下Simulink中末端點的坐標變化與Adams仿真過程的坐標變化是一樣的,聯合仿真成功,并且數據在交換的過程中沒有丟失。然后輸出兩種路徑下各驅動電機的力矩曲線,如圖11和圖12所示(本刊黑白印刷,相關疑問咨詢作者)。

圖7 Adams中第1組路徑末端點的坐標變化

圖9 Adams中第2組路徑末端點的坐標變化

圖10 Simulink中第2組路徑末端點的坐標變化

圖11 第1組路徑驅動電機力矩

圖12 第2組路徑驅動電機力矩
對于誤差最小的這兩條路徑,對比它們驅動電機的最大力矩可以發現,第1組路徑所用的最大力矩明顯比第2組大,所以選擇第2組路徑作為最優路徑。至此,得到了一條在運動誤差較小的情況下,驅動力矩最小的最優路徑。
本文主要研究機械臂的路徑規劃問題,希望在眾多可行路徑中找到一條最優路徑,故利用Adams與Simulink的聯合仿真對各種可行路徑進行篩選。首先對機械臂進行參數化建模,確定輸入與輸出狀態變量,然后在Simulink中建立反饋控制系統,將每組數據得到的末端點坐標與預期坐標進行對比,選擇誤差最小的兩組數據作為待選路徑并輸出,然后將這兩組數據的仿真信息導入Adams的后處理模塊中,再輸出兩種路徑下驅動電機的力矩。通過對比最大力矩可以發現,第2組路徑所用力矩較小,所以可以確定此路徑是眾多路徑中誤差較小、所用驅動力矩最小的最優路徑。