前有一期我們學習了如何進行物理世界的簡單建模仿真,如彈球仿真 https://onebigsoap.blog.csdn.net/article/details/108503788 ,其中可以看到彈球的高度變化等資訊,雖然資料能看到小球的高度和速度變化,但是終究是不那么直觀的,因此接下來我打算進行一些Simulink影片的學習,畢竟很多時候需要影片來演示仿真結果,這一期我們先來試試為彈球仿真做一個影片來制作一個簡單影片演示,
模型建立
這里就是彈球仿真的模型簡單描述:

這里我們主要需要使用Simulink? 3D Animation?工具箱中的各種模塊,

彈球仿真屬于比較簡單的模型,這里我們只需要使用一個VR Sink模塊,創建VR Sink模塊后,打開它會出現如下對話框,點擊New創建我們的模型,或者是Browse讀取已有的模型,

點擊New后會出現一個編輯器,然后點擊file,從已有模板創建,這里我們來從已有的模板上創建我們的影片模型,demo中有個小球的模型可以參考,

創建好的模型如下,模板做的比較完整,這里需要改動的不多,

影片模型保存后,回到VR Sink對話框,可以看到右邊多出了一些可選的引數,這里我理解center為小球中心因此Position應該輸出到這個引數吧,先設定center為輸入介面(后面發現是不對的,后面有演示):

隨后把此前創建的彈球仿真模型復制粘貼到目前這個模型中,通過VR Signal Expander將我們一維的Position引數轉化為一個三維的引數輸出到影片模型中,

由于三維模型的左邊是xzy,因此輸出寬度是3,position為z引數,因此輸出位數為2,

模型除錯
設定好后我們就可以仿真看看效果了,仿真看看:

可以看到Position的輸出沒問題,但是小球怎么是倒著跳的?通過多輪嘗試,發現可作為輸入介面的除了center,還有個translation(平移),點選他替換center作為介面再仿真看看:


這回方向是正確了,但是小球的落點好像沒有很好的落到設定的地面上,應該是兩者的相對位置設定有問題,這里回到影片模型編輯器,發現是初始位置設定有誤,重新設定小球初始位置為10,再次仿真:


可以看到小球總是穿過了地面一半,猜測是因為初始位置未考慮到小球本身的直徑,因此這里把初始位置提高3,再次進行仿真:


總結
成功制作三維彈球仿真模型,但是還是有些問題:
1.小球為啥初始位置得提高3而不是1.5?(這里我是試出來的,看上一個仿真我還是認為平移引數應該操作的是小球中心而不是頂點,那么這樣應該只需要提高半徑1.5才對?)
后續會繼續進行Simulink 3D影片的學習,希望能用它來為更多物理建模提高趣味性和可視性,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/247703.html
標籤:區塊鏈
上一篇:外網訪問內網Redis資料庫
