崔玉霞,段奕林
(青島科技大學(xué) 機(jī)電工程學(xué)院,山東 青島 266061)
對(duì)于給定的一個(gè)目標(biāo)任務(wù),機(jī)械臂會(huì)有多種可行方式完成,即多種運(yùn)動(dòng)路徑,但機(jī)械臂運(yùn)行只能有一條確定的路徑,所以需要在這些可行的路徑中選擇一條最優(yōu)的路徑。由于得到每一種可行路徑都是由機(jī)械臂正逆運(yùn)動(dòng)學(xué)推導(dǎo)出來的,所以會(huì)存在一些微小的計(jì)算誤差,最終導(dǎo)致機(jī)械臂實(shí)際到達(dá)的位置與理論計(jì)算的位置不太吻合。為了得到一條誤差較小的路徑,提高機(jī)械臂精度,可以通過Adams與Simulink的聯(lián)合仿真找出誤差最小的一組路徑。
李白雅等人使用4-3-4多項(xiàng)式來對(duì)機(jī)械臂的運(yùn)動(dòng)路徑進(jìn)行規(guī)劃,再基于粒子群算法對(duì)該路徑進(jìn)行優(yōu)化,綜合考慮了多種指標(biāo),包括時(shí)間、能量等[1]。游瑋等人在考慮了動(dòng)力學(xué)和運(yùn)動(dòng)學(xué)之后,使用改進(jìn)的樣條插值函數(shù)對(duì)運(yùn)動(dòng)路徑進(jìn)行規(guī)劃,再以時(shí)間和能耗為目標(biāo),使用多目標(biāo)遺傳算法對(duì)得到的路徑進(jìn)行優(yōu)化[2]。ZANCHETTIN A M等人提出添加魯棒約束對(duì)軌跡進(jìn)行規(guī)劃,將傳統(tǒng)的軌跡生成方法和基于控制策略的優(yōu)化方法綜合起來[3]。ABE A希望通過尋找最小能量來規(guī)劃?rùn)C(jī)械臂的運(yùn)動(dòng)軌跡,將驅(qū)動(dòng)機(jī)械臂運(yùn)動(dòng)所耗費(fèi)的能量作為目標(biāo)函數(shù),并將產(chǎn)生的殘余振動(dòng)作為約束條件,采用帶精英策略的非支配排序遺傳算法來抑制能耗最優(yōu)的情況下產(chǎn)生的殘余振動(dòng)[4]。RUBIO F等人先規(guī)劃出了一條沒有障礙物存在的最優(yōu)時(shí)間運(yùn)動(dòng)軌跡,再考慮當(dāng)有障礙物存在的時(shí)候如何將此軌跡演化成為一個(gè)新的無碰撞軌跡,將軌跡離散化,逐漸逼近全局最優(yōu)解,并且考慮了機(jī)械臂的最大轉(zhuǎn)矩、能耗以及振動(dòng)的約束,完成軌跡優(yōu)化[5]。
本文將通過聯(lián)合仿真來得到一組誤差最小的最優(yōu)路徑,提高機(jī)械臂的精度,具體篩選流程如圖1所示。
圖1 最優(yōu)路徑篩選流程
目前,基本上每個(gè)學(xué)科領(lǐng)域都有自己的CAE分析手段,但當(dāng)涉及到多個(gè)相關(guān)學(xué)科領(lǐng)域的產(chǎn)品性能整體優(yōu)化時(shí),技術(shù)還不是很成熟。實(shí)際上,利用各個(gè)相關(guān)學(xué)科領(lǐng)域的技術(shù)特點(diǎn)來提升產(chǎn)品性能,實(shí)現(xiàn)各種仿真軟件的無縫鏈接和數(shù)據(jù)交換,進(jìn)而完成各相關(guān)學(xué)科的集成分析,以提升產(chǎn)品的整體性能,已經(jīng)成為了一種主流趨勢(shì),這樣既可以充分發(fā)揮不同領(lǐng)域仿真軟件的優(yōu)點(diǎn),又使求解結(jié)果更加真實(shí)可靠。
本文研究的聯(lián)合仿真用到了Simulink這一可視化仿真工具,它主要采用框圖設(shè)計(jì),可以實(shí)現(xiàn)動(dòng)態(tài)系統(tǒng)建模、仿真以及分析[6]。
聯(lián)合仿真的本質(zhì)是對(duì)不同的仿真軟件建立連接之后,把其中某一仿真軟件計(jì)算得到的結(jié)果作為輸入信號(hào)傳送到另一個(gè)仿真軟件的模型中。要傳送的計(jì)算結(jié)果可以是力、力矩、速度(角速度),位移(角位移)等,后一仿真軟件中的模型在這一輸入信號(hào)的驅(qū)動(dòng)下會(huì)產(chǎn)生與之相關(guān)的響應(yīng),再將這些響應(yīng)反饋給前者,最終實(shí)現(xiàn)數(shù)據(jù)在不同仿真軟件之間的雙向傳遞。
在進(jìn)行仿真之前要先建立合適的仿真環(huán)境,除了Adams/View用戶界面模塊之外,還需要用到Adams/Controls控制模塊以及Adams/Solver求解器模塊,其中Adams/Controls模塊是一個(gè)接口模塊,它將View模塊中的三維模型信息轉(zhuǎn)換為Simulink可以識(shí)別的模型信息并導(dǎo)入,而Adams/Solver模塊則是用來求解計(jì)算運(yùn)動(dòng)方程,將計(jì)算得到的結(jié)果輸入到Controls模塊中。然后作為輸出信號(hào)進(jìn)入控制系統(tǒng),經(jīng)過Simulink處理后,將得到的數(shù)據(jù)作為輸入信號(hào)導(dǎo)入Adams模型中。反復(fù)重復(fù),直到仿真結(jié)束。若要觀察仿真結(jié)果,則需要通過Adams/PostProcessor模塊將仿真結(jié)果以圖像或者動(dòng)畫的形式顯示[7]。簡(jiǎn)單來說,聯(lián)合仿真就是將Adams的輸出狀態(tài)量作為Simulink的輸入狀態(tài)量,將Simulink的輸出狀態(tài)量作為Adams的輸入狀態(tài)量,構(gòu)成一個(gè)閉環(huán)控制系統(tǒng),實(shí)現(xiàn)Adams與Simulink的交互運(yùn)行。這樣的好處是不僅可以提高輸入信號(hào)的精確度,還可以降低對(duì)系統(tǒng)變化的敏感度,并且減小非線性對(duì)整個(gè)系統(tǒng)的影響。聯(lián)合仿真原理如圖2所示。
圖2 聯(lián)合仿真原理
將空間中的點(diǎn)(500,300,500)定為目標(biāo)位置進(jìn)行聯(lián)合仿真,對(duì)建立好的機(jī)械臂模型進(jìn)行參數(shù)化建模,由于模型已經(jīng)設(shè)定好基本參數(shù),故可以直接創(chuàng)建狀態(tài)變量。
需要用到的包括位移函數(shù)與速度函數(shù),它們的調(diào)用格式分別是:
位移函數(shù)DX(Y/Z)(To Marker,F(xiàn)rom Marker,Along Marker),其中的To Marker表示“到坐標(biāo)系”,F(xiàn)rom Marker表示“從坐標(biāo)系”,Along Marker表示“參考坐標(biāo)系”,若不指定參考坐標(biāo)系,那么就會(huì)默認(rèn)使用全局坐標(biāo)系。
速度函數(shù)WX(Y/Z)(To Marker,F(xiàn)rom Marker,About Marker),其中的To Marker和From Marker與位移函數(shù)的表達(dá)一樣,About Marker則是表示“參考坐標(biāo)系”,若不指定參考坐標(biāo)系,同樣地就會(huì)默認(rèn)使用全局坐標(biāo)系。
根據(jù)所述的函數(shù)調(diào)用方式,依次設(shè)置每個(gè)關(guān)節(jié)的角速度狀態(tài)變量(V_1~V_6)以及目標(biāo)點(diǎn)位置狀態(tài)變量(D_X、D_Y、D_Z),然后定義輸入輸出變量,如表1和表2所示。
表1 定義輸入變量 單位:rad/s
表2 定義輸出變量 單位:mm
其中輸出變量4-6是為了實(shí)時(shí)跟蹤末端執(zhí)行器的位置。定義完輸入和輸出變量之后,輸出用作接口的.m文件。
圖3 輸入輸出信息
在MATLAB命令行窗口輸入Controls_P_01運(yùn)行,出現(xiàn)圖3所示信息。可以看到定義了6個(gè)輸入和6個(gè)輸出,說明接口信息沒有問題。然后建立該六自由度串聯(lián)機(jī)械臂反饋控制系統(tǒng),如圖4所示,設(shè)置仿真時(shí)間為20s,規(guī)定0.005s進(jìn)行一次數(shù)據(jù)的交換。
圖4 機(jī)械臂反饋控制系統(tǒng)
以同樣的方式建立4個(gè)反饋控制系統(tǒng),然后編寫Matlab程序?qū)@些模塊進(jìn)行統(tǒng)一調(diào)用。
反饋控制系統(tǒng)建立完成之后,運(yùn)行仿真,在每一次數(shù)據(jù)交換時(shí)自動(dòng)輸出機(jī)械臂當(dāng)前狀態(tài)下末端執(zhí)行器中心點(diǎn)此時(shí)位置的三維坐標(biāo),并將4個(gè)反饋控制系統(tǒng)輸出的實(shí)際到達(dá)位置與理論位置進(jìn)行對(duì)比,篩選出誤差最小的兩組路徑。
確定誤差最小的兩組路徑后,打開Adams的后處理模塊,分別將這兩組路徑的仿真信息導(dǎo)入,查看具體的仿真運(yùn)動(dòng)過程。圖5所示為第1組路徑,圖6所示為第2組路徑。
將圖5與圖6進(jìn)行對(duì)比,可以看出是兩種不同的運(yùn)動(dòng)路徑。
圖5 第1組仿真運(yùn)動(dòng)過程
圖6 第2組仿真運(yùn)動(dòng)過程
分別輸出兩組路徑下機(jī)械臂末端執(zhí)行器中心點(diǎn)MARKER_14的坐標(biāo)變化圖,如圖7和圖8所示。同時(shí),輸出Simulink中得到的在兩種路徑下該機(jī)械臂末端執(zhí)行器中心點(diǎn)的坐標(biāo)變化曲線以及仿真結(jié)束后中心點(diǎn)的坐標(biāo),如圖9和圖10所示。
將圖7與圖8、圖9與圖10分別進(jìn)行對(duì)比,可以看出在兩種路徑下Simulink中末端點(diǎn)的坐標(biāo)變化與Adams仿真過程的坐標(biāo)變化是一樣的,聯(lián)合仿真成功,并且數(shù)據(jù)在交換的過程中沒有丟失。然后輸出兩種路徑下各驅(qū)動(dòng)電機(jī)的力矩曲線,如圖11和圖12所示(本刊黑白印刷,相關(guān)疑問咨詢作者)。
圖7 Adams中第1組路徑末端點(diǎn)的坐標(biāo)變化
圖9 Adams中第2組路徑末端點(diǎn)的坐標(biāo)變化
圖10 Simulink中第2組路徑末端點(diǎn)的坐標(biāo)變化
圖11 第1組路徑驅(qū)動(dòng)電機(jī)力矩
圖12 第2組路徑驅(qū)動(dòng)電機(jī)力矩
對(duì)于誤差最小的這兩條路徑,對(duì)比它們驅(qū)動(dòng)電機(jī)的最大力矩可以發(fā)現(xiàn),第1組路徑所用的最大力矩明顯比第2組大,所以選擇第2組路徑作為最優(yōu)路徑。至此,得到了一條在運(yùn)動(dòng)誤差較小的情況下,驅(qū)動(dòng)力矩最小的最優(yōu)路徑。
本文主要研究機(jī)械臂的路徑規(guī)劃問題,希望在眾多可行路徑中找到一條最優(yōu)路徑,故利用Adams與Simulink的聯(lián)合仿真對(duì)各種可行路徑進(jìn)行篩選。首先對(duì)機(jī)械臂進(jìn)行參數(shù)化建模,確定輸入與輸出狀態(tài)變量,然后在Simulink中建立反饋控制系統(tǒng),將每組數(shù)據(jù)得到的末端點(diǎn)坐標(biāo)與預(yù)期坐標(biāo)進(jìn)行對(duì)比,選擇誤差最小的兩組數(shù)據(jù)作為待選路徑并輸出,然后將這兩組數(shù)據(jù)的仿真信息導(dǎo)入Adams的后處理模塊中,再輸出兩種路徑下驅(qū)動(dòng)電機(jī)的力矩。通過對(duì)比最大力矩可以發(fā)現(xiàn),第2組路徑所用力矩較小,所以可以確定此路徑是眾多路徑中誤差較小、所用驅(qū)動(dòng)力矩最小的最優(yōu)路徑。