
电力系统潮流计算完整程序和详细理论说明.doc
15页电力系统潮流计算完整程序及详细理论说明——秦羽风在我刚开始学习潮流程序时,总是找不到一个正确的程序开始模 仿学习后来经过多方努力,终于自己写岀了一个结构清晰、完整的 潮流程序此程序是一个通用的程序,只需要修改输入数据的了函数 (PowerFlowsData_K)里面的母线、支路、发电机、负荷,就能算任 意一个网络结构的交流系统潮流很适合初学者学习为了帮助电力系统的同学一起学习,我将我编写的潮流计算程序 分享下来给大家;此程序是在基于牛顿拉夫逊算法的基础上,编写的 快速解耦算法每一个子程序我都有备注说明如果有不对的地方, 希望大家指正!下文中呈现的顺序为:网络结构、子程序、主程序、运算结果、 程序设计理论说明一、网络结构:5节点网络如下图夫逊法要少得多,而且并不需豪毎次迭代邯对眾可比龙畔環也图4・6五母线测试网络以及棉说廿算结果摘自 G. W. Stagg and A. H. El-Abiad, Computer Mnlhods in Power Sywtcui 4ma1v«u. I90M M €<•« h.,1二、子程序(共有9个子程序)子程序1:(其他系统,只需要修改Bus、Branch、Generator、Load,这四个矩阵就行了)function [Bus,Branch,Generator,Load]=PowerFlowsData_K%%节点数据%类型:1-平衡节点;2■发电机PV节点;3■负荷PQ节点;4-发电机PQ节点;Bus=[% 类型电压相角1 1.06 0;2 10;3 10;3 10;3 10%%线路数据Branch=[% 发送接收电阻电感(电导电容)并联0 0.06;1 3 0.08 0.240 0.05;1 2 0.02 0.06230.060.1800.04;240.060.1800.04;250.040.1200.03;340.010.0300.02;450・080.2400・05%%发电机数据Generator=[节点定有功10 02 0.4 0下限)无功定无功(上限5 -5;3 -3];%%负载数据Load=[% 节点定有功定无功2 0.2 0.1;3 0.45 0.15;4 0.4 0.05;5 0.6 0.1子程序2:%求解网络的导纳矩阵;function[YR,YI]=YBus_K(nbb,ntl,tlsend,tlrecz tlresisz tlreac,tlcondz tlsuscep)YR=zeros(nbbz nbb);YI=zeros(nbb,nbb);for kk=l:ntlii=tlsend(kk);j j=tlrec(kk);demon=tlresis(kk)A2+tlreac(kk)A2;YR(ii,ii)=YR(iif ii)+tlresis(kk)/demon+0.5*tlcond(kk);YI(iif ii)=YI(iif ii)-tlreac(kk)/demon+0.5*tlsuscep(kk);YR(ii,j j)=YR(ii,jj)-tlresis(kk)/demon;YI(ii,j j)=YI(ii,j j)+tlreac(kk)/demon;YR (j j , ii) =YR (j j , ii) -tiresis (k.k) /demon;YI (j j z ii)=YI (j j z ii)+tlreac(kk)/demon;YR(j j , j j)=YR(j j,j j)+tlresis(kk)/demon+0.5*tlcond(kk);YI(j j,j j)=YI(j j,j j)-tlreac(kk)/demon+0.5*tlsuscep(kk); end子程序M%求节点的功率净值function[PNET,QNET]=NetPowers_K(nbb,ngn,nld,genbus,PGEN,QGEN,PLOAD,QLOAD,load bus)PNET=zeros(1^ nbb);QNET=zeros(1z nbb);for kk=l:ngnii=genbus(kk);PNET(ii)=PNET(ii)+PGEN(kk);QNET(ii)=QNET(ii)+QGEN(kk);endfor kk=l:nldii=loadbus(kk);PNET (ii)=PNET(ii)-PLOAD(kk);QNET (ii)=QNET(ii)-QLOAD(kk);end子程序4:%求网络节点的注入功率function [PCAL,QCAL]=NetPowers_in_K(nbb,VM,VA,YR,YI)PCAL=zeros(1A nbb);QCAL=zeros(1,nbb);for ii=l:nbbfor j j=l:nbbPCAL(ii)=PCAL(ii)+VM(ii)*VM(jj)*(YR(ii,jj)*cos(VA(ii)-VA(j j))+YI (iiz jj)*sin(VA(ii)-VA(jj)));QCAL(i i)=QCAL(i i)+VM(i i)*VM(jj)*(YR(ii,jj)*sin(VA(ii)-VA(jj))-YI(ii,j j)*COS(VA(ii)-VA(j j)));end end%检查发电机PV节点是否越限;Function[QNET^ bustype]=GeneratorLimit_K(it,ngn,genbus A bustype,QCAL,QMAX,QMIN, nld,loadbus,QLOAD,QNET)flagl=0;if it>2for kk=l:ngnii=genbus(kk);if bustype(ii)==2if QCAL(ii)>QMAX(kk)QNET(ii)=QMAX(kk); bustype(ii)=3;flagl=l;elseif QCAL(ii)












