吳 涓,宋愛國,溫秀蘭
(1.東南大學儀器科學與工程學院,江蘇南京 210096;2.南京工程學院自動化學院,江蘇南京 211167)
我校儀器科學專業(yè)給三年級本科生開設了16個學時的“Matlab語言與應用”課程[1]。如何在有限的時間內(nèi),盡可能讓學生全面掌握Matlab的使用方法,靈活應用于解決專業(yè)課程的問題,加深對專業(yè)知識的理解,是我們教學過程中迫切需要思考的問題。本文在該課程教學內(nèi)容和教學方法上,進行了一些探索和嘗試,取得了較好的教學效果。
1)合理安排課堂授課和上機實踐
Matlab語言與應用是一門實踐性很強的課程,在語言規(guī)則和使用技巧上有一定的特殊性[4]。我們在課程安排上,將課堂授課與上機實踐穿插在一起。一堂課進行教學,一堂課上機實踐。課堂授課主要介紹Matlab使用方法,附帶布置上機實踐題目、分析上機題目的實現(xiàn)要點和點評學生上機實踐中可能出現(xiàn)的典型問題。通過上機實踐,不僅讓學生復習講過的知識要點,也可提高學生借助參考書和電子資源進行自學的能力并為他們提供獨立分析解決問題的機會。
例如,我們在學生上機實踐時,布置了關(guān)于電機的雙閉環(huán)控制系統(tǒng)的設計題目。該題目要求學生首先利用Matlab的數(shù)學計算功能,由給定參數(shù)計算電機控制模型參數(shù);還要利用Matlab的控制系統(tǒng)函數(shù)和工具箱,設計具有穩(wěn)定性和準確性的控制器傳遞函數(shù);最后借助Simulink工具箱,仿真整個控制系統(tǒng)的實現(xiàn)過程,并且以圖形化方式顯示。這樣,學生通過做這道題目就能復習數(shù)值計算、系統(tǒng)工具箱、m函數(shù)編程、Simulink仿真和圖形顯示等功能,達到了事半功倍的效果。該題目中主要環(huán)節(jié)—系統(tǒng)建模的實現(xiàn)方法有多種,既可以借助LTI工具箱,也可以自己編寫m函數(shù)實現(xiàn)控制系統(tǒng)的設計。學生在嘗試采用不同方法實現(xiàn)設計的過程中,針對具體問題,通過將不同方法的結(jié)果比較,較容易掌握Matlab各種工具函數(shù)的使用技巧,引導學生比較各種實現(xiàn)方法的優(yōu)缺點,提高學習能力和水平。
2)掌握Matlab使用中的技術(shù)難點
我們在教學中,對Matlab的使用特點進行了總結(jié),歸納出一些基本問題和典型的專業(yè)工具包,重點介紹了Matlab的基本操作對象是矩陣。因此,對Matlab使用方法的介紹,首先從對矩陣操作引入,著重介紹矩陣的建立、修改和運算等。另外,Matlab程序的框架是基于函數(shù)和m文件,創(chuàng)建規(guī)則又和高級語言例如C語言有類似之處。我們主要結(jié)合m函數(shù)的生成和程序創(chuàng)建方法,從典型的m函數(shù)的創(chuàng)建過程入手,介紹Matlab的使用技巧和基本規(guī)則和圖形化顯示。由于專業(yè)工具箱和Simulink仿真是Matlab的特色。因此,我們在4個課堂學時中,分別就信號處理工具箱和Simulinl做了詳細介紹。
3)綜合實例,加深對Matlab的理解
Matlab在信號處理和自動控制等方面有很多專業(yè)的工具箱和函數(shù),對幫助學生理解課程原理和實現(xiàn)方法非常有幫助。但很多關(guān)于Matlab工具書在介紹Matlab的相關(guān)工具使用方法時,只是介紹反映原理特征的基本函數(shù),對這些變換的物理意義以及相互間聯(lián)系討論較少。我們可以選擇合適的習題,讓學生加深對Matlab的理解。
[習題]增加數(shù)據(jù)長度對譜分析有何影響?
現(xiàn)令模擬信號 x(t)=2sin(4π t)+5cos(8π t),以t=0.01*n(n=0:N-1)進行采樣,求 N點的信號頻譜。N分別為64和1024,試比較信號譜結(jié)構(gòu)的不同,并且解釋其原因。
許多學生在編程設計解題時,看到求信號的頻譜,很自然地會想到直接使用fft()函數(shù),典型的結(jié)果圖如圖1所示:他們從仿真結(jié)果圖上只能看到數(shù)據(jù)長度變化后,圖形形狀上的差異,似乎看不到共同點,也難以準確解釋改變采樣點數(shù)對信號處理結(jié)果的影響,對信號進行FFT變換的意圖更是不清楚。
圖1 典型作業(yè)的信號幅頻圖(橫坐標為頻率/Hz)
出現(xiàn)這種結(jié)果的原因是,一方面學生對Matlab中fft()函數(shù)理解不透徹,誤將fft()函數(shù)變換后的自變量序列數(shù)當做頻率,FFT得到的第n個點的復數(shù)序列當做頻譜;另一方面,他們不清楚采樣頻率與采樣點以及頻率分辨率之間的對應關(guān)系。
正確的步驟應該是,對fft()變換的結(jié)果進行轉(zhuǎn)換和處理,根據(jù) f=k×f s/N(其中,f為自變量頻率,k為采樣序列,f s為采樣頻率,N為采樣點數(shù))將采樣序列轉(zhuǎn)換為頻率值,取其對半頻率部分,將fft()函數(shù)獲得的結(jié)果取模。正確結(jié)果如圖2所示,從此圖就能分辨出信號主頻率,以及采樣點數(shù)N對信號分析的影響。
圖2 信號幅頻圖(橫坐標為頻率/Hz)
再如,在自動控制原理中,離散控制系統(tǒng)的脈沖傳遞與連續(xù)控制系統(tǒng)的開環(huán)傳遞函數(shù)之間轉(zhuǎn)換關(guān)系是一個重要的問題。通過Matlab仿真,學生能直觀區(qū)分出兩者之間的區(qū)別與聯(lián)系?,F(xiàn)設一個連續(xù)線性系統(tǒng),如圖3所示,對象模型G1(s)=2/(s2+30s),G2(s)=10/(s2+6s+5),采樣周期 Ts=0.1s,試求系統(tǒng)的脈沖閉環(huán)傳遞函數(shù)。
圖3 離散閉環(huán)系統(tǒng)
這個習題利用Matlab求取離散脈沖閉環(huán)傳遞函數(shù)的步驟是:①先要利用tf函數(shù)建立連續(xù)系統(tǒng)傳遞函數(shù)模型;②利用連續(xù)開環(huán)傳遞函數(shù)求取離散開環(huán)傳遞函數(shù);③利用feedback函數(shù)建立閉環(huán)系統(tǒng)模型。而其中第②步,隱含了離散控制系統(tǒng)不同串聯(lián)方式下的等效關(guān)系以及如何利用零階保持方法進行系統(tǒng)變換兩個原理性問題。學生必須在理解控制系統(tǒng)基本原理問題的前提下,才有可能利用Matlab函數(shù)工具做出正確的解答。因此,在習題講解時,我們著重從原理出發(fā),結(jié)合基本函數(shù)演示例題的解題過程。學生通過Matlab編程,對比了不同串聯(lián)形式下系統(tǒng)閉環(huán)傳遞函數(shù)結(jié)果后,既能掌握Matlab函數(shù)的使用方法,又對自動控制的基本原理有清楚認識。
在“Matlab語言及應用”課程教學中,筆者從課時安排、授課內(nèi)容和重點習題的講解方法三方面做了精心的設計,通過短學期16個學時(8+16)的授課和上機學習,學生較為全面地掌握了Matlab的使用方法。上機實踐能力和綜合運用水平得到鍛煉并有顯著提高。本課程教學在重視技能培養(yǎng)的同時,引導學生將Matlab學習的過程升華為一個從專業(yè)理論知識到Matlab實踐、再由實踐總結(jié)加深對專業(yè)理論知識的認知的過程,在Matlab實踐中建立起較為完備的知識體系。
[1] 陳海秀.MAT ALB在誤差理論和數(shù)據(jù)處理教學中的應用[J].濟南:科技信息,2009,2,79-79
[2] 師玉寶.《自動控制理論》課程引入MA TALB軟件的教學組織與實施[J].西寧:青海大學學報,2009,vol27(4):89-91
[3] 潘矜矜,楊小勁.Matlab與《信號與系統(tǒng)》課程教學改革的探討[J].福州:福建電腦,2009,第 2期,206-207
[4] 楊夷梅,楊玉軍.Matlab教學中的方法與實踐[J].保定:中國電力教育,2008年,No.127,59-60
[5] 張玉葉,馬峰全.談Matlab實驗教學中學生探索思維的培養(yǎng)[J].石家莊:石家莊學院學報,2007,vol9(6):114-116