电力系统三相短路计算amain.mclear 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-j999999Ib = ReviseBcurrent( fault,Bcurrent );%结束计时tim=toc;fprintf(’\n程序运行结果');fprintf(’\n计算完成,共用时%4.4fs,相关结果已保存在output.dat\n’,tim);%输出结果fprintf_result(output_file, Ib);fprintf_result1(Ib);bFixY.mfunction 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); endend%对节点短路和支路短路的导纳矩阵进行修正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)/(...