版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
电力系统短路故障分析的MATLAB辅助程序设计-短路计算程序电力系统短路故障分析的MATLAB辅助程序设计-短路计算程序电力系统短路故障分析的MATLAB辅助程序设计-短路计算程序xxx公司电力系统短路故障分析的MATLAB辅助程序设计-短路计算程序文件编号:文件日期:修订次数:第1.0次更改批准审核制定方案设计,管理制度电力系统短路故障分析的MATLAB辅助程序设计电力系统短路故障可分为三相对称短路故障(three-phasebalancedfaults)和不对称短路故障(unbalancedfaults)。不对称短路故障又分为单相接地短路故障(singleline-to-groundfault)、两相短路故障(line-to-linefault)以及两相接地短路故障(doubleline-to-groundfault)。根据故障分析结果可以对继电保护装置、自动装置进行整定计算,我们可以建立算法来形成节点阻抗矩阵,利用节点阻抗矩阵来计算短路故障情况下的节点电压和线路电流。一、三相对称短路故障进行三相短路计算需要两个程序:zbuild/zbuildpi和symfault程序,zbuild、zbuildpi用来在MATLAB中形成节点阻抗矩阵,symfault用来计算三相对称故障。Zbus=zbuild(zdata)这里的参数zdata是一个(e×4)阶矩阵,e是拓扑图的总支路数目。第一列和第二列为元素两端的节点编号,第三列和第四列分别是线路的电阻、电抗的标幺值。连接在0节点和发电机节点之间的发电机阻抗可能是次暂态电抗、暂态电抗或同步电抗,而且这个矩阵中还包含并联电抗器和负荷阻抗。Zbus=zbuildpi(linedata,gendata,yload)这个函数与潮流计算程序是相容的,第一个参数linedata与潮流计算程序中的文件是一致的。第一列和第二列为节点编号;第三列到第五列分别是线路的电阻、电抗以及1/2线路电纳值,这三项都为在统一基准容量下的标幺值;最后一列是变压器分接头位置,对线路来说,必须输入1;线路无输入顺序。发电机参数不包含在Linedata参数中,而是包含在第二个参数gendata中,gendata是一个g×4阶矩阵,g是发电机总数。第一列和第二列为0节点、发电机节点编号,第三列和第四列为发电机的暂态电阻和暂态电抗。最后一个参数yload是可选择的,这个矩阵有两列,第一列为节点编号,第二列为复数导纳值,yload可以由潮流程序lfguss,lfnewton或者decouple自动生成。Zbuild和zbuildpi两个函数可以通过建立算法求出节点阻抗矩阵。首先添加所有与参考节点相连的树支,然后添加其余的树支,最后添加共轭连支。程序symfault(zdata,Zbus,V)用来计算三相对称故障,程序要求输入zdata和Zbus两个矩阵,第三个参数V是可选的。如果V不存在,程序将默认故障前所有的节点电压标幺值为,如果变量V存在,那么V包括节点编号和复数电压值。电压向量V也可以由潮流计算程序自动生成。当symfault程序运行时,用户要输入故障节点编号和故障阻抗,运行可得到总的故障电流,节点电压幅值以及故障情况下的线路电流。在三相短路计算中,zbuild和symfault程序,zbuildpi和symfault程序都可以进行计算,下面是三相短路计算使用的程序代码:(1)程序代码:function[Zbus]=zbuild(linedata)nl=linedata(:,1);nr=linedata(:,2);R=linedata(:,3);X=linedata(:,4);nbr=length(linedata(:,1));nbus=max(max(nl),max(nr));fork=1:nbrifR(k)==inf|X(k)==infR(k)=9;X(k)=9;%无穷else,endendZB=R+j*X;Zbus=zeros(nbus,nbus);tree=0;%从参考总线0上添加一个分支forI=1:nbrntree(I)=1;ifnl(I)==0|nr(I)==0ifnl(I)==0n=nr(I);elseifnr(I)==0n=nl(I);endifabs(Zbus(n,n))==0Zbus(n,n)=ZB(I);tree=tree+1;%%newelseZbus(n,n)=Zbus(n,n)*ZB(I)/(Zbus(n,n)+ZB(I));endntree(I)=2;else,endend%添加一个新总线分支到现有总线上whiletree<nbusforn=1:nbusnadd=1;ifabs(Zbus(n,n))==0forI=1:nbrifnadd==1;ifnl(I)==n|nr(I)==nifnl(I)==nk=nr(I);elseifnr(I)==nk=nl(I);endifabs(Zbus(k,k))~=0form=1:nbusifm~=nZbus(m,n)=Zbus(m,k);Zbus(n,m)=Zbus(m,k);else,endendZbus(n,n)=Zbus(k,k)+ZB(I);tree=tree+1;nadd=2;ntree(I)=2;else,endelse,endelse,endendelse,endendend%增加两个原有总线间的支路阻抗forn=1:nbusforI=1:nbrifntree(I)==1ifnl(I)==n|nr(I)==nifnl(I)==nk=nr(I);elseifnr(I)==nk=nl(I);endDM=Zbus(n,n)+Zbus(k,k)+ZB(I)-2*Zbus(n,k);forjj=1:nbusAP=Zbus(jj,n)-Zbus(jj,k);forkk=1:nbusAT=Zbus(n,kk)-Zbus(k,kk);DELZ(jj,kk)=AP*AT/DM;endendZbus=Zbus-DELZ;ntree(I)=2;else,endelse,endendend(2)程序代码:%Thisprogramformsthecomplexbusimpedancematrixbythemethod%ofbuildingalgorithm.Buszeroistakenasreference.%Thisprogramiscompatiblewithpowerflowdata.function[Zbus,linedata]=zbuildpi(linedata,gendata,yload)ng=length(gendata(:,1));nlg=gendata(:,1);nrg=gendata(:,2);zg=gendata(:,2)+j*gendata(:,3);nl=linedata(:,1);nr=linedata(:,2);R=linedata(:,3);X=linedata(:,4);nbr=length(linedata(:,1));nbus=max(max(nl),max(nr));nc=length(linedata(1,:));fork=1:nbrifR(k)==inf|X(k)==infR(k)=;X(k)=;else,endendifnc>4BC=linedata(:,5);forn=1:nbusyc(n)=0;nlc(n)=0;nrc(n)=n;fork=1:nbrifnl(k)==n|nr(k)==nyc(n)=yc(n)+j*BC(k);else,endendendelseifnc==4yc=zeros(1,nbr);endnlc=nlc';nrc=nrc';yc=yc.';ZB=R+j*X;ifexist('yload')==1yload=yload.';yc=yc+yload;else,endm=0;forn=1:nbusifabs(yc(n))~=0m=m+1;nlcc(m)=nlc(n);nrcc(m)=nrc(n);zc(m)=1/yc(n);else,endendnlcc=nlcc';nrcc=nrcc';zc=zc.';nl=[nlg;nlcc;nl];nr=[nrg;nrcc;nr];ZB=[zg;zc;ZB];linedata=[nlnrreal(ZB)imag(ZB)];nbr=length(nl);Zbus=zeros(nbus,nbus);tree=0;%%从参考总线0上添加一个分支forI=1:nbrntree(I)=1;ifnl(I)==0|nr(I)==0ifnl(I)==0n=nr(I);elseifnr(I)==0n=nl(I);endifabs(Zbus(n,n))==0Zbus(n,n)=ZB(I);tree=tree+1;elseZbus(n,n)=Zbus(n,n)*ZB(I)/(Zbus(n,n)+ZB(I));endntree(I)=2;else,endend%%添加一个新总线分支到现有总线上whiletree<nbusforn=1:nbusnadd=1;ifabs(Zbus(n,n))==0forI=1:nbrifnadd==1ifnl(I)==n|nr(I)==nifnl(I)==nk=nr(I);elseifnr(I)==nk=nl(I);endifabs(Zbus(k,k))~=0form=1:nbusifm~=nZbus(m,n)=Zbus(m,k);Zbus(n,m)=Zbus(m,k);else,endendZbus(n,n)=Zbus(k,k)+ZB(I);tree=tree+1;nadd=2;ntree(I)=2;else,endelse,endelse,endendelse,endendend%增加两个原有总线间的支路阻抗forn=1:nbusforI=1:nbrifntree(I)==1ifnl(I)==n|nr(I)==nifnl(I)==nk=nr(I);elseifnr(I)==nk=nl(I);endDM=Zbus(n,n)+Zbus(k,k)+ZB(I)-2*Zbus(n,k);forjj=1:nbusAP=Zbus(jj,n)-Zbus(jj,k);forkk=1:nbusAT=Zbus(n,kk)-Zbus(k,kk);DELZ(jj,kk)=AP*AT/DM;endendZbus=Zbus-DELZ;ntree(I)=2;else,endelse,endendend(3)程序代码:%此程序用来计算电网的三相对称故障%计算前需要用户生成节点阻抗矩阵%节点阻抗矩阵可由函数Zbus=zbuild(zdata)生成%此程序需要用户按提示输入短路节点编号和过度电阻Zf%向量V是可选参数,包含节点编号和复数电压%V可由潮流程序lfgauss,lfnewton,decouple自动生成.%如果V不存在,程序将默认故障前所有的节点电压标幺值为%程序可得到总的故障电流,节点电压幅值及输电线路的电流functionsymfaul(zdata,Zbus,V)nl=zdata(:,1);nr=zdata(:,2);R=zdata(:,3);X=zdata(:,4);nc=length(zdata(1,:));ifnc>4BC=zdata(:,5);elseifnc==4,BC=zeros(length(zdata(:,1)),1);endZB=R+j*X;nbr=length(zdata(:,1));nbus=max(max(nl),max(nr));ifexist('V')==1iflength(V)==nbusV0=V;else,endelse,V0=ones(nbus,1)+j*zeros(nbus,1);endfprintf('\Three-phasebalancedfaultanalysis\n')ff=999;whileff>0nf=input('EnterFaultedBusNo.->');rtn=isempty(nf);ifrtn==1;nf=-1;endwhilenf<=0|nf>nbusfprintf('FaultedbusNo.mustbebetween1&%g\n',nbus)nf=input('EnterFaultedBusNo.->');rtn=isempty(nf);ifrtn==1;nf=-1;endendrtz=1;whilertz==1fprintf('\nEnterFaultImpedanceZf=R+j*Xin')Zf=input('complexform(forboltedfaultenter0).Zf=');rtz=isempty(Zf);endfprintf('\n')fprintf('Balancedthree-phasefaultatbusNo.%g\n',nf)If=V0(nf)/(Zf+Zbus(nf,nf));Ifm=abs(If);Ifmang=angle(If)*180/pi;fprintf('Totalfaultcurrent=%perunit\n\n',Ifm)%fprintf('.\n\n',Ifm)fprintf('BusVoltagesduringfaultinperunit\n\n')fprintf('BusVoltageAngle\n')fprintf('No.Magnitudedegrees\n')forn=1:nbusifn==nfVf(nf)=V0(nf)*Zf/(Zf+Zbus(nf,nf));Vfm=abs(Vf(nf));angv=angle(Vf(nf))*180/pi;else,Vf(n)=V0(n)-V0(n)*Zbus(n,nf)/(Zf+Zbus(nf,nf));Vfm=abs(Vf(n));angv=angle(Vf(n))*180/pi;endfprintf('%4g',n),fprintf('%',Vfm),fprintf('%\n',angv)endfprintf('\n')fprintf('LinecurrentsforfaultatbusNo.%g\n\n',nf)fprintf('FromToCurrentAngle\n')fprintf('BusBusMagnitudedegrees\n')forn=1:nbusforI=1:nbrifnl(I)==n|nr(I)==nifnl(I)==nk=nr(I);elseifnr(I)==nk=nl(I);endifk==0Ink=(V0(n)-Vf(n))/ZB(I);Inkm=abs(Ink);th=angle(Ink);ifreal(Ink)>0fprintf('G'),fprintf('%7g',n),fprintf('%',Inkm)fprintf('%\n',th*180/pi)elseifreal(Ink)==0&imag(Ink)<0fprintf('G'),fprintf('%7g',n),fprintf('%',Inkm)fprintf('%\n',th*180/pi)else,endIgn=Ink;elseifk~=0Ink=(Vf(n)-Vf(k))/ZB(I)+BC(I)*Vf(n);Inkm=abs(Ink);th=angle(Ink);ifreal(Ink)>0fprintf('%7g',n),fprintf('%10g',k),fprintf('%',Inkm),fprintf('%\n',th*180/pi)elseifreal(Ink)==0&imag(Ink)<0fprintf('%7g',n),fprintf('%10g',k),fprintf('%',Inkm),fprintf('%\n',th*180/pi)else,endelse,endelse,endendifn==nffprintf('%7g',n),fprintf('F'),fprintf('%',Ifm)fprintf('%\n',Ifmang)else,endendresp=0;whilestrcmp(resp,'n')~=1&strcmp(resp,'N')~=1&strcmp(resp,'y')~=1&strcmp(resp,'Y')~=1resp=input('AnotherfaultlocationEnter''y''or''n''withinsinglequote->');ifstrcmp(resp,'n')~=1&strcmp(resp,'N')~=1&strcmp(resp,'y')~=1&strcmp(resp,'Y')~=1fprintf('\nIncorrectreply,tryagain\n\n'),endendifresp=='y'|resp=='Y'nf=999;elseff=0;endend二、不对称短路故障不对称故障包括单相接地短路(singleline-to-groundfault),两相短路(line-to-linefault),和两相接地短路(doubleline-to-groundfault)。这里介绍三个程序来分析不对称短路故障:单相接地lgfault(zdata0,zbus0,zdata1,zbus1,zdata2,zbus2,V)两相短路llfault(zdata1,zbus1,zdata2,zbus2,V)两相接地短路dlgfault(zdata0,zbus0,zdata1,zbus1,zdata2,zbus2,V)对于lgfault和dlgfault需要输入正序、零序、负序节点阻抗矩阵Zbus1、Zbus0和Zbus2,而llfault只需输入正序和负序节点阻抗矩阵Zbus1、Zbus2,最后参数V是可以选择的。如果用户未输入V,程序则默认所有故障前的电压为。如果用户输入参数V,则需要输入节点编号以及节点电压的复数值。变量V可由潮流计算程序获得。零序网络和正序网络的节点阻抗矩阵分别通过函数Zbus0=zbuild(zdata0)和Zbus1=zbuild(zdata1)获得。参数zdata1包含正序网络阻抗,参数zdata0包含零序网络阻抗。参数zdata1、zdata2、zdata0均为e×4阶矩阵,e为元件的个数。第一列和第二列是节点编号,第三列和第四列分别是线路电阻和电抗(均为标幺值)。节点0为参考节点,发电机节点到节点0的阻抗为发电机阻抗,可以是发电机的次暂态电抗、暂态电抗或者同步电抗,而且矩阵还包括并联电容和负荷阻抗等。负序网络和正序网络有同样的拓扑结构。线路和变压器的负序阻抗等于正序阻抗,而发电机的负序阻抗不等于正序阻抗,但在大型电力系统故障分析中通常按相等来计算。零序网络的拓扑结构不同于正序网络,零序网络的构建取决于变压器的绕组连接方式,除了两侧中性点都接地的Y-Y连接的变压器,对于其他连接方式的变压器,一次侧和二次侧的零序网络都是隔离开的。在这样的连接方式的零序网络中,,用inf填写对应的电阻和电抗列。对于Y-△(中性点接地)连接的变压器,Y侧的阻抗到节点0的数据需要填写。当中性点接地阻抗为Xn时,需要填写为3Xn。在不对称故障计算时,还需要一个函数用来求节点阻抗矩阵,Zbus=zbuildpi(linedata,gendata,yload),函数与潮流计算程序是相容的。第一个参数linedata与潮流程序所需要的数据相同。第一列和第二列是节点编号;第三列到第五列分别是线路的电阻、电抗、1/2线路电纳(均为标幺值,以指定的MVA为基准功率);最后一列为变压器分接头位置,对于线路,在这一列中必须填写1。在潮流计算程序中,发电机电抗不包含在参数linedata中,而是包含在参数gendata中。参数gendata是一个(g×4)阶矩阵,其四列分别为参考节点0、发电机节点编号、发电机电阻和电抗。最后一个参数yload是可选的,这是一个两列的矩阵,包括节点编号和负荷复数导纳值。这些数据可以从潮流计算程序lfgauss,lfnewton,decouple执行过程中自动生成。程序运行时会提示用户输入故障节点编号和故障阻抗Zf,运行结果可得到故障电流,节点电压和线路电流。不对称短路故障计算使用的程序如下:(1)程序代码:%Theprogramlgfaultisdesignedforthesingleline-to-ground%faultanalysisofapowersystemnetwork.Theprogramrequires%thepositive-,negative-andzero-sequencebusimpedancematrices,%Zbus1Zbus2,andbusimpedancesmatricesmaybedefined%bytheuser,obtainedbytheinversionofYbusoritmaybe%determinedeitherfromthefunctionZbus=zbuild(zdata)%orthefunctionZbus=zbuildpi(linedata,gendata,yload).%Theprogrampromptstheusertoenterthefaultedbusnumber%andthefaultimpedanceZf.Theprefaultbusvoltagesare%definedbythereservedVectorV.ThearrayVmaybedefinedor%itisreturnedfromthepowerflowprogramslfgauss,lfnewton,%decoupleorperturb.IfVdoesnotexisttheprefaultbusvoltages%areautomaticallysettoperunit.Theprogramobtainsthe%totalfaultcurrent,busvoltagesandlinecurrentsduringthefault.functionlgfault(zdata0,Zbus0,zdata1,Zbus1,zdata2,Zbus2,V)ifexist('zdata2')~=1zdata2=zdata1;else,endifexist('Zbus2')~=1Zbus2=Zbus1;else,endnl=zdata1(:,1);nr=zdata1(:,2);nl0=zdata0(:,1);nr0=zdata0(:,2);nbr=length(zdata1(:,1));nbus=max(max(nl),max(nr));nbr0=length(zdata0(:,1));R0=zdata0(:,3);X0=zdata0(:,4);R1=zdata1(:,3);X1=zdata1(:,4);R2=zdata1(:,3);X2=zdata1(:,4);fork=1:nbr0ifR0(k)==inf|X0(k)==infR0(k)=;X0(k)=;else,endendZB1=R1+j*X1;ZB0=R0+j*X0;ZB2=R2+j*X2;ifexist('V')==1iflength(V)==nbusV0=V;else,endelse,V0=ones(nbus,1)+j*zeros(nbus,1);endfprintf('\nLine-to-groundfaultanalysis\n')ff=999;whileff>0nf=input('EnterFaultedBusNo.->');rtn=isempty(nf);ifrtn==1;nf=-1;endwhilenf<=0|nf>nbusfprintf('FaultedbusNo.mustbebetween1&%g\n',nbus)nf=input('EnterFaultedBusNo.->');rtn=isempty(nf);ifrtn==1;nf=-1;endendrtz=1;whilertz==1fprintf('\nEnterFaultImpedanceZf=R+j*Xin')Zf=input('complexform(forboltedfaultenter0).Zf=');rtz=isempty(Zf);endfprintf('\n')fprintf('Singlelineto-groundfaultatbusNo.%g\n',nf)a=cos(2*pi/3)+j*sin(2*pi/3);sctm=[111;1a^2a;1aa^2];Ia0=V0(nf)/(Zbus1(nf,nf)+Zbus2(nf,nf)+Zbus0(nf,nf)+3*Zf);Ia1=Ia0;Ia2=Ia0;I012=[Ia0;Ia1;Ia2];Ifabc=sctm*I012;Ifabcm=abs(Ifabc);fprintf('Totalfaultcurrent=%perunit\n\n',Ifabcm(1))fprintf('BusVoltagesduringthefaultinperunit\n\n')fprintf('Bus-------VoltageMagnitude-------\n')fprintf('No.PhaseaPhasebPhasec\n')forn=1:nbusVf0(n)=0-Zbus0(n,nf)*Ia0;Vf1(n)=V0(n)-Zbus1(n,nf)*Ia1;Vf2(n)=0-Zbus2(n,nf)*Ia2;Vabc=sctm*[Vf0(n);Vf1(n);Vf2(n)];Va(n)=Vabc(1);Vb(n)=Vabc(2);Vc(n)=Vabc(3);fprintf('%5g',n)fprintf('%',abs(Va(n))),fprintf('%',abs(Vb(n)))fprintf('%\n',abs(Vc(n)))endfprintf('\n')fprintf('LinecurrentsforfaultatbusNo.%g\n\n',nf)fprintf('FromTo-----LineCurrentMagnitude----\n')fprintf('BusBusPhaseaPhasebPhasec\n')forn=1:nbusforI=1:nbrifnl(I)==n|nr(I)==nifnl(I)==nk=nr(I);elseifnr(I)==nk=nl(I);endifk~=0Ink1(n,k)=(Vf1(n)-Vf1(k))/ZB1(I);Ink2(n,k)=(Vf2(n)-Vf2(k))/ZB2(I);else,endelse,endendforI=1:nbr0ifnl0(I)==n|nr0(I)==nifnl0(I)==nk=nr0(I);elseifnr0(I)==nk=nl0(I);endifk~=0Ink0(n,k)=(Vf0(n)-Vf0(k))/ZB0(I);else,endelse,endendforI=1:nbrifnl(I)==n|nr(I)==nifnl(I)==nk=nr(I);elseifnr(I)==nk=nl(I);endifk~=0Inkabc=sctm*[Ink0(n,k);Ink1(n,k);Ink2(n,k)];Inkabcm=abs(Inkabc);th=angle(Inkabc);ifreal(Inkabc(1))>0fprintf('%7g',n),fprintf('%10g',k),fprintf('%',abs(Inkabc(1))),fprintf('%',abs(Inkabc(2)))fprintf('%\n',abs(Inkabc(3)))elseifreal(Inkabc(1))==0&imag(Inkabc(1))<0fprintf('%7g',n),fprintf('%10g',k),fprintf('%',abs(Inkabc(1))),fprintf('%',abs(Inkabc(2)))fprintf('%\n',abs(Inkabc(3)))else,endelse,endelse,endendifn==nffprintf('%7g',n),fprintf('F'),fprintf('%',Ifabcm(1)),fprintf('%',Ifabcm(2))fprintf('%\n',Ifabcm(3))else,endendresp=0;whilestrcmp(resp,'n')~=1&strcmp(resp,'N')~=1&strcmp(resp,'y')~=1&strcmp(resp,'Y')~=1resp=input('AnotherfaultlocationEnter''y''or''n''withinsinglequote->');ifstrcmp(resp,'n')~=1&strcmp(resp,'N')~=1&strcmp(resp,'y')~=1&strcmp(resp,'Y')~=1fprintf('\nIncorrectreply,tryagain\n\n'),endendifresp=='y'|resp=='Y'nf=999;elseff=0;endend(2)程序代码:%Theprogramllfaultisdesignedfortheline-to-line%faultanalysisofapowersystemnetwork.Theprogramrequires%thepositive-andnegative-sequencebusimpedancematrices,%Zbus1,andbusimpedancesmatricesmaybedefined%bytheuser,obtainedbytheinversionofYbusoritmaybe%determinedeitherfromthefunctionZbus=zbuild(zdata)%orthefunctionZbus=zbuildpi(linedata,gendata,yload).%Theprogrampromptstheusertoenterthefaultedbusnumber%andthefaultimpedanceZf.Theprefaultbusvoltagesare%definedbythereservedVectorV.ThearrayVmaybedefinedor%itisreturnedfromthepowerflowprogramslfgauss,lfnewton,%decoupleorperturb.IfVdoesnotexisttheprefaultbusvoltages%areautomaticallysettoperunit.Theprogramobtainsthe%totalfaultcurrent,busvoltagesandlinecurrentsduringthefault.functionllfault(zdata1,Zbus1,zdata2,Zbus2,V)ifexist('zdata2')~=1zdata2=zdata1;else,endifexist('Zbus2')~=1Zbus2=Zbus1;else,endnl=zdata1(:,1);nr=zdata1(:,2);R1=zdata1(:,3);X1=zdata1(:,4);R2=zdata2(:,3);X2=zdata2(:,4);ZB1=R1+j*X1;ZB2=R2+j*X2;nbr=length(zdata1(:,1));nbus=max(max(nl),max(nr));ifexist('V')==1iflength(V)==nbusV0=V;else,endelse,V0=ones(nbus,1)+j*zeros(nbus,1);endfprintf('\nLine-to-linefaultanalysis\n')ff=999;whileff>0nf=input('EnterFaultedBusNo.->');rtn=isempty(nf);ifrtn==1;nf=-1;endwhilenf<=0|nf>nbusfprintf('FaultedbusNo.mustbebetween1&%g\n',nbus)nf=input('EnterFaultedBusNo.->');rtn=isempty(nf);ifrtn==1;nf=-1;endendrtz=1;whilertz==1fprintf('\nEnterFaultImpedanceZf=R+j*Xin')Zf=input('complexform(forboltedfaultenter0).Zf=');rtz=isempty(Zf);endfprintf('\n')fprintf('Line-to-linefaultatbusNo.%g\n',nf)a=cos(2*pi/3)+j*sin(2*pi/3);sctm=[111;1a^2a;1aa^2];Ia0=0;Ia1=V0(nf)/(Zbus1(nf,nf)+Zbus2(nf,nf)+Zf);Ia2=-Ia1;I012=[Ia0;Ia1;Ia2];Ifabc=sctm*I012;Ifabcm=abs(Ifabc);fprintf('Totalfaultcurrent=%perunit\n\n',Ifabcm(2))fprintf('BusVoltagesduringthefaultinperunit\n\n')fprintf('Bus-------VoltageMagnitude-------\n')fprintf('No.PhaseaPhasebPhasec\n')forn=1:nbusVf0(n)=0;Vf1(n)=V0(n)-Zbus1(n,nf)*Ia1;Vf2(n)=0-Zbus2(n,nf)*Ia2;Vabc=sctm*[Vf0(n);Vf1(n);Vf2(n)];Va(n)=Vabc(1);Vb(n)=Vabc(2);Vc(n)=Vabc(3);fprintf('%5g',n)fprintf('%',abs(Va(n))),fprintf('%',abs(Vb(n)))fprintf('%\n',abs(Vc(n)))endfprintf('\n')fprintf('LinecurrentsforfaultatbusNo.%g\n\n',nf)fprintf('FromTo-----LineCurrentMagnitude----\n')fprintf('BusBusPhaseaPhasebPhasec\n')forn=1:nbusforI=1:nbrifnl(I)==n|nr(I)==nifnl(I)==nk=nr(I);elseifnr(I)==nk=nl(I);endifk~=0Ink0(n,k)=0;Ink1(n,k)=(Vf1(n)-Vf1(k))/ZB1(I);Ink2(n,k)=(Vf2(n)-Vf2(k))/ZB2(I);Inkabc=sctm*[Ink0(n,k);Ink1(n,k);Ink2(n,k)];Inkabcm=abs(Inkabc);th=angle(Inkabc);ifreal(Inkabc(2))<0fprintf('%7g',n),fprintf('%10g',k),fprintf('%',abs(Inkabc(1))),fprintf('%',abs(Inkabc(2)))fprintf('%\n',abs(Inkabc(3)))elseifreal(Inkabc(2))==0&imag(Inkabc(2))>0fprintf('%7g',n),fprintf('%10g',k),fprintf('%',abs(Inkabc(1))),fprintf('%',abs(Inkabc(2)))fprintf('%\n',abs(Inkabc(3)))else,endelse,endelse,endendifn==nffprintf('%7g',n),fprintf('F'),fprintf('%',Ifabcm(1)),fprintf('%',Ifabcm(2))fprintf('%\n',Ifabcm(3))else,endendresp=0;whilestrcmp(resp,'n')~=1&strcmp(resp,'N')~=1&strcmp(resp,'y')~=1&strcmp(resp,'Y')~=1resp=input('AnotherfaultlocationEnter''y''or''n''withinsinglequote->');ifstrcmp(resp,'n')~=1&strcmp(resp,'N')~=1&strcmp(resp,'y')~=1&strcmp(resp,'Y')~=1fprintf('\nIncorrectreply,tryagain\n\n'),endendifresp=='y'|resp=='Y'nf=999;elseff=0;endend(3)程序代码:%Theprogramdlgfaultisdesignedforthedoubleline-to-ground%faultanalysisofapowersystemnetwork.Theprogramrequires%thepositive-,negative-orzero-sequencebusimpedancematrices,%Zbus1Zbus2,andZbus0.Thebusimpedancesmatricesmaybedefined%bytheuser,obtainedbytheinversionofYbusoritmaybe%determinedeitherfromthefunctionZbus=zbuild(zdata)%orthefunctionZbus=zbuildpi(linedata,gendata,yload).%Theprogrampromptstheusertoenterthefaultedbusnumber%andthefaultimpedanceZf.Theprefaultbusvoltagesare%definedbythereservedVectorV.ThearrayVmaybedefinedor%itisreturnedfromthepowerflowprogramslfgauss,lfnewton,%decoupleorperturb.IfVdoesnotexisttheprefaultbusvoltages%areautomaticallysettoperunit.Theprogramobtainsthe%totalfaultcurrent,busvoltagesandlinecurrentsduringthefault.functiondlgfault(zdata0,Zbus0,zdata1,Zbus1,zdata2,Zbus2,V)ifexist('zdata2')~=1zdata2=zdata1;else,endifexist('Zbus2')~=1Zbus2=Zbus1;else,endnl=zdata1(:,1);nr=zdata1(:,2);nl0=zdata0(:,1);nr0=zdata0(:,2);nbr=length(zdata1(:,1));nbus=max(max(nl),max(nr));nbr0=length(zdata0(:,1));R0=zdata0(:,3);X0=zdata0(:,4);R1=zdata1(:,3);X1=zdata1(:,4);R2=zdata2(:,3);X2=zdata2(:,4);fork=1:nbr0ifR0(k)==inf|X0(k)==infR0(k)=;X0(k)=9;else,endendZB1=R1+j*X1;ZB0=R0+j*X0;ZB2=R2+j*X2;ifexist('V')==1iflength(V)==nbusV0=V;else,endelse,V0=ones(nbus,1)+j*zeros(nbus,1);endfprintf('\nDoubleline-to-groundfaultanalysis\n')ff=999;whileff>0nf=input('EnterFaultedBusNo.->');rtn=isempty(nf);ifrtn==1;nf=-1;endwhilenf<=0|nf>nbusfprintf('FaultedbusNo.mustbebetween1&%g\n',nbus)nf=input('EnterFaultedBusNo.->');rtn=isempty(nf);ifrtn==1;nf=-1;endendrtz=1;whilertz==1fprintf('\nEnterFaultImpedanceZf=R+j*Xin')Zf=input('complexform(forboltedfaultenter0).Zf=');rtz=isempty(Zf);endfprintf('\n')fprintf('Doubleline-to-groundfaultatbusNo.%g\n',nf)a=cos(2*pi/3)+j*sin(2*pi/3);sctm=[111;1a^2a;1aa^2];Z11=Zbus2(nf,nf)*(Zbus0(nf,nf)+3*Zf)/(Zbus2(nf,nf)+Zbus0(nf,nf)+3*Zf);Ia1=V0(nf)/(Zbus1(nf,nf)+Z11);Ia2=-(V0(nf)-Zbus1(nf,nf)*Ia1)/Zbus2(nf,nf);Ia0=-(V0(nf)-Zbus1(nf,nf)*Ia1)/(Zbus0(nf,nf)+3*Zf);I012=[Ia0;Ia1;Ia2];Ifabc=sctm*I012;Ifabcm=abs(Ifabc);Ift=Ifabc(2)+Ifabc(3);Iftm=abs(Ift);fprintf('Totalfaultcurrent=%perunit\n\n',Iftm)fprintf('BusVoltagesduringthefaultinperunit\n\n')fprintf('Bus-------VoltageMagnitude-------\n')fprintf('No.PhaseaPhasebPhasec\n')forn=1:nbusVf0(n)=0-Zbus0(n,nf)*Ia0;Vf1(n)=V0(n)-Zbus1(n,nf)*Ia1;Vf2(n)=0-Zbus2(n,nf)*Ia2;Vabc=sctm*[Vf0(n);Vf1(n);Vf2(n)];Va(n)=Vabc(1);Vb(n)=Vabc(2);Vc(n)=Vabc(3);fprintf('%5g',n)fprintf('%',abs(Va(n))),fprintf('%',abs(Vb(n)))fprintf('%\n',abs(Vc(n)))endfprintf('\n')fprintf('LinecurrentsforfaultatbusNo.%g\n\n',nf)fprintf('FromTo-----LineCurrentMagnitude----\n')fprintf('BusBusPhaseaPhasebPhasec\n')forn=1:nbusforI=1:nbrifnl(I)==n|nr(I)==nifnl(I)==nk=nr(I);elseifnr(I)==nk=nl(I);endifk~=0Ink1(n,k)=(Vf1(n)-Vf1(k))/ZB1(I);Ink2(n,k)=(Vf2(n)-Vf2(k))/ZB2(I);else,endelse,endendforI=1:nbr0ifnl0(I)==n|nr0(I)==nifnl0(I)==nk=nr0(I);elseifnr0(I)==nk=nl0(I);endifk~=0Ink0(n,k)=(Vf0(n)-Vf0(k))/ZB0(I);else,endelse,endendforI=1:nbrifnl(I)==n|nr(I)==nifnl(I)==nk=nr(I);elseifnr(I)==nk=nl(I);endifk~=0Inkabc=sctm*[Ink0(n,k);Ink1(n,k);Ink2(n,k)];Inkabcm=abs(Inkabc);th=angle(Inkabc);ifreal(Inkabc(2))<0fprintf('%7g',n),fprintf('%10g',k),fprintf('%',abs(Inkabc(1))),fprintf('%',abs(Inkabc(2)))fprintf('%\n',abs(Inkabc(3)))elseifreal(Inkabc(2))==0&imag(Inkabc(2))>0fprintf('%7g',n),fprintf('%10g',k),fprintf('%',abs(Inkabc(1))),fprintf('%',abs(Inkabc(2)))fprintf('%\n',abs(Inkabc(3)))else,endelse,endelse,endendifn==nffprintf('%7g',n),fprintf('F'),fprintf('%',Ifabcm(1)),fprintf('%',Ifabcm(2))fprintf('%\n',Ifabcm(3))else,endendresp=0;whilestrcmp(resp,'n')~=1&strcmp(resp,'N')~=1&strcmp(resp,'y')~=1&strcmp(resp,'Y')~=1resp=input('AnotherfaultlocationEnter''y''or''n''withinsinglequote->');ifstrcmp(resp,'n')~=1&strcmp(resp,'N')~=1&strcmp(resp,'y')~=1&strcmp(resp,'Y')~=1fprintf('\nIncorrectreply,tryagain\n\n'),endendifresp=='y'|resp=='Y'nf=999;elseff=0;endend三、短路故障计算实例一个简单的11节点电力系统网络如图1所示,发电机的正序、零序电抗以及中性点接地电抗见表1。变压器连接方式如图1所示,节点11和节点7之间的变压器为△-Y连接,接地电抗为。线路和变压器正序、零序电抗标幺值见表2,基准功率为100MVA。忽略电阻、并联电抗和负荷,并假设所有的负序电抗等于正序电抗。试用函数zbuild求正序和零序网络的节点阻抗矩阵,假定故障前所有的节点电压都为,用lgfault,llfault,dlgfault和symfault计算下列故障情况下的故障电流、节点电压和线路电流。(a)母线2处发生金属性单相接地故障;(b)母线4处发生金属性两相短路故障(c)母线6处发生金属性两相接地短路故障;(d)母线8处发生三相对称故障;图111节点电力系统连接图图211节点电力系统Simulink仿真图表1发电机次暂态电抗发电机次暂态电抗节点编号X1X0Xn11011表2线路和变压器参数线路和变压器参数节点编号节点编号X1X0122325263436464941057687871189在MATLAB的命令窗口输入正序、零序阻抗数据以及求解指令:zdata1=[010100111223252634
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年度租车行业信用体系建设合同2篇
- 二零二五年度餐厅装修与品牌推广合作合同3篇
- 二零二五年度电子产品组装加工合同范本3篇
- 二零二五版电商平台法律风险防范与合规管理合同3篇
- 二零二五版城市核心区二手房交易中介合同2篇
- 封窗合同范本(2篇)
- 展会参展商培训合同(2篇)
- 二零二五版高新技术产业劳动合同标准文本3篇
- 二零二五版建筑工程合同管理与索赔争议调解服务协议3篇
- 二零二五版房地产项目股权出资转让合同样本3篇
- 资本金管理制度文件模板
- 2025年急诊科护理工作计划
- 高中家长会 高二寒假线上家长会课件
- 2024-2025学年山东省聊城市高一上学期期末数学教学质量检测试题(附解析)
- 违规行为与处罚管理制度
- 个人教师述职报告锦集10篇
- 四川省等八省2025年普通高中学业水平选择性考试适应性演练历史试题(含答案)
- 《内部培训师培训》课件
- 《雷达原理》课件-3.3.3教学课件:相控阵雷达
- 2024年中国医药研发蓝皮书
- 红色中国风蛇年年会邀请函
评论
0/150
提交评论