电力系统短路故障分析的MATLAB辅助程序设计短路计算程序Word下载.docx
《电力系统短路故障分析的MATLAB辅助程序设计短路计算程序Word下载.docx》由会员分享,可在线阅读,更多相关《电力系统短路故障分析的MATLAB辅助程序设计短路计算程序Word下载.docx(44页珍藏版)》请在冰点文库上搜索。
,1);
nr=linedata(:
2);
R=linedata(:
3);
X=linedata(:
4);
nbr=length(linedata(:
1));
nbus=max(max(nl),max(nr));
fork=1:
nbr
ifR(k)==inf|X(k)==inf
R(k)=999999999;
X(k)=999999999;
%无穷
else,end
end
ZB=R+j*X;
Zbus=zeros(nbus,nbus);
tree=0;
%从参考总线0上添加一个分支
forI=1:
ntree(I)=1;
ifnl(I)==0|nr(I)==0
ifnl(I)==0n=nr(I);
elseifnr(I)==0n=nl(I);
end
ifabs(Zbus(n,n))==0Zbus(n,n)=ZB(I);
tree=tree+1;
%%new
elseZbus(n,n)=Zbus(n,n)*ZB(I)/(Zbus(n,n)+ZB(I));
ntree(I)=2;
else,end
%添加一个新总线分支到现有总线上
whiletree<
nbus
forn=1:
nbus
nadd=1;
ifabs(Zbus(n,n))==0
ifnadd==1;
ifnl(I)==n|nr(I)==n
ifnl(I)==nk=nr(I);
elseifnr(I)==nk=nl(I);
ifabs(Zbus(k,k))~=0
form=1:
ifm~=n
Zbus(m,n)=Zbus(m,k);
Zbus(n,m)=Zbus(m,k);
Zbus(n,n)=Zbus(k,k)+ZB(I);
tree=tree+1;
nadd=2;
end
%增加两个原有总线间的支路阻抗
ifntree(I)==1
DM=Zbus(n,n)+Zbus(k,k)+ZB(I)-2*Zbus(n,k);
forjj=1:
AP=Zbus(jj,n)-Zbus(jj,k);
forkk=1:
AT=Zbus(n,kk)-Zbus(k,kk);
DELZ(jj,kk)=AP*AT/DM;
Zbus=Zbus-DELZ;
(2)Zbuildpi.m程序代码:
%Thisprogramformsthecomplexbusimpedancematrixbythemethod
%ofbuildingalgorithm.Buszeroistakenasreference.
%Thisprogramiscompatiblewithpowerflowdata.
function[Zbus,linedata]=zbuildpi(linedata,gendata,yload)
ng=length(gendata(:
nlg=gendata(:
nrg=gendata(:
zg=gendata(:
2)+j*gendata(:
nc=length(linedata(1,:
));
ifR(k)==inf|X(k)==inf
R(k)=99999999;
X(k)=99999999;
ifnc>
4
BC=linedata(:
5);
yc(n)=0;
nlc(n)=0;
nrc(n)=n;
fork=1:
ifnl(k)==n|nr(k)==n
yc(n)=yc(n)+j*BC(k);
elseifnc==4yc=zeros(1,nbr);
nlc=nlc'
;
nrc=nrc'
yc=yc.'
ifexist('
yload'
)==1
yload=yload.'
yc=yc+yload;
else,end
m=0;
forn=1:
ifabs(yc(n))~=0
m=m+1;
nlcc(m)=nlc(n);
nrcc(m)=nrc(n);
zc(m)=1/yc(n);
nlcc=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);
%%从参考总线0上添加一个分支
%%添加一个新总线分支到现有总线上
ifnadd==1
(3)symfault.m程序代码:
%此程序用来计算电网的三相对称故障
%计算前需要用户生成节点阻抗矩阵
%节点阻抗矩阵可由函数Zbus=zbuild(zdata)生成
%此程序需要用户按提示输入短路节点编号和过度电阻Zf
%向量V是可选参数,包含节点编号和复数电压
%V可由潮流程序lfgauss,lfnewton,decouple自动生成.
%如果V不存在,程序将默认故障前所有的节点电压标幺值为1.0
%程序可得到总的故障电流,节点电压幅值及输电线路的电流
functionsymfaul(zdata,Zbus,V)
nl=zdata(:
nr=zdata(:
R=zdata(:
X=zdata(:
nc=length(zdata(1,:
ifnc>
BC=zdata(:
elseifnc==4,BC=zeros(length(zdata(:
1)),1);
nbr=length(zdata(:
V'
iflength(V)==nbus
V0=V;
else,V0=ones(nbus,1)+j*zeros(nbus,1);
fprintf('
\Three-phasebalancedfaultanalysis\n'
)
ff=999;
whileff>
0
nf=input('
EnterFaultedBusNo.->
'
);
rtn=isempty(nf);
ifrtn==1;
nf=-1;
whilenf<
=0|nf>
nbus
fprintf('
FaultedbusNo.mustbebetween1&
%g\n'
nbus)
nf=input('
rtz=1;
whilertz==1
\nEnterFaultImpedanceZf=R+j*Xin'
Zf=input('
complexform(forboltedfaultenter0).Zf='
rtz=isempty(Zf);
\n'
Balancedthree-phasefaultatbusNo.%g\n'
nf)
If=V0(nf)/(Zf+Zbus(nf,nf));
Ifm=abs(If);
Ifmang=angle(If)*180/pi;
Totalfaultcurrent=%8.4fperunit\n\n'
Ifm)
%fprintf('
p.u.\n\n'
BusVoltagesduringfaultinperunit\n\n'
BusVoltageAngle\n'
No.Magnitudedegrees\n'
ifn==nf
Vf(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;
%4g'
n),fprintf('
%13.4f'
Vfm),fprintf('
%13.4f\n'
angv)
LinecurrentsforfaultatbusNo.%g\n\n'
FromToCurrentAngle\n'
BusBusMagnitudedegrees\n'
forn=1:
ifnl(I)==nk=nr(I);
ifk==0
Ink=(V0(n)-Vf(n))/ZB(I);
Inkm=abs(Ink);
th=angle(Ink);
ifreal(Ink)>
G'
),fprintf('
%7g'
n),fprintf('
%12.4f'
Inkm)
%12.4f\n'
th*180/pi)
elseifreal(Ink)==0&
imag(Ink)<
Ign=Ink;
elseifk~=0
Ink=(Vf(n)-Vf(k))/ZB(I)+BC(I)*Vf(n);
%10g'
k),
Inkm),fprintf('
F'
Ifmang)
resp=0;
whilestrcmp(resp,'
n'
)~=1&
strcmp(resp,'
N'
y'
Y'
)~=1
resp=input('
Anotherfaultlocation?
Enter'
'
or'
withinsinglequote->
ifstrcmp(resp,'
\nIncorrectreply,tryagain\n\n'
),end
ifresp=='
|resp=='
nf=999;
elseff=0;
二、不对称短路故障
不对称故障包括单相接地短路(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,程序则默认所有故障前的电压为1.0pu。
如果用户输入参数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中。
参数ge