电力系统的三相短路计算地MATLAB代码.docVIP

  • 3
  • 0
  • 约8.3千字
  • 约 9页
  • 2019-02-01 发布于安徽
  • 举报

电力系统的三相短路计算地MATLAB代码.doc

实用标准文案 PAGE 精彩文档 电力系统三相短路计算 main.m clear tim %打开文件 [dfile,pathname]=uigetfile(*.m,Select Data File); if pathname == 0 error( you must select a valid data file) else lfile =length(dfile); eval(dfile(1:lfile-2)); end %定义输出文件 output_file=fopen(output.dat,w); %开始计时 tic; %求解节点导纳矩阵,其中Ymatrix1是考虑了变比,且支路未近似的导纳矩阵;Ymatrix2是近似变比为1,但是支路未近似计算的节点导纳矩阵;Ymatrix3是近似变比为1,采取近似支路参数1的导纳矩阵;Ymatrix4是近似变比为1,采取近似支路参数2的导纳矩阵。 Y = Ymatrix2(bus,line); %对故障点进行导纳修正 fixY = FixY(Y,bus,fault); %求注入电流 Iinj = Inode(bus,calcSettings); U = fixY\Iinj; %得到故障支路与其他支路电流 Bcurrent = Ibranch( line,U,fault,Y ); %如果发生支路三相短路,那么对应该支路的电流修正为-999999-j999999 Ib = ReviseBcurrent( fault,Bcurrent ); %结束计时 tim=toc; fprintf(\n程序运行结果); fprintf(\n计算完成,共用时%4.4fs,相关结果已保存在output.dat\n,tim); %输出结果 fprintf_result(output_file, Ib); fprintf_result1(Ib); FixY.m function fixY = FixY( Y,bus,fault ) %对形成的导纳矩阵进行故障点的修正 [nb,mb]=size(bus); [nf,mf]= size(fault); fixY = Y; %对发电机节点导纳修正 for k=1:nb busType=bus(k,7); if (busType==1) fixY(bus(k,1),bus(k,1)) = fixY(bus(k,1),bus(k,1)) + 1/1i/bus(k,8); end end %对节点短路和支路短路的导纳矩阵进行修正 for k=1:nf nodeI=fault(k,1); nodeJ=fault(k,2); dis=fault(k,3); if (nodeI==0) fixY(nodeJ,nodeJ) = 999999+1i*999999; continue; end if (nodeJ==0) fixY(nodeI,nodeI) = 999999+1i*999999; continue; end if (dis==0)(nodeI*nodeJ~=0) fixY(nodeI,nodeI) = 999999+1i*999999; continue; end if (dis==1)(nodeI*nodeJ~=0) fixY(nodeJ,nodeJ) = 999999+1i*999999; continue; end if (dis~=1)(dis~=0)(nodeI*nodeJ~=0) fixY(nodeI,nodeI) = fixY(nodeI,nodeI) - fixY(nodeI,nodeJ)/dis; fixY(nodeJ,nodeJ) = fixY(nodeJ,nodeJ) - fixY(nodeI,nodeJ)/(1-dis); fixY(nodeI,nodeJ)=0; fixY(nodeJ,nodeI)=0; end end end fprintf_result.m function [ output_args ] = fprintf_result( output_file, Ib ) %将得到的短路电流输入到输出文件中 [n,m]=size(Ib); fprintf( output_fil

文档评论(0)

1亿VIP精品文档

相关文档