MATLAB與ADAMS聯合模擬說明

前面很多文章是針對有限元計算這塊的,這次對聯合控制模擬進行一次說明。雖然網上有很多相關詳細的教程說明,但是仍然在自己具體操作中,很多人仍然遇到問題。

用MATLAB跟ADAMS做聯合模擬,可以用來進行pid控制,或者結合PLC輸入來驗證和調試程序等等。這些都需要明確輸入輸出,明確輸入輸出之後其他的都是軟體設置問題。

我採用ADAMS2013和MATLAB2013(a)進行聯調,具體的技術操作跟網上一樣。

1、在ADAMS中建立模型,設置好運動副。

2、根據模型建立輸入輸出狀態變數,就是在ADAMS中的element中建立x變數;通過VARVAL(...)函數對輸入變數處理,也就是說這個是變化的;然後在data element中設置對應的輸入輸出,如下圖紅框內容。

3、設置完成之後,在control模塊導出生成MATLAB的*.m文件備用。如下圖。

4、生成m文件之後,進入MATLAB。需要保證MATLAB的當前工作路徑與ADAMS生成的*.m文件路徑一致。設置一致之後運行adams_sys,然後彈出對應的ADAMS模塊。該模塊可以通過simulink與其它響應模塊進行輸入輸出的建模。

至此,需要注意幾點:

a)設置*.m文件時應該選擇Fortran語言,不然容易出問題。

b)輸入狀態變數值默認取0就行F(t=0)=0。

c)利用好VARVAL()函數。

5、在simulink中,對ADAMS_sub設置如下。選擇求解語言,這個應該是你再ADAMS的solver中設置的那個C++。設置通訊和交互方式,因為是一台電腦設置PIPE通訊方式,實時交互,就是運行simulink會啟動ADAMS實時模擬。還需要設置模擬通訊時間(communication interval),這個值越小那麼模擬時間會越長,也就是ADAMS與MATLAB之間數據傳遞時間越慢,但是模擬輸出的曲線越平滑精確。

6、在模擬結束之後,會有*.res文件,可以打開剛剛建立的ADAMS模型,通過import導入這個res文件,則可以再ADAMS中復現模擬,並在後處理輸出數據和分析處理。

至此就完成了整個聯合模擬。當然上述內容都比較簡單,在網上也有很多更詳細教程,但是對初入學習者來說能夠很好的入門。另外因為不同人採用的模擬軟體版本不一樣,所以如果你不成功不一定是你弄錯了,很可能是軟體匹配的問題。

對於大家遇到的很多問題,如果在國內的論壇無法得到及時解答,可以考慮到ADAMS官網提問,上面很多專業工程師和技術支持工程師能很好地快速給出解答,供參考MSC.ADAMS Discussion Community: Viewing list of forums。

簡單一篇聯合模擬內容,祝各位周末愉快~


推薦閱讀:

Adams非線性襯套定義方法
Adams安裝經歷

TAG:Adams | 计算机辅助工程CAE | 有限元分析FEA |