摘要:本文通過具體電路,分析了使用Matlab語言對穩態電路和動態電路進行計算的方法,并進行了說明。為電路分析課程的教學提供了一些做法和經驗。
關鍵詞:電路分析;仿真;Matlab
中圖分類號:TN702文獻標識碼:A 文章編號:1009-3044(2008)31-1020-03
The Application of Matlab in the Teaching of \"Circuit Analysis\"
CHEN Qi-wei1, LI Ju2
(1.Physics and Electronic Engineering School, Changshu Institute of Technology, Changshu 215500, China; 2.School of Computer Science and Engineering, Changshu Institute of Technology, Changshu 215500, China)
Abstract: In this paper, some applications in circuit analysis and calculation by means of Matlab are introduced. At the same time, the examples of stable circuit and transient circuit are presented to demonstrate this application further. Some experiences drawn from above application can be as a reference for the teaching of \"Circuit Analysis\".
Key words: Circuit Analysis; Simulation; Matlab
1 引言
“電路分析”是電子信息與電氣類本科專業的一門重要的專業基礎課。在實際的教學過程中,經常面對分析復雜電路和繪制電路變量變化曲線。手工進行這類工作時,往往需要大量的時間精力,而且也很難精確的畫出曲線。
Matlab作為電子信息工程領域中應用較為廣泛的一種仿真語言,引入到電路分析教學后,其強大的矩陣運算功能、對數據的可視化處理,以及編程簡捷、學生易于掌握的特點,可很好的解決上述問題,大大提高課堂教學效率和學生的學習興趣。
本文對幾個典型例題進行分析,探索Matlab在電路分析教學中的應用。
2 Matlab在穩態電路中的應用
2.1 簡單電路
對于簡單電路,可通過觀察法列出其阻抗和輸入、輸出變量矩陣。直接在Matlab中進行運算就能得到結果。
例1 求圖1所示電路中的電壓U和電流I。
■
圖1 圖2
求解此題時,先選定網孔電流I1、I2、I3(如圖2所示)。
列網孔方程:
■
列輔助方程:
■
將上述方程組用矩陣形式表示,可得:
AX=B
其中:
■
將上述矩陣用Matlab編程如下:
A=[34 -4 -10 0 0; -4 10 -5 0 0; -10 -5 15 -1 0;1 0 0 0 -1;0 0 1 0 0.1];
B=[0 -420 0 0 0]';
X=A\\B
程序結果為:
X =
-5.0000
-43.7500
0.5000
276.2500
-5.0000
即:電壓U=276.25V,電流I=-5A。
2.2 大規模電路
隨著電路規模的日益擴大,需要有系統化的建立電路的方法。在實際的大規模復雜電路中,獨立的節點數往往少于獨立回路數,所以節點法在大規模電路中得到廣泛的采用。
其基本過程為:將已知量分別建立關聯矩陣A,支路電壓源列向量Us,支路電流源列向量Is,支路導納矩陣Y。將所求變量建立為:節點電壓列向量Un,支路電流列向量Ib,支路電壓列向量Ub。
由 KCL,AIb=0 (1)
由KVL, Ub=A' Un(2)
支路伏安方程:Ib=Y(Ub+Us)-Is (3)
將支路伏安方程代入KCL,得AYUb+AYUs-AIs=0(4)
將KVL代入可得AYA’Un=AIs-AYUs (5)
這樣通過Matlab計算,就可得到節點電壓列向量Un,進而求得各支路的電壓電流值。
例2 求圖3所示電路的各支路電流。
■
圖3 圖4
建立有向拓撲圖(如圖4所示),以節點4為參考節點。則關聯矩陣
■
支路電壓源列向量①②③④ Us=[0 20 0 0 0 0 ]'
支路電流源列向量 Is=[-2.5 2 0 0 0 0 ]'
支路導納矩陣
■
將上述矩陣按式(5)進行Matlab編程如下:
A=[-1 0 0 1 1 0; 0 -1 0 0 -1 1; 0 0 1 -1 0 -1];
Us=[0 20 0 0 0 0]';
s=[-2.5 0 2 0 0 0]';
Y=diag([1/20, 1/10, 1/5, 1/50, 1/10, 1/40]);
Un=(A*Y*A')\\(A*Is-A*Y*Us)
得到:
Un =
30.2264
23.7736
13.0566
再代入式(2),由程序Ub=A'*Un得到各支路電壓值:
Ub =
-30.2264
-23.7736
13.0566
17.1698
6.4528
10.7170
代入式(1),程序為Ib=Y*(Ub+Us)-Is,得到各支路電流值:
Ib =
0.9887
-0.3774
0.6113
0.3434
0.6453
0.2679
從以上程序可看出,Matlab語言很好的和電路分析過程對應了起來,方便的求得了各條支路的電流電壓值。學生解題時就不必糾纏在繁瑣的筆算或編程上,可集中精力于電路的分析和理解。
3 Matlab在動態電路中的應用
對于動態電路,我們可以先建立其微分方程,然后直接通過Matlab求解,并可作出其電路變量波形圖。
例3 求圖5所示電路中,Us=10V,Is=2A,R=2Ω,L=4H。試求S閉合后電路中的電流iL。
由電路圖可得到微分方程為: ■
代入數值,得: ■
其零輸入響應iLzi滿足:■
其零狀態響應iLzs滿足: ■
在Matlab中可采用dsolve函數求解,其程序為:
iL=dsolve('4*DiL+2*(2+iL)=10','iL(0)=-2')
izi=dsolve('4*Dizi+2*(2+izi)=10','izi(0)=0')
izs=dsolve('4*Dizs+2*izs=0','izs(0)=-2')
分別得到全響應、零輸入響應、零狀態響應的表達式為:
iL =3-5*exp(-1/2*t)
izi =3-3*exp(-1/2*t)
izs =-2*exp(-1/2*t)
采用plot命令作圖,可得其全響應、零輸入響應、零狀態響應的曲線圖,如圖6所示。在課堂教學時,采用Matlab作圖,其繪圖速度和圖形精確性均比手工繪制效果好。
4 結束語
上面,我們通過幾個具體的電路,對Matlab在穩態電路和動態電路中的具體應用進行了分析。從中我們可以看出,Matlab可使師生從復雜的數學計算中解脫出來,同時也使教學過程形象生動,為電路分析的教學提供了有力的工具。
參考文獻:
[1] 邱關源. 電路[M]. 北京:高等教育出版社,2004.
[2] 張志涌. Matlab教程[M]. 北京:北京航空航天大學出版社,2004.