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

關(guān)于Simscape的建模和仿真多域物理系統(tǒng)的分析和介紹

關(guān)于建模和仿真多域物理系統(tǒng)的分析和介紹

MATLAB Simulink中Simscape的使用手冊(cè)詳細(xì)說明

Simulink_simscape電源電路建模入門

Simscape搭建直流電源模型

各種Simscape模型介紹

基于Simscape Battery模型的電池系統(tǒng)建模與仿真

基于Simscape Driveline模型的傳動(dòng)系統(tǒng)建模與仿真

基于Simscape Fluids模型的環(huán)控系統(tǒng)建模與仿真

評(píng)論