馬 軍
(中國藥科大學,江蘇 南京 210093)
在工科普通物理的教學中,經(jīng)典模型占據(jù)著及其重要的地位[1]。通過一個典型模型教會學生如何分析,如何求解;并從模型的演化過程中掌握其中有關的物理知識、概念和規(guī)律,最終達到舉一反三的效果。但是有相當多的模型,其求解的數(shù)學過程比較復雜,有的甚至超出了大學一年級學生所學的數(shù)學內(nèi)容,這就給教學帶來了一定的困難。隨著計算機的普及和計算機技術的發(fā)展,可以利用計算機對物理問題進行仿真,從而使學生對某一模型有形象直觀的了解,這樣有助于物理內(nèi)容的教學。
SystemModeler是Wolfram公司出品的物理建模與仿真軟件,并且能夠與Mathematica完美的連接,以實現(xiàn)集建模、仿真和分析為一體的集成化工作流程。SystemModeler是基于組件的拖放進行設計的,因此用其建模時只需用拖放操作即可,并用連線工具把組件鏈接起來表示物理連接,非常的方便和直觀。在現(xiàn)實世界中,系統(tǒng)很少局限在某一個單一的領域,而往往涉及到眾多領域,比如機械、電子和熱力學,甚至還可能有生物的生化過程,SystemModeler可以實現(xiàn)跨領域建模。
SystemModeler可包含來自任何領域的互相連接的組件的任何組合,這樣在仿真時,可以更貼近現(xiàn)實情況,有助于發(fā)現(xiàn)一些重要的效應。SystemModeler內(nèi)置了大量的標準模型庫有:生化途徑、電氣、電磁、機械、信號模塊等,這樣對于一般的系統(tǒng)仿真可以用內(nèi)置模塊快速的完成。而且SystemModeler可以實現(xiàn)可視化的3D動畫,比如機械組件可以在模擬結(jié)束時快速生成3D動畫。對于標準庫中沒有的模型,由于SystemModeler完全支持Modelica標準建模語言,所以可以用其進行建模,并且新建的模型可以和標準庫一樣反復使用;另外還可以利用第三方開發(fā)的用于專門領域的Modelica庫。
相對于其他的仿真軟件,SystemModeler有她的優(yōu)點。首先,相對于MapleSim和Simulink而言[2-4],SystemModeler在建模方式、內(nèi)置模型庫的數(shù)量、仿真求解的方式和可視化的實現(xiàn)等方面都更勝一籌;其次,在工作流程方面而言,SystemModeler執(zhí)行的 Modelica語言,利用其基于組件建模的優(yōu)勢,對組件中的流程進行建模。這比與基于模塊的建模方法相比更加方便和快捷;最后,SystemModeler可以充分的發(fā)揮出Modelica的優(yōu)勢,Modelica是一個專門為物理系統(tǒng)建模而設計的開放式標準語言[5-6]。它允許個人和團體有效協(xié)作,完成大型項目,并建立可重用的自定義組件和庫。關于SystemModelica和Modelica的進一步介紹可以參考相關網(wǎng)站[7-9]。下面將通過兩個例子來介紹SystemModeler的用法。
如圖1所示的RLC串聯(lián)電路,當開關撥到1或2位置時是電路充電或放電的暫態(tài)過程,要了解這個過程中的電流或者電容上的電壓變化需要解如下的二階線性非其次方程,其中q是電容上的電量。
圖1 RLC串聯(lián)電路
不解方程(1),定性的可以得到只要時間足夠的長,電容兩端的電壓必然是ε,但是如果用SystemModeleler,則可以快速的模擬得到電路暫態(tài)過程的特點。打開SystemModeler軟件,在軟件界面左側(cè)的Class窗口中,把所需要的組建從Library中拖到Component窗口中,然后利用連接線工具把各個組件連接起來;選擇不同的組件,在Parameter選項卡中設置各自的參數(shù),最后得到如圖2所示的情況。點擊工具欄上的Simulation Center按鈕,打開Simulation Center,在Experi ment Browser窗口中有parameter選項卡可以設置每次實驗時的參數(shù),plot選項卡中可以選擇對哪些參數(shù)進行繪圖。我們可以先假定L=1H,C=1F,然后改變電阻R,來考察電容兩端的電壓隨著時間是如何變化的,分別做四次實驗電阻R分別取0Ω、2Ω、20Ω和0.2Ω,仿真時間設為50s,最終可以得到如圖3所示的電容兩端電壓隨時間的變化。從圖3中可以看出,對于R=0Ω時,電路是無阻尼的自由震蕩;R=0.2Ω時,是阻尼振蕩。當然除了改變電阻外,我們可以改變電感L和電容C,可以做相應的實驗,方法類似。
圖2 RLC串聯(lián)電路的仿真
圖3 電容兩端的電壓
如果說上述RLC電路的模擬沒有充分體現(xiàn)出SystemModeler的優(yōu)勢,下面這個機械系統(tǒng)的仿真可以體現(xiàn)其優(yōu)勢。如圖4所示的實際機械系統(tǒng),長度為L1和L2的細桿兩端有兩個質(zhì)量分別為m1和m2的小球,兩小球用原長為l勁度系數(shù)k的彈簧連接起來,兩個單擺的距離為L=1m。其中細桿和彈簧不計質(zhì)量的。
圖4 耦合擺
根據(jù)實際的物理系統(tǒng),從Mechanics庫中選擇所需要需得組件,建立仿真模型,如圖5所示。其中bodyCylinder的轉(zhuǎn)動慣量設為0;badyShape的質(zhì)量設為1Kg和2Kg;阻尼器damp的阻尼常數(shù)設為1N·m·s/rad;彈簧的勁度系數(shù)為20N/m,原長為2m,彈簧質(zhì)量為零。
圖5 耦合擺的仿真模型
打開Simulation Center,在模擬開始前在variables選項卡中設置初始條件,如同4所示;settings選項卡中設置仿真的時間為15s。點擊工具欄上的仿真按鈕系統(tǒng)就開始仿真計算,仿真結(jié)果除了用plotting選項卡來作兩個單擺的擺角隨時間的變化外,還可把仿真數(shù)據(jù)導出為Excel或matlab等文件,再利用第三方軟件作圖。把耦合擺的仿真數(shù)據(jù)導出到Excel中,然后用origin軟件作出圖6。
如圖6中所示,圖6(A)和圖6(C)是兩個單擺角速度隨時間的變化;而圖6(B)和圖6(D)是單擺的角位移隨時間的變化,很明顯單個擺不再是做簡諧振動。這顯然要比解這這個耦合擺的動力學方要方便很多。另外點擊simulation Center工具欄上的動畫按鈕可以快速生成這個模型運動的動畫,圖7(A)和圖7(B)所示的是在0秒和5.97秒的情況。如果想使模型更接近實際,可以加上轉(zhuǎn)軸的摩擦、細桿的質(zhì)量和彈簧的質(zhì)量等。
圖6 角位移和角速度
圖7 耦合擺動畫5.97秒視圖
以上兩個例子簡要說明如何利用System-Modeler建模仿真,說明SystemModeler使用起來是方便和可靠的。利用SystemModeler還可以做靈敏度分析,以及其與mathematica結(jié)合使用,具體內(nèi)容可以參考Wolfram網(wǎng)站。在此感謝Wolfram公司提供的SystemModeler的試用。
[1]李元杰,湯正新.現(xiàn)代數(shù)值計算,模擬技術與力學典型模型教學[J].大學物理,2002,21(10):35-39.
[2]何正大,許玫,楊訪.用 MapleSim進行多領域混合建模仿真分析[J].電腦知識與技術,2009,36(5):1030-1030.
[3]吳波,楊秀德.RLC暫態(tài)電路的理論分析和數(shù)值模擬[J].物理與工程,2010(1):32-34.
[4]羅志娟,劉敏,易圖林,等.基于 MATLAB的RC串聯(lián)電路暫態(tài)過程仿真[J].大學物理實驗,2012(4):33.
[5]曹學余,湯炳新,郭瑞國.利用Modelica實現(xiàn)磁懸浮球系統(tǒng)的建模與仿真[J].河海大學常州分校學報,2005,19(2):42-45.
[6]王瑗,楊文明,余建波,等.應用 Modelica語言對虛擬物理實驗建模與仿真[J].實驗室研究與探索,2010,10:82.
[7]Wolfram Research Co.Ltd.[EB/OL]www.wolfram.com.
[8]Modelica and the Modelica Association[EB/OL]www.modelica.org.
[9]郎豐饒.交通事故中汽車速度分析物理模型的研究[J].2011(4):42-43.