Simscape Multibody 教程 —— 入門學習

轉載請註明出處,謝謝
原創做者:MingruiYU
原創連接:http://www.javashuo.com/article/p-vdrqibhy-ge.htmlhtml


寫在前面

本文要點:算法

  • Simscape Multibody 簡介
  • Simscape Multibody 入門學習的推薦學習材料和學習順序
  • 建模仿真過程當中的重要知識
    • 模型的參數設置(Model Workspaces)
    • 模型求解器(Solver)的選擇

對於MATLAB系列的全部產品,我的認爲最好的學習材料都是 MathWorks 公司提供的官方文檔,很是清晰,也很是詳盡。本文的大部份內容也都是基於官方文檔,我也極力推薦你們以閱讀官方文檔爲先(閱讀英文版更好)。但我的學習過程當中感受學習官方文檔可能存在的問題是:文檔特別多,不知道該從哪一個頁面入手,學習順序應該怎樣。因此在這裏,我會對我探索後以爲比較合適的閱讀學習順序進行梳理。編輯器

我開始學習使用Simscape Multibody的契機是最近要作一個關於線狀柔性體 (Deformable Linear Object) 操做控制的項目,須要首先對柔性體進行物理建模。物理建模首選固然是找一找有沒有現成的仿真平臺可使用,通過調研和查找以後,發如今 Simulink 環境中有一個叫做 Simscape 的模塊,其中的 Simscape Multibody 模塊彷佛能夠達成這個目的。因而開始學習 Simscape 和 Simscape Multibody,並探索如何使用它對線狀柔性體進行簡單的仿真。如今這個仿真的 demo 已經基本作出來了,如何對線狀柔性體進行仿真我將會在之後的文章中進行介紹,本文用來介紹一下如何入門 Simscape Multibody 模塊。ide

對於Simulink我就不過多介紹了,進入大學,必定會使用到 MATLAB ,也必定會據說過 Simulink。Simulink 是一個超級超級強大的仿真平臺,除了生孩子啥都能幹(笑)。對於 Simulink 的學習,首先建議閱讀 Simulink 官方文檔,另外若是想深刻學習 Simulink 做爲之後安身立命的傢伙事兒的話,能夠閱讀《Simulink仿真及代碼生成技術入門到精通》書籍。工具

Simscape Multibody 簡介

Simscape 是 Simulink 的一個模塊,而 Simscape Multibody 又是 Simscape 的一個模塊。其關係以下:(官方介紹)性能

  • Simulink:一個模塊圖環境,用於多域仿真以及基於模型的設計。它支持系統級設計、仿真、自動代碼生成以及嵌入式系統的連續測試和驗證。Simulink 提供圖形編輯器、可自定義的模塊庫以及求解器,可以進行動態系統建模和仿真。Simulink 與 MATLAB 相集成,這樣您不只可以在 Simulink 中將 MATLAB 算法融入模型,還能將仿真結果導出至 MATLAB 作進一步分析。
    • Simscape: 可以讓您在 Simulink 環境中迅速建立物理系統的模型。經過 Simscape,您能夠基於物理鏈接直接相連模塊框圖創建物理組件模型。經過將基礎組件依照原理圖裝配,爲電機、橋式整流器、液壓致動器和製冷系統等系統建模。Simscape 附加產品提供了更多複雜組件和分析功能。
      • Simscape Multibody: (前身爲 SimMechanics)提供了適用於 3D 機械系統(例如機器人、汽車懸架、建築設備和飛機起落架)的多體仿真環境。您可使用表示剛體、關節、約束、力元件和傳感器的模塊對多體系統進行建模。Simscape Multibody 會創建整個機械系統的運動方程並進行求解。您可將完整的 CAD 裝配件(包括質量、慣性、關節、約束和 3D 幾何結構)導入到模型。您可在自動生成的 3D 動畫中查看系統動態。Simscape Multibody 可幫助您開發控制系統並測試系統級性能。

簡言之,Simscape 是以很是直觀的形式對物理系統進行仿真的,而 Simscape Multibody 是其中專門用來對機械系統進行仿真。官方有一個視頻簡介,可讓你很直觀地瞭解 Simscape Multibody 的做用。我感受,它區別於 Simscape 基礎模塊的一個重要內容就是,它能夠在三維空間進行仿真,而且能夠給出渲染後的三維繫統。學習

注: 我如今使用的 MATLAB 版本是 R2019b(最新版),在我學習的過程當中發現,像 Simscape Multibody 這種比較新的工具模塊,更新是比較多的。我以前用的是 R2018a,發現其中不少內容和最新的官方文檔都不徹底同樣(例如選項的位置,機械部件的種類等)。因此,在你們學習的過程當中,很是建議將本身的 MATLAB 版本更新至與官方文檔一致。測試

Simscape Multibody 入門學習

那麼,如何來學習 Simscape Multibody 呢?我我的認爲,如下的入門學習流程是比較合適的:動畫

  1. 經過官方文檔中的例子初步瞭解 Simscape
  2. 經過官方文檔中的例子初步瞭解 Simscape Multibody
  3. (根據須要,閱讀其它的官方文檔)
  4. 經過官方提供的 examples 進行學習

經過例子初步瞭解 Simscape

既然 Simscape Multibody 是 Simscape 的一個子模塊,那固然要先了解一下 Simscape 了。建議經過官方文檔中的一個例子來了解:Essential Steps for Constructing a Physical Model。這個例子講了如何創建一個質點-彈簧-阻尼(Mass-Spring-Damper)系統,並對其進行 PID 控制。這個例子很是詳細,即便以前徹底沒有用過 Simulink,也能夠根據教程進行操做,很是適合用來入門,經過例子來對 Simscape 進行形象直觀的瞭解。ui

經過例子初步瞭解 Simscape Multibody

Simscape 基礎模塊大概瞭解一下就能夠了,下面直接進入對於 Simscape Multibody 的學習。仍是推薦經過官方文檔中的例子來了解:Getting Started with Simscape Multibody。這個例子分四步介紹瞭如何從零開始,創建一個單擺的仿真模型。

經過學習該示例教程,能夠簡單體會 Simscape Multibody 的思想,以及建模仿真的基本流程。之後遇到更復雜的模型,都是在這種簡單模型的基礎上,一點點疊加構成的。因此掌握好這個例子,就能夠爲以後學習更復雜的例子,打下很好的基礎。

注: 在跟隨該教程創建了一個單擺的仿真模型後,我建議,能夠直接在該模型的基礎上,本身動手實踐,將其升級爲一個雙擺模型,並進行仿真實驗。以此簡單檢驗本身的掌握程度,鍛鍊本身的操做水平。

(根據須要,閱讀其它的官方文檔)

除了 Getting Started 以外, Simscape Multibody 的官方文檔 還包括不少不少的內容。可是我我的感受,其它的內容比較細緻,也比較雜。按順序閱讀是不太現實的。建議等到須要用什麼功能、什麼模塊的時候,再按需求查閱,進行學習。在官方文檔頁面的右上角搜索欄,輸入須要搜索的內容,能夠很方便的檢索到相關的文檔。

經過官方提供的 examples 進行學習

官方文檔的閱讀是須要不斷進行的,但不動手實踐,沒有示例支持,學習官方文檔是艱澀的。Simscape Multibody 提供了不少個 Examples,我的感受,經過這些已創建好的模型進行學習,是特別直觀和有效的(就好像刷點題以後,對概念的理解會更加深刻)。

點進某一個模型後,有對這個模型的簡單介紹。再點擊頁面右上角View MATLAB Command圖標,會顯示該模型的命令,在MATLAB軟件的命令行窗口中輸入該命令,就能夠直接大概該模型的Simulink界面。

對官方模型的每個細節都好好研究一番,對創建本身的模型是很是有幫助的。同時,Examples 中的模型的複雜程度也是由簡入繁,適合按部就班的學習。後面的模型已經很複雜了,你們能夠根據本身的狀況,研究到本身以爲夠用了就能夠了。

自此,對於 Simscape Multibody 的入門學習基本就完成了。我學完這些內容大概用了兩天時間(由於在探索怎麼學,因此效率較低),相信你們的學習速度確定會快不少。

建模仿真過程當中的重要知識

下面記錄一些本身在學習建模仿真過程當中,以爲比較基礎也比較重要,有必要展開了詳細學習的內容。我也是剛剛開始探索和學習,這也是我掌握程度不斷提高的過程。

這些知識的列舉順序,大概就是我在學習和實踐中遇到這些問題的順序,因此對你們應該也有些參考價值。

依然是以官方文檔爲最高參考資料。

模型中的參數設置

模型中確定少不了參數,那麼怎麼對模型中的參數進行設置(或者說,模型中的參數是從哪裏讀取的)呢?

模型中的參數是存儲在 model workspaces 中的。就像 MATLAB 有工做區(Base Workspaces)同樣,每個模型也有本身的工做區。model workspaces 的相關介紹: (https://ww2.mathworks.cn/help/simulink/ug/using-model-workspaces.html?lang=en),頁面下方的 Related topics 中有更詳細的介紹。

關於如何更改 model workspaces 中存儲的 data,參考文檔:(https://ww2.mathworks.cn/help/simulink/ug/change-model-workspace-data.html?lang=en)。

求解器(Solver)的設置

系統的仿真,必然是須要微分方程的求解的。在 Simulink 中, 微分方程的求解是自動完成的,可是須要本身選擇合適的求解器(Solver),並設置合適的求解器參數。

關於如何選擇合適的求解器,參考文檔:(https://ww2.mathworks.cn/help/simulink/gui/solver.html)。

通常來講:

  1. 首先嚐試 ode45
  2. ode45 失敗或低效,則嘗試 ode15s(最適合剛性問題)
  3. ode15s 難以處理的問題,可嘗試 ode23t(容差較寬鬆的條件下,更高效)

持續學習和更新中 ……

相關文章
相關標籤/搜索