摘要:為了評估MapleSim建模與仿真軟件性能。該文簡要介紹了MapleSim及其特點并闡述了MapleSim進行建模分析的步驟。并實驗用MapleSim對一個機械系統(tǒng)和模擬電路信號產(chǎn)生電路建模仿真和分析,比較不同實驗情況結果和提取系統(tǒng)方程。結果表明MapleSim是一個優(yōu)秀的、直觀快捷的高性能多領域復雜系統(tǒng)物理建模仿真分析工具。實驗有指導意義。
關鍵詞:MapleSim;Maple;多領域;物理建模;仿真;Modelica
中圖分類號:TP391文獻標識碼:A文章編號:1009-3044(2009)36-10305-03
Multi-Domain Modeling Simulation and Analysis Using MapleSim
HE Zheng-da1, XU Mei2,YANG Fang1
(1.Department of Basic Sciences, China Pharmaceutical University, Nanjing 210009, China; 2.Jiangsu Chia Tal-tianqing Pharmaceutical Co Ltd, Nanjing 210038, China)
Abstract: In order to evaluate the performance of the physical modeling tool MapleSim software, the features and advantages of MapleSim and the implementation process of modeling, simulation and analysis Using MapleSim was introduced. Experiments on an mechanical system and an analog circuit system modeling were performed with different experiment conditions. And system equations wereretrieved from mechanical model. The results demonstrate that MapleSim is a leading multi-domain physical modeling and simulation tool for complex systems which can produce better, faster and high-precision models.
Key words: mapleSim; maple; multi-domain; physical modeling; simulation; modelica
1 MapleSim簡介
國際計算軟件巨頭Maplesoft現(xiàn)在聯(lián)合發(fā)布MapleSim和Maple。Maple集成強大的符號計算和高性能數(shù)值計算引擎,特別在符號計算方面具有絕對優(yōu)勢[1-3],覆蓋了幾乎所有的數(shù)學分支,如微積分、微分方程、特殊函數(shù)、線性代數(shù)、圖像聲音處理、統(tǒng)計、動力系統(tǒng)、等等[4-6]。MapleSim是創(chuàng)造性的基于Maple高級符號技術核心的高性能、多領域物理建模和仿真工具,能夠自動生成系統(tǒng)方程、模型簡化、參數(shù)管理等,有望成為系統(tǒng)建模和仿真的新標準。
MapleSim基于Maple。首先MapleSim采用物理建模技術構建系統(tǒng),這些模型具有內稟的動力學行為數(shù)學描述,直接映射真實的系統(tǒng)構件。然后MapleSim采用Maple高級符號技術自動生成系統(tǒng)方程并簡化產(chǎn)生復雜系統(tǒng)的最佳簡潔模型,利用Maple世界領先的高指數(shù)微分代數(shù)方程DAE求解器求解,能高速模擬仿真,得到精確結果。
MapleSim支持多領域物理建模和和仿真開發(fā)。MapleSim具有多領域豐富模型庫并可以用數(shù)學方程建立新模型。利用這些模型,可以在單一環(huán)境中將傳統(tǒng)的信號流與多個領域物理模型組件組合在一起,并建立符合邏輯的連接。簡單直觀完成各種領域系統(tǒng)級建模、分析和仿真,能快速對進行可行性分析和設計優(yōu)化,減少消耗在基于物理樣機試驗巨大時間和費用。
MapleSim可視化技術提供便捷。MapleSim通過圖形化設計環(huán)境,建立了系統(tǒng)模型方塊圖和它們之間的連接關系,就直接映射到實際的系統(tǒng)。此外引入了3D可視化工具和VR逼真動畫顯示,更直觀地洞察模型行為。
MapleSim具有強大的輔助工具。使用Maple技術文件環(huán)境和Maple中完整的數(shù)學功能交互式操作模型,完成系統(tǒng)/子系統(tǒng)方程提取、數(shù)據(jù)處理、優(yōu)化、靈敏度分析、Monte Carlo模擬等任務。可以創(chuàng)建定制組件和設計文檔,使用單一文件集成模型、相關設計和分析文件。
MapleSim支持與其它建模設計軟件的交互。MapleSim模型生成的代碼可被導出至實時或其他應用程序中。MapleSim Simulink Connector和MapleSim LabVIEW Connector工具箱支持與Simulink和Labview協(xié)同工作,整個代碼的生成和編譯都是自動完成的。提供 Simulink 輸入/輸出接口,可將MapleSim模型自動轉換為S-功能塊,并將其緊密地包括在Simulink圖表中,提高Simulink模型的模擬速度和精度。
2 MapleSim進行建模分析的步驟
下面闡述MapleSim進行建模仿真分析的步驟。
2.1 MapleSim模型構建系統(tǒng)
首先從MapleSim元件庫挑選或利用數(shù)學方程自建的元件,在工作區(qū)立元件間連接構建系統(tǒng)。元件庫中許多元件的模型方程是通過Modelica物理建模語言描述[7-9]。多體模型庫使用了特殊引擎,但也可以轉為Modelica。在建立的系統(tǒng)中還可以將多個元件定義為子系統(tǒng)。
2.2 仿真和可視化模型
仿真條件設置:為了觀察物理屬性的行為或響應,可以添加探針到連接線、端口、或模型元件。探針用來識別關聯(lián)連接端口的變量。在Inspector選項卡可以定義運行仿真的時間、求解器類型、求解器的其他參數(shù)值、仿真引擎、以及仿真結果圖形顯示設置與多體機械系統(tǒng)3-D可視化窗口??梢愿淖兂跏嫉奶结樆騾?shù)值,然后運行仿真比較結果。[10]
Maplesim仿真的內在處理機制:MapleSim 仿真引擎收集所有元件方程并替換參數(shù)值,系統(tǒng)表示為一組含有代數(shù)約束或離散事件的微分方程組。隨后進行方程組簡化,“Index Reduction”過程將盡可能地減少代數(shù)約束。其他一些符號簡化技術也將減少方程和變量的數(shù)量。簡化過程不會損失任何精度。簡化方程的初始條件也被計算。當所有這些預處理步驟完成后,數(shù)值求解過程開始。使用基于Rosenbrock 積分方法的默認Stiff求解器(適用于剛度系統(tǒng)),或者基于rkf45積分(適用于非剛度系統(tǒng))的高級微分代數(shù)方程求解器進行系統(tǒng)方程數(shù)值求解。在數(shù)值求解中(或積分)過程中遇到事件時,數(shù)值求解器就會停止,仿真引擎計算一個新的基于事件條件的系統(tǒng)方程配置。這一步包括重新計算新方程組的初始條件。然后求解器重新開始,繼續(xù)數(shù)值求解直至另一個事件觸發(fā)或者到達仿真終止時間。
仿真結果管理:仿真結束后可以用Stored Results面板瀏覽、保存、輸出、比較多個仿真的結果??梢暂敵龇抡鏀?shù)據(jù)為Excel(.xls)或逗號分隔值(.csv)文件。仿真結果包含相關的參數(shù)集、輸出圖形、過程信息、和3-D可視化窗口。
2.3 分析和操作模型
MapleSim創(chuàng)建系統(tǒng)模型后,然后可以打開Document Folder里面預置的工具模板在Maple中創(chuàng)建相應工作表中完成分析和操作任務。其中Code Generation Template轉換模型到C代碼,Data Generation Template 定義和生成一個使用在MapleSim中的數(shù)據(jù)文件,例如用于插值表的數(shù)據(jù)。Equation Analysis Template 從線性或非線性模型中提取方程。Linear System Equation Template 查看和分析線性系統(tǒng)的方程。Parameter Optimization Template 分析和編輯模型的參數(shù),查看可能的仿真結果。Sensitivity Analysis 完成參數(shù)的靈敏度分析。
3 用MapleSim實際建模分析
下面用進行一個機械系統(tǒng)和模擬電路系統(tǒng)進行MapleSim多領域建模仿真分析。
3.1 機械系統(tǒng)建模仿真
如圖所示的物體系中,勁度系數(shù)為k=30Nm-1的彈簧開始時處在原長L0=1m,定滑輪的半徑為R=1m,轉動慣量為J=10Kgm2,質量為m=1kg的物體從靜止開始下落,重力加速度取g=10Kgs-2,建模分析系統(tǒng)的運動情況和體系振動的固有頻率。
根據(jù)實際系統(tǒng)描述從MapleSim元件庫中選用元件建立系統(tǒng)模型。圖2中A部分為建立模型,其中IGRT1和IGRT2以及慣量I1構成定滑輪,Step1信號控制力信號FG構成重力,SM1為小物塊,S1是彈簧。按照實際系統(tǒng)設置好元件參數(shù)。
設置一個探針Probe1觀察彈簧長度Spring Length,實際上y=Spring Length-L0為小物體下降距離。Probe1也可設置觀察體系速度v和加速度a。此處省略不做。設定系統(tǒng)仿真時間tf=50s,使用Rosenbrock方法stiff solver DAE求解器,選擇自適應求解器確定取樣周期,積分步絕對和相對誤差限制為10-7。不使用外部C編譯器,仿真max steps為400000。仿真結束后,仿真數(shù)據(jù)可以輸出為excel文件,另外輸出彈簧長度圖形如圖3。
從圖3中可以看出體系做無能量損失簡諧振動,從輸出實驗數(shù)據(jù)知道彈簧最大長度為1.667米,小物體最大下降距離為0.667米。最大速度0.55ms-1,體系振動周期為3.82s,頻率為0.2618Hz。
采用圖2中B部分Spring Damper1替換A部分原系統(tǒng)中線性彈簧S1,可以得到有阻尼的情況下體系能量損失振蕩減弱的情況,彈簧長度圖形如圖4所示。其中Spring Damper1由一個k=30N/m線性彈簧和一個阻尼器組成。阻尼器阻尼系數(shù)為10Ns/m。
采用圖2中B部分脈沖信號P1替換A部分原系統(tǒng)中Step1,可以得到在周期性小策動力作用下下體系發(fā)生共振情況,彈簧長度圖形如圖5所示。其中脈沖信號P1設定信號脈寬取周期30%,周期為T=3.82s,正好等于前面測出的系統(tǒng)固有振動頻率,正好可以引起強烈共振。
3.2 機械系統(tǒng)模型方程提取
1) 從模型系統(tǒng)中提取方程和屬性:將圖2中A部分模型保存,然后插入一個MapleSim模型內嵌元件到Maple工作表中,在該元件中打開保存的模型。運行下列語句得到系統(tǒng)的方程并化簡,自動生成系統(tǒng)的動力學方程,此處省略列出。
reatart; with(MapleSim); with(DocumentTools);
SetProperty(\"Simulation0\",\"activesubsys\",\"\"): mysys := GetProperty(\"Simulation0\",'system'); OutDefault := GetEquations(mysys); eOut := GetEquations(mysys, simplify = tryhard); eOutParams := GetEquations(mysys, symbolicname = all);
2) 提取子系統(tǒng)動力方程:先使用Create Subsystem定義固定物F1、IGRT1、IGRT2、慣量I1、SM1小物塊、S1彈簧為一個子系統(tǒng)。然后用Document Folder里面預置的Equations工具模板在Maple里面打開系統(tǒng)模型,進行System Update后用Get Equations命令獲得該定義子系統(tǒng)動力學方程如下:
3.3 模擬電路系統(tǒng)建模和仿真
下面簡要敘述一個模擬信號產(chǎn)生電路的建模分析。該系統(tǒng)為將輸入方波信號轉換為三角波的電路。MapleSim建模如圖6所示。其中PV1為輸入方波信號,用探針Probe1采樣。理想運算放大器IOAP1輸出為三角波,用探針Probe2采樣。系統(tǒng)輸入與仿真輸出如圖7。
圖6 三角波形成電路系統(tǒng)建模 圖7 電路輸入輸出系統(tǒng)仿真
4 結論
本文闡述了MapleSim進行建模分析的步驟。并用MapleSim實現(xiàn)了對一個機械系統(tǒng)和模擬電路信號產(chǎn)生電路建模分析,結果表明不同情況下的仿真符合實際情況。實驗還用Maplesim提取系統(tǒng)動力學方程。實驗顯示MapleSim是一個優(yōu)秀的可以在單一的設計環(huán)境中實現(xiàn)多領域復雜系統(tǒng)建模和仿真工具,能夠便捷直觀完成各種系統(tǒng)的建模、仿真和分析。
參考文獻:
[1] 庫俊華,游林,王升國.Maple在橢圓曲線密碼體制中的應用[J].計算機工程,2007(06):98.
[2] 唐培海,張玉萍.應用Maple軟件分析帶電粒子在勻強正交電磁場中的運動[J].物理與工程,2009(02):33-34,48.
[3] 方志華,劉兆榮,白郁華,等.Maple在氣溶膠云下清除數(shù)值模擬中的應用[J].計算機與應用化學,2009(06):783-788.
[4] 曹瑋.Maple數(shù)學軟件包中的積分問題[J].數(shù)學的實踐與認識,2000(03):33.
[5] 鄭志剛,歐陽義芳,莊應烘.Maple在相圖計算中的新應用[J].中國測試技術,2005(05):103.
[6] 鐘凡,杜麗娜.應用Maple和Matlab進行生化工程建模實踐[J].計算機與應用化學,2003(03):277-290.
[7] 吳義忠,劉敏,陳立平.多領域物理系統(tǒng)混合建模平臺開發(fā)[J].計算機輔助設計與圖形學學報,2006(01):120.
[8] 吳民峰,吳義忠,周凡利,等.多領域建模語言Modelica類型解析研究與實現(xiàn)[J].計算機工程與應用,2006(25):23.
[9] 趙建軍,丁建完,周凡利,等.Modelica語言及其多領域統(tǒng)一建模與仿真機理[J].系統(tǒng)仿真學報,2006(S2):2.
[10] http://www.maplesoft.com/support/help/category.aspx?CID=1413.