摘要:電磁場(chǎng)的概念比較抽象,學(xué)生往往難以很快把握其本質(zhì),建立電磁場(chǎng)的直觀概念更加困難,更談不上深入研究。本論文討論通過課堂上機(jī)編程的方式,采用時(shí)域方法對(duì)電磁現(xiàn)象進(jìn)行仿真,通過圖像和動(dòng)畫展示基本的電磁場(chǎng)變化過程。學(xué)生掌握初步的電磁仿真能力后,即可在課堂上自行調(diào)整仿真參數(shù),研究不同參數(shù)下電磁場(chǎng)的變化情況。通過這種方法,把學(xué)習(xí)和研究結(jié)合起來,學(xué)生在學(xué)習(xí)的同時(shí),就已經(jīng)不知不覺地參與到研究中來了,為之后的研究提供寶貴的經(jīng)驗(yàn)。課堂實(shí)踐表明,這種教學(xué)法效果良好,學(xué)生獲益匪淺。
關(guān)鍵詞:課堂仿真;學(xué)習(xí)研究一體化;電磁場(chǎng);教學(xué)法
中圖分類號(hào):G642.4 文獻(xiàn)標(biāo)志碼:A 文章編號(hào):1674-9324(2018)09-0156-03
引言
電磁場(chǎng)是電場(chǎng)和磁場(chǎng)的統(tǒng)稱,是由帶電物體產(chǎn)生的物理場(chǎng),處于其中的帶電物體會(huì)受到電磁場(chǎng)的作用力。很多情況下,電磁場(chǎng)是時(shí)變場(chǎng),即隨著時(shí)間發(fā)生變化。根據(jù)麥克斯韋方城組,電場(chǎng)的變化會(huì)導(dǎo)致磁場(chǎng)的變化,反之亦然,由此產(chǎn)生電磁波,在自由空間傳播。電磁場(chǎng)的概念比較抽象,初學(xué)者難以很快掌握其物理特性。文獻(xiàn)[1]將電磁仿真軟件引入課堂教學(xué)中,但使用的是已經(jīng)編譯好的商業(yè)軟件,電磁場(chǎng)的仿真過程是個(gè)黑箱,學(xué)生難以真正掌握仿真算法。文獻(xiàn)[2]提出了Web課堂編程方法,但有多靜態(tài)、少動(dòng)態(tài)的局限,互動(dòng)較少。文獻(xiàn)[3]改進(jìn)了《計(jì)算方法》的授課方式,建議這門課要與計(jì)算機(jī)編程相結(jié)合,才有較好效果。文獻(xiàn)[4]建議《數(shù)值分析》強(qiáng)調(diào)啟發(fā)式教學(xué),增強(qiáng)互動(dòng)。文獻(xiàn)[5]設(shè)計(jì)了教師主頁,用于呈現(xiàn)課程內(nèi)容,也是一種互動(dòng)方式。文獻(xiàn)[6]在數(shù)控編程方面,提出綜合實(shí)訓(xùn)方法。文獻(xiàn)[7]對(duì)課堂中計(jì)算機(jī)仿真實(shí)踐的基本方法和效果進(jìn)行了研究,文獻(xiàn)[8]嘗試了學(xué)生在課堂上將仿真結(jié)果進(jìn)行展示的教學(xué)法。本文提出在課堂上采用計(jì)算機(jī)編程仿真進(jìn)行教學(xué)的方法,可以使學(xué)生快速建立電磁場(chǎng)的直觀概念。教師帶領(lǐng)學(xué)生用Matlab軟件對(duì)電磁波的傳播和散射物理過程進(jìn)行仿真,同時(shí)進(jìn)行后處理,用圖像、動(dòng)畫展示仿真結(jié)果。同時(shí),課堂上留出學(xué)生自由探索的時(shí)間,學(xué)生通過更改程序中的參數(shù),研究不同參數(shù)對(duì)電磁場(chǎng)的影響。學(xué)生在不知不覺中就參與到了研究過程中,學(xué)習(xí)與研究實(shí)現(xiàn)了一體化,在時(shí)間上沒有明顯的先后之分。選用合適的計(jì)算機(jī)語言有助于在有限的課堂時(shí)間里盡快成功展示仿真結(jié)果。結(jié)合課堂上機(jī)仿真的特點(diǎn),選用Matlab作為編程語言。Matlab是一門高級(jí)語言,特別適合于快速開發(fā),相比其他語言,代碼量可以大大減少,在課堂上用很短的時(shí)間編出效率很高的代碼。在學(xué)習(xí)編程的過程中,初學(xué)者會(huì)遇到很多困難,主要表現(xiàn)在難以把自然語言表達(dá)的流程用程序語言實(shí)現(xiàn),難以從數(shù)學(xué)表達(dá)式迅速過渡到程序代碼。有些學(xué)生可以掌握基本的編程方法,有的拔尖學(xué)生也可以設(shè)計(jì)算法。然而高效、簡(jiǎn)潔的代碼編寫技巧,需要長(zhǎng)期不斷的摸索。通過此過程,學(xué)生可迅速掌握基本的編程思想和技巧,并應(yīng)用到解決具體問題當(dāng)中。這種教學(xué)方法不但有助于使學(xué)生體會(huì)到數(shù)值計(jì)算在解決科學(xué)問題中的重要性、提升學(xué)習(xí)熱情,也有利于學(xué)生對(duì)物理現(xiàn)象產(chǎn)生直觀認(rèn)識(shí)。
一、課前準(zhǔn)備
仿真內(nèi)容方面,考慮到電磁學(xué)這門課程本身就比較抽象,學(xué)生又基本沒有熟練的編程技巧,因此電磁傳輸和反射的過程不能太難。一維和二維電磁波的傳播是最簡(jiǎn)單的電磁波傳播方式,仿真代碼也不需要太多,能夠在課堂上機(jī)仿真中快速實(shí)現(xiàn)。同時(shí),一維和二維中的一些電磁學(xué)原理更能反映一些電磁現(xiàn)象的本質(zhì)。因此選用這兩個(gè)維度的案例進(jìn)行教學(xué)。在選擇編程語言的時(shí)候盡量選擇簡(jiǎn)單、高效的語言。Matlab具有語法簡(jiǎn)單、動(dòng)態(tài)數(shù)據(jù)類型、內(nèi)置了大量算法的特點(diǎn),同時(shí)具有良好的后處理功能,仿真結(jié)束后可立刻展現(xiàn)圖形化結(jié)果。Matlab內(nèi)置了大量常用的數(shù)學(xué)函數(shù),方便調(diào)用?;谝陨显?,Matlab有“工程師的語言”的稱號(hào)。使用Matlab語言可以大大提高開發(fā)速度,將注意力集中到要解決的問題上面,而不是編程語言層面。算法方面,采用時(shí)域有限差分法(finite-difference time-domain,F(xiàn)DTD)仿真算法。該方法將麥克斯韋方程組進(jìn)行離散,變成差分方程,通過時(shí)間步迭代進(jìn)行電場(chǎng)和磁場(chǎng)的推進(jìn),能夠直接反映電磁場(chǎng)的變化。利用Matlab的功能,可以將結(jié)果表示為電磁場(chǎng)隨時(shí)間變化的動(dòng)畫。通過設(shè)置制定區(qū)域的電磁參數(shù),很容易對(duì)電磁散射現(xiàn)象進(jìn)行仿真。因此,課堂上機(jī)仿真選題Matlab語言,仿真方法采用FDTD法,仿真內(nèi)容為電磁波的一維、二維傳播以及相關(guān)電磁散射現(xiàn)象。通過這個(gè)過程,學(xué)生可以掌握Matlab的基本命令和一些高級(jí)仿真方法,及微分方程的離散化過程。
二、課堂上機(jī)仿真
這個(gè)過程可以在上機(jī)教室里進(jìn)行,由教師加以指導(dǎo)。如果學(xué)生的條件許可,則可以自帶筆記本電腦進(jìn)行仿真,自己的筆記本電腦使用起來會(huì)更順手。教師從Matlab基本操作開始,逐漸提高深度,將編程的過程及其仿真結(jié)果向?qū)W生及時(shí)展示,同時(shí)學(xué)生實(shí)時(shí)察看,并加以模仿。課堂中的仿真公式推導(dǎo)要盡量簡(jiǎn)潔,從最簡(jiǎn)單的例子開始,逐漸加深。同時(shí)為提高課堂效率,課堂上教師并不對(duì)微分方程離散化到差分方程的過程進(jìn)行詳細(xì)推導(dǎo),而是結(jié)合離散化網(wǎng)格示意圖,引導(dǎo)學(xué)生心算,將微分與差分進(jìn)行對(duì)應(yīng),將偏導(dǎo)數(shù)想象成對(duì)應(yīng)維度的差分。通過這個(gè)過程,學(xué)生可以充分理解微分方程與差分方程的對(duì)應(yīng)關(guān)系,以及在計(jì)算機(jī)編程中的實(shí)現(xiàn)方式。結(jié)合FDTD方法的網(wǎng)格,學(xué)生即可快速完成麥克斯韋方城組微分形式到Matlab代碼的實(shí)現(xiàn),完成數(shù)學(xué)語言到計(jì)算機(jī)語言的“翻譯”。Matlab語言自身的后處理功能將仿真結(jié)果直接顯示為電磁場(chǎng)的分布圖,可查看電磁場(chǎng)的分布。用Matlab實(shí)現(xiàn)了二維情形下電磁波平面波或柱面波的傳播過程模擬之后,可以在散射區(qū)設(shè)置電磁參數(shù),對(duì)電磁散射現(xiàn)象進(jìn)行仿真。如理想導(dǎo)體散射過程中,導(dǎo)體切向電場(chǎng)強(qiáng)度恒為零,因此目標(biāo)的電場(chǎng)在每次迭代完成后都置零。通過這種方法,實(shí)現(xiàn)了導(dǎo)體目標(biāo)的散射仿真。如對(duì)方柱的電磁散射進(jìn)行仿真時(shí),本質(zhì)上就是將矩陣的一個(gè)子矩陣設(shè)為零,這樣學(xué)生還可以學(xué)習(xí)Matlab數(shù)組索引方法。在模擬無限大空間問題中,需要設(shè)置吸收邊界條件。二維電磁散射計(jì)算區(qū)域有四個(gè)邊界,在仿真過程中,可以逐個(gè)設(shè)置各個(gè)吸收邊界,每設(shè)置完一個(gè)吸收邊界條件,就進(jìn)行一次仿真計(jì)算,計(jì)算結(jié)果展示了設(shè)置了吸收邊界條件與未設(shè)置吸收邊界條件的對(duì)比情況。電磁波在設(shè)置了吸收邊界條件的邊界表現(xiàn)為外向行波,電磁波向無限遠(yuǎn)處傳播。而沒有社會(huì)自吸收邊界條件的邊界,電場(chǎng)恒為零,表現(xiàn)為導(dǎo)體邊界,此時(shí)電磁波出現(xiàn)反射現(xiàn)象。在課堂編程仿真過程中,同時(shí)還根據(jù)具體情況講解一些Matlab編程的技巧以及Matlab軟件使用技巧,如快捷鍵的使用提高編輯速度、Matlab的代碼調(diào)試方法、二維彩色動(dòng)圖的輸出等,便于學(xué)生全面提高M(jìn)atlab的編程能力,提高學(xué)生研究的技能。如在講解動(dòng)畫展示電磁波傳播過程中,可以先展示各個(gè)時(shí)間步逐一仿真的結(jié)果,形成許多幅圖像,再提示學(xué)生,可以將這些圖像連續(xù)放映,就成為了動(dòng)畫。但是,這種多幅圖片連續(xù)放映的方式十分笨拙,gif動(dòng)畫是更好的處理方式。此時(shí),問題就來了,如何制作多幅gif動(dòng)畫?接下來,順利成章地介紹Matlab制作gif動(dòng)畫的方法,學(xué)生就會(huì)非常容易接受。課堂上機(jī)過程中,部分學(xué)生可能有能力獨(dú)立編程,但是,未必能對(duì)算法的深刻思想得以領(lǐng)會(huì)。此時(shí),就需要教師不斷加以講解。上機(jī)仿真中選題和講解需要遵循下面4個(gè)原則:
1.簡(jiǎn)潔原則。程序代碼量盡量要小,盡量用簡(jiǎn)潔的編程語句完成所需的功能,盡量利用現(xiàn)有的函數(shù)。充分利用Matlab向量化編程思想,可以將C語言需要許多行才能實(shí)現(xiàn)的功能用短短幾行代碼就完成。代碼量越少,越便于課堂講授。作者在課堂上機(jī)仿真中,20行以內(nèi)的程序就能夠?qū)Χ鄠€(gè)線源產(chǎn)生的柱面電磁波相互干涉的過程進(jìn)行仿真。
2.擴(kuò)展原則。程序要由簡(jiǎn)入繁,剛開始采用非常簡(jiǎn)單的語句為例,便于學(xué)生充分理解Matlab的特點(diǎn),然后逐漸考慮邊界條件、電磁散射等其他因素。舉例來說,編寫循環(huán)語句時(shí),一開始可以只寫循環(huán)內(nèi)的語句,只運(yùn)行一步,單步實(shí)現(xiàn)之后,再加上這步代碼前后的語句,實(shí)現(xiàn)循環(huán)。舉例來說,作者在講課過程中,先實(shí)現(xiàn)差分方程的迭代,仿真最基本的傳播過程,再引入邊界條件模擬無限大空間的電磁輻射。
3.整體原則。課堂上編制的都是小程序,因此盡量一個(gè)文件就是一個(gè)完整的程序,避免調(diào)用其他代碼。這樣做的優(yōu)點(diǎn)是方便代碼維護(hù)和管理,避免因?yàn)榫S護(hù)過多的文件而花費(fèi)時(shí)間。
4.查看進(jìn)度。在課堂上機(jī)過程中,需要隨時(shí)查看學(xué)生的進(jìn)度,盡量確保所有同學(xué)都與教師同步編程。上機(jī)編程過程有很強(qiáng)的連續(xù)性,環(huán)環(huán)相扣,中間任何一個(gè)環(huán)節(jié)沒有實(shí)現(xiàn)同步,都有可能使得后面的仿真難以跟上。如確有一些學(xué)生沒有跟上,可適當(dāng)延緩課堂進(jìn)程,此時(shí)其他同學(xué)可研究不同參數(shù)設(shè)定對(duì)仿真結(jié)果的影響。
在課堂教學(xué)過程中,板書顯示最簡(jiǎn)單的微分方程以及網(wǎng)格示意,投影儀顯示Matlab程序編制過程以及仿真結(jié)果。在課堂仿真中,每當(dāng)有成功的仿真結(jié)果,就立刻展示不同參數(shù)的仿真結(jié)果,同時(shí)鼓勵(lì)學(xué)生進(jìn)行其他嘗試,如研究相距半個(gè)波長(zhǎng)、一個(gè)波長(zhǎng)的導(dǎo)線輻射的結(jié)果、兩個(gè)導(dǎo)線相位相差0度、180度的輻射現(xiàn)象。在這個(gè)過程中,學(xué)生其實(shí)已經(jīng)是研究者的角色了,研究各種條件下可能會(huì)產(chǎn)生的電磁現(xiàn)象,并通過仿真驗(yàn)證,而不是單向接受信息的學(xué)生。
三、課后學(xué)生練習(xí)和教學(xué)效果考核
本文提出的教學(xué)法在四年級(jí)本科生課程《飛行器隱身技術(shù)基礎(chǔ)》安排了4個(gè)學(xué)時(shí)進(jìn)行了實(shí)驗(yàn)教學(xué)。此教學(xué)環(huán)節(jié)讓學(xué)生直觀感受到電磁波的傳播、干涉過程,同時(shí)學(xué)生直接參與到研究當(dāng)中,對(duì)電磁行為有更深刻的理解和認(rèn)識(shí)。同時(shí),通過引導(dǎo)學(xué)生完整經(jīng)歷“微分方程—差分方程—Matlab程序代碼”的全過程,使學(xué)生對(duì)通過計(jì)算機(jī)程序研究場(chǎng)的問題有了直觀的認(rèn)識(shí)。課堂編程仿真實(shí)踐環(huán)節(jié)結(jié)束后,安排大作業(yè),學(xué)生自己選定主題進(jìn)行編程,實(shí)現(xiàn)傳播、散射等各種電磁行為。每位同學(xué)將仿真結(jié)果整理成學(xué)術(shù)論文,向所有同學(xué)展示仿真結(jié)果。教師對(duì)仿真結(jié)果進(jìn)行相應(yīng)的點(diǎn)評(píng)和指導(dǎo),評(píng)選出優(yōu)秀者,在課程成績(jī)中給予分?jǐn)?shù)鼓勵(lì)。通過課后練習(xí),學(xué)生能夠充分領(lǐng)會(huì)科學(xué)研究的思想,同時(shí)也練習(xí)了學(xué)術(shù)論文撰寫基本技巧。研究和學(xué)習(xí)緊密結(jié)合,有助于學(xué)生在以后開展研究工作時(shí),很快找到方法和門路。
四、結(jié)論
本文研究了基于Matlab語言進(jìn)行電磁場(chǎng)課堂上機(jī)仿真,并在課堂中進(jìn)行了實(shí)踐,主要結(jié)論如下:
1.學(xué)生能夠快速掌握編程技巧。Matlab語言編程效率高、代碼簡(jiǎn)潔,學(xué)生可以快速掌握,將更多的注意力集中在算法上面。仿真程序需要運(yùn)用循環(huán)語句,模擬時(shí)間迭代的效果。上機(jī)仿真對(duì)這些編程要素都有涉及,便于學(xué)生學(xué)習(xí)。
2.學(xué)生可以對(duì)電磁現(xiàn)象有直觀的認(rèn)識(shí)。電磁場(chǎng)傳播和散射的動(dòng)畫顯示能夠展示電磁波變化的動(dòng)態(tài)過程,使學(xué)生充分領(lǐng)會(huì)電磁行為特點(diǎn)。
3.在課堂上實(shí)現(xiàn)學(xué)習(xí)研究一體化。在課堂上機(jī)仿真過程中,學(xué)生并不只是單向地接受信息,而是自始至終都參與其中。學(xué)生掌握自己編制的代碼,隨時(shí)可以根據(jù)自己的意愿對(duì)代碼進(jìn)行修改,觀察自己感興趣的電磁現(xiàn)象,這個(gè)過程本質(zhì)上就已經(jīng)是研究活動(dòng)了。
參考文獻(xiàn):
[1]高山山.淺談電磁仿真軟件在電磁場(chǎng)與微波技術(shù)教學(xué)中的作用[J].教育教學(xué)論壇,2015,(25):116-117.
[2]張宏升.Web編程課堂教學(xué)互動(dòng)存在問題及解決策略[J].電子科技,2011,24(5):122-124.
[3]開依沙爾·熱合曼.關(guān)于《計(jì)算方法》課程教學(xué)的探索[J].教育教學(xué)論壇,2015,(25):163-164.
[4]陳付廣.《數(shù)值分析》課程教學(xué)改革研究[J].教育教學(xué)論壇,2015,(25):124-125.
[5]姬金祖.教師個(gè)人主頁在教育教學(xué)工作中的應(yīng)用[J].教育教學(xué)論壇,2012,(36):157-158.
[6]孫靜.項(xiàng)目教學(xué)法在數(shù)控編程綜合實(shí)訓(xùn)中的應(yīng)用[J].高教學(xué)刊,2015,(12):72-73.
[7]姬金祖.課堂上機(jī)編程仿真實(shí)踐教學(xué)方法和效果[J].高教學(xué)刊,2015,(16):154-155.
[8]姬金祖.電磁散射仿真課堂展示教學(xué)探索[J].教育教學(xué)論壇,2015,(5):103-104.