經(jīng)驗之談:如何順利實現(xiàn)adams和simulink的聯(lián)合仿真?
瀏覽:347076
轉(zhuǎn)貼:來自仿真論壇
論壇中有關(guān)adams和simulink聯(lián)合仿真的帖子不少,部分是成功者的經(jīng)驗,多數(shù)是初學者的疑惑。怎么安裝和找到control模塊,怎么在control中生成必需的中間文件,為什么仿真會失敗?本人也曾對這些問題困惑過,經(jīng)過一番摸索,積累了一點經(jīng)驗,愿與大家商討。
對于第一個問題,我想就不必多說了。對于第二個問題可以參考鄭建榮的ADAMS虛擬樣機技術(shù)入門與提高第十三章機電一體化系統(tǒng)仿真部分,書中有兩個問題需要注意:(1)書中介紹的ADAMS版本好像是10.0的,對于使用12.0的有一些差異:在Plant Export設置中無法直接選擇輸入輸出變量control_torque、azimuth_position、rotor_velocity,它們分別由專門的宏tmp_MDI_PINPUT和tmp_MDI_POUTPUT表示。(2)天線仰角的方位角似乎應該是elevation_position,而不是azimuth_position,后者是天線支撐的轉(zhuǎn)角。其它按文中所述步驟進行,F(xiàn)ile Prefix欄可隨便寫,不必一定用ant_test,最后在ADAMS的當前目錄下生成四個文件:
ant_test.cmd
ant_test.adm
ant_test.acf
ant_test.m
第三個問題基本上是由于沒有正確設置路徑,找不到所需的文件造成的:~),這也說明了control模塊在設計時沒有很好地考慮健壯性問題。具體來說simulink在開始仿真時要找到以下這些文件:
1。上述生成的文件,主要是ant_test.m和ant_test.cmd,ant_test.m用于在simulink中對control模塊環(huán)境和一些參數(shù)進行初始化,它必須在仿真前執(zhí)行;ant_test.cmd是天線模型定義文件,由于這里ADAMS是作為simulink創(chuàng)建的一個子進程而被啟動的,它所需的模型文件名由simulink的調(diào)用參數(shù)傳過來的,所以simulink要能夠定位ant_test.cmd(我一開始把它放到adams當前目錄下,頻頻失敗)。
2。adams_plant.dll,它其實就是adams_sub的核心,ADAMS提供一個S函數(shù),用于adams和simulink聯(lián)合仿真的調(diào)度和通訊,如果simulink找不到它,則仿真就不能進行。adams_plant.dll位于\ADAMS12\controls下。
解決方法是在simulink中設置好上述文件所在的路徑,但一個更方便的方法是把它們都拷到matlab的當前工作目錄下,一般是\MATLAB6p1\work。經(jīng)過以上設置,應該不會再出現(xiàn)仿真失敗的對話框了吧。另外,如果因為一些原因仿真失敗,需重啟matlab,否則的話因為一些運行庫的錯誤信息還保留在系統(tǒng)中,即便改正了錯誤仿真也會失敗,只有重新啟動初始化這些庫。
我用的是adams12和matlab6.1,以前流傳它們之間存在不兼容的問題,其實都是上述原因造成的,不存在版本兼容的問題,adams和matlab都是成功的商業(yè)軟件,在發(fā)布前經(jīng)過了大量的測試,如果不兼容他們不會置若罔聞,現(xiàn)在好像還沒有他們的官方聲明吧
。
有個小小請求,在做RTW的時候需要用到adams_plant.obj,誰能找到提供給俺,則感激不盡,如果有其源代碼則更好了,這可是真正開啟adams和simulink聯(lián)合仿真的金鑰匙啊!
論壇中有關(guān)adams和simulink聯(lián)合仿真的帖子不少,部分是成功者的經(jīng)驗,多數(shù)是初學者的疑惑。怎么安裝和找到control模塊,怎么在control中生成必需的中間文件,為什么仿真會失敗?本人也曾對這些問題困惑過,經(jīng)過一番摸索,積累了一點經(jīng)驗,愿與大家商討。
對于第一個問題,我想就不必多說了。對于第二個問題可以參考鄭建榮的ADAMS虛擬樣機技術(shù)入門與提高第十三章機電一體化系統(tǒng)仿真部分,書中有兩個問題需要注意:(1)書中介紹的ADAMS版本好像是10.0的,對于使用12.0的有一些差異:在Plant Export設置中無法直接選擇輸入輸出變量control_torque、azimuth_position、rotor_velocity,它們分別由專門的宏tmp_MDI_PINPUT和tmp_MDI_POUTPUT表示。(2)天線仰角的方位角似乎應該是elevation_position,而不是azimuth_position,后者是天線支撐的轉(zhuǎn)角。其它按文中所述步驟進行,F(xiàn)ile Prefix欄可隨便寫,不必一定用ant_test,最后在ADAMS的當前目錄下生成四個文件:
ant_test.cmd
ant_test.adm
ant_test.acf
ant_test.m
第三個問題基本上是由于沒有正確設置路徑,找不到所需的文件造成的:~),這也說明了control模塊在設計時沒有很好地考慮健壯性問題。具體來說simulink在開始仿真時要找到以下這些文件:
1。上述生成的文件,主要是ant_test.m和ant_test.cmd,ant_test.m用于在simulink中對control模塊環(huán)境和一些參數(shù)進行初始化,它必須在仿真前執(zhí)行;ant_test.cmd是天線模型定義文件,由于這里ADAMS是作為simulink創(chuàng)建的一個子進程而被啟動的,它所需的模型文件名由simulink的調(diào)用參數(shù)傳過來的,所以simulink要能夠定位ant_test.cmd(我一開始把它放到adams當前目錄下,頻頻失敗)。
2。adams_plant.dll,它其實就是adams_sub的核心,ADAMS提供一個S函數(shù),用于adams和simulink聯(lián)合仿真的調(diào)度和通訊,如果simulink找不到它,則仿真就不能進行。adams_plant.dll位于\ADAMS12\controls下。
解決方法是在simulink中設置好上述文件所在的路徑,但一個更方便的方法是把它們都拷到matlab的當前工作目錄下,一般是\MATLAB6p1\work。經(jīng)過以上設置,應該不會再出現(xiàn)仿真失敗的對話框了吧。另外,如果因為一些原因仿真失敗,需重啟matlab,否則的話因為一些運行庫的錯誤信息還保留在系統(tǒng)中,即便改正了錯誤仿真也會失敗,只有重新啟動初始化這些庫。
我用的是adams12和matlab6.1,以前流傳它們之間存在不兼容的問題,其實都是上述原因造成的,不存在版本兼容的問題,adams和matlab都是成功的商業(yè)軟件,在發(fā)布前經(jīng)過了大量的測試,如果不兼容他們不會置若罔聞,現(xiàn)在好像還沒有他們的官方聲明吧
。有個小小請求,在做RTW的時候需要用到adams_plant.obj,誰能找到提供給俺,則感激不盡,如果有其源代碼則更好了,這可是真正開啟adams和simulink聯(lián)合仿真的金鑰匙啊!
技術(shù)鄰APP
工程師必備
工程師必備
- 項目客服
- 培訓客服
- 平臺客服
TOP




















