龔 偉 郭杰榮
(湖南文理學(xué)院物理與電子科學(xué)學(xué)院,湖南 常德 415000)
Matlab仿真技術(shù)在電路教學(xué)中的應(yīng)用
龔 偉 郭杰榮
(湖南文理學(xué)院物理與電子科學(xué)學(xué)院,湖南 常德 415000)
為了解決傳統(tǒng)電路教學(xué)中存在的主要問題,改善其不足之處,嘗試將Matlab仿真技術(shù)應(yīng)用到電路課程的教學(xué)當(dāng)中。結(jié)合實(shí)例分析,詳細(xì)闡述了Matlab編程和Simulink建模兩種不同方式的特點(diǎn)及其在電路教學(xué)中的具體應(yīng)用。教學(xué)實(shí)踐表明:Matlab強(qiáng)大的矩陣運(yùn)算和數(shù)值處理能力有助于學(xué)生擺脫電路分析中所存在的數(shù)學(xué)計(jì)算方面的困擾,使它們能將更多精力放到對基本概念和分析方法的理解與掌握上;通過Matlab編程或Simulink建模,使抽象難懂的電路理論以直觀形象的仿真結(jié)果呈現(xiàn)出來,極大的調(diào)動和增強(qiáng)了學(xué)生的學(xué)習(xí)熱情與自信心,提高了課堂教學(xué)效果。
電路教學(xué);Matlab;Simulink
以我院為例,目前電路教學(xué)中存在的主要問題有:(1)課時(shí)安排偏少,教學(xué)內(nèi)容偏多,課程理論性較強(qiáng),學(xué)生難以在純理論的課堂教學(xué)中獲得直觀、具體的感性認(rèn)識,因此學(xué)習(xí)起來覺得抽象難懂,不易理解和消化;(2)由于客觀條件有限,實(shí)驗(yàn)課和理論課往往不能同步進(jìn)行,未及時(shí)實(shí)踐的理論知識往往較易遺忘;(3)課程涵蓋的基本概念、定理和分析方法較多,且經(jīng)常伴隨有大量復(fù)雜繁冗的數(shù)學(xué)計(jì)算,學(xué)生需要耗費(fèi)大量的時(shí)間和精力應(yīng)對數(shù)學(xué)方面的困擾,很大程度上削弱和降低了他們對專業(yè)課學(xué)習(xí)的信心、熱情與專注度。
Matlab是由美國Mathworks公司推出的一款集矩陣運(yùn)算、數(shù)值分析、繪圖操作、系統(tǒng)建模與仿真等多種功能于一體的科學(xué)計(jì)算軟件[1,2],具有操作方便、語法規(guī)則簡單、編程效率高以及良好的人機(jī)交互等特點(diǎn),特別適合于電路課程的輔助分析和計(jì)算。為了彌補(bǔ)傳統(tǒng)電路教學(xué)中的不足之處,改善和提高教學(xué)質(zhì)量,本文嘗試將Matlab仿真技術(shù)嵌入應(yīng)用到電路教學(xué)中。
2.1Matlab編程方式
電路分析的基本方法是通過數(shù)學(xué)建模求解矩陣方程,以獲得待求支路的電壓或電流。當(dāng)電路規(guī)模增大時(shí),方程聯(lián)立個(gè)數(shù)隨之增多,求解過程將變得十分困難且容易出錯(cuò)[3]。而Matlab 是一種以矩陣運(yùn)算為基礎(chǔ)的交互式程序語言,專門針對科學(xué)、工程計(jì)算及繪圖等方面的需求。相比其它計(jì)算機(jī)語言,Matlab編程語言具有簡潔、智能化、功能函數(shù)豐富、無需編譯等特點(diǎn),大大提高了編程和調(diào)試效率。由Matlab語句構(gòu)成的程序文件稱為M文件,它是以“.m”作為擴(kuò)展名的文本文件,可以直接閱讀并可由任何文本編輯器建立。運(yùn)行 M文件時(shí),只需在Matlab命令窗口輸入文件名后按回車鍵,或者打開M文件后在其編輯窗口點(diǎn)擊“運(yùn)行”按鈕即可。通過編程,不僅可以檢驗(yàn)學(xué)生的課堂學(xué)習(xí)成果,更重要的是有助于培養(yǎng)它們形成正確的思維方式及良好的編程習(xí)慣。下面通過具體實(shí)例來加以說明。
例:對圖1所示電路,(1)應(yīng)用網(wǎng)孔電流法求支路電壓U;(2)驗(yàn)證疊加定理。
圖1 原電路
解:為了便于分析和編程,這里將圖 1中電路元件用符號變量加以表示,同時(shí)標(biāo)出假定的網(wǎng)孔電流繞行方向及電流源兩端的電壓參考方向,具體見圖 2所示。由題意,首先列出相應(yīng)的網(wǎng)孔電流方程,將其轉(zhuǎn)換成矩陣形式的數(shù)學(xué)模型,并用Matlab編寫.m程序文件,求得兩獨(dú)立源共同作用時(shí)的電壓 U;然后,通過賦值方式分別對獨(dú)立源置零獲得電壓源或電流源單獨(dú)作用于電路時(shí)支路的電壓響應(yīng)分量;最后,判斷總電壓U是否等于上述兩個(gè)電壓響應(yīng)分量的代數(shù)和,從而完成對疊加定理的驗(yàn)證。
圖2 標(biāo)有網(wǎng)孔電流方向及符號變量的電路
下面給出圖2電路的網(wǎng)孔電流方程:
以上矩陣形式可進(jìn)一步簡寫為:
根據(jù)以上數(shù)學(xué)模型編寫的M文件,源程序如下:
a=input('請依次輸入電阻R1、R2、R3、R4和電壓源、電流源的值: ');%根據(jù)例題參數(shù),這里令a=[8 6 2 3 12 3]
fprintf('所輸入電壓源: Us=%dV ',Us);
fprintf('所輸入電流源: Is=%dA ',Is);
U=I(2)*R4; %電壓源和電流源共同作用于電路時(shí), 在R4支路上所產(chǎn)生的電壓U
fprintf('用網(wǎng)孔電流法,所求電壓U為:
E_Us=[Us;0]; %令I(lǐng)s=0,表示電壓源單獨(dú)作用于電路
I_Us=AB*E_Us; %電壓源單獨(dú)作用于電路時(shí),所產(chǎn)生的網(wǎng)孔電流向量形式
U1=I_Us(2)*R4; %U1為電壓源單獨(dú)作用于電路時(shí),在R4支路上產(chǎn)生的電壓響應(yīng)分量
E_Is=[0;Is]; %令Us=0,表示電流源單獨(dú)作用于電路
I_Is=AB*E_Is; %電流源單獨(dú)作用于電路時(shí),所產(chǎn)生的網(wǎng)孔電流向量形式
U2=I_Is(2)*R4; %U2為電流源單獨(dú)作用于電路時(shí),在R4支路上產(chǎn)生的電壓響應(yīng)分量
fprintf('%dV 電壓源單獨(dú)作用時(shí),所產(chǎn)生的電壓響應(yīng)分量U(1)為: U(1)=%gV ',Us,U1);
fprintf('%dA 電流源單獨(dú)作用時(shí),所產(chǎn)生的電壓響應(yīng)分量U(2)為:U(2)=%gV ',Is,U2);
fprintf('兩電源共同作用下,電壓U為:U=%gV ',U);
if round(U)==U1+U2 disp('因?yàn)閁=U(1)+U(2),疊加定理得以驗(yàn)證'),end
以上程序文件的運(yùn)行結(jié)果如圖3所示:
圖3 Matlab程序運(yùn)行結(jié)果
相比手動計(jì)算,Matlab編程方式只需輸入相應(yīng)語句或函數(shù)即可輕松解決各類復(fù)雜龐大的數(shù)學(xué)運(yùn)算。通過引入符號變量和交互式的命令函數(shù),可以使所編寫的M文件具有很好的移植性、交互性和靈活性,特別是當(dāng)電路結(jié)構(gòu)不變而元件參數(shù)發(fā)生改變時(shí),通過引入具有交互功能的輸入命令函數(shù),如:input()函數(shù)等,在運(yùn)行過程中用戶只需按照input()函數(shù)括號內(nèi)的“提示語句”輸入具體參數(shù),Matlab軟件便會迅速給出新的參量作用下電路中的待求量結(jié)果,從而避免了因電路參數(shù)改變而帶來的重復(fù)性手動計(jì)算。
2.2Simulink建模方式
Simulink作為Matlab中的一種可視化仿真工具[4],它提供了一個(gè)對動態(tài)系統(tǒng)進(jìn)行建模、仿真和分析的集成環(huán)境。Simulink用方框圖的繪制代替程序的編寫,使用戶的精力從編程轉(zhuǎn)向模型構(gòu)造。利用鼠標(biāo)或鍵盤操作,用戶可以完成面向框圖系統(tǒng)仿真的全部過程,進(jìn)而直觀、快速、準(zhǔn)確地達(dá)到仿真的目標(biāo)。模型創(chuàng)建后,可實(shí)時(shí)改變模塊參數(shù),用以研究不同參數(shù)對系統(tǒng)的性能影響以及各參數(shù)間的相互作用關(guān)系。
在Matlab命令窗口中直接輸入Simulink命令或在工具欄中單擊相應(yīng)的快捷按鈕,即可啟動 Simulink。在隨后彈出的Simulink Library Browser(庫模塊瀏覽器)中,執(zhí)行File/New/Model命令,系統(tǒng)會彈出一個(gè)名為untitled的空白模型窗口,用戶可以在此窗口中創(chuàng)建自己需要的Simulink模型。針對上例,這里給出具體的 Simulink仿真步驟:首先,在Simulink 集成環(huán)境窗口新建一個(gè)后綴為.mdl的Simulink模型文件并命名,如:example.mdl;在 Simulink Library Brower中選取與圖 1電路相應(yīng)的元件模塊,并用鼠標(biāo)將其拖拽到example窗口中,如圖4所示;在完成參數(shù)設(shè)置與連線后,最后對Simulink 電路模型進(jìn)行仿真。
圖4 庫模塊瀏覽器與新建模型文件
(1)各元件的選取與參數(shù)設(shè)置。
12V電壓源:選取“DC Voltage Source”模塊,它位于SimPowerSystems節(jié)點(diǎn)下的“Electrical Source”模塊庫內(nèi),只需將模塊參數(shù)值改為12V即可。
3A電流源:SimPowerSystems中沒有直接提供直流電流源模塊,需要用“Electrical Source”模塊庫內(nèi)的AC Current Source進(jìn)行替代。雙擊進(jìn)入其模塊參數(shù)設(shè)置窗口,將 Peak amplitude設(shè)為 3A、參數(shù) Frequency 設(shè)為 0 Hz、Phase設(shè)置為 90°,確定后就可得到所需的直流電流源。
電阻元件:選用“Series RLC Branch”模塊,它位于SimPowerSystems節(jié)點(diǎn)下的“Elements”模塊庫內(nèi),代表一條串聯(lián)RLC支路。通過對其參數(shù)的設(shè)置(Resistance設(shè)為所需的電阻值,Inductance設(shè)為0,Capacitance設(shè)為inf),可以將其變?yōu)閱为?dú)的電阻支路。
電壓測量模塊:選用“Voltage Measurement”模塊,它位于SimPowerSystems節(jié)點(diǎn)下的“Measurements”模塊庫內(nèi),用于測量支路電壓值。
顯示模塊:選用“Display”模塊:它位于Simulink節(jié)點(diǎn)下的“sinks”模塊庫內(nèi),用于對測量結(jié)果進(jìn)行輸出顯示。
(2)仿真結(jié)果。
執(zhí)行example模型窗口菜單中Simulation/Start命令或單擊工具欄中的按鈕,即可啟動Simulink模型仿真,運(yùn)行結(jié)果詳見圖5。
圖5 Si mulink模型仿真結(jié)果
由圖5不難看出,12V電壓源單獨(dú)作用于電路時(shí)3Ω支路上所測電壓示數(shù)為-4V,3A電流源單獨(dú)作用時(shí)示數(shù)為6V,而兩個(gè)電源共同作用情況下示數(shù)則是2V。仿真結(jié)果表明:在多個(gè)電源共同作用下的線性電路中,電路某處的響應(yīng)等于各獨(dú)立源單獨(dú)作用時(shí)在該處產(chǎn)生的響應(yīng)分量的代數(shù)和。疊加定理得以驗(yàn)證。
在電路教學(xué)中引入Matlab仿真技術(shù),有助于學(xué)生擺脫傳統(tǒng)學(xué)習(xí)中理解難、計(jì)算難,繪圖難和建模難等問題,使它們能把注意力更多的集中在對基本概念、定理和分析方法的學(xué)習(xí)與掌握上。通過生動、直觀的仿真結(jié)果演示電路分析的全過程,有利于構(gòu)建一種啟發(fā)式、探討式和互動式的教學(xué)形態(tài),激發(fā)學(xué)生的學(xué)習(xí)興趣,促進(jìn)并加深它們對于抽象理論的具體理解和形象記憶。Matlab仿真技術(shù)應(yīng)用于電路教學(xué)中,還可顯著改善因?qū)嶒?yàn)課與理論課在時(shí)空上存在分隔、客觀實(shí)驗(yàn)條件欠缺、實(shí)驗(yàn)設(shè)備落后等因素所造成的實(shí)驗(yàn)效果不理想的情形。
[1] 陳懷琛,吳大正,高西全.MATLAB及其在電子信息課程中的應(yīng)用(第3版)[M].北京:電子工業(yè)出版社,2006.
[2] 張志涌,楊祖櫻.MATLAB教程[M].北京:北京航空航天大學(xué)出版社,2015.
[3] 劉同娟,馬向國.MATLAB在電路分析中的應(yīng)用[J].電氣電子教學(xué)學(xué)報(bào),2002,24(6):40-41.
[4] 卓金武.MATLAB在數(shù)學(xué)建模中的應(yīng)用(第2版)[M].北京:北京航空航天大學(xué)出版社,2014.
The Application of Matlab simulation technology in circuit teaching
In order to solve the main problems in traditional circuit teaching , and better its shortcomings, the Matlab simulation technology is embedded into the teaching of circuit course. Combined with case analysis, the characteristics of Matlab programming and Simulink modeling are elaborated here as well as their concrete application in circuit teaching. The practice shows that the ability of powerful matrix operation and numerical processing of Matlab can help students get rid of the math problems existing in circuit analysis, so they can focus more on understanding and mastering of basic concepts and analytical methods.Through the Matlab programming or Simulink modeling, abstract circuit theories are presented with intuitive and visual simulation results, which can greatly mobilize and enhance the students' learning enthusiasm and self-confidence, and improve the teaching effect in classroom.
Circuit teaching; Matlab; Simulink
G642.0
A
1008-1151(2015)10-0088-03
2015-09-11
湖南文理學(xué)院芙蓉學(xué)院教項(xiàng)項(xiàng)目(FRjg1516);湖南省光電信息技術(shù)虛擬仿真實(shí)驗(yàn)教學(xué)中心項(xiàng)目(湘教通〔2015〕274號);湖南省普通高校教學(xué)改革研究項(xiàng)目(湘教通〔2014〕247號,395項(xiàng));湖南省光電信息技術(shù)校企聯(lián)合人才培養(yǎng)基地資助(湘教通[2012]434號)。
龔偉(1976-),女,湖南文理學(xué)院物理與電子科學(xué)學(xué)院講師,研究方向?yàn)橥ㄐ偶靶盘柼幚矸矫娴难芯俊?/p>