汪昭 徐文娟 魏江(常熟理工學院物理與電子工程學院,江蘇常熟 215500)
?
基于VRML/Simulink技術的3D單擺仿真
汪昭 徐文娟 魏江
(常熟理工學院物理與電子工程學院,江蘇常熟 215500)
【摘 要】運用計算虛擬技術設計實驗仿真是時下高校實驗室教學改革的重點方向之一。基于VRML/Simulink技術,通過建立數(shù)學模型,設計了一個擺幅和阻尼系數(shù)可控的3D單擺計算機仿真模型,并設計了圖形用戶界面,實現(xiàn)了用戶的對實驗參數(shù)的控制。應用該模型研究了較大擺幅和存在阻尼時的單擺的運動情況。最后,我們對實驗進行了總結與展望。
【關鍵詞】VRML Simulink 單擺 仿真
【Abstract】Nowadays, designing the virtual experiment with computational simulation technology is becoming one of the most important direction of current laboratory teaching reform in colleges and universities.Based on VRML/Simulink technology,by establishing the mathematical model, we designed a 3D computer model of simple pendulum, whose swing and damping coefficient could be controlled.We also designed a graphical user interface to control the experimental parameters.Applying the model, we studied the motion of pendulum with large swing or damping.Finally, we summarized and prospected about the experiment.
【Keywords】VRML;Simulink;Simple pendulum;Simulation
物理學是一門基于實驗的學科。但是受到場地和儀器數(shù)量的客觀限制,學生能實際操作實驗的機會較少。在不增加實驗室負擔的前提下,設置一定數(shù)量的虛擬實驗是一個比較好的解決方案。國內許多知名高校都在不斷研發(fā)、改進物理虛擬實驗室[1-2]。
單擺是一種簡單的物理模型。當單擺的擺幅較小(一般認為小于5°)時,并且不存在阻尼時,單擺的擺動可近似看成簡諧振動。若單擺擺幅較大或者存在阻尼,其擺動的情況則不能看成簡諧運動。
本文的主要目標,是運用VRML語言建立3D單擺模型;用MATLAB/Simulink進行數(shù)值計算,并利用計算獲得的結果控制單擺模型的運動,通過GUI設計控制Simulink計算中的單擺參數(shù),觀察單擺運動的變化。
從實驗者觀察的角度,我們可以將物理實驗分成兩類。第一類實驗在實驗的過程中實驗者不需要改變視角,例如電路元件的伏安特性研究,此類;第二類則需要觀察者經常更換視角觀察實驗儀器的變化。對于第一類實驗,采用虛擬仿真軟件如Labview仿真較為方便。對于第二類實驗,需要采用可交互3D仿真來實現(xiàn)。
建立三維模型比較常見的工具有VRML語言、3D MAX、MAYA等工具。VRML語言簡單,便于控制和交互[3-4]。本文即采用VRML進行建模。VRML(Virtual Relity Modeling Language)虛擬現(xiàn)實建模語言,是一種用來在網絡上實現(xiàn)三維虛擬現(xiàn)實場景的計算機語言。VRML語言除了可以實現(xiàn)3D場景,還可以實現(xiàn)3D動畫和人機交互。
2.1 VRML設計3D單擺
編輯VRML語言可使用VRMLPad直接編寫源代碼,使用VRML瀏覽器編譯查看,也可以使用MATLAB中所帶工具VRealm Builder繪制3D圖形。3D單擺并不復雜。首先建立一個正方體,一個圓柱體和一個圓錐體。通過縮放、旋轉和位置變換,得到如下3D模型(圖1)。
其中,細圓柱(擺線)和圓錐的轉軸都是長方體的中心位置。當單擺開始擺動時,擺線和擺錘的轉角保持一致。
2.2 Simulink控制3D單擺的運動
3D單擺模型建立后是靜止的,需要通過運算獲得其運動規(guī)律,并對單擺的轉動進行控制??梢钥刂芕RML模型運動的計算機語言很多,例如JAVASCRIPT[3]、JAVA[5]、MATLAB等。由于本實驗需要進行積分等數(shù)值運算,我們選擇采用MATLAB/Simulink工具。其優(yōu)點是數(shù)值計算效率較高,且與VRML的接口完善。
單擺有其自身的運動規(guī)律,為了使單擺的擺動符合實際情況,我們需要通過計算獲得擺角θ與時間t之間的關系。
單擺模型可以如圖2描述。
設擺錘質量為m,擺長為l,則當白線與豎直方向夾角為 θ時,單擺受到的力矩大小為 mglsin θ。
根據(jù)轉動定律,無阻尼單擺的微分方程可以寫成:若 θ較小時, θ≈sin θ,解微分方程可得:
若存在阻尼,則有:
即:
若 θ較大,則無法采用近似解給出微分方程的解析解。為了進行仿真,我們采用數(shù)值解的方式給出 θ(t)。
Simulink是Matlab軟件下一個常用的仿真工具箱。運用Simulink可以方便地實現(xiàn)數(shù)據(jù)的輸入、計算和輸出。Simulink 3D Animation專門針對VRML開發(fā)的額工具箱。
運用Simulink中的VR sink模塊可以將Simulink和VRML建立的3D模型連接起來。
Simulink仿真線路如圖3所示。
需要注意的一點是Simulink中的時間是相對時間,若使用相對時間連接VRML模型,模型運動將比實際情況快很多。要對3D單擺進行仿真,需要使用實時內核(Real-Time Kernal),使積分時間和計算機內置時間同步,增加單擺的真實感。
2.3 GUI的設計
對運行者而言,在Simulink中操作改變參數(shù)較麻煩。我們需要一個相對用戶友好、能快速上手控制的界面,用以修改單擺的各項參數(shù),例如:弦長、擺幅和阻尼系數(shù)。MATLAB中,設計用戶圖形界面的工具為GUI(Graphical User Interface)。運用MATLAB中的GUI設計了圖形用戶界面如圖4。
圖4為設計的GUI界面。通過輸入數(shù)據(jù)框,獲得用戶數(shù)據(jù),按下“確定”按鈕,后臺經過計算,為Simulink流程中的的Gain(增益)和Constant3賦值,改變單擺的運動規(guī)律。顯示和關閉按鈕可按照用戶的要求調用/光比Simulink中的示波器(Scope)。
為了使運行初始條件在一定范圍內,我們對用戶輸入的數(shù)據(jù)進行了控制。當用戶輸入的單擺擺幅必須再0到40°之間,弦長在0.5-3m之間,阻尼系數(shù)范圍在0-0.5之間。當用戶輸入數(shù)據(jù)超出這個范圍,系統(tǒng)會跳出“msgbox”報錯,如圖5所示。
若用戶在不經意間修改了系統(tǒng)的參數(shù),可以按“重置”按鈕將系統(tǒng)參數(shù)恢復到默認值。
當系統(tǒng)運行是,用戶可以通過在用戶圖形界面GUI中輸入原始數(shù)據(jù),觀察單擺的擺動情況。同時,可以通過示波器(scope)觀察時間-擺角的波形和時間-角速度的波形。
上圖6和圖7為不同阻尼系數(shù)條件下,角度、角速度-時間曲線。其中初值為0的曲線為角速度曲線。從圖中不難看出,在阻尼為0的條件下,擺幅始終保持不變。在阻尼為1時,擺幅迅速減小,在10秒內迅速趨近于0。
也可以觀察仿真單擺的擺動,3D仿真單擺的優(yōu)點是,可以從不同的角度觀察單擺的擺動情況。如圖8中,左圖(1)為單擺擺動時的主視圖,右圖(2)為單擺擺動時的俯視圖。運用VRML仿真類似的力學實驗,可以通過改變觀察視角,全方位體驗實驗的進程,使實驗者身臨其境。
本文運用了通過運用VRML語言,MATALBA中的Simulink和GUI工具,完成了3D仿真單擺實驗。本實驗仿真度相對較高,未使用過多的近似,而是采用數(shù)值積分的方法,只要積分精度足夠高,就可以保證單擺的擺動和實際情況保持一致。
運用這個單擺模型,除了可以研究擺幅較大和存在阻尼擺動的情況,還可以研究變質量擺動、受周期驅動的單擺的擺動情況。用類似的方法,還可以完成對復擺、傅科擺、混沌擺等物理實驗。
我們認為,VRML建立3D 模型相對直觀,MATLAB/Simulink控制仿真物理效果的準確性,GUI設計控制仿真操作的簡便性,三者結合可以很好滿足物理實驗仿真的需要。
參考文獻:
[1]郭雷,霍劍青,王曉蒲.仿真物理實驗教學系統(tǒng)的設計與實現(xiàn)[J].中國科學技術大學學報,2002,32(3):373-380.
[2]譚守標,霍劍青,王曉蒲.虛擬實驗軟件的建模方法與實現(xiàn)[J].小型微型計算機系統(tǒng),2003,24(12):2239-2243.
[3]薛慶文,辛允東.虛擬現(xiàn)實VRML程序設計與實例[M].北京:清華大學出版社,2012.
[4]劉怡,張洪定,崔欣.虛擬現(xiàn)實VRML程序設計[M].天津:南開大學出版社,2007.
[5]閆龍,基于JAVA3D的網絡物理實驗室的研究與實踐[J].中國電力教育,2011,5:115-118.
基金項目:常熟理工學院校級教改立項項目(CITJGGN201328)資助。
作者簡介:汪昭(1982—),男,江蘇常熟人,常熟理工學院物理與電子工程學院,實驗師,碩士,研究方向:計算機輔助教學,混沌理論。