潮流计算matlab牛顿拉夫逊法法(共40页).doc
《潮流计算matlab牛顿拉夫逊法法(共40页).doc》由会员分享,可在线阅读,更多相关《潮流计算matlab牛顿拉夫逊法法(共40页).doc(40页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上潮流计算matlab-牛顿拉夫逊法法专心-专注-专业用matlab潮流计算(牛顿拉夫逊法)%主程序:dfile,pathname=uigetfile(ieee14.m,Select Data File);if pathname=0 error(you must select a valid data file)else lfile=length(dfile); % strip off .m eval(dfile(1:lfile-2); %打开数据文件endglobal n;global m;nb,mb=size(bus); %节点重新编号nl,ml=size(line
2、); nSW=0; % 平衡节点数目 nPV=0; % PV节点数目 nPQ=0; % PQ节点数目 for i=1:nb, % nb为总节点数 type=bus(i,6); if type=3, nSW=nSW+1; % 统计平衡节点数目 SW(nSW,:)=bus(i,:); elseif type=2, nPV=nPV+1; % 统计PV节点数目 PV(nPV,:)=bus(i,:); else nPQ=nPQ+1; % 统计PQ节点数目 PQ(nPQ,:)=bus(i,:); end end; bus=PQ;PV;SW; newbus=1:nb; f=bus(:,1); nodenum
3、=newbus bus(:,1); bus(:,1)=newbus; for i=1:nl for j=1:2 for k=1:nb if line(i,j)=nodenum(k,2) line(i,j)=nodenum(k,1); break end end end endY=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);for K=1:Kmax for i=1:m for j=1:m if
4、i=j Um(i,j)=bus(i,2); end end end b=dPQ(Y,bus); C=jac(bus,Y); dX=Cb; dx=dX; nx,mx=size(dx); for i=1:n-1 %计算相角 bus(i,3)=bus(i,3)-dX(i,1); end B=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, n); for i=1:(n+m-1) for j=1:(n+m-1) fprintf(
5、myf,%8.6f, C(i,j); fprintf(myf, ); end fprintf(myf, n); end fprintf(myf,-第%d次迭代时dPQ的误差-,K) fprintf(myf, n); for i=1:(n+m-1) fprintf(myf,%8.6e, b(1,i); fprintf(myf, n); end fprintf(myf, n); fprintf(myf,-第%d次迭代时dx(误差)-,K) fprintf(myf, n); for i=1:(n+m-1) fprintf(myf,%8.6e, dX(i,1); fprintf(myf, n); en
6、d fprintf(myf, n); fprintf(myf,第%d次迭代后节点电压(仅PQ节点),K) fprintf(myf, n); for i=1:m fprintf(myf,%8.6f, bus(i,2); fprintf(myf, n); end fprintf(myf, n); fprintf(myf,第%d次迭代后相角(角度),K) fprintf(myf, n); for i=1:n fprintf(myf,%8.6f, bus(i,3)*180/pi); fprintf(myf, n); end fprintf(myf, n); if (max(abs(dx)eps1)&(
7、max(abs(b)bus(l,1) r=bus(t,:);bus(t,:)=bus(l,:);bus(l,:)=r; end endendfor i=1:nl for j=1:2 for k=1:nb if line(i,j)=nodenum(k,1) line(i,j)=nodenum(k,2); break end end endend fclose(myf);Pf=loss(bus,line); %计算支路潮流及损耗 %将节点导纳矩阵、节点潮流计算结果写入文件output2 myf=fopen(output2.dat,w); fprintf(myf, -节点导纳矩阵-n); for k
8、=1:n for j=1:n fprintf(myf,%8.6f, real(Y(k,j); fprintf(myf, +i*); fprintf(myf,%8.6f, imag(Y(k,j); fprintf(myf, ); end fprintf(myf, n); end fprintf(myf, -牛顿拉夫逊法潮流计算结果-n); fprintf(myf, -节点计算结果-n); fprintf(myf, - 节点 节点电压 节点相角 注入有功功率(P) 注入无功功率(Q) 类型-n); for l=1:nb for j=1:mb if j=1|j=6 fprintf(myf, %8.1
9、f , bus(l,j); elseif j=3 fprintf(myf, %8.6f , bus(l,j)*180/pi); else fprintf(myf, %8.6f , bus(l,j); end end fprintf(myf, n); end fprintf(myf, -支路计算结果-n); fprintf(myf, - 节点(I) 节点(J) 线路功率S(I,J) 线路功率S(J,I) 线路损耗dS(I,J)-n); for k=1:nl for j=1:5 if j0 %K0时变压器支路 Y(I,I)=Y(I,I)+Yt+Ym; Y(J,J)=Y(J,J)+Yt/K2; Y(
10、I,J)=Y(I,J)-Yt/K; Y(J,I)=Y(I,J); end if K0 %K0 %变压器支路k0时的潮流 S(I,J)=bus(I,2)2*(conj(Ym+Yt*(1-1/K)+conj(Yt/K)-bus(I,2)*(cos(bus(I,3)+i*sin(bus(I,3)*bus(J,2)*(cos(bus(J,3)-i*sin(bus(J,3)*conj(Yt/K); S(J,I)=bus(J,2)2*(conj(Yt)/K2-bus(J,2)*(cos(bus(J,3)+i*sin(bus(J,3)*bus(I,2)*(cos(bus(I,3)-i*sin(bus(I,3
11、)*conj(Yt/K); delS(I,J)=S(I,J)+S(J,I); end if K0 %变压器支路k0时的潮流 S(I,J)=bus(I,2)2*(conj(Ym+Yt)+bus(I,2)*(cos(bus(I,3)+i*sin(bus(I,3)*bus(J,2)*(cos(bus(J,3)-i*sin(bus(J,3)*conj(Yt*K); S(J,I)=bus(J,2)2*(conj(Yt)*K2+bus(J,2)*(cos(bus(J,3)+i*sin(bus(J,3)*bus(I,2)*(cos(bus(I,3)-i*sin(bus(I,3)*conj(Yt*K); de
12、lS(I,J)=S(I,J)+S(J,I); end if J=5&Zt=0 Sp=line(k,1) line(k,2) S(I,5) 0 S(I,5); else Sp=line(k,1) line(k,2) S(I,J) S(J,I) delS(I,J); end Pf(k,:)=Sp;end %输入的参数数据:% data for test case%各节点参数:节点编号,注入有功,注入无功,(Sn=100MVA)电压幅值,电压相位,类型%类型:1=PQ节点,2=PV节点,3=平衡节点% (bus#)( volt )( ang )( p )( q )(bus type)bus=1,1.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 潮流 计算 matlab 牛顿 拉夫逊法法 40
限制150内