电力系统不对称故障计算的Matlab
算法程序(总7页)
--本页仅作为文档封面,使用时请直接删除即可--
--内页可以根据需求调整合适字体及大小--
NF=1;
for i1=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= [0 1 0 1 0 ; 0 2 0 1 0; 0 3 0 1 0 ; 1 4 0 0; 0 5 0 1 0; 0 6 0 1 0; 2 7 0 0; 0 8 0 1 0 ; 3 9 0 0; 4 5 0 1 1; 4 6 0 1 1; 5 7 0 1 1; 6 9 0 1 1; 7 8 0 1 1; 8 9 0 1 1]; B2=[0 1 0 1 0 ; 0 2 0 1 0; 0 3 0 1 0 ; 1 4 0 0; 0 5 0 1 0; 0 6 0 1 0; 2 7 0 0; 0 8 0 1 0 ; 3 9 0 0; 4 5 0 1 1; 4 6 0 1 1; 5 7 0 1 1; 6 9 0 1 1; 7 8 0 1 1;
2
8 9 0 1 1]; B0=[0 1 0 1 0 ; 0 2 0 1 0; 0 3 0 1 0 ; 1 4 0 0; 0 5 0 1 0; 0 6 0 1 0; 2 7 0 0; 0 8 0 1 0 ; 3 9 0 0; 4 5 *3 0 1 1; 4 6 *3 0 1 1; 5 7 *3 0 1 1; 6 9 *3 0 1 1; 7 8 *3 0 1 1; 8 9 *3 0 1 1];
A1=[1 1 1;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); for m1=1:3 m=0; if m1==1
nl=nl1;B=B1;Z=Z1;n=n1; elseif m1==2
nl=nl2;B=B2;Z=Z2;n=n2; elseif m1==3
nl=nl0;B=B0;Z=Z0;n=n0; end
m=0;Z=zeros(n);V=zeros(n);I=zeros(nl); for k1=1:nl
p=B(k1,1);q=B(k1,2); if B(k1,6)==0 k = 1./B(k1,5); else k=B(k1,5); end if p==0 if q>m
Z(q,q)=B(k1,3);m=m+1; else
for i=1:m
Z(i,m+1)=-Z(i,q);Z(m+1,i)=-Z(q,i);
3
end
Z(m+1,m+1)=Z(q,q)+B(k1,3); for i=1:m for j=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
for i=1:m+1 Z(m+1,i)=0; end end
else if q>m for i=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
for i=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); for i=1:m for j=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
for i=1:m+1 Z(m+1,i)=0; end end end end
if m1==1 Z1=Z;
elseif m1==2 Z2=Z;
elseif m1==3 Z0=Z; end end
4
if If==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 if Lf==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); elseif Lf==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); elseif Lf==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); elseif Lf==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); elseif Lf==5
Z4=Z2(f,f)+Z0(f,f)+3*zf; k2=1;
5
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); for i=1:n1
V1(i)=Vcs(i)-I1(f)*Z1(i,f); end
for i=1:n2
V2(i)=-I2(f)*Z2(i,f); end
for i=1:n0
V0(i)=-I0(f)*Z0(i,f); end
disp('各节点的正序电压标幺值为(节点号从小到大排):'); disp(V1);
disp('各节点的负序电压标幺值为(节点号从小到大排):'); disp(V2);
disp('各节点的零序电压标幺值为(节点号从小到大排):'); disp(V0); for i=1:3 if i==1
B=B1;V=V1;nl=nl1; elseif i==2
B=B2;V=V2;nl=nl2; elseif i==3
B=B0;V=V0;nl=nl0; end
for j=1:nl if B(j,6)==0 k=B(j,5);
else k=1./B(j,5); end
p=B(j,1);q=B(j,2); if p==0
e=0;b=B(j,3);
6
I(j)=(e-V(q)./k)./b; else
I(j)=(V(p)-V(q)./k)./B(j,3); end end if i==1 I1=I; elseif i==2 I2=I; elseif i==3 I0=I; end end
disp('各支路的正序电流标幺值为(顺序同您输入B时一样);'); for i=1:nl disp(I1(i)); end
disp('各支路的负序电流标幺值为(顺序同您输入B时一样);'); for i=1:nl disp(I2(i)); end
disp('各支路的零序电流标幺值为(顺序同您输入B时一样);'); for i=1:nl disp(I0(i)); end for i=1:3 if i==1
s0=a0;s1=a1;s2=a2; elseif i==2
s0=V0;s1=V1;s2=V2; else
s0=I0;s1=I1;s2=I2; end for j=1:3
CA=s0*A1(j,1)+s1*A1(j,2)+s2*A1(j,3); if j==1 A=CA; elseif j==2 B=CA; elseif j==3 C=CA; end end if i==1
7
Iadl=A;Ibdl=B;Icdl=C; elseif i==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时一样'); for i=1:nl disp(Iazl(i)); end
disp('各支路B相电流Ibzl分别为(顺序同您输入B时一样'); for i=1:nl
disp(Ibzl(i)); end
disp('各支路C相电流Iczl分别为(顺序同您输入B时一样'); for i=1:nl disp(Iczl(i)); end end
8
因篇幅问题不能全部显示,请点此查看更多更全内容