资源描述:
《电力系统三相短路计算的MATLAB代码.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、用matlab实现电力系统潮流计算晏鸣宇电力系统三相短路计算amain.mcleartim%打开文件[dfile,pathname]=uigetfile('*.m','SelectDataFile');ifpathname==0error('youmustselectavaliddatafile')elselfile=length(dfile);eval(dfile(1:lfile-2));end%定义输出文件output_file=fopen('output.dat','w');%开始计时tic;%求解节点导
2、纳矩阵,其中Ymatrix1是考虑了变比,且支路未近似的导纳矩阵;Ymatrix2是近似变比为1,但是支路未近似计算的节点导纳矩阵;Ymatrix3是近似变比为1,采取近似支路参数1的导纳矩阵;Ymatrix4是近似变比为1,采取近似支路参数2的导纳矩阵。Y=Ymatrix2(bus,line);%对故障点进行导纳修正fixY=FixY(Y,bus,fault);%求注入电流Iinj=Inode(bus,calcSettings);U=fixYIinj;%得到故障支路与其他支路电流Bcurrent=Ibran
3、ch(line,U,fault,Y);%如果发生支路三相短路,那么对应该支路的电流修正为-999999-j999999Ib=ReviseBcurrent(fault,Bcurrent);%结束计时tim=toc;fprintf('程序运行结果');fprintf('计算完成,共用时%4.4fs,相关结果已保存在output.dat',tim);%输出结果fprintf_result(output_file,Ib);fprintf_result1(Ib);bFixY.mfunctionfixY=Fix
4、Y(Y,bus,fault)%对形成的导纳矩阵进行故障点的修正[nb,mb]=size(bus);[nf,mf]=size(fault);9用matlab实现电力系统潮流计算晏鸣宇fixY=Y;%对发电机节点导纳修正fork=1:nbbusType=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);endend%对节点短路和支路短路的导纳矩阵进行修正fork=1:nfnodeI=fault(k
5、,1);nodeJ=fault(k,2);dis=fault(k,3);if(nodeI==0)fixY(nodeJ,nodeJ)=999999+1i*999999;continue;endif(nodeJ==0)fixY(nodeI,nodeI)=999999+1i*999999;continue;endif(dis==0)&&(nodeI*nodeJ~=0)fixY(nodeI,nodeI)=999999+1i*999999;continue;endif(dis==1)&&(nodeI*nodeJ~=0)f
6、ixY(nodeJ,nodeJ)=999999+1i*999999;continue;endif(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;endendendafpri
7、ntf_result.mfunction[output_args]=fprintf_result(output_file,Ib)%将得到的短路电流输入到输出文件中[n,m]=size(Ib);fprintf(output_file,'No.No.vectorofIvalueofI');9用matlab实现电力系统潮流计算晏鸣宇fork=1:nI=Ib(k,1);J=Ib(k,2);I01=real(Ib(k,3));I02=imag(Ib(k,3));I1=Ib(k,4);if(I02>=0)fprintf
8、(output_file,'%3d%3d%10.6f+j%10.6f%10.6f',I,J,I01,I02,I1);endif(I02<0)I02=abs(I02);fprintf(output_file,'%3d%3d%10.6f-j%10.6f%10.6f',I,J,I01,I02,I1);endfprintf(output_file,'');endendafprintf_re