利用MATLAB分析电阻电路
利用MATLAB分析电阻电路
学 院: 物理电气信息学院
专 业: 通信工程
姓 名: 顾 川
学 号: 12010245242
指导老师: 汤全武
利用MATLAB分析电阻电路
[摘要] 在电路分析中,随着电路复杂程度的增加,联立方程的数量会越来越多,即使是相对简单的电阻电路,当电路复杂到一定程度时,无论网孔分析还是节点分析,都会引入大量方程(组),手工求解异常繁杂且容易出错。MATLAB具有强大的数学方程求解能力,尤其是对由网孔分析和节点分析列出的线性方程组,利用MATLAB求解有着得天独厚的优势。
[关键词]电阻电路;MATLAB
电阻电路分析
电阻电路:由电阻、受控源和独立源组成的电路称为电阻电路。
利用MATLAB,可以手工建立电路方程,表示为Ax=B(A是系数矩阵,取决于电路元件的值;x是由电路中一些电压和电流构成的列向量;B是右端列向量,与电压源电压和电流源电流有关)再用MATLAB求解线性代数方程,指令为x=A\B。
分析电路的基本依据是KVL和KCL,列方程的基本原则是利用节点(包括广义节点)和回路(包括假设回路)的互相约束关系,建立含未知数最少、求解最容易的方程组。
例1:如图: ,,,。求
解:设三个回路电流分别为、、则:
由此可以解出、、、(当然如果把并联的受控电流源等效后回简单些)。
一般的回路方程,左边是回路电路与无源元件表示,右边用电源表示,在此处经过分析,真正的未知数其实是回路2的回路电流和所要求的电压,于是原方程组整理后写成矩阵
形式再利用MATLAB把矩阵
写成Ax=B,指令和结果如下:
a=[5/6-10/3 0;1/3-10/3 1];b=[3/2-5-30/3;-30/3];x=a\a%求解方程组
运行结果是:x =
5.4000
6.2000
例2:如图,已知,,求支路电流i和支路电压U
解:设三个回路电流分别为、、,则:
补充方程为:
由此可以解出、、、、。
将方程整理为:
然后用MATLAB计算如下:其中
a=[1+1 0 -1 0 0 1;0 1+1 -1 0 0 -1;0 0 1 0 0.5 0;1 0 -1 -1 0 0;-1 1 0 -0.5 0 0;0 1 -1 0 -1 0];%定义a矩阵
b=[14;0;0;0;0;0];x=a\b%定义b矩阵并求解
运行结果为:x =
1
3
-3
4
6
9
在以上例题中,采用的思想是找准未知量,采用分离变量的方法让未知量在方程组的一侧,然后把方程组写成矩阵形式Ax=B,未知量构成的矩阵(后者列向量)x=A\B。所以在MATLAB中建立好矩阵就可以求解了,节约了运算时间,以上例子都是手工带入数据整理方程组的,但注意的数据的值其实是取代的对应的元件,因此也可以用符号表示方法化简方程组后,编制M文件,由MATLAB带入数据进行运算.。
例3:如图所示, ,,,,,电压控制电流源的控制系数g=2s,写出节点方程,并求出节点电压、电流和独立电流源发出的功率。
解:设,节点电压用表示,把受控源的控制电压用方程变量表示, ,对各独立点应用KCL,得到:
,
整理后得到:
用节点电压表示电流和电流源发出的功率:
M文件如下:
G1=1/1;G2=1/2;G3=1/3;G4=1/4;%求解电导
is=1;g=2;%已知条件
a=[G1+G3 ¨CG1 ¨CG3;g-G1 G1+G2 0;-g-G3 0 G3+G4];%建立系数矩阵
b=[is;0;0];%建立系数矩阵
v=a\b%求解出节点电压
i3=G3*(v(1,1)-v(3,1)%求解电流
p=v(1,1)*is%求解功率
另外注意,不显示中间过程,中间的运算指令用分号结束的。
v(1,1)和v(1)等价;由于矩阵按列存放,所以v(3,1)也等效于v(3)运行结果如下:
v =
1.5000
-1.0000
6.0000
i3 =
-1.5000
P =
1.5000
利用MATLAB可以编程来求解电路问题,可以减少手工整理和运算的难