您的当前位置:首页正文

电力系统不对称故障计算的Matlab算法程序

来源:个人技术集锦


电力系统不对称故障计算的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

因篇幅问题不能全部显示,请点此查看更多更全内容