电力系统不对称故障计算的Matlab算法程序.docx
《电力系统不对称故障计算的Matlab算法程序.docx》由会员分享,可在线阅读,更多相关《电力系统不对称故障计算的Matlab算法程序.docx(10页珍藏版)》请在冰豆网上搜索。
电力系统不对称故障计算的Matlab算法程序
NF=1;
fori1=1:
NF
clear;
n1=9;
n2=9;
n0=9;
nl1=15;
nl2=15;
nl0=15;
Lf=input('请输入短路类型(单相接地短路输入‘1’,两相短路输入‘2’,两相短路接地输入‘3’):
Lf=');
f=7;
If=0;
zf=0;
zg=0;
B1=[01010;
02010;
03010;
1400;
05010;
06010;
2700;
08010;
3900;
45011;
46011;
57011;
69011;
78011;
89011];
B2=[01010;
02010;
03010;
1400;
05010;
06010;
2700;
08010;
3900;
45011;
46011;
57011;
69011;
78011;
89011];
B0=[01010;
02010;
03010;
1400;
05010;
06010;
2700;
08010;
3900;
45*3011;
46*3011;
57*3011;
69*3011;
78*3011;
89*3011];
A1=[111;1-1./2-i*sqrt(3)/2-1./2+i*sqrt(3)/2;1-1./2+i*sqrt(3)/2-1./2-i*sqrt(3)/2];
Vcs=[;;;;;;;;];
Z1=zeros(n1);Z2=zeros(n2);Z0=zeros(n0);
Y1=zeros(n1);Y2=zeros(n2);Y0=zeros(n0);
V1=zeros(n1,1);V2=zeros(n2,1);V0=zeros(n0,1);
I1=zeros(nl1,1);I2=zeros(nl2,1);I0=zeros(nl0,1);
form1=1:
3
m=0;
ifm1==1
nl=nl1;B=B1;Z=Z1;n=n1;
elseifm1==2
nl=nl2;B=B2;Z=Z2;n=n2;
elseifm1==3
nl=nl0;B=B0;Z=Z0;n=n0;
end
m=0;Z=zeros(n);V=zeros(n);I=zeros(nl);
fork1=1:
nl
p=B(k1,1);q=B(k1,2);
ifB(k1,6)==0
k=1./B(k1,5);
elsek=B(k1,5);
end
ifp==0
ifq>m
Z(q,q)=B(k1,3);m=m+1;
else
fori=1:
m
Z(i,m+1)=-Z(i,q);Z(m+1,i)=-Z(q,i);
end
Z(m+1,m+1)=Z(q,q)+B(k1,3);
fori=1:
m
forj=1:
m
Z(i,j)=Z(i,j)-Z(i,m+1)*Z(m+1,j)./Z(m+1,m+1);
end
Z(i,m+1)=0;
end
fori=1:
m+1
Z(m+1,i)=0;
end
end
elseifq>m
fori=1:
m
Z(i,q)=Z(i,p)*k;Z(q,i)=Z(p,i)*k;
end
Z(q,q)=k^2*Z(p,p)+k^2*B(k1,3);
m=m+1;
else
fori=1:
m
Z(i,m+1)=k*Z(i,p)-Z(i,q);
Z(m+1,i)=k*Z(p,i)-Z(q,i);
end
Z(m+1,m+1)=k^2*Z(p,p)+Z(q,q)-2*k*Z(p,q)+k^2*B(k1,3);
fori=1:
m
forj=1:
m
Z(i,j)=Z(i,j)-Z(i,m+1)*Z(m+1,j)./Z(m+1,m+1);
end
Z(i,m+1)=0;
end
fori=1:
m+1
Z(m+1,i)=0;
end
end
end
end
ifm1==1
Z1=Z;
elseifm1==2
Z2=Z;
elseifm1==3
Z0=Z;
end
end
ifIf==0
Z1(f,f)=Z1(f,f);
Z2(f,f)=Z2(f,f);
Z0(f,f)=Z0(f,f);
else
Z1(f,f)=Z1(f,f)+Z1(1,1)-2*Z1(f,1);
Z2(f,f)=Z2(f,f)+Z2(1,1)-2*Z2(f,1);
Z0(f,f)=Z0(f,f)+Z0(1,1)-2*Z0(f,1);
end
ifLf==1
Z4=Z2(f,f)+Z0(f,f)+3*zf;
k2=1;k0=1;
I1(f)=Vcs(f)./(Z1(f,f)+Z4);
I2(f)=k2*I1(f);
I0(f)=k0*I1(f);a1=I1(f);
a2=I2(f);a0=I0(f);
elseifLf==2
Z4=Z2(f,f)+2*zf;
k2=-1;k0=0;
I1(f)=Vcs(f)./(Z1(f,f)+Z4);
I2(f)=k2*I1(f);
I0(f)=k0*I1(f);a1=I1(f);
a2=I2(f);a0=I0(f);
elseifLf==3
Z4=zf+(Z2(f,f)+zf)*(Z0(f,f)+zf+3*zg)./(Z2(f,f)+Z0(f,f)+2*zf+3*zg);
k2=-(Z0(f,f)+zf+3*zg)./(Z2(f,f)+Z0(f,f)+2*zf+3*zg);
k0=-(Z2(f,f)+zf)./(Z2(f,f)+Z0(f,f)+2*zf+3*zg);
I1(f)=Vcs(f)./(Z1(f,f)+Z4);
I2(f)=k2*I1(f);
I0(f)=k0*I1(f);
a1=I1(f);
a2=I2(f);a0=I0(f);
elseifLf==4
Z4=zf+(Z2(f,f)+zf)*(Z0(f,f)+zf)./(Z2(f,f)+Z0(f,f)+2*zf);
k2=-(Z0(f,f)+zf)./(Z2(f,f)+Z0(f,f)+2*zf);
k0=-(Z2(f,f)+zf)./(Z2(f,f)+Z0(f,f)+2*zf);
I1(f)=Vcs(f)./(Z1(f,f)+Z4);
I2(f)=k2*I1(f);
I0(f)=k0*I1(f);
a1=I1(f);
a2=I2(f);a0=I0(f);
elseifLf==5
Z4=Z2(f,f)+Z0(f,f)+3*zf;
k2=1;
k0=1;
I1(f)=Vcs(f)./(Z1(f,f)+Z4);
I2(f)=k2*I1(f);
I0(f)=k0*I1(f);
a1=I1(f);
a2=I2(f);a0=I0(f);
end
disp('故障点处的正序电流标幺值为:
');
disp(a1);
disp('故障点处的负序电流标幺值为:
');
disp(a2);
disp('故障点处的零序电流标幺值为:
');
disp(a0);
fori=1:
n1
V1(i)=Vcs(i)-I1(f)*Z1(i,f);
end
fori=1:
n2
V2(i)=-I2(f)*Z2(i,f);
end
fori=1:
n0
V0(i)=-I0(f)*Z0(i,f);
end
disp('各节点的正序电压标幺值为(节点号从小到大排):
');
disp(V1);
disp('各节点的负序电压标幺值为(节点号从小到大排):
');
disp(V2);
disp('各节点的零序电压标幺值为(节点号从小到大排):
');
disp(V0);
fori=1:
3
ifi==1
B=B1;V=V1;nl=nl1;
elseifi==2
B=B2;V=V2;nl=nl2;
elseifi==3
B=B0;V=V0;nl=nl0;
end
forj=1:
nl
ifB(j,6)==0
k=B(j,5);
elsek=1./B(j,5);
end
p=B(j,1);q=B(j,2);
ifp==0
e=0;b=B(j,3);
I(j)=(e-V(q)./k)./b;
else
I(j)=(V(p)-V(q)./k)./B(j,3);
end
end
ifi==1
I1=I;
elseifi==2
I2=I;
elseifi==3
I0=I;
end
end
disp('各支路的正序电流标幺值为(顺序同您输入B时一样);');
fori=1:
nl
disp(I1(i));
end
disp('各支路的负序电流标幺值为(顺序同您输入B时一样);');
fori=1:
nl
disp(I2(i));
end
disp('各支路的零序电流标幺值为(顺序同您输入B时一样);');
fori=1:
nl
disp(I0(i));
end
fori=1:
3
ifi==1
s0=a0;s1=a1;s2=a2;
elseifi==2
s0=V0;s1=V1;s2=V2;
else
s0=I0;s1=I1;s2=I2;
end
forj=1:
3
CA=s0*A1(j,1)+s1*A1(j,2)+s2*A1(j,3);
ifj==1
A=CA;
elseifj==2
B=CA;
elseifj==3
C=CA;
end
end
ifi==1
Iadl=A;Ibdl=B;Icdl=C;
elseifi==2
Vajy=A;Vbjy=B;Vcjy=C;
else
Iazl=A;Ibzl=B;Iczl=C;
end
end
disp('故障点处A相电流Iadl为:
');
disp(Iadl);
disp('故障点处B相电流Ibdl为:
');
disp(Ibdl);
disp('故障点处C相电流Icdl为:
');
disp(Icdl);
disp('各节点处A相电压Vajy分别为(节点号从小到大排):
');
disp(Vajy);
disp('各节点处B相电压Vbjy分别为(节点号从小到大排):
');
disp(Vbjy);
disp('各节点处C相电压Vcjy分别为(节点号从小到大排):
');
disp(Vcjy);
disp('各支路A相电流Iazl分别为(顺序同您输入B时一样');
fori=1:
nl
disp(Iazl(i));
end
disp('各支路B相电流Ibzl分别为(顺序同您输入B时一样');
fori=1:
nl
disp(Ibzl(i));
end
disp('各支路C相电流Iczl分别为(顺序同您输入B时一样');
fori=1:
nl
disp(Iczl(i));
end
end