您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 商业计划书 > 节点电压法的MATLAB实现
集总电路中的数学建模数学建模课程论文作者:唐殷学院:山东大学电气工程学院专业:电力工程与管理2010级学号:2010001920262目录1问题与假设...................................................................................................................................31.1问题提出............................................................................................................................31.2简化与假设........................................................................................................................32建模过程........................................................................................................................................32.1建模使用的定理................................................................................................................32.2元器件参数的线性化........................................................................................................42.3线性方程组的建立与求解................................................................................................43算法实现.......................................................................................................................................53.1MATLAB源代码..................................................................................................................64实例演示.......................................................................................................................................85参考............................................................................................................................................1031问题与假设1.1问题提出在一个拥有多个电子元器件且物理拓扑结构确定的电路中,当电路中各处的电压电流均处于稳定状态时,如何求出加载在各个元器件上的电压。1.2简化与假设假设电路属于集总电路(lumped-parametersystem),即电路中电压电流的效应不受电路线度的影响并且在接通瞬间完成。同时电路中的电子元器件(electroniccomponents)仅限于电阻,电容,电感以及容性和感性器件。电路中只有独立的稳定电压源,不含受控电压源或电流源。2建模过程2.1建模使用的定理电路中各个器件两端接入电路并且与其他器件相连接,相连接处构成了节点(node),因此加载在电路元件上的电压即为元器件两端的电势差。因此我们可以将把求器件上的电势差的问题化为求元器件两端的电势。这种方法称为节点电压法,是电路分析中最常用的方法。使用节点电压法首先选择一个结点作为参考结点,其余结点与参考结点之间的电压称为结点电压。结点电压的方向均由结点指向参考结点。如图Fig2.1所示4电路中各个节点都有导线连接,构成一个连通图。由于电压源和二极管(diode)这样的元器件是有正负极之分的,因此所构成的图也是一个有向图。由于两个节点之间的边是带有权值的,该权值即为元器件的阻抗(impedance)在集总电路中,每个节点均满足基尔霍夫电流定律(Kirchhoff’sCurrentLaws,简称KCL):流出该节点的所有支路电流之和为零。10nkki(2.1)式2.1中n为该节点有n条支路。并且根据电压电流取参考方向(passivesignconvention),即电流由高电势流向低电势,并且设流出节点的电流方向为正方向。如Fig2.1中,在①节点处,有1260iii.2.2元器件参数的线性化对于电路中的非线性元件,如电容(Capacitor)和电感(Inductor),在电源为正弦稳定电压源时,可以利用相量法(phasorTransform),可将其的阻抗在频域(frequencydomain)表示。例如纯电容阻抗为1jC,电感为jL(为正弦电压源的频率)。因此电路中所有的参数均以线性化。2.3线性方程组的建立与求解若电路中有N个节点,因此具有N个电势值,在假设一个节点接地作为零电势参考节点之后,剩下N-1个未知的电势,需要有N-1个方程解出所有的未知量。除去M个电源的端点(称为badnodes),根据KCL可以列出N-2M个节点方程。对于节点an,与其余各个节点bn都相连(不相连的可以设其阻抗为)可得:图中R1、R2、R3、R4、R5、R6均为电阻,Us6、Us3为电压源,Is5为电流源。①、②、③为电路的三个节点,0为零点势的节点。Fig2.1512120aaaNannnnnnnaaaNUUUUUUiZZZ11110abbabaNNNnnnnnbbbabababUUUiUZZZ(2.2)将上式写成YUI矩阵相乘形式(Y为电导(admittance)),其中121311213121212322321221232111111.....111111.....11111.....nnnnnnnZZZZZZZZZZZZYZZZZZ12NTnnnUUUU0I而由电源两端的电势差等于电源电动势这一条件,可得出类似12nodenodeUU的方程M个。由于在电源两端有非电场力对电子做功,因此在这样的节点处有外部的能量输入,因此在这样的两个节点之间的权值不再只是消耗电能的阻抗,因此在这两个节点处就无法利用UIZ(Z为阻抗)的关系求出电流,因此就无法利用KCL解决。但是如果我们将整个电压源看做一个大的节点,则电源两端流出的电流之和为0,同样满足KCL这个条件约束。由于电路中存在M个电压源,因此同样可以列出M个形如YUI的节点方程组。联立上述N-M个节点构成的方程组YUI和M个电势差的方程12nodenodeUU,得出方程AXB,进而求得增广矩阵A。通过初等变换消去线性相关的方程,最后求得解12NTnnnUUU.3算法实现利用邻接矩阵法,将节点之间各支路的阻抗和电势差储存起来。对于容性和感性无源二端元件,两个方向的权值相同;对于电压源,两个方向的权值互为相反数。初始时阻抗值均为无穷大,各点之间的电压差均为零。生成矩阵时,对图每个节点进行遍历,生成电导、电流的增广矩阵,最后化简求解。63.1MATLAB源代码%ThisProgram'sfunctionistocomputethenode-voltageateachnode%assumingthatthefirstnodeistheGroundNode.Asthegraphictheory%specificstwoarraysareusedtorecordtheparameteroftheelectrical%componentswhichareconfinedtobethefollowingthreetypes:resistor,%capacitor,inductanceandindependentvoltagesource.Anditsoutcome%isthevoltagevaluesateverynodeexcepttheGroundnode(node1).N=4;%thenumberofthenodesN=input('numbersofnodes:');U=zeros(N,N);%Thisarrayisusedtostoretheinformationofvoltagedifference%R=ones(N,N);%Thisarrayisusedtostoretheinformationofimpetance%fora=1:N%toinitialtheresistancebetweenanynodestobeinfinite,namelyoc.forb=1:NR(a,b)=realmax;endendflag=1;bad_nodes='';%Nodesatwhichnoequationscanbeformulatedwhileflag==1type=menu('Selecttypeofthecomponent','Resistor','Capacitor','Inductance','VoltageSource','End');switchtypecase1node1=input('Enterthefirstterminalofthecomponent:');node2=input('Enterthesecondterminalofthecomponent:');parameter=input('Enteritsresistance/¦¸:');R(node1,node2)=parameter;R(node2,node1)=parameter;case2node1=input('Enterthefirstterminalofthecomponent:');node2=input('Enterthesecondterminalofthecomponent:');parameter=input('Enteritscapacitance/F:');w=input('Enteritsangularfrequency/rads:');R(node1,node2)=-j/(w*parameter);R(node2,node1)=-j/(w*parameter);case3node1=input('Enterthefirstterminalofthecomponent:');node2=input('Enterthesecondterminalofthecomponent:');7parameter=input('Enteritsinductance/H:');w=input('Enteritsangularfrequency/rads:');R(node1,node2)=j*w*parameter;R(node2,node1)=j*w*parameter;case4node1=input('Enterthefirstter
本文标题:节点电压法的MATLAB实现
链接地址:https://www.777doc.com/doc-1337767 .html