潮流计算matlab-牛顿拉夫逊法法

上传人:大米 文档编号:503874910 上传时间:2024-01-16 格式:DOC 页数:21 大小:98KB
返回 下载 相关 举报
潮流计算matlab-牛顿拉夫逊法法_第1页
第1页 / 共21页
潮流计算matlab-牛顿拉夫逊法法_第2页
第2页 / 共21页
潮流计算matlab-牛顿拉夫逊法法_第3页
第3页 / 共21页
潮流计算matlab-牛顿拉夫逊法法_第4页
第4页 / 共21页
潮流计算matlab-牛顿拉夫逊法法_第5页
第5页 / 共21页
点击查看更多>>
资源描述

《潮流计算matlab-牛顿拉夫逊法法》由会员分享,可在线阅读,更多相关《潮流计算matlab-牛顿拉夫逊法法(21页珍藏版)》请在金锄头文库上搜索。

1、用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); nSW=0; % 平衡节点数目 nPV=0; % PV节点数目 nPQ=

2、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=newbus bus(:,1); bus(:,1)=newbus; for

3、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 i=j Um(i,j)=bus(i,2); end end end b=dPQ

4、(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(myf,%8.6f, C(i,j); fprintf(myf, ); end

5、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); end fprintf(myf, n); fprintf(myf,第%d次迭代后节

6、点电压(仅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)&(max(abs(b)bus(l,1) r=bus(t,:);bus(t,:)=

7、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=1:n for j=1:n fprintf(myf,%8.6f, real(

8、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.1f , 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 j=2 fprintf(myf,%8.1f , Pf(k,j); fprintf(myf, ); else fprintf(myf,%8.6f, real(Pf(k,j

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 幼儿/小学教育 > 小学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号