為什么有物理建模
對于復雜系統來說,搭建閉環系統模型是控制開發過程中不可缺少的一環,它不僅能幫助我們驗證控制算法還能進行系統級性能分析與優化。模型貫穿桌面仿真到實時仿真,幫助我們通過各種手段的仿真測試盡早的發現集成問題。
Simulink 作為嵌入式控制算法開發工具已經廣泛的應用于汽車、航空航天、工業自動化、農業機械等等各個行業,也成為各大高校理工科專業同學所熟知的科研工具之一。
Simulink 作為通用的數學建模工具,早期也廣泛的被用于搭建被控對象數學方程。它提供了一個交互式圖形環境和一套豐富的模塊庫(很多公司也有積累多年的模型庫),允許用戶建立復雜的系統級模型。
但是隨著行業的發展,嵌入式控制器所面對的系統復雜度增加且靈活多變,手動推導復雜系統的耦合數學方程變得越來越復雜。
有時候,甚至無從下手。
Simulink 主要面向的是基于信號流的處理和系統級的仿真,非常適合于控制系統、數字信號處理、通訊系統等領域的建模。
然而,當我們從事機械、電氣、流體或熱系統的建模時,系統的物理行為及其互相之間的復雜相互作用往往是我們關注的焦點。這些系統的建模不僅僅是基于信號的處理,更多的是需要考慮能量的交換、物質的流動以及物理組件的動態行為。這就是 Physical Modeling 出現的原因。
對于不熟悉物理建模方法的朋友,可能有些困惑于它與我們所熟悉的 Simulink 建模工作有什么區別。
我用下面這個小動畫來簡要說明建模過程的區別。
如動畫所示,物理建模本質上是把基本元件模塊通過物理連線來復現系統拓撲結構。這里的物理連接沒有信號的方向問題,和真實系統一樣表示能量的交換。
相比之下,Simulink 建模通常需要推導系統的耦合數學方程組,用 Simulink 模塊連接來表達方程組的計算過程。這種傳統的數學建模手段,它的信號線表征數據流的方向,建模過程中需要嚴格配置信號的方向/正負,否則會出現計算錯誤。
當系統結構發生變化時,我們需要謹慎考慮系統數學方程之間的變量關系,保證數學上的完整性,并用 Simulink 計算模塊表達出來。
而對于 Simscape 這類物理建模工具來說,我們只需要將原有的單質量彈簧阻尼系統復用,并如同真實系統一樣連接起來,得到雙質量彈簧阻尼系統,而并不用考慮信號的方向問題。如下方動畫所示。
總之Physical Modeling之所以出現,主要是因為以下幾個原因:
面向物理系統的建模需求:對于涉及機械、電氣、流體和熱等物理過程的系統,Physical Modeling 提供了一種更直觀、符合工程師思維習慣的建模方式。
復雜系統的多物理場交互:在許多應用場景中,系統的行為受到多個物理領域相互作用的影響。Physical Modeling 可以更自然地描述這些相互作用。
提高建模效率:通過使用預定義的物理組件和庫,工程師可以快速搭建復雜的物理系統模型,而不需要從零開始定義所有的數學方程。
便于理解和交流:基于組件的模型更容易被非專業人士理解,有助于跨學科團隊之間的溝通和合作。
因此,盡管基于信號流 Simulink 建模方式已經非常強大和靈活,但針對特定類型的物理系統建模和分析,Physical Modeling 提供了一種更加直觀和高效的解決方案。
Simscape 前世今生
隨著工業領域系統建模仿真需求的增加,物理建模方法論也衍生出各種開源以及商業化軟件。
MathWorks 最早于 1998 年就提供了專用于電路/電網系統建模的 SimPowerSystem(后并入 Simscape Electrical)。
預測到未來多物理域復雜系統集成的大趨勢,MathWorks 又于 2007a 推出了以物理建模方法(physical modeling)為基礎的 Simscape,接著于 2008b 發布 Simscape language,至此將 Simscape 定位為一個開放的多物理域仿真平臺。
隨著時間的推移,MathWorks 逐步擴展了 Simscape 的功能,增加了多個領域的專業庫,除了前兩篇介紹過的 Battery 以及 Driveline,還有比如 Simscape Electrical(電氣系統)、Simscape Mechanics(實屬瞎說,沒有這個...)、Simscape Fluids(流體系統)和 Simscape Multibody(多體動力學系統)等。這些專業庫大大豐富了 Simscape 的應用范圍,使其能夠應對更加復雜的多物理場系統建模需求。
作為基礎平臺,Simscape本身除了提供求解器技術、代碼生成技術、模型的數據查看功能等等;同時Simscape也有一個基礎模塊庫,其中內置了常見的10種不同物理域(機械平動和轉動分屬不同的運動域),可以應用于各行各業,如下圖所示。
Simscape 特點
事實上除了本文介紹的 Simscape 之外,其它各種建模手段都有它們各自的特點。比如習慣于純代碼開發的工程師也可能依舊選擇編碼的方式來搭建模型,對于學生來說使用 Simulink 復現教科書各個方程能幫助學習和理解專業領域的基礎知識。
我們可以根據實際情況選擇合適的工具來解決自己的問題。
對于 Simscape 這類物理建模工具來說,它并不代表我們可以完全不懂相關的專業知識,它只是讓我們可以花更少的時間在元件以及系統方程組的推導上,更方便的將理論實現為可以運行的仿真模型,從而將更多的精力專注于系統分析與優化。
原理圖組裝式建模,自動構建方程組
集成于 MATLAB/Simulink
可以方便的模擬元件故障以便分析對系統的影響
Simscape 內置 DAEs 系統專用求解技術
開發人員需要購買所需的專有工具箱,而只是運行該模型不需要額外購買專用工具箱(只需要持有 Simscape)從而降低團隊工具軟件成本
Simscape 模型均支持 C 代碼生成,在缺乏物理原型的場景下亦能測試嵌入式軟件
Simscape 功能簡介
下面從建模, 仿真, 分析, 部署, 共享幾個方面進行簡要說明,并添加了一些有意思的新功能介紹。
a. 建模
庫模塊零部件特性方程內置于各個元件內部,由類似于 m 語言的 Simscape Language 定義,且 Foundation 庫元件的源碼都是可見的。我們也可以用同樣的方式來構建自己的元件以及元件庫。補充一句,原來用過 Simscape Language 的都知道,里面的查表函數支持到 2D,從 2024a 開始支持 N-D 查表,比如 3D,4D。
建模時將同種物理域端口相連構建系統拓撲網絡得到模型。
模塊之間的連接為物理連接,在模塊連接過程中不用考慮信號的進出方向。
最后系統方程組的推導以及求解則由求解器自動完成。
另外,庫模塊還內置故障模型,可以很方便設置、觸發和管理故障。
2024a 更新了一個小的顯示功能,所有 Simscape 模塊圖標都變成“透明”的了,能更好的和自定義背景板顏色融合。
b. 導入
模型還可以導入,比如導入 CAD 裝配體及其零件模型、SPICE 描述文件、流體屬性數據、有限元矩陣信息以及電機有限元磁鏈數據。這些內容在專門的工具箱章節再詳細介紹。
除了零部件之外,2024a 提供了一個圖片數據導入 app:Graph Importer tool,它可以從 PDF 格式的數據手冊中導入數據點。
c. 仿真求解
Simscape 求解器根據框圖模型自動推導系統方程組,并進行符號方程組的簡化,如模型降階/變量消除。我們可以通過 Statistic Viewer 來查看當前模型復雜度,對模型計算量有一個深入的了解。
我們搭建的任何模型都會從一個初始狀態開始。
而物理系統的初始狀態有其特殊性,即必須滿足物理約束。比如在同一個傳動鏈兩端的質量快的初始速度必須符合等效傳動比關系。
對于復雜系統,我們很難手動計算和設置每一個元件的初始速度、初始位移、初始壓力、初始壓力、初始電流等等。而 Simscape 求解器可以根據我們所設置的部分初始值以及優先級,來推算整個系統的初始狀態。我們可以通過 Variable Viewer 來查看初始化的結果。
除了微分方程之外,物理系統還時常包含代數方程部分,使得求解更為復雜。Simscape 提供針對 DAE(Differential-Algebraic Equation) 方程組的隱式求解器技術,可以更高效率的求解大部分模型,并可用于實時仿真比如 HIL 測試。
我們根據可以實際應用來配置合適的求解器。
2024a 新增了多線程編譯功能以減少 Simscape 模型編譯時間。它默認會打開,當然如果你為了比較不同模型之間的編譯時間,那么也可以把它關閉。
此外,近幾年的新版 Simscape 在大規模模型(Scalable Compilation)上了做了很多的工作,另外新的比如增量編譯(Incremental Compilation)、增量代碼生成(Incremental Code Generation)等等技術降低了 Simscape 模型的編譯時間以及代碼生成的時間。
結合增量代碼生成(Incremental Code Generation),增量編譯技術(Incremental Compilation) 核心原理是在初次編譯過程中,對每個可重用組件進行一次編譯,并保存編譯產物。當模型中存在重復的組件實例時,編譯器將重用這些已編譯的結果,而不是重新編譯。在隨后的編譯過程中,如果檢測到可重用組件未發生變化,編譯器將跳過這些組件的編譯,直接使用之前的編譯結果。
d. 分析
Simscape 模型也支持 Fast Restart 仿真模式,可以快速的運行多次仿真而只需要編譯初始化一次。
和普通的Simulink模型一樣,Simscape 的任意信號(包括傳感器測不到的元件內部信號)都可以記錄和圖示。
另外,三維機械系統 (Simscape Multibody) 的仿真結果還可以用動畫的形式更直觀的表現出來。
并且,所有分析任務都可以使用
MATLAB 來自動化及加速
e. 部署
Simscape 模型支持 C 代碼生成,且更新物理系統參數不需要重新生成代碼,以便我們將系統閉環仿真驗證擴展到 HIL 環節并測試不同的場景。
Simscape 讓我們的能:
更安全
更低成本的方式
分析系統
并測試更多樣的場景
不過其實 Simscape 模塊也支持 HDL Coder(SimscapeFPGAHIL_lib.slx),通常用在有高速開關的電子電氣模型里。
f. 共享
使模型發揮更大價值
作為模型開發者,我們也可以把 Simscape 子系統封裝構造自定義參數界面,放入零部件庫,以提高工作成果的復用性。
同時,也可以分享只讀模式并設置密碼,在需要的場合保護知識產權。
作為 Simscape 獨有的特點,它支持分享模式。
當我們開發的模型需要被大規模應用的時候,從節約軟件成本的角度,我們可以把模型導出為分享模式,模型的使用者只需要購買 Simscape 基礎工具箱,就可以仿真和運行我們所分享的包含 Simscape 其它系列工具箱如 Electrical、Multibody 等等的模型。
-
matlab
+關注
關注
187文章
2988瀏覽量
232244 -
仿真
+關注
關注
50文章
4182瀏覽量
134743 -
建模
+關注
關注
1文章
314瀏覽量
61178 -
Simulink
+關注
關注
22文章
537瀏覽量
63188
原文標題:物理建模 | 你所不知道的 Simscape
文章出處:【微信號:MATLAB,微信公眾號:MATLAB】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
如何使用Simscape Multibody的物理建模模塊來建立倒立擺模型?
Simscape搭建直流電源模型的方法
MathWorks在Simscape中更新的新功能的分析和介紹

關于Simscape的建模和仿真多域物理系統的分析和介紹

MATLAB Simulink中Simscape的使用手冊詳細說明

Simulink_simscape電源電路建模入門

Simscape搭建直流電源模型

各種Simscape模型介紹

基于Simscape Battery模型的電池系統建模與仿真

基于Simscape Driveline模型的傳動系統建模與仿真

基于Simscape Fluids模型的環控系統建模與仿真

評論