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