MATLAB/Simscape在機械手仿真教學的應用

時間:2022-07-28 10:59:33

導語:MATLAB/Simscape在機械手仿真教學的應用一文來源于網友上傳,不代表本站觀點,若需要原創文章可咨詢客服老師,歡迎參考。

MATLAB/Simscape在機械手仿真教學的應用

摘要:針對機械手教學過程中的動力學問題,以一個三桿機械手為例,利用Simscape模塊庫進行仿真教學建模,并詳細介紹其基本組成模塊,根據機械手的結構簡圖可直接建立物理仿真模型,通過仿真結果可直接觀察到各桿臂的運動軌跡及各關節的運動參數。

關鍵詞matlab;simscape機械手;仿真試驗

機械手是自動化生產過程中逐漸出現的一種新型工業設備,隨著《中國制造2025》的提出,工業機械手成為智能制造必不可少的設備,而社會上操作維護機械手的技術人員相對緊缺,故各高校紛紛開設機器人相關課程[1]。機械手的運動軌跡規劃和控制策略研究是機器人課程教學中的重要環節,通常利用公式推導、求解微分方程以及畫圖等方法對其進行求解,過程較為煩瑣且容易出錯,不利于學生理解,所以可將計算機仿真技術應用在機械手教學上[2]。隨著科學技術和教育現代化的快速發展,計算機仿真模擬教學以其效率高、互動性強等特點越來越受到國內高校的重視[3]。本文以三桿機械手為例,介紹使用MATLAB/Simulink中Simscape下的Multibody子模塊庫建立其仿真教學模型的過程。Simulink是MATLAB最重要的仿真工具之一,提供了可視化的人機交互環境,仿真模型由方框圖表示,與傳統的仿真軟件用微分方程和差分方程相比,具有更直觀、方便、靈活的特點,能夠更好地幫助學生理解問題,提高課堂效率[4-5]。

1機械手結構

機械手結構一般由多個桿件通過鉸鏈連接起來。如圖1所示一個三桿機械手,設A點為坐標原點,AB、BC和CD桿長度為l1=l2=l3,初始位置如圖中所示,BC桿與Y軸的夾角a=45°。假設AB、BC和CD桿的質量均勻分布,可求得B點的坐標為(0,l1,0),AB桿的重心坐標為(0,l1/2,0)。同理,C端坐標為(l1sina,l1+l2cosa,0),BC桿重心坐標為(l2sina/2,l1+l2cosa/2,0),D端坐標為(l2sina+l3,l1+l2cosa,0),CD桿重心坐標為(l2sina+l3/2,l1+l2cosa,0)。

2物理仿真模型的建立

現利用Simscape工具箱下的多體結構模塊Multibody建立教學仿真模型。如圖2所示,Ground模塊、BodyAB模塊、BodyBC模塊和BodyCD模塊分別代表地、連桿AB、連桿BC和連桿CD,它們之間分別通過鉸鏈模塊RevoluteA,RevoluteB和RevoluteC連接,各個關節通過FromWorkspace模塊和JointActuator模塊提供驅動力。另外,為了得到各個關節的運動參數,在每個鉸鏈模塊處都設置了關節傳感器模塊JointSensor,由此可測得每個關節處的速度、加速度等參數,并通過示波器模塊Scope顯示出來。仿真模型模塊介紹如下。

2.1基本組成模塊

Ground模塊表示絕對坐標系中的靜止地面點,將其連接到關節會阻止該關節的一側移動,每個有效的模型必須至少有一個Ground模塊,且必須將其中一個連接到MachineEnvironment模塊。Body模塊表示具有可以自定義屬性的剛體,必須定義的屬性包括剛體的端點坐標和重心坐標等,還可改變顯示剛體的幾何顏色信息。如圖3所示,在屬性框內分別輸入各桿的端點及其重心的坐標,由于各點坐標都是絕對坐標,故均選擇“world”選項即可。Revolute模塊可使兩個物體圍繞之間的軸進行旋轉,有單個旋轉自由度,旋轉方向符合右手法則。旋轉關節是Multibody的原始關節之一,必須將關節模塊連接到兩個且僅兩個Body塊,即基座和從動塊。在參數設置界面將Numberofsensor/actuatorports設置為2,則會多出兩個接口用來連接JointActuator和JointSensor模塊。

2.2驅動和傳感器模塊

JointActuator模塊可以把與時間相關的力、扭矩或運動輸入關節,兩個物體之間的連接表示物體之間的相對自由度。若運動是平移的,則該模塊需要輸入位置、速度和加速度信號;若運動是旋轉的,則該模塊需要輸入角度、角速度和角加速度信號。JointSensor模塊可用來測量關節處指定參考坐標系中沿某一旋轉軸(或關于球形單元的樞軸點)的運動,包括關節塊中關節單元的位置、速度或加速度,還可測量接頭上的反作用力和扭矩等。在每個Revolute模塊處都連接一個JointSensor模塊,用于監測機械手運動過程中各個關節的運動參數。BodySensor模塊用來監測剛體塊的運動,將BodySensor連接到想要監測的Body模塊上,可以測量該Body模塊相對于原點的運動位移、運動方向、速度和加速度大小等運動參數。本文將BodySensor模塊連接到D端,用于監測機械手執行端的運動軌跡。

2.3輸入和輸出模塊

圖5關節A角度變化曲線圖5關節A角度變化曲線圖6關節A角速度變化曲線圖6關節A角速度變化曲線圖7D端位移變化曲線圖7D端位移變化曲線FromWorkspace模塊可以從MATLAB的工作空間內讀取信號數據并將其輸入模型中,采用關節空間三次多項式軌跡規劃法,公式如下:θ(t)=c0+c1t+c2t2+c3t3根據已知的各關節起始點和終止點的位置和角度,求出三次多項式軌跡函數的四個系數[6]。Scope模塊可將模擬過程中所監測的連續或離散信號顯示出來,支持Simulink所有數據類型,維度包括標量、一維(矢量)、二維(矩陣)和多維,可根據信號數量自動調節多通道顯示。需要注意的是,當連接到一個恒定信號時,Scope模塊可能顯示一個單點。在每個JointSensor模塊后都連接一個Scope模塊,用于顯示機械手姿態變化時各關節的運動參數。

3仿真試驗結果

為得到仿真效果,需設置Env屬性中的Visua-lization(可視化)選項,在Openconfigurationparameter中選擇Animatemachineduringsimu-lation選項,得到仿真效果如圖4所示。運行后雙擊Scope模塊可查看機械手每個關節處所測得的速度、加速度、角加速度等運動參數,如圖5和圖6分別表示關節A處旋轉角度和角速度隨時間變化的曲線,可設置JointSensor模塊選擇測量其他運動參數并得到相應的曲線。圖7為BodySensor模塊測得的機械手執行端D的運動位移變化曲線。

4結論

針對MATLAB/Simscape工具箱,介紹了Multi-body模塊庫的基本組成模塊,并介紹了利用模塊庫建立機械手物理仿真模型進行動力學分析的仿真教學。與傳統的圖解法相比,此方法簡單有效,不需要進行復雜公式求解,就可以很直觀地觀察到機構的運動狀況,并得出相關的運動參數,還可以通過改變不同的仿真參數,得到不同類型的運動效果,形象地向學生展示出機械手的運動軌跡和各關節運動參數,大大提高了教學質量。

參考文獻

[1]楊波.基于MELFA_Works的三菱機械手在仿真教學的應用[J].自動化應用,2018(11):69-70.

[2]王胤,楊慶.仿真教學系統在專業課程教學中的應用與探索[J].教育現代化,2019(61):165-169.

[3]趙海濱,劉沖,陸志國,等.MATLAB_Simulink軟件在機器人實驗教學中的應用[J].中國教育技術裝備,2018(12):125-126,131.

[4]高勝靈,胡松啟.基于Matlab/Simulink的導彈六自度彈道仿真系統設計[J].科學技術與工程,2011(1):29-34.

[5]閆小軍,陳夏玲.例談Simulink在物理教學中的應用[J].中國教育技術裝備,2019(3):48-51.

[6]李建剛,尹文慶,胡飛,等.基于MATLAB/Simulink的取苗機械臂運動軌跡仿真[J].中國制造業信息化,2009(15):27-29,34.

作者:秦志英 趙季福 趙月靜 路子安 王偉