• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于Unity3D模擬振動(dòng)和波

      2015-07-02 00:31:41徐文娟
      大學(xué)物理實(shí)驗(yàn) 2015年5期
      關(guān)鍵詞:弦線駐波橫波

      汪 昭,徐文娟,魏 江

      (常熟理工學(xué)院,江蘇常熟 215500)

      基于Unity3D模擬振動(dòng)和波

      汪 昭,徐文娟,魏 江

      (常熟理工學(xué)院,江蘇常熟 215500)

      本文應(yīng)用Unity3D模擬了簡(jiǎn)諧振動(dòng)及其疊加,簡(jiǎn)諧橫波、簡(jiǎn)諧縱波,簡(jiǎn)諧波的疊加,以及弦線振動(dòng)和駐波。

      Unity3D;簡(jiǎn)諧振動(dòng)里;簡(jiǎn)諧波

      現(xiàn)代教學(xué)中,用計(jì)算機(jī)模擬來(lái)輔助物理課堂教學(xué)是一個(gè)很有實(shí)踐意義的工作。相對(duì)傳統(tǒng)的板書(shū)教學(xué),計(jì)算機(jī)教學(xué)更加直觀,使很多物理現(xiàn)象能夠變現(xiàn)得更豐富和立體。相對(duì)于課堂演示實(shí)驗(yàn),計(jì)算機(jī)具有操作簡(jiǎn)便,安全的特征。另外,使用計(jì)算機(jī)模擬,可以讓學(xué)生在課前和課后通過(guò)各種終端,對(duì)物理現(xiàn)象自行模擬,達(dá)到預(yù)習(xí)和復(fù)習(xí)的目的。以往也有一些用計(jì)算機(jī)模擬振動(dòng)和波的例子[1-4],但運(yùn)用VB,Matlab等軟件實(shí)現(xiàn)的模擬,在Windows操作系統(tǒng)以外的終端支持不是很好。本文基于Unity3D軟件,開(kāi)發(fā)與大學(xué)物理中“振動(dòng)與波”相關(guān)的教學(xué)軟件。

      Unity3D是目前流行的一款三維互動(dòng)編輯軟件,被廣泛應(yīng)用于二維、三維游戲制作、虛擬現(xiàn)實(shí),模擬仿真等領(lǐng)域。并且具有非常好的擴(kuò)展性,支持3Ds Max和MAYA制作的三維模型,支持C#和javascript等程序設(shè)計(jì)語(yǔ)言,并可以使用 NGUI、PlayMaker等不同功能的優(yōu)秀插件,編譯后可以運(yùn)行在Windows、Android、iOS等操作系統(tǒng)上,可移植性好。

      本文的主要工作,是圍繞“大學(xué)物理”中“振動(dòng)和波”的相關(guān)內(nèi)容,設(shè)計(jì)課堂教學(xué)演示系統(tǒng),幫助師生的教與學(xué)。

      1 用Unity3D模擬簡(jiǎn)諧振動(dòng)

      在場(chǎng)景中創(chuàng)建一個(gè)小球(sphere),并創(chuàng)建一個(gè)空物體,控制器作為該空物體的組件控制小球的運(yùn)動(dòng)。

      用C#程序設(shè)計(jì)控制器的內(nèi)容。運(yùn)用正弦函數(shù)計(jì)算小球振動(dòng)時(shí),位移與時(shí)間的關(guān)系,并存儲(chǔ)在一個(gè)三維向量?jī)?nèi)。在控制其的fixedUpdate()函數(shù)中運(yùn)用Object.transform.position組件以固定時(shí)間作為更新單位更新小球的位置。

      在控制器中用OnGUI()函數(shù)可以在屏幕上顯示小球的參數(shù),包括振幅、角頻率和頻率、相位等。

      演示簡(jiǎn)諧振動(dòng)與勻速圓周運(yùn)動(dòng)的關(guān)系:在場(chǎng)景中建立一個(gè)小球,在控制器中控制其運(yùn)動(dòng)圓心與簡(jiǎn)諧振動(dòng)的小球相同,半徑與簡(jiǎn)諧振動(dòng)的振幅相等,相位角等于簡(jiǎn)諧振動(dòng)的相位角。即可實(shí)現(xiàn)簡(jiǎn)諧振動(dòng)與勻速圓周運(yùn)動(dòng)對(duì)應(yīng)關(guān)系的演示。

      這里,我們可以使用trailrenderaer組件實(shí)現(xiàn)在場(chǎng)景中顯示小球的尾跡。完成后場(chǎng)景顯示如下:

      圖1 Y軸上的簡(jiǎn)諧振動(dòng)及其與圓周運(yùn)動(dòng)的關(guān)系

      2 兩個(gè)簡(jiǎn)諧振動(dòng)的簡(jiǎn)單疊加

      兩個(gè)簡(jiǎn)諧振動(dòng)的簡(jiǎn)單疊加,包括振動(dòng)方向相同和振動(dòng)方向垂直的兩個(gè)簡(jiǎn)諧振動(dòng)疊加。實(shí)現(xiàn)方法:首先計(jì)算計(jì)算出兩個(gè)振動(dòng)在t時(shí)刻的位置y1, y2。然后根據(jù)兩振動(dòng)的振動(dòng)方向相同或垂直進(jìn)行疊加。若為同向的振動(dòng),則y=y1+y2,若相互垂直,則為y=y1,x=y2。

      在設(shè)計(jì)UI時(shí)應(yīng)注意。兩振動(dòng)疊加時(shí),若初相位不同可以出現(xiàn)一些特殊的振動(dòng)現(xiàn)象,如李薩茹圖等。所以,需要在UI中設(shè)計(jì)為其中一個(gè)振動(dòng)初相位為0,另一個(gè)振動(dòng)的初相位可調(diào),實(shí)現(xiàn)初始相位差的調(diào)整。

      觀察同向振動(dòng)疊加和相互垂直振動(dòng)的疊加具有不同的特點(diǎn)。同向振動(dòng)的疊加我們希望能觀察到振子的位移與時(shí)間t的關(guān)系。其基本原理如下圖所示。使用prefab創(chuàng)建一些等間隔的點(diǎn),在屏幕上顯示這些點(diǎn)。當(dāng)振子開(kāi)始振動(dòng)時(shí),在每一幀產(chǎn)生一個(gè)位置矢量p,并將這個(gè)矢量傳遞給點(diǎn)0。在控制代碼中,用fixedUpdate函數(shù),在固定時(shí)間間隔Δt內(nèi),每個(gè)點(diǎn)k將其位置傳遞給后一個(gè)點(diǎn)k +1。這樣即可實(shí)現(xiàn)位移-時(shí)間曲線的顯示。

      圖2 振動(dòng)狀態(tài)在振動(dòng)點(diǎn)之間傳遞及振子位移-時(shí)間曲線演示原理

      圖3 兩個(gè)振動(dòng)方向相同的簡(jiǎn)諧振動(dòng)的疊加

      當(dāng)兩個(gè)振動(dòng)垂直時(shí),我們希望看到振子的運(yùn)動(dòng)軌跡,李薩茹圖。所以,我們顯示了小球運(yùn)動(dòng)的軌跡。但如果軌跡過(guò)長(zhǎng),會(huì)影響視覺(jué)效果。這里我們通過(guò)UI控制尾跡的時(shí)間。并且為了達(dá)成效果如下圖,圖3為兩個(gè)振動(dòng)方向相同的簡(jiǎn)諧振動(dòng)的疊加。圖4為兩個(gè)振動(dòng)方向相互垂直的振動(dòng)的疊加。

      圖4 兩個(gè)振動(dòng)方向垂直的簡(jiǎn)諧振動(dòng)的疊加及李薩茹圖

      3 簡(jiǎn)諧波的模擬和UI的控制

      簡(jiǎn)諧橫波是最簡(jiǎn)單的波之一。波的運(yùn)動(dòng)可使用波函數(shù)來(lái)描述的。簡(jiǎn)諧橫波的波函數(shù)可以寫(xiě)成下面的形式:

      其中A為振幅,ω為角頻率,x為波動(dòng)路徑上的點(diǎn)到振源的距離,u為波速,φ為初相位。波函數(shù)中可以采用正弦函數(shù)或余弦函數(shù)。這里我們采用正弦函數(shù),并且設(shè)置振源的初相位為0,可以保證當(dāng)時(shí)間t=0時(shí)振源處于平衡位置。

      使用Unity3D來(lái)模擬簡(jiǎn)諧橫波,思路和步驟如下:

      (1)在場(chǎng)景中用一個(gè)小球來(lái)代表振源。

      (2)在project的資源文件夾Asset下新建一個(gè)目錄resources;在文件夾下新建一個(gè)預(yù)設(shè)(prefab)名為sphere,并在這個(gè)預(yù)設(shè)中創(chuàng)建一個(gè)小球。

      (3)在場(chǎng)景中另外創(chuàng)建一個(gè)空物體WaveController,建 立 一 個(gè) C#文 件 Wave 作 為WaveController的組件控制弦線上各點(diǎn)的運(yùn)動(dòng)。其功能包括:第一、將prefab中的sphere克隆到場(chǎng)景中,并使它們?cè)趚軸向均勻排列,且進(jìn)行編號(hào)。使用波函數(shù)控制振源和這些點(diǎn)的振動(dòng)。

      (4)設(shè)計(jì)適當(dāng)?shù)腉UI,用以控制振幅、頻率、波速等參數(shù)。波長(zhǎng)則由v=fλ計(jì)算出來(lái)。

      設(shè)計(jì)完成之后,場(chǎng)景如圖5所示。

      圖5 模擬正弦橫波及用UI控制正弦波的參數(shù)

      簡(jiǎn)諧縱波的模擬方法與橫波相似,主要差別在于,第一、各sphere質(zhì)點(diǎn)的振動(dòng)方向沿著x軸方向,為了保證演示效果,質(zhì)點(diǎn)取地比較稀疏。第二、使用LineRenderer組件畫(huà)兩條線段,一端固定在相應(yīng)sphere質(zhì)點(diǎn)平衡位置為(xi,yi)的上下坐標(biāo)為(xi,yi±Δy)的位置,另一端固定在sphere質(zhì)點(diǎn)上,這樣當(dāng)sphere在x軸方向振動(dòng)時(shí),可以清楚的觀察到每個(gè)質(zhì)點(diǎn)離開(kāi)平衡位置的位移以及橫波的疏密部。如圖6所示為模擬正弦縱波完成后的場(chǎng)景截圖。

      圖6 模擬正弦縱波及用UI控制的參數(shù)

      4 兩列一維簡(jiǎn)諧橫波的疊加

      兩列一維簡(jiǎn)諧橫波的疊加,從波的傳播方向來(lái)說(shuō)主要包括(1)同向傳播的兩列波的疊加;(2)相向傳播的兩列波的干涉;從振動(dòng)方向上說(shuō),可以包括(1)振動(dòng)方向相同的兩列波的疊加;(2)振動(dòng)方向垂直的兩列波的疊加。

      實(shí)現(xiàn)方案:在屏幕上實(shí)現(xiàn)兩列同向(相向)運(yùn)動(dòng)的兩列波。并將相應(yīng)的點(diǎn)的振動(dòng)進(jìn)行疊加。實(shí)現(xiàn)后效果如下:

      圖7 兩列振動(dòng)方向相同,傳播方向相同的波的疊加

      圖8 兩列振動(dòng)方向垂直,傳播方向相同的橫波的疊加

      圖9 兩列同向振動(dòng)、相向向傳播的簡(jiǎn)諧波的疊加

      5 弦上駐波實(shí)驗(yàn)的計(jì)算機(jī)模擬

      駐波是一種特殊的干涉現(xiàn)象,若兩個(gè)波相向傳播,且二者頻率、振幅、波速完全相同,那么兩波在空間中任意一點(diǎn)疊加時(shí),相位差是不變的,所以該點(diǎn)的振幅是穩(wěn)定的,在波的傳播路徑上必然出現(xiàn)波節(jié)點(diǎn)和波腹。

      在物理實(shí)驗(yàn)中,運(yùn)用駐波現(xiàn)象可以研究高速運(yùn)動(dòng)的波的波長(zhǎng),并討論弦線上張力與波長(zhǎng)的關(guān)系等,運(yùn)用頻率、波長(zhǎng)計(jì)算弦線上波的波速。在實(shí)驗(yàn)中,產(chǎn)生兩列頻率、波長(zhǎng)相等的波的方法是運(yùn)用反射。但和上文中所述想象傳遞的兩列波產(chǎn)生駐波的區(qū)別在于,要在弦線上產(chǎn)生穩(wěn)定的駐波,需要保證弦長(zhǎng)為半波長(zhǎng)的整數(shù)倍。究其原因,波在弦線上傳播,當(dāng)遇到固定住的節(jié)點(diǎn)時(shí)會(huì)被反射。若衰減不是很厲害,則會(huì)在弦上產(chǎn)生多列波疊加。這些波疊加后若要產(chǎn)生駐波,條件會(huì)更加嚴(yán)格。

      使用Unity3D模擬駐波實(shí)驗(yàn)的目標(biāo)是設(shè)計(jì)一個(gè)可控長(zhǎng)度的弦,一段為波源,另一端為反射點(diǎn)。波源的頻率和振幅可控,產(chǎn)生一個(gè)序列波,波速可根據(jù)需要調(diào)整,并在指定的點(diǎn)(可控制)上被多次反射。通過(guò)控制頻率和弦長(zhǎng),觀察在弦線上駐波的顯示。

      設(shè)計(jì)時(shí)需要注意的是:反射點(diǎn)是固定的,在反射時(shí)存在半波損失。這樣在反射點(diǎn)的合振幅始終為0。另外,在線上疊加的波的條數(shù)必須為2n條,否則無(wú)法實(shí)現(xiàn)駐波現(xiàn)象。n值越大,約接近實(shí)際情況。這里,我們?nèi)=3,也就是說(shuō),在弦線上疊加的波有6列,在線上任意一個(gè)點(diǎn)的振動(dòng)疊加有6個(gè)。

      設(shè)計(jì)思路如下:

      且相鄰兩個(gè)點(diǎn)之間的距離為gap。

      (2)設(shè)置一列特殊的單向波點(diǎn)序列d2,這列波的點(diǎn)的數(shù)量為弦線上的6倍,設(shè)其上各點(diǎn)的編號(hào)為d2[0],d2[1]...d2[6m-1]。振動(dòng)位移時(shí),t時(shí)刻位移分別為

      (3)計(jì)算單向波d2上各點(diǎn)在y方向上的振動(dòng)情況,

      當(dāng)2kn£x<(2k+1)n時(shí),φn=0,

      當(dāng)(2k+1)n£x<(2k+2)n時(shí)φn=π(k= 0,1,2)

      變化的相位將產(chǎn)生在波動(dòng)反射點(diǎn)的的半波損失。

      圖10 一列特殊的虛擬單向正弦波點(diǎn)序列d2

      (4)將d2翻折,并且將x軸坐標(biāo)相同的點(diǎn)振動(dòng)情況相加,可以得到圖10所示的點(diǎn)序列振動(dòng),不難推算出。在弦線上各點(diǎn)疊加點(diǎn)的情況:

      圖11 點(diǎn)序列d2經(jīng)過(guò)翻折后相應(yīng)點(diǎn)振動(dòng)的疊加

      (5)設(shè)計(jì)一個(gè)slider,用以控制反射點(diǎn)的位置,即波能及的弦長(zhǎng)??梢垣@取序列d1兩端點(diǎn)在屏幕上的位置,設(shè)置為slider的兩端點(diǎn),且設(shè)置該slider的長(zhǎng)度為弦線的長(zhǎng)度。值域范圍是0到弦長(zhǎng)大小(m?gap),其值(數(shù)據(jù)類(lèi)型為float)取整后控制m值,大于m值的點(diǎn)振動(dòng)幅度為0。

      圖12 弦線振動(dòng)實(shí)驗(yàn)的模擬

      6 主界面的設(shè)計(jì)

      為了使用更加方便,我們?cè)O(shè)計(jì)了一個(gè)主界面,用來(lái)指引使用者進(jìn)行功能間的跳轉(zhuǎn),并且在每個(gè)相應(yīng)功能模塊的右下角增加了返回鍵。如圖12所示。

      圖13 程序主界面

      經(jīng)過(guò)編譯,我們?cè)O(shè)計(jì)的軟件在Windows下和android系統(tǒng)下都能夠正常運(yùn)行。在移動(dòng)系統(tǒng)下,因?yàn)檫\(yùn)算能力與PC下有差距,且屏幕相對(duì)較小,我們減少了波動(dòng)上點(diǎn)的數(shù)量,達(dá)到了優(yōu)化的效果。

      8 結(jié)論與展望

      通過(guò)對(duì)簡(jiǎn)諧振動(dòng)和簡(jiǎn)諧波的模擬,我們實(shí)現(xiàn)了振動(dòng)和波基礎(chǔ)內(nèi)容的演示。下面我們可以從以下幾個(gè)方面進(jìn)行研究:

      (1)研究一些特殊的振動(dòng)情況,如阻尼振動(dòng)、受迫振動(dòng)等。

      (2)實(shí)現(xiàn)其他一維波形的模擬,如方波、三角波等。

      (3)實(shí)現(xiàn)二維或三維波的模擬,包括平面波及其干涉和衍射。

      (4)在Unity3D實(shí)現(xiàn)虛擬函數(shù)信號(hào)發(fā)生器和示波器。達(dá)到可交互的教學(xué)效果。

      (5)在Unity3D中,仿真一些與波有關(guān)的實(shí)驗(yàn),如聲波波速的測(cè)量,弦線上駐波實(shí)驗(yàn)等。

      [1] 董宇欣.Matlab語(yǔ)言在機(jī)械振動(dòng)振動(dòng)中的應(yīng)用[J].佳木斯大學(xué)學(xué)報(bào):自然科學(xué)版,2007(25): 356-358.

      [2] 陳燕.Visual Basic模擬演示“波的疊加與干涉”[J].物理通報(bào),2011(11):75-76.

      [3] 胡宗元.基于 Mathematica的大學(xué)物理模擬實(shí)驗(yàn)[J].大學(xué)物理實(shí)驗(yàn),2015(28):95-98.

      [4] 陳慶中.如何用FlashMX模擬機(jī)械波[J].物理教師,2008(7):55-56.

      Simulation of Vibration and W ave Based on Unity3D

      WANG Zhao,XUWen-juan,WEIJiang
      (Changshu Institute of Technology,Jiangsu Changshu 215500)

      Using Unity3D,this paper simulated simple harmonic vibration and its superposition,simple harmonic transverse wave,simple harmonic longitudinal wave,the superposition of harmonic waves,vibration of string and standing wave.

      Unity3D;simple harmonic vibration;simple harmonic wave

      TP 391.9

      A

      10.14139/j.cnki.cn22-1228.2015.005.032

      2015-09-17

      常熟理工學(xué)院校級(jí)教改立項(xiàng)項(xiàng)目(CITJGGN201328)

      猜你喜歡
      弦線駐波橫波
      Mathstudio在弦振動(dòng)實(shí)驗(yàn)研究中的應(yīng)用
      橫波技術(shù)在工程物探中的應(yīng)用分析
      血液動(dòng)力學(xué)中血管流激波與駐波的相互作用
      DAM型10kW中波廣播發(fā)射機(jī)駐波故障分析
      駐波演示實(shí)驗(yàn)研究
      揚(yáng)眉一顧,妖嬈橫波處
      橫波一顧,傲殺人間萬(wàn)戶侯
      火花(2015年1期)2015-02-27 07:40:24
      膠帶順槽與車(chē)場(chǎng)柔性連接探討
      橫波淺層地震在城市勘探中的應(yīng)用
      煤礦井巷彎道施工的關(guān)鍵技術(shù)研究
      卷宗(2013年12期)2013-10-21 09:40:41
      安宁市| 乐清市| 丹寨县| 永德县| 卢氏县| 娱乐| 凤山市| 乌鲁木齐县| 乐清市| 神池县| 石楼县| 平陆县| 孝义市| 黄骅市| 古交市| 高邑县| 定襄县| 徐州市| 镇赉县| 崇明县| 廊坊市| 游戏| 吴忠市| 易门县| 开封县| 桓仁| 五指山市| 乐业县| 文昌市| 桂阳县| 衡东县| 商水县| 修水县| 汉中市| 将乐县| 英吉沙县| 当阳市| 绥化市| 榆中县| 盐城市| 云安县|