高压输电网潮流的计算机算法程序设计课程设计论文(编辑修改稿)内容摘要:

nPQ = 0。 for I = 1:nb, % nb为总节点数 type= bus(I,6)。 if type == 3, %求平衡节点数 nSW = nSW + 1。 SW(nSW,:)=bus(I,:)。 elseif type == 2, %求 PV节点数 nPV = nPV +1。 PV(nPV,:)=bus(I,:)。 else %求 PQ节点数 nPQ = nPQ + 1。 PQ(nPQ,:)=bus(I,:)。 end end bus=[PQ。 PV。 SW]。 %按 PQ PV SW顺序排列的节点数据矩阵 newbus=[1:nb]39。 nodenum=[newbus bus(:,1)]。 %形成节点号对应表 贵州大学电气工程学院《电力系统分析》课程设计 11 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 end %******************建立节点导纳矩阵 ***************** function Y = ybus(bus,line) global nl。 global nb。 global bus。 global line。 global Y。 global myf。 Y=zeros(nb,nb)。 %对导纳矩阵赋初值 0 for k=1:nl I=line(k,1)。 %读入线路参数 J=line(k,2)。 Zt=line(k,3)+j*line(k,4)。 if J~=0 %接地支路分母为零 Yt=1/Zt。 %非接地支路为阻抗的倒数 end Ym=line(k,5)+j*line(k,6)。 %求 Ym K=line(k,7)。 %求 K if (K==0)amp。 (J~=0) % 普通线路 : K=0。 Y(I,I)=Y(I,I)+Yt+Ym。 Y(J,J)=Y(J,J)+Yt+Ym。 Y(I,J)=Y(I,J)Yt。 Y(J,I)=Y(I,J)。 end if (K==0)amp。 (J==0) % 对地支路 : K=0,J=0,R=X=0。 Y(I,I)=Y(I,I)+Ym。 end 贵州大学电气工程学院《电力系统分析》课程设计 12 if K0 % 变压器线路 :Zt和 Ym为折算到 i侧的值 ,K在 j侧 Y(I,I)=Y(I,I)+Yt+Ym。 Y(J,J)=Y(J,J)+Yt/K/K。 Y(I,J)=Y(I,J)Yt/K。 Y(J,I)=Y(I,J)。 end if K0 % 变压器线路 :Zt和 Ym为折算到 K所在侧的值 ,K在 i侧 Y(I,I)=Y(I,I)+Yt+Ym。 Y(J,J)=Y(J,J)+K*K*Yt。 Y(I,J)=Y(I,J)+K*Yt。 Y(J,I)=Y(I,J)。 end end %***************牛顿拉夫逊法解非线性方程序组 *************** function NR global nb。 global nPQ。 global bus。 global line。 global Y。 global myf。 max1=100。 %最大迭代次数 eps1=。 %收敛精度 eps2=。 fprintf(myf, 39。 节点导纳矩阵 Y\n39。 )。 %输出节点导纳矩阵 for I=1:nb for J=1:nb fprintf(myf, 39。 %10f+j*(%10f) 39。 , real(Y(I,J)),imag(Y(I,J)))。 end fprintf(myf, 39。 \n39。 )。 end for i=1:max1 angl(:,1)=bus(1:nb1,3)。 u(:,1)=bus(1:nPQ,2)。 x=[angl。 u]。 %从 bus矩阵中得到 PQ PV节点的相角、 PQ节点的电压形成的列向量作为 x Jac=form_jac(bus,Y)。 %得到雅可比矩阵 del=dPQ(Y,bus)。 %得到功率偏差列向量 贵州大学电气工程学院《电力系统分析》课程设计 13 dx=Jac\del。 %求得 dx fprintf(myf,39。 第 %d次迭代结果 \n39。 ,i)。 fprintf(myf,39。 第 %d次迭代的雅比矩阵 J\n39。 ,i)。 for I=1:nb+nPQ1 for J=1:nb+nPQ1 fprintf(myf, 39。 %10f 39。 , Jac(I,J))。 %输出每次迭代的雅可比矩阵 end fprintf(myf, 39。 \n39。 )。 end fprintf(myf,39。 第 %d次迭代的功率偏差 dP和 dQ\n39。 ,i)。 for I=1:nb+nPQ1 fprintf(myf, 39。 %10e 39。 , del(I,1))。 %输出每次迭代的功率偏差 fprintf(myf, 39。 \n39。 )。 end fprintf(myf,39。 第 %d 次 迭 代 的 节 点 相 角 和 电 压 的 偏 差dx\n39。 ,i)。 for I=1:nb+nPQ1 fprintf(myf, 39。 %10e 39。 , dx(I,1))。 %输出每次迭代的节点相角和电压的偏差 fprintf(myf, 39。 \n39。 )。 end for I=nb:nb+nPQ1 dx(I,1)=dx(I,1)*x(I,1)。 %由于求得的是 delU/U,故还需作相应处理 end x=xdx。 %修正 fprintf(myf,39。 第 %d次迭代的节点相角 delta和电压 U\n39。 ,i)。 angl=x(1:nb1,1)。 %将合一起的 x,拆成相角、电压两个列向量 u=x(nb:nb+nPQ1,1)。 for I=1:nb1 %输出修正的 bus矩阵中 PQ、 PV结点的相角 bus(I,3)=angl(I,1)。 fprintf(myf, 39。 ang%d %10f \n39。 , I,angl(I,1))。 end for I=1:nPQ %输出修正的 bus矩阵中 PQ结点的电压 bus(I,2)=u(I,1)。 fprintf(myf, 39。 U%d %10f \n39。 , I,u(I,1))。 end 贵州大学电气工程学院《电力系统分析》课程设计 14 if (max(abs(dx))eps1)amp。 (max(abs(dPQ(Y,bus)))eps2) %判断是否达到所指定的精度要求 break end end if i==max1 %超出最大迭代次数。 出错指示 error(39。 超过最大迭代次数,不收敛停机。 39。 )。 end %*******************计算节点注入功率 ************ function PQ global nb。 global nPQ。 global bus。 global line。 global Y。 for I=nPQ+1:nb %求 PV结点的 Q,平衡节点的 P,Q if bus(I,6)==3 %对于平衡节点,求其 P sum=0。 for J=1:nb ang=bus(I,3)bus(J,3)。 A=real(Y(I,J))*cos(ang)+imag(Y(I,J))*sin(ang)。 sum=sum+bus(I,2)*bus(J,2)*(A)。 end bus(I,4)=sum。 %求取的平衡节点的 P存回 bus矩阵 end sum=0。 for J=1:nb ang=bus(I,3)bus(J,3)。 B=real(Y(I,J))*sin(ang)imag(Y(I,J))*cos(ang)。 sum=sum+bus(I,2)*bus(J,2)*B。 end bus(I,5)=sum。 %求取的 PV、平衡节点的 Q存回 bus矩阵 end %***************计算线路功率及损耗 ****************** function flow global nl。 global lPQ。 global bus。 贵州大学电气工程学院《电力系统分析》课程设计 15 global line。 for k=1:nl I=line(k,1)。 %读入线路参数 J=line(k,2)。 lPQ(k,1)=I。 %用 lPQ矩阵第一、二列保存线路。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。