节点电压法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
节点电压法的计算机编程实现
学院:
专业:
班级:
学号:
目录
1.问题与假设 (2)
1.1课题研究价值 (2)
1.2问题的简化与假设 (2)
1.3节点电压法求解过程 (2)
2.建模过程 (2)
2.1节点电压法的简介 (2)
2.2模型的建立 (3)
2.3节点电压法线性方程组的原理与求解 (3)
3.算法实现 (4)
3.1MATLAB源代码 (4)
3.2实例演示 (6)
4.心得体会 (7)
5.参考文献 (8)
1.问题与假设
1.1课题研究价值
节点电压是一种求解对象的电路计算方法。节点电压是在为电路任选一个节点作为参考点(此点通常编号为“0”),并令其电位为零后,其余节点对该参考点的电位。在一个拥有多个电子元器件且物理拓扑结构确定的电路中,当电路中各处的电压电流均处于稳定状态时,如何求出加载在各个元器件上的电压?实际生活中,比较复杂的电路运用电脑程序求解为解决问题提供了方便。
1.2问题的简化与假设
假设电路属于集总电路,即电路中电压电流的效应不受电路线度的影响并且在接通瞬间完成。同时电路中的电子元器件仪限于电阻,电容,电感以及容性和感性器件。电路中只有独立的稳定电压源,不含受控电压源或电流源。
1.3节点电压法求解过程
第一步:把电压源与阻抗的串联形式化为电流源与阻抗的并联形式
第二步:标出结点,并把其中一个结点选为参考结点(一般为0电位点)
第三步:列出结点电压方程。
列方程方法:自电导乘以该结点电压+∑与该结点相邻的互电导乘以相邻结点的电压=流入该结点的电流源的电流-流出该结点电流源的电流
[注:这里的“+”是考虑了互导纳是电导的相反数,如果不考虑相反数的话,这个“+”就得写为“-”]
第四步:联立求解出上面所有的结点电压方程。
2.建模过程
2.1节点电压法的简介
电路中各个器件两端接入电路并且与其他器件相连接,相连接处构成了节点,因此加载在电路元件上的电压即为元器件两端的电势差,因此我们可以将把求器件上的电势差的问题化为求元器件两端的电势。这种方法称为节点电压法,是电路分析中最常用的方法。使用节点电压法首先选择一个结点作为参考结点,其余结点与参考结点之间的电压称为结点电压。结点电压的方向均由结点指向参考结点。
2.2模型的建立
图2—1节点电压法示例图
如图2—1所示,图中R1、R2、R3、R4、R5、R6均为电阻,Us6、Us3为电压源,is5为电流源。①、②、③为电路的三个节点,0为零点势的节点。
电路中各个节点都有导线连接,构成一个连通图。由于电压源和二极管这样的元器件是有正负极之分的,因此所构成的图也是一个有向图。由于两个节点之间的边是带有权值的,该权值即为元器件的阻抗在集总电路中,每个节点均满足基尔霍夫电流定律(KCL ):流出该节点的所有支路电流之和为零,如公式2-1所示。
1021()
n k i i ==-∑
2.3节点电压法线性方程组的原理与求解
若电路中有N 个节点,因此具有N 个电势值,在假设1个节点接地作为零电势参考节点之后,剩下N-1个未知的电势,需要有N-1个方程解出所有的未知量。除去M 个电源的端点,根据KCL 可以列出N-2M 个节点方程。
对于节点n,与其余各个节点m 都相连(不相连的可以设其阻抗为无穷大)可列出节点电压方程。
而由电源两端的电势差等于电源电动势这一条件,可得出类似的方程M 个,由于在电源两端有非电场力对电子做功因此在这样的节点处有外部的能量输入,因此在这样的两个节点之间的权值不再只是消耗电能的阻抗,因此在这两个节点处就无法利用KCL 解决
如果把整个电压源看做一个大的节点,则电源两端流出的电流之和为0,同样满足KCL 这个条件约束。由于电路中存在M 个电压源,因此同样可以列出M 个形如YU=I 的节点方程组。于此,可以列出N-M 个YU=I 方程,M 个电势差方程,联立求解。
3.算法实现
利用矩阵,将节点之间各支路的阻抗和电势差储存起来。对于电压源,两个方向的权值互为相反数。初始时阻抗值均为无穷大,各节点之问的电压差均为零。生成矩阵时,对图各节点进行遍历,生成电导,电流增广矩阵,最后化简求解。
3.1MATLAB源代码
NUM=4;%节点数
R=ones(NUM,NUM);%储存电阻的矩阵
I=zeros(NUM,1);%储存电流源的矩阵
for a=1:NUM
for b=1:NUM
R(a,b)=realmax;%矩阵中的值大于浮点数
end
end
para=1;
while para==1%输入选择
Type=menu('输入选择','电阻','电流源','结束');
Switch type
case1
node1=input('enter the first node of the element:');
node2=input('enter the second node of the element:');
parameter=input('input resistance');
R(node1,node2)=parameter;
R(node2,node1)=parameter;
case2
node1=input('the first node of the element:');
node2=input('the second node of the element:');
parameter=input('current source');
I(node1,1)=parameter;
I(node2,1)=-parameter;
case3
Para=0;%exit end
end
end
A=zeros(NUM,NUM);%电导矩阵
B=zeros(NUM,1);%电流源矩阵
tracer=1;
for a=1:NUM
for B=1:NUM