11/22/2006

10.2 範例二:電路分析

範例二:有一電路如下圖,試寫一MATLAB程式,求解各電阻器上之電流。




就克希荷夫(Kirchhoff)定律,可以在電路上任選定三個迴圈建立電阻與電壓降三項聯立方程式,及電流經A、B兩點分流時建立之二項聯立方程式,其結果如下:




整理此組聯立方程式,其變數I有五項,其方程式有五組,故應可得解。茲以矩陣[R][I]=[V]表示,利用左除法即為[I]=[R]\[V]。其各變數矩陣分別為:



     

程式內容:



function Current=findC(v1,v2,r)
% Prog using Kirchhoff's law to find the currents in a circuit.
% Inputs:
% v1, v2: Voltage of generators. volts
% r: the elements of resistances in Kohms. r=[r1 r2 r3 r4 r5]
% Outputs:
% current: currents through resistors [c1 c2 c3 c4 c5], in ma.
% Example: current=findC(100,50,[5 100 200 150 250])
V=[v1 0 v2 0 0]';
R=[r(1) 0 0 r(4) 0;0 r(2) 0 -r(4) r(5);0 0 -r(3) 0 r(5);...
   1 -1 0 -1 0;0 1 -1 0 -1];
Current=R\V;


執行例:設v1=100V,v2=75V,R=[80 120 250 150 200] KΩ,其電流之安培數(ma)分別如下:

>> current=findC(100,75,[80 120 250 150 200])
current =
0.5082
0.1126
-0.1166
0.3956
0.2292

這是分別在各分路上之電流值,其中有負號者表示與原先設定之方向相反。