资源描述:
《潮流计算matlab_牛顿拉夫逊法法》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、实用标准文案用matlab潮流计算(牛顿拉夫逊法)%主程序:[dfile,pathname]=uigetfile('ieee14.m','SelectDataFile');ifpathname==0error('youmustselectavaliddatafile')elselfile=length(dfile);%stripoff.meval(dfile(1:lfile-2));%打开数据文件endglobaln;globalm;[nb,mb]=size(bus);%节点重新编号[nl,ml]=size(line);nSW=0;%平衡节点数目nPV=0;%PV节点
2、数目nPQ=0;%PQ节点数目fori=1:nb,%nb为总节点数type=bus(i,6);iftype==3,nSW=nSW+1;%统计平衡节点数目SW(nSW,:)=bus(i,:);elseiftype==2,nPV=nPV+1;%统计PV节点数目PV(nPV,:)=bus(i,:);elsenPQ=nPQ+1;%统计PQ节点数目PQ(nPQ,:)=bus(i,:);endend;bus=[PQ;PV;SW];newbus=[1:nb]';f=bus(:,1);nodenum=[newbusbus(:,1)];bus(:,1)=newbus;fori=1:nl
3、forj=1:2fork=1:nbifline(i,j)==nodenum(k,2)line(i,j)=nodenum(k,1);breakendendendendY=y(bus,line);%形成节点导纳矩阵K=0;%迭代次数初值精彩文档实用标准文案Kmax=10;%最大迭代次数eps1=1.0e-10;eps2=1.0e-10;m=nPQ;n=nb;Um=eye(m,m);myf=fopen('output1.dat','w');forK=1:Kmaxfori=1:mforj=1:mifi==jUm(i,j)=bus(i,2);endendendb=dPQ(Y,b
4、us);C=jac(bus,Y);dX=Cb';dx=dX';[nx,mx]=size(dx);fori=1:n-1%计算相角bus(i,3)=bus(i,3)-dX(i,1);endB=dx(nx,n:mx)*Um;%计算电压差bus(1:m,2)=bus(1:m,2)-B';%计算电压值dx(nx,n:mx)=B;fprintf(myf,'--第%d次迭代时雅可比矩阵--',K)fprintf(myf,'');fori=1:(n+m-1)forj=1:(n+m-1)fprintf(myf,'%8.6f',C(i,j));fprintf(myf,'');end
5、fprintf(myf,'');endfprintf(myf,'--第%d次迭代时dPQ的误差--',K)fprintf(myf,'');fori=1:(n+m-1)fprintf(myf,'%8.6e',b(1,i));fprintf(myf,'');endfprintf(myf,'');fprintf(myf,'--第%d次迭代时dx(误差)--',K)fprintf(myf,'');fori=1:(n+m-1)fprintf(myf,'%8.6e',dX(i,1));fprintf(myf,'');endfprintf(myf,'')
6、;精彩文档实用标准文案fprintf(myf,'第%d次迭代后节点电压(仅PQ节点)',K)fprintf(myf,'');fori=1:mfprintf(myf,'%8.6f',bus(i,2));fprintf(myf,'');endfprintf(myf,'');fprintf(myf,'第%d次迭代后相角(角度)',K)fprintf(myf,'');fori=1:nfprintf(myf,'%8.6f',bus(i,3)*180/pi);fprintf(myf,'');endfprintf(myf,'');if(max(abs(dx)
7、)