毕业论文--基于牛顿拉夫逊法潮流计算的matlab实验报告内容摘要:

36 23 + j + j + j 37 25 + j + j + j 38 29 + j + j + j 20 19 + j + j + j 结果分析:此程序的运行结果和试验程序给出的结果是一致的。 说明程序无误,但在精确度上有微小差异,这主要是和导纳矩阵的精确度以及显示精度有关。 心得:本程序分模块进行,先是排序,再是求导纳阵,然后求雅阁比,再进行迭代运算,程序本身很简洁明了,运行的时候只需要在 matlab 里输入 main就行了,然后打开 BUS 和 line 所在的 .m 文件,结果就会自动存在 result 文件中了,通过编写牛顿拉夫逊法 matlab 潮流计算程序复习了潮流计算的知识,也实现了计算机算法 附录: 实验源程序: Main 函数: clear [dfile,pathname] uigetfile 39。 *.m39。 ,39。 Select Data File39。 if pathname 0 error 39。 you must select a valid data file39。 else lfile length dfile。 % strip off .m eval dfile 1:lfile2。 end [nb,mb] size bus。 [nl,ml] size line。 % 计算 bus 和 line矩阵的行数和列数 [bus,line,nPQ,nPV,nodenum] Num bus,line。 % 对节点重新排序的子程序 Y y bus,line % 计算节点导纳矩阵的子程序 myf fopen 39。 39。 ,39。 w39。 fprintf myf,39。 计算结果 39。 fclose myf。 % 在当前目录下生成“ ”文件,写入节点导纳矩阵 format long EPS。 % 设定误差精度 for t 1:100 % 开始迭代计算,设定最大迭代次数为 100,以便不收敛情 况下及时跳出 [dP,dQ] dPQ Y,bus,nPQ,nPV。 % 计算功率偏差dP 和 dQ 的子程序 J Jac bus,Y,nPQ。 % 计算雅克比矩阵的子程序 UD zeros nPQ,nPQ。 for i 1:nPQ UD i,i bus i,2。 % 生成电压对角矩阵 end end dAngU J\[dP。 dQ]。 dAng dAngU 1:nb1,1。 % 计算相角修正量 dU UD* dAngU nb:nb+nPQ1,1。 % 计算电压修正量 bus 1:nPQ,2 bus 1:nPQ,2 dU。 % 修正电压 bus 1:nb1,3 bus 1:nb1,3 dAng。 % 修正相角 if abs dU EPS amp。 abs dAng EPS break end % 判断是否满足精度误差,如满足则跳出,否则返回继续迭代 end bus PQ bus,Y,nPQ,nPV。 % 计算每个节点的有功和无功注入的子程序 [bus,line] ReNum bus,line,nodenum。 % 对节点恢复编号的子程序 YtYm YtYm line。 % 计算线路的等效Yt 和 Ym 的子程序,以计算线路潮流 bus_res bus_res bus。 % 计算节点数据结果的子程序 S_res S_res bus,line,YtYm。 % 计算线路潮流的子程序 myf fopen 39。 39。 ,39。 a39。 fprintf myf,39。 牛顿-拉夫逊法潮流计算结果 节点计算结果: n 节点 节点电压 节点相角(角度) 节点注入功率 \n39。 for i 1:nb fprintf myf,39。 % 39。 ,bus_res i,1。 fprintf myf,39。 % 39。 ,bus_res i,2。 fprintf myf,39。 % 39。 ,bus_res i,3。 fprintf myf,39。 % + j %\n39。 ,real bus_res i,4 ,imag bus_res i,4。 end fprintf myf,39。 n 线路计算结果: n 节点 I 节点 J 线路功率 S I,J 线路功率 S J,I 线路损耗 dS I,J \n39。 for i 1:nl fprintf myf,39。 % 39。 ,S_res i,1。 fprintf myf,39。 % 39。 ,S_res i,2。 fprintf myf,39。 % + j % 39。 ,real S_res i,3 ,imag S_res i,3。 fprintf myf,39。 % + j % 39。 ,real S_res i,4 ,imag S_res i,4。 fprintf myf,39。 % + j%\n39。 ,real S_res i,5 ,imag S_res i,5。 end fclose myf。 % 迭代结束后继续在“ ”写入节点计算结果和 线路计算结果 程序结束 作用为对节点重排序,并修改相应的线路数据 [nb,mb] size bus。 [nl,ml] size line。 nSW 0。 % number of swing bus counter nPV 0。 % number of PV bus counter nPQ 0。 % number of PQ bus counter for i 1:nb, % nb 为总节点数 type bus i,6。 if type 3, nSW nSW + 1。 % increment swing bus counter SW nSW,: bus i,:。 elseif type 2, nPV nPV +1。 % increment PV bus counter PV nPV,: bus i,:。 else nPQ nPQ + 1。 % increment PQ bus counter PQ nPQ,: bus i,:。 end end。 bus [PQ。 PV。 SW]。 newbus [1:nb]39。 nodenum [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 end 作用为计算节点导纳矩阵 [nb,mb] size bus。 [nl,ml] size line。 Y zeros nb,nb。 for k 1:nl I line k,1。 %读入线路参数 J line k,2。 Zt line k,3 +j*line k,4。 Yt 1/Zt。 Ym line k,5 +j*line k,6。 K line k,7。 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 if K 0 % 变压器线路 : 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 K 0 % 变压器线路 : 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 作用为计算功率偏。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。