故障分析上机计算.docx

上传人:b****4 文档编号:3928733 上传时间:2023-05-06 格式:DOCX 页数:20 大小:220.36KB
下载 相关 举报
故障分析上机计算.docx_第1页
第1页 / 共20页
故障分析上机计算.docx_第2页
第2页 / 共20页
故障分析上机计算.docx_第3页
第3页 / 共20页
故障分析上机计算.docx_第4页
第4页 / 共20页
故障分析上机计算.docx_第5页
第5页 / 共20页
故障分析上机计算.docx_第6页
第6页 / 共20页
故障分析上机计算.docx_第7页
第7页 / 共20页
故障分析上机计算.docx_第8页
第8页 / 共20页
故障分析上机计算.docx_第9页
第9页 / 共20页
故障分析上机计算.docx_第10页
第10页 / 共20页
故障分析上机计算.docx_第11页
第11页 / 共20页
故障分析上机计算.docx_第12页
第12页 / 共20页
故障分析上机计算.docx_第13页
第13页 / 共20页
故障分析上机计算.docx_第14页
第14页 / 共20页
故障分析上机计算.docx_第15页
第15页 / 共20页
故障分析上机计算.docx_第16页
第16页 / 共20页
故障分析上机计算.docx_第17页
第17页 / 共20页
故障分析上机计算.docx_第18页
第18页 / 共20页
故障分析上机计算.docx_第19页
第19页 / 共20页
故障分析上机计算.docx_第20页
第20页 / 共20页
亲,该文档总共20页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

故障分析上机计算.docx

《故障分析上机计算.docx》由会员分享,可在线阅读,更多相关《故障分析上机计算.docx(20页珍藏版)》请在冰点文库上搜索。

故障分析上机计算.docx

故障分析上机计算

附录一系统接线图和原始数据

1.系统接线图

2.原始数据

附录二程序流程图

附录三程序源代码(matlab)<”faulnal.m”>

%1清空

clc;

clearall;

%清空

%2----------------数据录入

%正序节点数zjds、支路数zzls,零序节点数ljds、支路数lzls,系统电源数dys

[zjds,zzls,ljds,lzls,dys]=textread('filein.txt','%d%d%d%d%d',1);

%系统电源的电流所流入的节点、等效电抗、等效电势-->电源dy(dys,3)即dy(4,3)

[dy1,dy2,dy3]=textread('filein.txt','%d%f%d',dys,'headerlines',1);%每一列都读四行,先跳一行

dy=[dy1,dy2,dy3];

%正序网络参数两个节点及阻抗-->正序zx(zzls,3)

[zx1,zx2,zx3]=textread('filein.txt','%d%d%f',zzls,'headerlines',1+dys);

zx=[zx1,zx2,zx3];

%零序网络参数两个节点及阻抗-->正序lx(lzls,3)

[lx1,lx2,lx3]=textread('filein.txt','%d%d%f',lzls,'headerlines',1+dys+zzls);

lx=[lx1,lx2,lx3];

%-----------------数据录入

%3----------------生成支路阻抗矩阵z1(5,5)和z0(5,5)

%正序

z1=zeros(zjds,zjds);

fori=1:

zzls%1:

9

if(zx(i,1)~=0)&(zx(i,2)~=0)%生成支路阻抗矩阵z1(5,5)

z1(zx(i,1),zx(i,2))=zx(i,3);

z1(zx(i,2),zx(i,1))=zx(i,3);

else

continue

end

end

%零序

z0=zeros(ljds,ljds);

fori=1:

lzls%1:

9

if(lx(i,1)~=0)&(lx(i,2)~=0)%生成支路阻抗矩阵z1(5,5)

z0(lx(i,1),lx(i,2))=lx(i,3);

z0(lx(i,2),lx(i,1))=lx(i,3);

else

continue;

end

end

%-----------------生成支路阻抗矩阵z1和z0

%4----------------生成支路导纳矩阵y1(5,5)和y0(5,5)

%正序

fori=1:

zjds%1:

5

forj=1:

zjds

ifz1(i,j)~=0%消除infinite

y1(i,j)=1/z1(i,j);

else

continue;

end

end

end

%零序

fori=1:

ljds%1:

5

forj=1:

ljds

ifz0(i,j)~=0

y0(i,j)=1/z0(i,j);

else

continue

end

end

end

%-----------------生成支路导纳矩阵y1(5,5)和y0(5,5)

%5----------------生成节点导纳矩阵Y1(5,5)和Y0(5,5)

%不利用4中现成的了,因为还需要判断和计算0的阻抗,

%另外,若在3中对else进行加工,还需要另辟空间,且要判断两个节点哪个为零,另一个为多少

%不如以下方法直接

%正序

Y1=zeros(zjds,zjds);

fori=1:

zjds%正序五个节点

%主对角线上

forj=1:

zzls%只要有i节点,就纳入

if(zx(j,1)==i)|(zx(j,2)==i)

Y1(i,i)=Y1(i,i)+1/zx(j,3);

else

continue;

end

end

%非对角线上

forj=1:

zjds

ifj~=i

Y1(i,j)=-y1(i,j);

else

continue;

end

end

end

%零序

Y0=zeros(ljds,ljds);

fori=1:

ljds%零序五个节点

%主对角线上

forj=1:

zzls

if(lx(j,1)==i)|(lx(j,2)==i)

Y0(i,i)=Y0(i,i)+1/lx(j,3);

else

continue

end

end

%非对角线上

forj=1:

ljds

ifj~=i

Y0(i,j)=-y0(i,j);

else

continue

end

end

end

%-----------------生成节点导纳矩阵Y1(5,5)和Y0(5,5)

%6----------------生成节点阻抗矩阵Z1(5,5)和Z0(5,5)

Z1=inv(Y1);

Z0=inv(Y0);

%-----------------生成节点阻抗矩阵Z1(5,5)和Z0(5,5)

%7----------------判定故障位置和故障类型

F_point=input('欢迎使用故障分析计算程序\n请输入故障的位置:

\n1->A\n2->C\n3->D\n4->E\n5->B\n');

F_type=input('请指明故障类型:

\n1->三相短路\n2->单相接地短路\n3->两相相间短路\n4->两相接地短路\n');

%-----------------判定故障位置和故障类型

%8----------------计算口电压的正常分量

Up=0;

fp=F_point;

fori=1:

dys

Up=Up+Z1(fp,dy(i,1))*dy(i,3)/dy(i,2);

end

%-----------------计算口电压的正常分量

%9----------------根据故障类型计算故障口各序电流

switch(F_type)

case1

curfau

(1)=-Up/Z1(fp,fp);

curfau

(2)=0;

curfau(3)=0;

case2

curfau

(1)=-Up/(2*Z1(fp,fp)+Z0(fp,fp));

curfau

(2)=curfau

(1);

curfau(3)=curfau

(1);

case3

curfau

(1)=-0.5*Up/Z1(fp,fp);

curfau

(2)=-curfau

(1);

curfau(3)=0;

case4

curfau

(1)=-Up/(Z1(fp,fp)+Z1(fp,fp)*Z0(fp,fp)/(Z1(fp,fp)+Z0(fp,fp)));

curfau

(2)=-curfau

(1)*Z0(fp,fp)/(Z1(fp,fp)+Z0(fp,fp));

curfau(3)=-curfau

(1)*Z1(fp,fp)/(Z1(fp,fp)+Z0(fp,fp));

end

%-----------------根据故障类型计算故障口各序电流

%10---------------计算故障口各相电流

S=[1+0i,1+0i,1+0i;

1+0i,-0.5-0.866i,-0.5+0.866i;

1+0i,-0.5+0.866i,-0.5-0.866i;];

I_F=curfau*S;

fori=1:

3

molI_F(i)=abs(I_F(i));

end

%-----------------计算故障口各相电流

%11---------------计算节点序电压

vol=zeros(zjds,3);

form=1:

zjds

fori=1:

dys

vol(m,1)=vol(m,1)+Z1(m,dy(i,1))*dy(i,3)/dy(i,2);

end

vol(m,1)=vol(m,1)+Z1(m,fp)*curfau

(1);

vol(m,2)=Z1(m,fp)*curfau

(2);

vol(m,3)=Z0(m,fp)*curfau(3);

end

%-----------------计算节点序电压

%12---------------计算节点相电压

U=vol*S;

fori=1:

zjds

forj=1:

3

molU(i,j)=abs(U(i,j));

end

end

%-----------------计算节点相电压

%13---------------计算任意支路的序电流

fors=1:

2%分开是因为正负、零序阻抗不同

fork=1:

9

ifzx(k,1)==0%零点电压为零!

cur(k,s)=(0-vol(zx(k,2),s))/zx(k,3);

elseifzx(k,2)==0%不可能两个节点都为零节点

cur(k,s)=(vol(zx(k,1),s)-0)/zx(k,3);

else

cur(k,s)=(vol(zx(k,1),s)-vol(zx(k,2),s))/zx(k,3);

end

end

end

fork=1:

9

iflx(k,1)==0

cur(k,3)=(0-vol(lx(k,2),3))/lx(k,3);

elseiflx(k,2)==0%不可能两个节点都为零节点

cur(k,3)=(vol(lx(k,1),3)-0)/lx(k,3);

else

cur(k,3)=(vol(lx(k,1),3)-vol(lx(k,2),3))/lx(k,3);

end

end

%-----------------计算任意支路的序电流

%14---------------计算任意支路的相电流

I=cur*S;

fori=1:

zzls

forj=1:

3

molI(i,j)=abs(I(i,j));

end

end

%-----------------计算任意支路的相电流

%15---------------查询节点支路情况

checkjd=input('\n节点查询:

\n1-->查询某一节点\n2-->显示所有节点\n0-->不查询\n');

if(checkjd==1)

chek_fp=input('请输入要查询的节点:

\n1->A\n2->C\n3->D\n4->E\n5->B\n');

else

end

checkzl=input('\n支路查询:

\n1-->查询某一支路\n2-->显示所有支路\n0-->不查询\n');

if(checkzl==1)

chek_zl=input('请输入要查询的支路:

\n1->地-B\n2->B-E\n3->E-D\n4->D-C\n5->D-A\n6->A-C\n7->地-D\n8->地-C\n9->地-A\n');

else

end

%-----------------查询节点支路情况

%16---------------生成数据输出文件

fid=fopen('fileout.txt','w');%以文本输出打开文件fileout,若无新建,若有则覆盖。

%输出内容为:

个人信息,Y1Y0Z1Z0,故障节点故障类型,故障口电流curfau+molI_F,支路vol+molU,节点cur+molI

fprintf(fid,'\t\t--------------------程序输出文件--------------------\r\n');

fprintf(fid,'\r\n\t++++++++++++++++++++++++++++++++个人信息++++++++++++++++++++++++++++++++\r\n');

fprintf(fid,'\r\n\t\t班级:

电气11k6\t\t姓名:

牛玺童\r\n\t\t学号:

111904010415\t\t指导老师:

高红艳\r\n');

fprintf(fid,'\r\n\t++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\r\n');

fprintf(fid,'\r\n\t******************正序节点导纳矩阵Y1******************\r\n');

fori=1:

zjds

forj=1:

zjds

fprintf(fid,'%12.4f',Y1(i,j));

end

fprintf(fid,'\r\n');

end

fprintf(fid,'\r\n\t******************零序节点导纳矩阵Y0******************\r\n');

fori=1:

ljds

forj=1:

ljds

fprintf(fid,'%12.4f',Y0(i,j));

end

fprintf(fid,'\r\n');

end

fprintf(fid,'\r\n\t******************正序节点阻抗矩阵Z1******************\r\n');

fori=1:

zjds

forj=1:

zjds

fprintf(fid,'%12.4f',Z1(i,j));

end

fprintf(fid,'\r\n');

end

fprintf(fid,'\r\n\t******************零序节点阻抗矩阵Z0******************\r\n');

fori=1:

ljds

forj=1:

ljds

fprintf(fid,'%12.4f',Z0(i,j));

end

fprintf(fid,'\r\n');

end

fprintf(fid,'\r\n\t**********************故障情况**********************\r\n');

%故障位置ACDEB

fprintf(fid,'\r\n\t故障位置为:

');

switch(fp)

case1

fprintf(fid,'A厂');

case2

fprintf(fid,'C站');

case3

fprintf(fid,'D站');

case4

fprintf(fid,'E站');

case5

fprintf(fid,'B厂');

end

%故障类型:

\n1->三相短路\n2->单相接地短路\n3->两相相间短路\n4->两相接地短路\n')

fprintf(fid,'\t\t故障类型为:

');

switch(F_type)

case1

fprintf(fid,'三相短路');

case2

fprintf(fid,'单相接地短路');

case3

fprintf(fid,'两相相间短路');

case4

fprintf(fid,'两相接地短路');

end

fprintf(fid,'\r\n\r\n\t口电压的正常分量为%12.5f\r\n',Up);

fprintf(fid,'\r\n\t**************************故障口电流**************************\r\n');

fprintf(fid,'\t正序负序零序A相B相C相\r\n\t');

fori=1:

3

fprintf(fid,'%10.4f',curfau(i));

end

fori=1:

3

fprintf(fid,'%10.4f',molI_F(i));

end

fprintf(fid,'\r\n\r\n\t********************************节点电压********************************\r\n\t');

switch(checkjd)

case1%显示某一节点

fprintf(fid,'\t正序负序零序A相B相C相');

fprintf(fid,'\r\n\t节点%-3d',chek_fp);

switch(chek_fp)

case1

fprintf(fid,'A厂');

case2

fprintf(fid,'C站');

case3

fprintf(fid,'D站');

case4

fprintf(fid,'E站');

case5

fprintf(fid,'B厂');

end

forj=1:

3

fprintf(fid,'%10.4f',vol(chek_fp,j));%序电压

end

forj=1:

3

fprintf(fid,'%10.4f',molU(i,j));%相电压

end

case2%显示所有节点

fprintf(fid,'\t正序负序零序A相B相C相');

fori=1:

zjds

fprintf(fid,'\r\n\t节点%-3d',i);

switch(i)

case1

fprintf(fid,'A厂');

case2

fprintf(fid,'C站');

case3

fprintf(fid,'D站');

case4

fprintf(fid,'E站');

case5

fprintf(fid,'B厂');

end

forj=1:

3

fprintf(fid,'%10.4f',vol(i,j));%序电压

end

forj=1:

3

fprintf(fid,'%10.4f',molU(i,j));%相电压

end

end

case0%未查询

fprintf(fid,'\t\t未查询');

end

fprintf(fid,'\r\n\r\n\t********************************支路电流********************************\r\n\t');

switch(checkzl)

case1%显示某一支路

fprintf(fid,'\t正序负序零序A相B相C相');

fprintf(fid,'\r\n\t支路%-3d',chek_zl);

switch(chek_zl)

case1

fprintf(fid,'地-B');

case2

fprintf(fid,'B-E');

case3

fprintf(fid,'E-D');

case4

fprintf(fid,'D-C');

case5

fprintf(fid,'D-A');

case6

fprintf(fid,'A-C');

case7

fprintf(fid,'地-D');

case8

fprintf(fid,'地-C');

case9

fprintf(fid,'地-A');

end

forj=1:

3

fprintf(fid,'%10.4f',cur(chek_zl,j));%序电流

end

forj=1:

3

fprintf(fid,'%10.4f',molI(chek_zl,j));%相电流

end

case2

fprintf(fid,'\t正序负序零序A相B相C相');

fori=1:

zzls

fprintf(fid,'\r\n\t支路%-3d',i);

switch(i)

case1

fprintf(fid,'地-B');

case2

fprintf(fid,'B-E');

case3

fprintf(fid,'E-D');

case4

fprintf(fid,'D-C');

case5

fprintf(fid,'D-A');

case6

fprintf(fid,'A-C');

case7

fprintf(fid,'地-D');

case8

fprintf(fid,'地-C');

case9

fprintf(fid,'地-A');

end

forj=1:

3

fprintf(fid,'%10.4f',cur(i,j));%序电流

end

forj=1:

3

fprintf(fid,'%10.4f',molI(i,j));%相电流

end

end

case0

fprintf(fid,'\t\t未查询');

end

fprintf(fid,'\r\n\r\n\r\n');

%-----------------生成数据输出文件

附录四输入文件和输出文件

1.输入文件:

”filein.txt”

2.输出文件:

”fileout.txt”

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 工程科技 > 电子电路

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2