前面一期我們使用了Simulink進行了一次彈簧阻尼器+位置控制仿真,還記得這個圖么:

后面聯合仿真的環境配置好后,我在想,如何聯合使用AMESIM和SIMULINK比較科學,然后就想到,當時建立Simulink模型時,小球、彈簧阻尼器這些物體之間,根據help中所提供的物理關系:

來進行建模,加入擾動和外力控制,建立了模型中的Relationship模塊,如下圖:

么如果我不知道這種關系呢?這時候AMESIM就能派上用場啦,AMESIM可以很方便地對物理系統進行建模,即使我不知道他們的關系,然后我們可以像之前的聯合仿真一樣把建好的物理系統嵌入到Simulink模型中(取代下面藍色System區域內的模塊),下面就來試試吧,

Amesim物理模型建模
首先回到問題,這個物理模型內有一個彈簧阻尼器,一個小球,這里我們直接就可以在AMESIM 1D mechanical里面找到彈簧阻尼器這個模塊,小球這個物體沒有特殊的意義,這里可以用一個質量塊來代替,
另外,由于我們要施加給小球擾動和控制力去穩定小球到固定位置(上一期有講過),我們這里再安裝一個用于外力施加的信號元件和一個小球位置傳感器元件,連好后,將力控制信號F與位置傳感器信號Displacement連接到Simulink Interface上即可,

然后配置一下這些物理元件的自身屬性,如重量,硬度之類的,
如彈簧的k值與阻尼器的c值:

小球(質量塊)的質量與初始位置:

設定好各項物理引數,至此AMESIM部分的物理模型就建模完畢了,
Simulink建模
打開Matlab,添加進AMESIM介面模塊:

編譯好AMESIM物理模型,點擊介面模塊選擇剛編好的模型:

Simulink-Amesim 聯合仿真
點擊仿真就可以看看效果啦:

發生代數環問題,估計是反饋控制的信號出現了代數環問題,這里在反饋控制的力這里加上一個delay就好了(話說那原來的模型沒有加這個,是怎么解決的?):

打開AMESIM就可以看到仿真的效果啦,雖然好像波動有點大,但是最后還是控制在了目標位置x=0.5了:

也可以直接在Simulink里面觀測結果:

控制的效果挺差的,調整下試試:

這個模型挺敏感的,,,調慢點


這樣就太慢了,再調調看


快了許多,但是這個Delay帶來了控制的延遲,影響挺大的,
不知道這個怎么解呢,有沒有大佬能夠指教一下,,,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/61520.html
標籤:其他
上一篇:順序表的基本操作——插入、洗掉
下一篇:活
