哈工大电力系统分析短路及潮流计算实验上机程序

合集下载

电力系统分析课程设计——潮流计算和短路计算的程序实现

电力系统分析课程设计——潮流计算和短路计算的程序实现

电力系统的潮流计算和短路故障的计算机算法程序设计目录一.潮流计算 (4)1 电力系统图及初步分析 (4)1.1 电力系统图及设计任务 (4)1.2 初步分析 (4)2 牛顿-拉夫逊法简介 (5)2.1概述 (5)2.2 一般概念 (5)2.3 潮流计算的修正方程 (6)2.4 直角坐标表示的修正方程 (6)3 程序设计 (10)3.1 程序流程图 (10)3.2 潮流计算程序运行结果如下: (10)二.三相短路计算 (14)2.1计算原理:利用节点阻抗矩阵计算短路电流 (14)2.2三相短路计算流程图: (15)2.3习题实例 (16)2.4 三相短路计算程序及结果如下: (17)三.不对称短路计算 (19)3.1不对称短路课程设计的题目 (19)3.2课程设计的设计任务及设计大纲 (19)3.3 电力系统不对称故障时元件的序参数和等值电路 (20)3.3.1电力系统不对称故障时用标幺值表示的各序等值电路 (20)3.4 电力系统不对称故障时各序等值电路的化简与计算 (21)3.4.1正序等值电路的化简计算 (21)3.4.2负序等值电路的化简计算 (22)3.4.3零序等值电路的化简计算 (23)3.5电力系统不对称故障时元件参数的计算 (23)3.5.1理论分析 (23)3.5.2各元件各序等值电路电抗标幺值的计算 (24)3.6电力系统不对称故障分析与计算 (27)3.6.1单相接地短路 (28)3.6.2两相直接接地短路 (29)3.6.3两相短路 (31)3.7正序等效定则的内容 (32)3.8 短路计算的matlab/simulink模型如下: (33)3.9.1变压器和线路参数设置: (333)3.9.2短路模块和负载模块的参数设置 (344)3.9.3故障相短路相电流和相电压波形 (355)设计总结 (366)参考文献 (377)附录 (388)一.潮流计算1 电力系统图及初步分析1.1 电力系统图及设计任务此电力系统图有Auto CAD2012软件画出网络各元件参数的标幺值如下:Z12=0.1+j0.4;y120=y210=j0.01538;z13=j0.13;k=1.1;z14=0.12+j0.5;y140=y4 10=j0.01920;z24=0.08+j0.4;y240=y420=j0.01413系统中节点1,2为PQ节点,节点3为P节点,节点4为平衡节点,已给定P1s+jQ1s=-0.3-j0.18,P2s+jQ2s=-0.55-j0.13P3s=0.5,V3s=1.10,V4s=o0.1∠05容许误差为510-。

电力系统分析潮流计算的计算机算法

电力系统分析潮流计算的计算机算法

电⼒系统分析潮流计算的计算机算法潮流计算的计算机算法实验报告姓名:学号:班级:⼀、实验⽬的掌握潮流计算的计算机算法。

熟悉MATLAB,并掌握MATLAB程序的基本调试⽅法。

⼆、实验准备根据课程内容,熟悉MATLAB软件的使⽤⽅法,⾃⾏学习MATLAB程序的基础语法,并根据所学知识编写潮流计算⽜顿拉夫逊法(或PQ分解法) 的计算程序,⽤相应的算例在MATLAB上进⾏计算、调试和验证。

三、实验要求每⼈⼀组,在实验课时内,⽤MATLAB调试和修改运⾏程序,⽤算例计算输出潮流结果。

四、实验程序clear; %清空内存n=input('请输⼊节点数:n=');n1=input('请输⼊⽀路数:n1=');isb=input('请输⼊平衡节点号:isb=');pr=input('请输⼊误差精度:pr=');B1=input('请输⼊⽀路参数:B1=');B2=input('请输⼊节点参数:B2=');X=input('节点号和对地参数:X=');Y=zeros(n);Times=1;%⼀:创建节点导纳矩阵for i=1:n1if B1(i,6)==0 %不含变压器的⽀路p=B1(i,1);q=B1(i,2);Y(p,q)=Y(p,q)-1/B1(i,3);Y(q,p)=Y(p,q);Y(p,p)=Y(p,p)+1/B1(i,3)+0.5*B1(i,4);Y(q,q)=Y(q,q)+1/B1(i,3)+0.5*B1(i,4);else %含有变压器的⽀路p=B1(i,1);Y(q,p)=Y(p,q);Y(p,p)=Y(p,p)+1/B1(i,3);Y(q,q)=Y(q,q)+1/(B1(i,5)^2*B1(i,3));endendY;%将OrgS、DetaS初始化OrgS=zeros(2*n-2,1);DetaS=zeros(2*n-2,1);%⼆:创建OrgS,⽤于存储初始功率参数h=0;j=0;for i=1:n %对PQ节点的处理if i~=isb&B2(i,6)==2h=h+1;for j=1:nOrgS(2*h-1,1)=OrgS(2*h-1,1)+real(B2(i,3))*(real(Y(i,j))*real(B2(j,3))-imag(Y(i,j ))*Imag(B2(j,3)))+imag(B2(i,3))*(real(Y(i,j))*imag(B2(j,3))+imag(Y(i,j))*real(B2(j,3)));OrgS(2*h,1)=OrgS(2*h,1)+imag(B2(i,3))*(real(Y(i,j))*real(B2(j,3))-imag(Y(i,j))*i mag(B2(j,3)))-real(B2(i,3))* (real(Y(i,j))*imag(B2(j,3))+imag(Y(i,j))*real(B2(j,3)));endendend%三:对PV节点的处理,注意这时不可再将h初始化为0for i=1:nif i~=isb&B2(i,6)==3h=h+1;for j=1:nOrgS(2*h-1,1)=OrgS(2*h-1,1)+real(B2(i,3))*(real(Y(i,j))*real(B2(j,3))-imag(Y(i,j ))*imag(B2(j,3)))+imag(B2(i,3))* (real(Y(i,j))*imag(B2(j,3))+imag(Y(i,j))*real(B2(j,3)));OrgS(2*h,1)=OrgS(2*h,1)+imag(B2(i,3))*(real(Y(i,j))*real(B2(j,3))-imag(Y(i,j))*i mag(B2(j,3)))-real(B2(i,3))* (real(Y(i,j))*imag(B2(j,3))+imag(Y(i,j))*real(B2(j,3)));endend%四:创建PVU ⽤于存储PV节点的初始电压PVU=zeros(n-h-1,1);t=0;for i=1:nif B2(i,6)==3t=t+1;PVU(t,1)=B2(i,3);endendPVU;%五:创建DetaS,⽤于存储有功功率、⽆功功率和电压幅值的不平衡量h=0; for i=1:n %对PQ节点的处理if i~=isb&B2(i,6)==2h=h+1;DetaS(2*h-1,1)=real(B2(i,2))-OrgS(2*h-1,1);DetaS(2*h,1)=imag(B2(i,2))-OrgS(2*h,1);endendt=0;for i=1:n%六:对PV节点的处理,注意这时不可再将h初始化为0if i~=isb&B2(i,6)==3h=h+1;t=t+1;DetaS(2*h-1,1)=real(B2(i,2))-OrgS(2*h-1,1);DetaS(2*h,1)=real(PVU(t,1))^2+imag(PVU(t,1))^2-real(B2(i,3))^2-imag( B2(i,3))^2;endendDetaS;%七:创建I,⽤于存储节点电流参数i=zeros(n-1,1);h=0;h=h+1;I(h,1)=(OrgS(2*h-1,1)-OrgS(2*h,1)*sqrt(-1))/conj(B2(i,3));endendI;%⼋:创建Jacbi(雅可⽐矩阵)Jacbi=zeros(2*n-2);h=0;k=0;for i=1:n %对PQ节点的处理if B2(i,6)==2h=h+1;for j=1:nif j~=isbk=k+1;if i==j %对⾓元素的处理Jacbi(2*h-1,2*k-1)=-imag(Y(i,j))*real(B2(i,3))+real(Y(i,j))*imag(B2(i,3))+imag(I (h,1)); Jacbi(2*h-1,2*k)=real(Y(i,j))*real(B2(i,3))+imag(Y(i,j))*imag(B2(i,3))+real(I(h,1));Jacbi(2*h,2*k-1)=-Jacbi(2*h-1,2*k)+2*real(I(h,1));Jacbi(2*h,2*k)=Jacbi(2*h-1,2*k-1)-2*imag(I(h,1));else %⾮对⾓元素的处理Jacbi(2*h-1,2*k-1)=-imag(Y(i,j))*real(B2(i,3))+real(Y(i,j))*imag(B2(i,3));Jacbi(2*h-1,2*k)=real(Y(i,j))*real(B2(i,3))+imag(Y(i,j))*imag(B2(i,3));Jacbi(2*h,2*k-1)=-Jacbi(2*h-1,2*k);Jacbi(2*h,2*k)=Jacbi(2*h-1,2*k-1);endif k==(n-1) %将⽤于内循环的指针置于初始值,以确保雅可⽐矩阵换⾏k=0;endendendendfor i=1:n %对PV节点的处理if B2(i,6)==3h=h+1;for j=1:nif j~=isbk=k+1;if i==j %对⾓元素的处理Jacbi(2*h-1,2*k-1)=-imag(Y(i,j))*real(B2(i,3))+real(Y(i,j))*imag(B2(i,3))+imag(I (h,1)); Jacbi(2*h-1,2*k)=real(Y(i,j))*real(B2(i,3))+imag(Y(i,j))*imag(B2(i,3))+real(I(h,1)) ; Jacbi(2*h,2*k-1)=2*imag(B2(i,3));Jacbi(2*h,2*k)=2*real(B2(i,3));else %⾮对⾓元素的处理Jacbi(2*h-1,2*k-1)=-imag(Y(i,j))*real(B2(i,3))+real(Y(i,j))*imag(B2(i,3));Jacbi(2*h-1,2*k)=real(Y(i,j))*real(B2(i,3))+imag(Y(i,j))*imag(B2(i,3));Jacbi(2*h,2*k-1)=0;Jacbi(2*h,2*k)=0;endif k==(n-1) %将⽤于内循环的指针置于初始值,以确保雅可⽐矩阵换⾏k=0;endendendendendJacbi;%九:求解修正⽅程,获取节点电压的不平衡量DetaU=zeros(2*n-2,1);DetaU=inv(Jacbi)*DetaS;DetaU;%修正节点电压j=0;for i=1:n %对PQ节点处理if B2(i,6)==2for i=1:n %对PV节点的处理if B2(i,6)==3j=j+1;B2(i,3)=B2(i,3)+DetaU(2*j,1)+DetaU(2*j-1,1)*sqrt(-1);endendB2;%⼗:开始循环**********************************************************************while abs(max(DetaU))>prOrgS=zeros(2*n-2,1); %初始功率参数在迭代过程中是不累加的,所以在这⾥必须将其初始化为零矩阵h=0;j=0;for i=1:nif i~=isb&B2(i,6)==2h=h+1;for j=1:nOrgS(2*h-1,1)=OrgS(2*h-1,1)+real(B2(i,3))*(real(Y(i,j))*real(B2(j,3))-imag(Y(i,j ))*imag(B2(j,3)))+imag(B2(i,3))* (real(Y(i,j))*imag(B2(j,3))+imag(Y(i,j))*real(B2(j,3)));OrgS(2*h,1)=OrgS(2*h,1)+imag(B2(i,3))*(real(Y(i,j))*real(B2(j,3))-imag(Y(i,j))*i mag(B2(j,3)))-real(B2(i,3))* (real(Y(i,j))*imag(B2(j,3))+imag(Y(i,j))*real(B2(j,3)));endendendfor i=1:nif i~=isb&B2(i,6)==3h=h+1;for j=1:nOrgS(2*h-1,1)=OrgS(2*h-1,1)+real(B2(i,3))*(real(Y(i,j))*real(B2(j,3))-imag(Y(i,j ))*imag(B2(j,3)))+imag(B2(i,3))* (real(Y(i,j))*imag(B2(j,3))+imag(Y(i,j))*real(B2(j, 3)));OrgS(2*h,1)=OrgS(2*h,1)+imag(B2(i,3))*(real(Y(i,j))*real(B2(j,3))-imag(Y(i,j))*i mag(B2(j,3)))-real(B2(i,3))* (real(Y(i,j))*imag(B2(j,3))+imag(Y(i,j))*real(B2(j,3)));%创建DetaSh=0;for i=1:nif i~=isb&B2(i,6)==2h=h+1;DetaS(2*h-1,1)=real(B2(i,2))-OrgS(2*h-1,1);DetaS(2*h,1)=imag(B2(i,2))-OrgS(2*h,1);endendt=0;for i=1:nif i~=isb&B2(i,6)==3h=h+1;t=t+1;DetaS(2*h-1,1)=real(B2(i,2))-OrgS(2*h-1,1);DetaS(2*h,1)=real(PVU(t,1))^2+imag(PVU(t,1))^2-real(B2(i,3))^2-imag(B2(i, 3))^2; endendDetaS;%创建Ii=zeros(n-1,1);h=0;for i=1:nif i~=isbh=h+1;I(h,1)=(OrgS(2*h-1,1)-OrgS(2*h,1)*sqrt(-1))/conj(B2(i,3));endendI;%创建JacbiJacbi=zeros(2*n-2);for i=1:nif B2(i,6)==2h=h+1;for j=1:nif j~=isbk=k+1;if i==jJacbi(2*h-1,2*k-1)=-imag(Y(i,j))*real(B2(i,3))+real(Y(i,j))*imag(B2(i,3))+imag(I (h,1)); Jacbi(2*h-1,2*k)=real(Y(i,j))*real(B2(i,3))+imag(Y(i,j))*imag(B2(i,3))+real(I(h,1)) ; Jacbi(2*h,2*k-1)=-Jacbi(2*h-1,2*k)+2*real(I(h,1));Jacbi(2*h,2*k)=Jacbi(2*h-1,2*k-1)-2*imag(I(h,1));elseJacbi(2*h-1,2*k-1)=-imag(Y(i,j))*real(B2(i,3))+real(Y(i,j))*imag(B2(i,3));Jacbi(2*h-1,2*k)=real(Y(i,j))*real(B2(i,3))+imag(Y(i,j))*imag(B2(i,3));Jacbi(2*h,2*k-1)=-Jacbi(2*h-1,2*k);Jacbi(2*h,2*k)=Jacbi(2*h-1,2*k-1);endif k==(n-1)k=0;endendendendendk=0;for i=1:nif B2(i,6)==3h=h+1;for j=1:nif j~=isbk=k+1;if i==jJacbi(2*h-1,2*k-1)=-imag(Y(i,j))*real(B2(i,3))+real(Y(i,j))*imag(B2(i,3))+imag(I (h,1));Jacbi(2*h,2*k)=2*real(B2(i,3));elseJacbi(2*h-1,2*k-1)=-imag(Y(i,j))*real(B2(i,3))+real(Y(i,j))*imag(B2(i,3)); Jacbi(2*h-1,2*k)=real(Y(i,j))*real(B2(i,3))+imag(Y(i,j))*imag(B2(i,3)); Jacbi(2*h,2*k-1)=0;Jacbi(2*h,2*k)=0;endif k==(n-1)k=0;endendendendendJacbi;DetaU=zeros(2*n-2,1);DetaU=inv(Jacbi)*DetaS;DetaU;%修正节点电压j=0;for i=1:nif B2(i,6)==2j=j+1;B2(i,3)=B2(i,3)+DetaU(2*j,1)+DetaU(2*j-1,1)*sqrt(-1);endendfor i=1:nif B2(i,6)==3j=j+1;B2(i,3)=B2(i,3)+DetaU(2*j,1)+DetaU(2*j-1,1)*sqrt(-1);endendB2;Times;五、实验流程六、实验结果参数输⼊:运⾏结果:七、实验体会通过这次实验,让我第⼀次接触到了MATLAB,并深切体会到了它的强⼤之处;潮流计算的计算机算法的实现不仅巩固了我的学过的知识,还让我学到⼀些MATLAB的编程,虽然在实验的过程中出现了很多的错误,但在⽼师的细⼼指导下,问题都解决啦;计算机为我们省去了⼤量的⼈⼯计算,希望在以后的学习中能接触到更多的软件,学习。

潮流上机实验报告

潮流上机实验报告

《电力系统潮流上机》课程设计报告院系班级:学号:学生姓名:指导教师:设计周数成绩:日期:年月日一、课程设计的目的与要求培养学生的电力系统潮流计算机编程能力,掌握计算机潮流计算的相关知识二、设计正文(详细内容见附录)1.手算: 要求应用牛顿-拉夫逊法或P-Q 分解法手算求解,要求精度为0.001MW 。

节点1为平衡节点,电压︒∠=00.11U ,节点2为PQ 节点,负荷功率6.08.0~2j S +=,节点3是PV 节点,1.1,4.033==U P ,两条支路分别为04.001.013j Z +=,2.005.012j Z +=,对地支路33.030j y =。

2.计算机计算:编写潮流计算程序,要求如下:2.1据给定的潮流计算任务书整理潮流计算的基础数据:节点的分类,线路模型,等值变压器模型,电压等级的归算,标幺值的计算;2.2基础数据的计算机存储:节点数据,支路数据(包括变压器); 2.3用牛顿-拉夫逊法计算;2.4根据所选潮流计算方法画流程图,划分出功能模块,有数据输入模块,导纳阵形成模块,解线性方程组模块,计算不平衡功率模块,形成雅可比矩阵模块,解修正方程模块,计算线路潮流,网损,PV 节点无功功率和平衡节点功率,数据输出模块; 2.5据上述模块编制程序并上机调试程序,得出潮流计算结果; 2.6源程序及其程序中的符号说明集、程序流图简单系统如下图所示,支路数据如下:41.01.012j z +=,3.013j z =,5.012.014j z +=,40.008.024j z +=01528.01,202,10j y y ==,0192.01,404,10j y y ==,01413.02,404,20j y y == 1.1=k节点数据如下:18.030.01j S --= ,13.055.02j S --= , 5.03=S ,10.13=U ,o U 005.14∠=1)节点导纳阵#include <stdio.h> #include <math.h> #include <fstream.h> #include "LF.h"//form node conductance matrixintMakeY( intnB, intnL, Line* sL, double** YG, double** YB ) { inti,j,l;double r,x,d1,g,b,t; for(i=0;i<nB;i++) for(j=0;j<nB;j++) { YG[i][j]=0.0;YB[i][j]=0.0;} for(i=0;i<nL;i++) {r=sL[i].R; x=sL[i].X; g=r/(r*r+x*x); b=-x/(r*r+x*x); switch(sL[i].Type){case 1://Linebreak;case 2://Transformerg*=1/sL[i].K;b*=1/sL[i].K;break;}YG[sL[i].NumI][sL[i].NumI]+=g;YG[sL[i].NumJ][sL[i].NumJ]+=g;YG[sL[i].NumI][sL[i].NumJ]-=g;YG[sL[i].NumJ][sL[i].NumI]-=g;YB[sL[i].NumI][sL[i].NumI]+=b+sL[i].B;YB[sL[i].NumJ][sL[i].NumJ]+=b+sL[i].B;YB[sL[i].NumI][sL[i].NumJ]-=b;YB[sL[i].NumJ][sL[i].NumI]-=b; }printf("实部:\n");for(i=0;i<nB;i++){for(j=0;j<nB;j++)printf("%lf\t",YG[i][j]);printf("\n");}printf("虚部:\n");for(i=0;i<nB;i++){for(j=0;j<nB;j++)printf("%lf\t",YB[i][j]);printf("\n");}/* Check the Y matrix */ofstreamfout("out.txt");fout<< "--------------Y Matrix--------------------" <<endl;for(i=0;i<nB;i++){for(j=0;j<nB;j++)fout<< YG[i][j] << "+j" << YB[i][j] << "\t";fout<<endl;}fout.close();return 0;}2)计算功率不平衡量#include <stdio.h>#include <math.h>#include <fstream.h>#include "LF.h"//form delta p and delta qintCalDeltaPQ( intnpv, intnpq, Bus* bus, double** YG, double** YB, int* p_Jtobus, double* deltaf ){intk,i,j;for(k=0;k<npv+npq*2;k++){ i=p_Jtobus[k];if(k<npv){ deltaf[k]=bus[i].GenP-bus[i].LoadP;for(j=0;j<npv+npq+1;j++){deltaf[k]-=bus[i].Volt*bus[j].Volt*(YG[i][j]*cos(bus[i].Phase-bus[j].Phase)+YB[i][j ]*sin(bus[i].Phase-bus[j].Phase));}printf("PV节点%d的有功功率是%lf\n",i,deltaf[k]);}if(k<npq+npv&&k>=npv){ deltaf[k]=bus[i].GenP-bus[i].LoadP;for(j=0;j<npv+npq+1;j++){deltaf[k]-=bus[i].Volt*bus[j].Volt*(YG[i][j]*cos(bus[i].Phase-bus[j].Phase)+YB[i][j ]*sin(bus[i].Phase-bus[j].Phase));}printf("PQ节点%d的有功功率是%lf\n",i,deltaf[k]);}if(k<npq*2+npv&&k>=npv+npq){deltaf[k]=bus[i].GenQ-bus[i].LoadQ;for(j=0;j<npv+npq+1;j++){deltaf[k]-=bus[i].Volt*bus[j].Volt*(YG[i][j]*sin(bus[i].Phase-bus[j].Phase)-YB[i][j ]*cos(bus[i].Phase-bus[j].Phase));}printf("PQ节点%d的无功功率是 %lf\n",i,deltaf[k]);}}return 0;}3)雅各比矩阵的计算/*Purpose: for undergraduate courseTask: Load FlowCopyright @ NCEPU, Liu Chongru*/#include <stdio.h>#include <math.h>#include <fstream.h>#include "LF.h"//form Jacobian matrixintFormJacobian( intnpv, intnpq, Bus* bus, double** YG, double** YB, int* p_Jtobus, double** Jac ){ intnp = npv+npq,j,k,i,m;//TODOdouble a[14],q[14];for(k=0;k<npv+npq*2;k++){i=p_Jtobus[k];a[i]=0;q[i]=0;if(k<np)//H N{for(j=0;j<np+1;j++)if(j!=i){a[i]+=bus[j].Volt*(YG[i][j]*sin(bus[i].Phase-bus[j].Phase)-YB[i][j]*cos(bus[i].Phase-bu s[j].Phase));q[i]+=bus[j].Volt*(YG[i][j]*cos(bus[i].Phase-bus[j].Phase)+YB[i][j]*sin(bus[i].Phase-bu s[j].Phase));}for(m=0;m<npv+npq*2;m++){j=p_Jtobus[m];if(j!=i){if(m<np)Jac[k][m]=bus[i].Volt*bus[j].Volt*(YG[i][j]*sin(bus[i].Phase-bus[j].Phase)-YB[i][j]*cos (bus[i].Phase-bus[j].Phase));//Form HelseJac[k][m]=bus[i].Volt*bus[j].Volt*(YG[i][j]*cos(bus[i].Phase-bus[j].Phase)+YB[i][j]*sin (bus[i].Phase-bus[j].Phase));//Form N}else if(j==i){if(m<np)Jac[k][m]=-bus[i].Volt*a[i];//Form HelseJac[k][m]=bus[i].Volt*q[i]+2*bus[i].Volt*bus[i].Volt*YG[i][j];//Form N}}}else{for(j=0;j<np+1;j++)if(j!=i){a[i]+=bus[j].Volt*(YG[i][j]*sin(bus[i].Phase-bus[j].Phase)-YB[i][j]*cos(bus[i].Phase-bu s[j].Phase));q[i]+=bus[j].Volt*(YG[i][j]*cos(bus[i].Phase-bus[j].Phase)+YB[i][j]*sin(bus[i].Phase-bu s[j].Phase));}for(m=0;m<npv+npq*2;m++){j=p_Jtobus[m];if(j!=i){if(m<np)Jac[k][m]=-bus[i].Volt*bus[j].Volt*(YG[i][j]*cos(bus[i].Phase-bus[j].Phase)+YB[i][j]*si n(bus[i].Phase-bus[j].Phase)); //Form JelseJac[k][m]=bus[i].Volt*bus[j].Volt*(YG[i][j]*sin(bus[i].Phase-bus[j].Phase)-YB[i][j] *cos(bus[i].Phase-bus[j].Phase)); //Form L }else if(j==i){ if(m<np)Jac[k][m]=bus[i].Volt*q[i];elseJac[k][m]=bus[i].Volt*a[i]-2*bus[i].Volt*bus[i].Volt*YB[i][j];} }}}for(i=0;i<np+npq;i++){for(int j=0;j<np+npq;j++){printf("%d %d %f ",i,j,Jac[i][j]);}printf("\n");}//Output the matrix to check the Jacobian matrixofstreamfout("out.txt",ios::app);fout<< "--------------Jacobian Matrix--------------------" <<endl;for(i=0; i<np+npq;i++ ){for(j=0; j<np+npq; j++ )fout<<Jac[i][j] << "\t";fout<<endl;}fout.close();return 0;}4)线路损耗//8.calculate the power flowdouble* p_Pij, *p_Qij, *p_Pji, *p_Qji;p_Pij = new double[nL];p_Qij = new double[nL];p_Pji = new double[nL];p_Qji = new double[nL];int x1,x2;for( i=0; i<nL; i++ ){ x1=line[i].NumI;x2=line[i].NumJ;if(line[i].Type==1){p_Pij[i]=bus[x1].Volt*bus[x1].Volt*(-YG[x1][x2])-bus[x1].Volt*bus[x2].Volt*((-YG[x1][x2 ])*cos(bus[x1].Phase-bus[x2].Phase)+(-YB[x1][x2])*sin(bus[x1].Phase-bus[x2].Phase));p_Qij[i]=-bus[x1].Volt*bus[x1].Volt*(line[i].B+(-YB[x1][x2]))-bus[x1].Volt*bus[x2]. Volt*((-YG[x1][x2])*sin(bus[x1].Phase-bus[x2].Phase)-(-YB[x1][x2])*cos(bus[x1].Phase-bu s[x2].Phase));p_Pji[i]=bus[x2].Volt*bus[x2].Volt*(-YG[x2][x1])-bus[x2].Volt*bus[x1].Volt*((-YG[x2][x1 ])*cos(bus[x2].Phase-bus[x1].Phase)+(-YB[x2][x1])*sin(bus[x2].Phase-bus[x1].Phase));p_Qji[i]=-bus[x2].Volt*bus[x2].Volt*(line[i].B+(-YB[x2][x1]))-bus[x2].Volt*bus[x1]. Volt*((-YG[x2][x1])*sin(bus[x2].Phase-bus[x1].Phase)-(-YB[x2][x1])*cos(bus[x2].Phase-bu s[x1].Phase));}else{p_Pij[i]=bus[x1].Volt*bus[x1].Volt*(-YG[x1][x2])/line[i].K-bus[x1].Volt*bus[x2].Vol t*((-YG[x1][x2])*cos(bus[x1].Phase-bus[x2].Phase)+(-YB[x1][x2])*sin(bus[x1].Phase-bus[x 2].Phase));p_Qij[i]=-bus[x1].Volt*bus[x1].Volt*((-YB[x1][x2])/line[i].K+line[i].B)-bus[x1].Volt*bus[x2].Volt*((-YG[x1][x2])*sin(bus[x1].Phase-bus[x2].Phase)-(-YB[x1][x2])*cos(bus[x1].Ph ase-bus[x2].Phase));p_Pji[i]=bus[x2].Volt*bus[x2].Volt*(-YG[x2][x1]*line[i].K)-bus[x2].Volt*bus[x1].Volt*((-YG[x2][x1])*cos(bus[x2].Phase-bus[x1].Phase)+(-YB[x2][x1])*sin(bus[x2].Phase-bus[x1].P hase));p_Qji[i]=-bus[x2].Volt*bus[x2].Volt*((-YB[x2][x1])*line[i].K+line[i].B)-bus[x2].Volt*bu s[x1].Volt*((-YG[x2][x1])*sin(bus[x2].Phase-bus[x1].Phase)-(-YB[x2][x1])*cos(bus[x2].Ph ase-bus[x1].Phase)); }}//p and q of PH bus and PV bus int s=0;double p[9],q[9],Ps[9],Qs[9],PS=0,QS=0; for( i=0; i<nB; i++ ){p[i]=0;q[i]=0; for(int j=0; j<nB; j++ ){p[i]+=(bus[j].Volt*(YG[i][j])*cos(bus[j].Phase)-bus[j].Volt*(YB[i][j])*sin(bus[j].Phas e));q[i]-=(bus[j].Volt*(YG[i][j])*sin(bus[j].Phase)+bus[j].Volt*(YB[i][j])*cos(bus[j].Phase ));}Ps[i]=bus[i].Volt*cos(bus[i].Phase)*p[i]-bus[i].Volt*sin(bus[i].Phase)*q[i]; Qs[i]=bus[i].Volt*cos(bus[i].Phase)*q[i]+bus[i].Volt*sin(bus[i].Phase)*p[i];} for(i=0;i<nB;i++) { PS+=Ps[i]; QS+=Qs[i];}printf("PS=%7.7f,QS=%7.7f\n",PS,QS);}//lossdoublePloss=0, Qloss=0; for( i=0; i<nB; i++ ){Ploss+=p_Pij[i]+p_Pji[i]; Qloss+=p_Qij[i]+p_Qji[i];} 5)程序流图如下6--------------Y Matrix--------------------0+j-17.3611 0+j0 0+j0 0+j17.3611 0+j0 0+j0 0+j0 0+j0 0+j00+j0 0+j-16 0+j0 0+j0 0+j0 0+j0 0+j16 0+j0 0+j00+j0 0+j0 0+j-17.0648 0+j0 0+j0 0+j0 0+j0 0+j0 0+j17.06480+j17.3611 0+j0 0+j0 3.30738+j-39.3089 -1.36519+j11.6041 -1.94219+j10.5107 0+j0 0+j0 0+j0 0+j0 0+j0 0+j0 -1.36519+j11.6041 2.55279+j-17.3382 0+j0 -1.1876+j5.97513 0+j0 0+j00+j0 0+j0 0+j0 -1.94219+j10.5107 0+j0 3.2242+j-15.8409 0+j0 0+j0 -1.28201+j5.588240+j0 0+j16 0+j0 0+j0 -1.1876+j5.97513 0+j0 2.80473+j-35.4456 -1.61712+j13.698 0+j00+j0 0+j0 0+j0 0+j0 0+j0 0+j0 -1.61712+j13.698 2.77221+j-23.3032 -1.15509+j9.784270+j0 0+j0 0+j17.0648 0+j0 0+j0 -1.28201+j5.58824 0+j0 -1.15509+j9.78427 2.4371+j-32.1539 --------------Jacobian Matrix--------------------16.4 0 0 0 0 -16.4 0 0 0 0 0 0 0 00 17.4915 0 0 0 0 0 -17.4915 0 0 0 0 0 00 0 40.1703 -11.6041 -10.5107 0 0 0 3.30738 -1.36519 -1.94219 0 0 00 0 -11.6041 17.5792 0 -5.97513 0 0 -1.36519 2.55279 0 -1.1876 0 00 0 -10.5107 0 16.0989 0 0 -5.58824 -1.94219 0 3.2242 0 0 -1.28201-16.4 0 0 -5.97513 0 36.0731 -13.698 0 0 -1.1876 0 2.80473 -1.61712 00 0 0 0 0 -13.698 23.4822 -9.78427 0 0 0 -1.61712 2.77221 -1.155090 -17.4915 0 0 -5.58824 0 -9.78427 32.864 0 0 -1.28201 0 -1.15509 2.43710 0 -3.30738 1.36519 1.94219 0 0 0 38.4474 -11.6041 -10.5107 0 0 00 0 1.36519 -2.55279 0 1.1876 0 0 -11.6041 17.0972 0 -5.97513 0 00 0 1.94219 0 -3.2242 0 0 1.28201 -10.5107 0 15.5829 0 0 -5.588240 0 0 1.1876 0 -2.80473 1.61712 0 0 -5.97513 0 34.8181 -13.698 00 0 0 0 0 1.61712 -2.77221 1.15509 0 0 0 -13.698 23.1242 -9.784270 0 0 0 1.28201 0 1.15509 -2.4371 0 0 -5.58824 0 -9.78427 31.4437--------------Jacobian Matrix--------------------16.9269 0 0 0 0 -16.9269 0 0 0 0 0 1.68793 0 00 18.1691 0 0 0 0 0 -18.1691 0 0 0 0 0 0.8836270 0 41.9297 -12.1301 -11.1536 0 0 0 3.54272 -1.0628 -1.76646 0 0 00 0 -12.0455 18.0609 0 -6.01539 0 0 -1.78138 1.30819 0 -2.10262 0 00 0 -11.0484 0 16.8144 0 0 -5.76607 -2.33608 0 2.42598 0 0 -1.97778-16.9269 0 0 -6.36224 0 37.9476 -14.6585 0 0 -0.357534 0 3.05959 -0.930027 00 0 0 0 0 -14.4721 24.8873 -10.4152 0 0 0 -2.509 1.86088 -1.473890 -18.1691 0 0 -6.05157 0 -10.4721 34.6928 0 0 -0.733327 0 -0.9919732.66270 0 -3.52149 1.0628 1.76646 0 0 0 42.0299 -12.1301 -11.1536 0 0 00 0 1.78138 -3.884 0 2.10262 0 0 -12.0455 17.2037 0 -6.01539 0 00 0 2.33608 0 -4.31386 0 0 1.97778 -11.0484 0 16.2993 0 0 -5.766071.68793 0 0 0.357534 0 -2.97549 0.930027 0 0 -6.36224 0 38.3226 -14.6585 00 0 0 0 0 2.509 -3.98289 1.47389 0 0 0 -14.4721 24.2355 -10.41520 0.883627 0 0 0.733327 0 0.991973 -2.60893 0 0 -6.05157 0 -10.4721 34.8585 --------------Jacobian Matrix--------------------16.7457 0 0 0 0 -16.7457 0 0 0 0 0 1.63043 0 00 18.0388 0 0 0 0 0 -18.0388 0 0 0 0 0 0.8501960 0 41.3695 -11.8919 -10.9686 0 0 0 3.48069 -1.02775 -1.73712 0 0 00 0 -11.8057 17.6918 0 -5.8861 0 0 -1.7602 1.28091 0 -2.0217 0 00 0 -10.8651 0 16.5476 0 0 -5.68251 -2.29737 0 2.40655 0 0 -1.91027-16.7457 0 0 -6.21183 0 37.3041 -14.3465 0 0 -0.382862 0 2.95313 -0.937485 00 0 0 0 0 -14.1704 24.4052 -10.2348 0 0 0 -2.42909 1.86079 -1.433530 -18.0388 0 0 -5.94693 0 -10.2872 34.273 0 0 -0.757656 0 -0.9892082.598470 0 -3.48089 1.02775 1.73712 0 0 0 41.3703 -11.8919 -10.9686 0 0 00 0 1.7602 -3.78189 0 2.0217 0 0 -11.8057 16.6941 0 -5.8861 0 00 0 2.29737 0 -4.20764 0 0 1.91027 -10.8651 0 15.9488 0 0 -5.682511.63043 0 0 0.382862 0 -2.95077 0.937485 0 0 -6.21183 0 37.3083 -14.3465 00 0 0 0 0 2.42909 -3.86262 1.43353 0 0 0 -14.1704 23.7059 -10.23480 0.850196 0 0 0.757656 0 0.989208 -2.59706 0 0 -5.94693 0 -10.2872 34.2743 --------------Jacobian Matrix--------------------16.7435 0 0 0 0 -16.7435 0 0 0 0 0 1.63 0 00 18.0374 0 0 0 0 0 -18.0374 0 0 0 0 0 0.850 0 41.3625 -11.8888 -10.9664 0 0 0 3.48016 -1.02713 -1.73662 0 0 00 0 -11.8026 17.6871 0 -5.8845 0 0 -1.76008 1.28053 0 -2.02045 0 00 0 -10.8628 0 16.5444 0 0 -5.68158 -2.29703 0 2.40632 0 0 -1.90929-16.7435 0 0 -6.20987 0 37.296 -14.3426 0 0 -0.383399 0 2.95114 -0.937742 00 0 0 0 0 -14.1667 24.3994 -10.2326 0 0 0 -2.42794 1.86097 -1.433020 -18.0374 0 0 -5.94567 0 -10.285 34.2681 0 0 -0.758139 0 -0.9892032.597340 0 -3.48016 1.02713 1.73662 0 0 0 41.3625 -11.8888 -10.9664 0 0 00 0 1.76008 -3.78053 0 2.02045 0 0 -11.8026 16.6871 0 -5.8845 0 00 0 2.29703 0 -4.20632 0 0 1.90929 -10.8628 0 15.9444 0 0 -5.681581.63 0 0 0.383399 0 -2.95114 0.937742 0 0 -6.20987 0 37.296 -14.3426 00 0 0 0 0 2.42794 -3.86097 1.43302 0 0 0 -14.1667 23.6994 -10.23260 0.85 0 0 0.758139 0 0.989203 -2.59734 0 0 -5.94567 0 -10.285 34.2681--------------iteration---------------iteration = 4--------------voltage magnitude and angle--------------------1.04 0 01.025 0.161967 9.280011.025 0.0814153 4.664761.02579 -0.0386902 -2.216790.995631 -0.0696178 -3.988811.01265 -0.0643572 -3.68741.02577 0.064921 3.71971.01588 0.0126979 0.7275371.03235 0.0343257 1.96672-------------bus P and Q------------------1 0.71641 0.2704592 1.63 0.06653663 0.85 -0.1085974 0 05 -1.25 -0.56 -0.9 -0.37 0 08 -1 -0.359 0 0----------------line flow--------------------NUM------i-------j-----------begin------------end--------------1 4 1 -0.71641+j-0.239232 0.71641+j0.270462 7 2 -1.63+j0.0917816 1.63+j0.06653653 9 3 -0.85+j0.149553 0.85+j-0.1085974 7 8 0.763799+j-0.00797398 -0.759046+j-0.1070415 9 8 0.241834+j0.0311946 -0.240954+j-0.2429586 7 5 0.866201+j-0.0838079 -0.843202+j-0.1131287 9 6 0.608166+j-0.180748 -0.594627+j-0.1345668 5 4 -0.406798+j-0.386872 0.409373+j0.2289319 6 4 -0.305372+j-0.165433 0.307037+j0.0102993--------------------Ploss and Qloss-----------------Ploss = 0.0471901 Qloss = -0.9574833.思考题3.1潮流计算的方法有哪些?各有何特点?答:潮流计算分为手算和机算两大类,其中机算又有高斯-赛德尔迭代法、牛顿-拉夫逊迭代法、P-Q 分解法等算法。

应用电力系统可视化程序进行潮流和短路计算

应用电力系统可视化程序进行潮流和短路计算

1 引言随着国民经济的持续稳定发展,我国电力系统的规模越来越庞大,其网络结构越来越复杂,输电线电压等级越来越高,电网运行方式的变化越来越频繁[1],电力系统基础计算分析工作量越来越大,数据录入和计算结果显示要求越来越快速准确,电能质量的要求越来越高。

为了应对这些新形势下的新问题,电力系统可视化技术应运而生。

电力系统可视化技术[2],是可视化技术与电力系统分析有机结合的产物。

它指的是利用可视化技术,按照某种算法,将电力系统设备的各种属性、系统运行状态数据处理后,用图形或图像的方式直观显示出来的技术。

其目的是使系统运行人员更方便、更明晰地了解当前系统的运行状态,以便采取更有效、更有针对性的运行控制措施。

Power World[3]是美国伊利诺斯大学开发的电力系统可视化仿真软件包,它以潮流分析为核心,采用动画式多色彩的单线圈等可视化技术,模拟电力系统在给定时间内的运行状况,从而直观生动的阐述了电力系统运行的基本概念。

本设计的目的在于熟练地掌握这一软件,验证其计算性能,对电力系统仿进行潮流计算和短路故障分析,将分析计算结果以可视化的形式直观地表现出来,为进一步的电力系统分析和设计提供基本依据。

2 电力系统分析仿真软件Power World介绍Power WorldV11.0版集电力系统潮流计算[4]、灵敏度分析、静态安全分析[5]、短路电流计算、经济调度EDC/AGC,最优潮流OPF[6]、无功优化,GIS 功能、电压稳定分析PV/QV、ATC计算[8]、用户定制模块等多种庞大复杂功能于一体,并利用数据挖掘技术实现强大丰富的三维可视化显示技术。

使用方便、功能强大、可视化程度相当高[7]。

在Power World可视化分析程序中,输电线路的投切、负荷调整[9]、发电机的投退及各种功能切换以及联络线的建立等等,这一切只需点击鼠标就可完成。

此外,图形和动画演示的广泛使用增加了用户对系统特性、存在的问题和限制条件的理解.并且知道如何采取补救措施。

电力系统分析课程设计-潮流计算和短路计算的程序实现

电力系统分析课程设计-潮流计算和短路计算的程序实现

2012-2013学年度下学期电力系统分析课程设计电力系统的潮流计算和短路故障的计算机算法程序设计专业电气工程及其自动化姓名学号班级0310405指导教师钟建伟2013年4月14日信息工程学院课程设计任务书目录1电力系统图及初步分析 ........................ 错误!未指定书签。

1.1电力系统图及设计任务................... 错误!未指定书签。

1.2初步分析 ................................ 错误!未指定书签。

2牛顿-拉夫逊法简介............................ 错误!未指定书签。

2.1概述..................................... 错误!未指定书签。

2.2一般概念............................... 错误!未指定书签。

2.3潮流计算的修正方程..................... 错误!未指定书签。

2.4直角坐标表示的修正方程 ................ 错误!未指定书签。

3程序设计...................................... 错误!未指定书签。

3.1程序流程图.............................. 错误!未指定书签。

错误!未指定书签。

3.2潮流计算程序运行结果如下:............ 错误!未指定书签。

二.三相短路计算 .................................. 错误!未指定书签。

2.1计算原理:利用节点阻抗矩阵计算短路电流 . 错误!未指定书签。

注意:上述计算方法以及公式来源于电力系统分析上册P136-P137 ..................................... 错误!未指定书签。

2.2三相短路计算流程图:...................... 错误!未指定书签。

电力系统潮流及短路电流计算程序

电力系统潮流及短路电流计算程序

班级:之阳早格格创做姓名:教号:一、做业央供编写步调估计图1所示算例系统的潮流及三相短路电流.潮流估计:要领没有限,估计系统的节面电压战相角.短路电流:4号母线爆收金属性三相短路时(zf=0),分别依照透彻算法战近似算法估计短路电流、系统中各节面电压以及搜集中各支路的电流分散,并对于二种情况下的估计截止举止比较.二、电路图及参数图1 3机9节面系统表1 9节面系统支路参数支路R(p.u.)X(p.u.)B/2(TK) (p.u.)1~4 02~7 03~9 04~54~65~76~97~88~9表2 9节面系统收电机参数收电机编号节面典型PG(p.u.)VG(p.u.)(p.u.)(p.u.)1仄稳2PV3PV表3 9节面系统背荷参数节面编号节面典型Pi(p.u.)Qi(p.u.)4 PQ0 05 PQ6 PQ7 PQ 0 08 PQ 19 PQ 0 0三、估计步调(1)举止系统仄常运奇迹态的潮流估计,供得(2)产死没有含收电机战背荷的节面导纳矩阵YN;(3)将收电机表示为电流源()战导纳()的并联拉拢;节面背荷用恒阻抗的交天支路表示;产死包罗所有收电机支路战背荷支路的节面导纳矩阵Y,即正在YN 中的收电机节面战背荷节面的自导纳上分别减少收电机导纳战背荷导纳();(4)利用,估计节面阻抗矩阵,进而得到阻抗矩阵中的第f列;(5)利用公式(67)或者(610)估计短路电流;(6)利用公式(68)或者(611)估计系统中各节面电压;(7)利用公式(69)估计变压器支路的电流;对于输电线路利用П型等值电路估计支路电流.四、估计截止节面导纳矩阵Yn:Columns 1 through 50 17.3611i 0 0 0 +17.3611i 0 0 0 16.0000i 0 0 00 0 0 17.0648i 0 00 0 0 1.9422 +10.5107i 0 0 0 0 0 00 0 0 +17.0648i 0 0Columns 6 through 90 0 0 00 0 +16.0000i 0 01.9422 +10.5107i 0 0 00 1.1876 + 5.9751i 0 00 2.8047 35.4456i 1.6171 +13.6980i 0电压幅值:电压相角:节面有功:节面无功:建正后的节面导纳矩阵Y:Columns 1 through 50 20.6944i 0 0 0 +17.3611i 00 0 19.3333i 0 0 00 0 0 20.3982i 0 00 0 0 1.9422 +10.5107i 0 0 0 0 0 00 0 0 +17.0648i 0 0 Columns 6 through 90 0 0 00 0 +16.0000i 0 01.9422 +10.5107i 0 0 00 1.1876 + 5.9751i 0 00 2.8047 35.4456i 1.6171 +13.6980i 0节面阻抗矩阵Z的第4列:透彻估计截止:短路电流:模值:相角:节面电压模值:支路电流:i j Iij近似估计截止:短路电流:模值:节面电压模值:五、步调过程图六、步调及输进文献input_data.xls 文献:Sheet2powerflow_cal.m 文献:l=9;%支路数n=9;%节面数m=6;%PQ节面数Yn=zeros(n);%初初化节面导纳矩阵Y DATA1=xlsread('input_data.xls',1);%估计节面导纳矩阵Yfor k=1:li=DATA1(k,1);j=DATA1(k,2);R=DATA1(k,3);X=DATA1(k,4);B2=DATA1(k,5);Yn(i,i)=Yn(i,i)+1i*B2+1/(R+1i*X); Yn(j,j)=Yn(j,j)+1i*B2+1/(R+1i*X); Yn(i,j)=Yn(i,j)1/(R+1i*X);Yn(j,i)=Yn(j,i)1/(R+1i*X);enddisp('节面导纳矩阵Yn:');disp(Yn);G=real(Yn);B=imag(Yn);DATA2=xlsread('input_data.xls',2);P=zeros(1,n);Q=zeros(1,n);U=ones(1,n);P(2:n)=DATA2(2:n,3);Q(4:n)=DATA2(4:n,4);U(1:3)=DATA2(1:3,5);%树立节面电压初值e(1)=DATA2(1,5);e(2:n)=1.0;f(1:n)=0.0;%树立迭代次数t=0;tmax=10;while t<=tmax%估计f(x)a(1:n)=0.0;c(1:n)=0.0;for i=2:nfor j=1:na(i)=a(i)+G(i,j)*e(j)B(i,j)*f(j);c(i)=c(i)+G(i,j)*f(j)+B(i,j)*e(j);endendfor i=2:ndeltaP(i)=P(i)e(i)*a(i)f(i)*c(i);endfor j=4:ndeltaQ(j)=Q(j)f(j)*a(j)+e(j)*c(j);endfor k=2:3deltaU2(k)=U(k)*U(k)e(k)*e(k)f(k)*f(k); endfx=[deltaP(2:n) deltaQ(4:n) deltaU2(2:3)]'; %估计俗克比矩阵Jfor i=2:nfor j=2:nif i~=jH(i,j)=(G(i,j)*e(i)+B(i,j)*f(i));N(i,j)=B(i,j)*e(i)G(i,j)*f(i);elseH(i,j)=a(i)(G(i,i)*e(i)+B(i,i)*f(i)); N(i,j)=c(i)+(B(i,i)*e(i)G(i,i)*f(i)); endendendfor i=4:nfor j=2:nif i~=jM(i,j)=B(i,j)*e(i)G(i,j)*f(i);L(i,j)=G(i,j)*e(i)+B(i,j)*f(i);elseM(i,j)=c(i)+(B(i,i)*e(i)G(i,i)*f(i)); L(i,j)=a(i)+(G(i,i)*e(i)+B(i,i)*f(i)); endendendfor i=2:3for j=2:nif i~=jR(i,j)=0;S(i,j)=0;elseR(i,j)=2*e(i);S(i,j)=2*f(i);endendendJ=[H(2:n,2:n) N(2:n,2:n);M(4:n,2:n) L(4:n,2:n);R(2:3,2:n) S(2:3,2:n)];%输出截止break;else%供解建正圆程赢得dxdx=J^(1)*fx;dx=dx';e(2:n)=e(2:n)+dx(1:n1);f(2:n)=f(2:n)+dx(n:2*(n1));t=t+1;endendif t>tmaxstr='潮流估计没有支敛';disp(str);elsea(1:n)=0.0;c(1:n)=0.0;for i=1:nfor j=1:na(i)=a(i)+G(i,j)*e(j)B(i,j)*f(j); c(i)=c(i)+G(i,j)*f(j)+B(i,j)*e(j); endendfor i=1:nU(i)=e(i)+1i*f(i);amp(i)=abs(U(i));arg(i)=angle(U(i));P(i)=e(i)*a(i)+f(i)*c(i);Q(i)=f(i)*a(i)e(i)*c(i);disp('电压幅值:');disp(amp);disp('电压相角:');disp(arg);disp('节面有功:');disp(P);disp('节面无功:');disp(Q);end%估计短路电流f=4;zf=0.0;%建正节面导纳矩阵Xd=DATA2(1:3,6);E=DATA2(1:3,7);for i=1:3Ii(i)=E(i)/(1i*Xd(i));endY=Yn;for i=1:3Y(i,i)=Y(i,i)+1/(1i*Xd(i));for j=4:nY(j,j)=Y(j,j)+(P(j)+1i*Q(j))/(U(j)*U(j)); enddisp('建正后的节面导纳矩阵Y:');disp(Y);Z=Y^(1);disp('节面阻抗矩阵Z的第4列:');disp(Z(:,4));%透彻估计disp('透彻估计截止:');U0=U;If=U0(f)/(Z(f,f)+zf);amp=abs(If);arg=atand(imag(If)/real(If));disp('短路电流:');disp('模值:');disp(amp);disp('相角:');disp(arg);for i=1:nU(i)=U0(i)Z(i,f)*If;amp=abs(U);enddisp('节面电压模值:');disp(amp);disp('支路电流: ');str=['i ''j '' Iij'];disp(str);for k=1:li=DATA1(k,1);j=DATA1(k,2);r=DATA1(k,3);x=DATA1(k,4);z=r+1i*x;I=(U(i)U(j))/z;str=[num2str(i) ' ' num2str(j) ' ' num2str(I)]; disp(str);end%近似估计disp('近似估计截止:');U0(1:n)=1.0;If=U0(f)/(Z(f,f)+zf);amp=abs(If);arg=atand(imag(If)/real(If)); disp('短路电流:');disp('模值:');disp(amp);disp('相角:');disp(arg);for i=1:nU(i)=U0(i)Z(i,f)*If;amp=abs(U);enddisp('节面电压模值:'); disp(amp);。

电力系统潮流及短路电流计算程序

电力系统潮流及短路电流计算程序

班级:姓名:学号:一、作业要求编写程序计算图1所示算例系统的潮流及三相短路电流..潮流计算:方法不限;计算系统的节点电压和相角..短路电流:4号母线发生金属性三相短路时z f=0;分别按照精确算法和近似算法计算短路电流、系统中各节点电压以及网络中各支路的电流分布;并对两种情况下的计算结果进行比较..二、电路图及参数图1 3机9节点系统表1 9节点系统支路参数表2 9节点系统发电机参数表3 9节点系统负荷参数三、计算步骤(1) 进行系统正常运行状态的潮流计算;求得(0)i U (2) 形成不含发电机和负荷的节点导纳矩阵Y N ;(3) 将发电机表示为电流源i I /i diE jx ''=和导纳i y 1/di jx '=的并联组合;节点负荷用恒阻抗的接地支路表示;形成包括所有发电机支路和负荷支路的节点导纳矩阵Y;即在Y N 中的发电机节点和负荷节点的自导纳上分别增加发电机导纳i y 和负荷导纳,LD i y *,,22LD i LDi LDiLD i i i S P jQ y V V -==; (4) 利用1Z Y-=;计算节点阻抗矩阵;从而得到阻抗矩阵中的第f 列;(5) 利用公式6-7或6-10计算短路电流;(6)利用公式6-8或6-11计算系统中各节点电压;(7)利用公式6-9计算变压器支路的电流;对输电线路利用П型等值电路计算支路电流..四、计算结果节点导纳矩阵Yn:Columns 1 through 50 -17.3611i 0 0 0 +17.3611i 00 0 -16.0000i 0 0 00 0 0 -17.0648i 0 00 +17.3611i 0 0 3.3074 -39.3089i -1.3652 +11.6041i0 0 0 -1.3652 +11.6041i 2.5528 -17.3382i0 0 0 -1.9422 +10.5107i 00 0 +16.0000i 0 0 -1.1876 + 5.9751i0 0 0 0 00 0 0 +17.0648i 0 0 Columns 6 through 90 0 0 00 0 +16.0000i 0 00 0 0 0 +17.0648i-1.9422 +10.5107i 0 0 00 -1.1876 + 5.9751i 0 03.2242 -15.8409i 0 0 -1.2820 + 5.5882i0 2.8047 -35.4456i -1.6171 +13.6980i 00 -1.6171 +13.6980i 2.7722 -23.3032i -1.1551 + 9.7843i-1.2820 + 5.5882i 0 -1.1551 + 9.7843i 2.4371 -32.1539i电压幅值:1.0400 1.0250 1.0250 1.0258 0.9956 1.0127 1.0258 1.0159 1.0324电压相角:0 0.1620 0.0814 -0.0387 -0.0696 -0.0644 0.0649 0.0127 0.0343节点有功:0.7164 1.6300 0.8500 0.0000 -1.2500 -0.9000 -0.0000 -1.0000 -0.0000节点无功:0.2705 0.0665 -0.1086 0.0000 -0.5000 -0.3000 -0.0000 -0.3500 -0.0000修正后的节点导纳矩阵Y:Columns 1 through 50 -20.6944i 0 0 0 +17.3611i 00 0 -19.3333i 0 0 00 0 0 -20.3982i 0 00 +17.3611i 0 0 3.3074 -39.3089i -1.3652 +11.6041i0 0 0 -1.3652 +11.6041i 3.8716 -17.6627i0 0 0 -1.9422 +10.5107i 00 0 +16.0000i 0 0 -1.1876 + 5.9751i0 0 0 0 00 0 0 +17.0648i 0 0 Columns 6 through 90 0 0 00 0 +16.0000i 0 00 0 0 0 +17.0648i-1.9422 +10.5107i 0 0 00 -1.1876 + 5.9751i 0 04.1321 -16.0184i 0 0 -1.2820 +5.5882i0 2.8047 -35.4456i -1.6171 +13.6980i 00 -1.6171 +13.6980i 3.7323 -23.6669i -1.1551 + 9.7843i-1.2820 + 5.5882i 0 -1.1551 + 9.7843i 2.4371 -32.1539i节点阻抗矩阵Z的第4列:0.0463 + 0.1252i0.0329 + 0.0693i0.0316 + 0.0707i0.0552 + 0.1493i0.0589 + 0.1204i0.0562 + 0.1226i0.0397 + 0.0838i0.0416 + 0.0814i0.0378 + 0.0845i精确计算结果:短路电流:模值:6.4459相角:-71.9365节点电压模值:0.1831 0.5687 0.5427 0.0000 0.1466 0.1506 0.4537 0.4463 0.4495支路电流:i j Iij1 4 0.5779-3.1264i2 7 1.3702-1.4433i3 9 0.64294-1.4808i4 5 -0.77968+1.5248i4 6 -0.6411+1.477i5 7 -0.89528+1.6436i6 9 -0.73353+1.5487i7 8 0.50734+0.10234i8 9 0.062766+0.056451i近似计算结果:短路电流:模值:6.2838相角:-69.7198节点电压模值:0.1611 0.5214 0.5157 0.0000 0.1827 0.1675 0.4227 0.4348 0.4217五、程序流程图六、程序及输入文件input_data.xls 文件:powerflow_cal.m 文件:l=9;%支路数n=9;%节点数m=6;%PQ节点数Yn=zerosn;%初始化节点导纳矩阵Y DATA1=xlsread'input_data.xls';1; %计算节点导纳矩阵Yfor k=1:li=DATA1k;1;j=DATA1k;2;R=DATA1k;3;X=DATA1k;4;B2=DATA1k;5;Yni;i=Yni;i+1i*B2+1/R+1i*X; Ynj;j=Ynj;j+1i*B2+1/R+1i*X; Yni;j=Yni;j-1/R+1i*X;Ynj;i=Ynj;i-1/R+1i*X;enddisp'节点导纳矩阵Yn:';dispYn;G=realYn;B=imagYn;DATA2=xlsread'input_data.xls';2;P=zeros1;n;Q=zeros1;n;U=ones1;n;P2:n=DATA22:n;3;Q4:n=DATA24:n;4;U1:3=DATA21:3;5;%设置节点电压初值e1=DATA21;5;e2:n=1.0;f1:n=0.0;%设置迭代次数t=0;tmax=10;while t<=tmax%计算fxa1:n=0.0;c1:n=0.0;for i=2:nfor j=1:nai=ai+Gi;j*ej-Bi;j*fj;ci=ci+Gi;j*fj+Bi;j*ej;endendfor i=2:ndeltaPi=Pi-ei*ai-fi*ci;endfor j=4:ndeltaQj=Qj-fj*aj+ej*cj;endfor k=2:3deltaU2k=Uk*Uk-ek*ek-fk*fk;endfx=deltaP2:n deltaQ4:n deltaU22:3';%计算雅克比矩阵Jfor i=2:nfor j=2:nif i~=jHi;j=-Gi;j*ei+Bi;j*fi;Ni;j=Bi;j*ei-Gi;j*fi;elseHi;j=-ai-Gi;i*ei+Bi;i*fi;Ni;j=-ci+Bi;i*ei-Gi;i*fi;endendendfor i=4:nfor j=2:nif i~=jMi;j=Bi;j*ei-Gi;j*fi;Li;j=Gi;j*ei+Bi;j*fi;elseMi;j=ci+Bi;i*ei-Gi;i*fi;Li;j=-ai+Gi;i*ei+Bi;i*fi;endendendfor i=2:3for j=2:nif i~=jRi;j=0;Si;j=0;elseRi;j=-2*ei;Si;j=-2*fi;endendendJ=H2:n;2:n N2:n;2:n;M4:n;2:n L4:n;2:n;R2:3;2:n S2:3;2:n;if maxabsfx<0.0001%输出结果break;else%求解修正方程获得dxdx=-J^-1*fx;dx=dx';e2:n=e2:n+dx1:n-1;f2:n=f2:n+dxn:2*n-1;t=t+1;endendif t>tmaxstr='潮流计算不收敛';dispstr;elsea1:n=0.0;c1:n=0.0;for i=1:nfor j=1:nai=ai+Gi;j*ej-Bi;j*fj; ci=ci+Gi;j*fj+Bi;j*ej;endendfor i=1:nUi=ei+1i*fi;ampi=absUi;argi=angleUi;Pi=ei*ai+fi*ci;Qi=fi*ai-ei*ci;enddisp'电压幅值:';dispamp;disp'电压相角:';disparg;disp'节点有功:';dispP;disp'节点无功:';dispQ;end%计算短路电流f=4;zf=0.0;%修正节点导纳矩阵Xd=DATA21:3;6;E=DATA21:3;7;for i=1:3Iii=Ei/1i*Xdi;endY=Yn;for i=1:3Yi;i=Yi;i+1/1i*Xdi;endfor j=4:nYj;j=Yj;j+-Pj+1i*Qj/Uj*Uj;enddisp'修正后的节点导纳矩阵Y:';Z=Y^-1;disp'节点阻抗矩阵Z的第4列:';dispZ:;4;%精确计算disp'精确计算结果:';U0=U;If=U0f/Zf;f+zf;amp=absIf;arg=atandimagIf/realIf;disp'短路电流:';disp'模值:';dispamp;disp'相角:';disparg;for i=1:nUi=U0i-Zi;f*If;amp=absU;enddisp'节点电压模值:';dispamp;disp'支路电流: ';str='i ''j '' Iij';dispstr;for k=1:li=DATA1k;1;j=DATA1k;2;r=DATA1k;3;x=DATA1k;4;z=r+1i*x;I=Ui-Uj/z;str=num2stri ' ' num2strj ' ' num2strI; dispstr;end%近似计算disp'近似计算结果:';U01:n=1.0;If=U0f/Zf;f+zf;amp=absIf;arg=atandimagIf/realIf;disp'短路电流:';disp'模值:';dispamp;disp'相角:';for i=1:nUi=U0i-Zi;f*If; amp=absU;enddisp'节点电压模值:'; dispamp;。

电力系统分析潮流计算程序

电力系统分析潮流计算程序

#include<stdio.h>#include<stdlib.h>#include<math.h>#define PI 3.14159//节点参数结构体structNodeType{int N;//节点号int Type;//节点类型double e;//电压幅值double f;//电压相角double Pd;//负荷有功double Qd;//负荷无功double Ps;//出力有功double Qs;//出力无功double Bc;//并联电容的电抗值};//支路参数结构体structBranchType{intNbr;//支路号intNl;//首节点int Nr;//末节点double R;//支路电阻double X;//支路电抗double Bn;//对地电抗double Kt;//支路变比};//******************************************全局变量声明***************************************int n;//节点数intnPQ;//PQ节点数intnPV;//PV节点数intnbr;//支路数intng;//发电机台数int Mark=0;//标记支路参数是否已经转换double **G;//导纳矩阵G部分double **B;//导纳矩阵B部分double *dS;//功率不平衡量double *mid1,*mid2;//求功率不平衡量时的中间变量double *Us;//电压初值double error=1;//误差值double iteration=0.000001;//误差精度double **Jacob;//雅克比矩阵double **invJac;//雅克比矩阵的逆double *dfe;//节点电压修正值structNodeType *Node;//读入时的节点参数结构体structBranchType *Branch;//读入时的支路参数结构体//*********************************************主程序******************************************void main(){voidLoadData();void FormY();//形成导纳矩阵void DeltaS();//求功率不平衡量void FormJacob();//形成雅克比矩阵void InvJac();//求雅克比矩阵的逆void UpdateU();//修正电压值voidCalculatePQ();void Print1(double *,int);void Print2(double **,int,int);intkk;//迭代次数LoadData();FormY();printf("iteration=%lf\n",iteration);kk=0;DeltaS();while(error>iteration&&kk<50){FormJacob();UpdateU();DeltaS();kk++;}printf("迭代次数为%4d\n",kk);CalculatePQ();printf("error=%e\n",error);}//***************************************************************************** ****************voidLoadData(){inti,j;inttN,tType;double te,tf,tPd,tQd,tPs,tQs,tBc;//用于重新排列节点信息的临时变量FILE *fp;//文件指针char filename[50]={""};printf("请输入数据文件名:");scanf("%s",filename);if((fp=fopen(filename,"r"))==NULL){printf("cannot open the file:data.txt\n");return;}fscanf(fp,"%d",&n);printf("节点个数为:%d\n",n);//为节点参数申请空间Node=(structNodeType *)malloc(sizeof(structNodeType)*n);//读取节点参数printf("调整前的节点参数为:\n");for(i=0;i<n;i++)fscanf(fp,"%d%d%lf%lf%lf%lf%lf%lf%lf",&Node[i].N,&Node[i].Type,&Node[i].e,&Node[i].f,&Node[ i].Pd,&Node[i].Qd,&Node[i].Ps,&Node[i].Qs,&Node[i].Bc);//计算PQ节点和PV节点的个数for(i=0;i<n;i++){if(Node[i].Type==1)nPQ++;else if(Node[i].Type==2)nPV++;}printf("PQ节点个数:%d\n",nPQ);printf("PV节点个数:%d\n",nPV);//重新排列节点参数(冒泡法)for(j=0;j<n-1;j++)for(i=0;i<n-j-1;i++){if(Node[i].Type>Node[i+1].Type){tN=Node[i].N;Node[i].N=Node[i+1].N;Node[i+1].N=tN;tType=Node[i].Type;Node[i].Type=Node[i+1].Type;Node[i+1].Type=tType;te=Node[i].e;Node[i].e=Node[i+1].e;Node[i+1].e=te;tf=Node[i].f;Node[i].f=Node[i+1].f;Node[i+1].f=tf;tPd=Node[i].Pd;Node[i].Pd=Node[i+1].Pd;Node[i+1].Pd=tPd;tQd=Node[i].Qd;Node[i].Qd=Node[i+1].Qd;Node[i+1].Qd=tQd;tPs=Node[i].Ps;Node[i].Ps=Node[i+1].Ps,Node[i+1].Ps=tPs;tQs=Node[i].Qs;Node[i].Qs=Node[i+1].Qs;Node[i+1].Qs=tQs;tBc=Node[i].Bc;Node[i].Bc=Node[i+1].Bc;Node[i+1].Bc=tBc;}}//为电压初值申请空间Us=(double *)malloc(sizeof(double)*(n-1));for(i=0;i<n-1;i++)Us[i]=Node[i].e;//读取支路参数fscanf(fp,"%d",&nbr);printf("支路个数为:%d\n",nbr);//为支路参数申请空间Branch=(structBranchType *)malloc(sizeof(structBranchType)*nbr);//读入的支路参数结构体//读入支路参数for(i=0;i<nbr;i++)fscanf(fp,"%d%d%d%lf%lf%lf%lf",&Branch[i].Nbr,&Branch[i].Nl,&Branch[i].Nr,&Branch[i].R,&Bran ch[i].X,&Branch[i].Bn,&Branch[i].Kt);//支路节点号参数调整for(i=0;i<nbr;i++){Mark=0;for(j=0;j<n;j++){if(Branch[i].Nl==Node[j].N&&Mark==0){Branch[i].Nl=j+1;Mark=1;}}}for(i=0;i<nbr;i++){Mark=0;for(j=0;j<n;j++){if(Branch[i].Nr==Node[j].N&&Mark==0){Branch[i].Nr=j+1;Mark=1;}}}fclose(fp);}//***************************************************************************** ******************************************//*********************************************形成导纳矩阵**************************************************************voidFormY(){inti,j;double Z2;//存储Z^2=R^2+X^2G=(double **)malloc(sizeof(double *)*n);//为G申请空间B=(double **)malloc(sizeof(double *)*n);//为B申请空间for(i=0;i<n;i++){G[i]=(double *)malloc(sizeof(double)*n);B[i]=(double *)malloc(sizeof(double)*n);}//初始化G、Bfor(i=0;i<n;i++)for(j=0;j<n;j++){G[i][j]=0;B[i][j]=0;}//计算非对角元素for(i=0;i<nbr;i++){Z2=Branch[i].R*Branch[i].R+Branch[i].X*Branch[i].X;if(Branch[i].Kt==0)//非变压器支路{G[Branch[i].Nl-1][Branch[i].Nr-1]-=Branch[i].R/Z2;B[Branch[i].Nl-1][Branch[i].Nr-1]+=Branch[i].X/Z2;G[Branch[i].Nr-1][Branch[i].Nl-1]=G[Branch[i].Nl-1][Branch[i].Nr-1];B[Branch[i].Nr-1][Branch[i].Nl-1]=B[Branch[i].Nl-1][Branch[i].Nr-1];}else//变压器支路{G[Branch[i].Nl-1][Branch[i].Nr-1]-=Branch[i].R/Z2/Branch[i].Kt;B[Branch[i].Nl-1][Branch[i].Nr-1]+=Branch[i].X/Z2/Branch[i].Kt;G[Branch[i].Nr-1][Branch[i].Nl-1]=G[Branch[i].Nl-1][Branch[i].Nr-1];B[Branch[i].Nr-1][Branch[i].Nl-1]=B[Branch[i].Nl-1][Branch[i].Nr-1];}}//计算对角元素for(i=0;i<n;i++)for(j=0;j<nbr;j++){Z2=Branch[j].R*Branch[j].R+Branch[j].X*Branch[j].X;if(Branch[j].Kt==0&&(Branch[j].Nl-1==i||Branch[j].Nr-1==i))//非变压器支路{G[i][i]=G[i][i]+Branch[j].R/Z2;B[i][i]=B[i][i]-Branch[j].X/Z2;}else if(Branch[j].Kt!=0&&(Branch[j].Nl-1==i||Branch[j].Nr-1==i))//变压器支路{G[i][i]=G[i][i]+Branch[j].R/Z2/Branch[j].Kt;B[i][i]=B[i][i]-Branch[j].X/Z2/Branch[j].Kt;}}//将对地电纳加入到对角元素中for(i=0;i<nbr;i++){if(Branch[i].Kt==0)//非变压器支路{B[Branch[i].Nl-1][Branch[i].Nl-1]+=Branch[i].Bn;B[Branch[i].Nr-1][Branch[i].Nr-1]+=Branch[i].Bn;}else//变压器支路{B[Branch[i].Nl-1][Branch[i].Nl-1]-=(1-Branch[i].Kt)/Branch[i].Kt/Branch[i].Kt/Branch[i].X;B[Branch[i].Nr-1][Branch[i].Nr-1]-=(Branch[i].Kt-1)/Branch[i].Kt/Branch[i].X;}}//将并联电容加入到对角元素中for(i=0;i<n;i++)B[i][i]=B[i][i]+Node[i].Bc;}//***************************************************************************** ********************//*****************************************求deltaP,deltaQ*****************************************void DeltaS()//计算功率不平衡量{inti,j;//为中间变量申请空间mid1=(double *)malloc(sizeof(double)*n);mid2=(double *)malloc(sizeof(double)*n);//为功率不平衡量申请空间dS=(double *)malloc(sizeof(double)*2*(n-1));//求功率不平衡量for(i=0;i<n-1;i++){//初始化中间变量mid1[i]=0;mid2[i]=0;for(j=0;j<n;j++){mid1[i]=mid1[i]+G[i][j]*Node[j].e-B[i][j]*Node[j].f;mid2[i]=mid2[i]+G[i][j]*Node[j].f+B[i][j]*Node[j].e;}dS[2*i]=Node[i].Ps-Node[i].Pd-(Node[i].e*mid1[i]+Node[i].f*mid2[i]);if(i<nPQ)dS[2*i+1]=Node[i].Qs-Node[i].Qd-(Node[i].f*mid1[i]-Node[i].e*mid2[i]);elsedS[2*i+1]=Us[i]*Us[i]-(Node[i].e*Node[i].e+Node[i].f*Node[i].f);}error=0;for(i=0;i<2*(n-1);i++){if(dS[i]<0&&error<-dS[i])error=-dS[i];else if(dS[i]>0&&error<dS[i])error=dS[i];}}//***************************************************************************** ********************//*********************************************雅克比矩阵******************************************voidFormJacob(){inti,j;//为雅克比行列式申请空间Jacob=(double **)malloc(sizeof(double *)*2*(n-1));for(i=0;i<2*(n-1);i++)Jacob[i]=(double *)malloc(sizeof(double)*2*(n-1));//初始化雅克比行列式for(i=0;i<2*(n-1);i++)for(j=0;j<2*(n-1);j++)Jacob[i][j]=0;for(j=0;j<n-1;j++){//求H,Nfor(i=0;i<n-1;i++){if(i!=j){Jacob[2*i][2*j]=B[i][j]*Node[i].e-G[i][j]*Node[i].f;Jacob[2*i][2*j+1]=-G[i][j]*Node[i].e-B[i][j]*Node[i].f;}else{Jacob[2*i][2*i]=B[i][i]*Node[i].e-G[i][i]*Node[i].f-mid2[i]; Jacob[2*i][2*i+1]=-G[i][i]*Node[i].e-B[i][i]*Node[i].f-mid1[i];}}//求J,Lfor(i=0;i<nPQ;i++){if(i!=j){Jacob[2*i+1][2*j]=G[i][j]*Node[i].e+B[i][j]*Node[i].f;Jacob[2*i+1][2*j+1]=B[i][j]*Node[i].e-G[i][j]*Node[i].f;}else{Jacob[2*i+1][2*i]=G[i][i]*Node[i].e+B[i][i]*Node[i].f-mid1[i]; Jacob[2*i+1][2*i+1]=B[i][i]*Node[i].e-G[i][i]*Node[i].f+mid2[i];}}//求R,Sfor(i=nPQ;i<n-1;i++){if(i==j){Jacob[2*i+1][2*i]=-2*Node[i].f;Jacob[2*i+1][2*i+1]=-2*Node[i].e;}}}}//***************************************************************************** ********************//********************************************雅克比矩阵求逆***************************************voidInvJac(){inti,j,k;double temp;//中间变量//为雅克比矩阵的逆申请空间invJac=(double **)malloc(sizeof(double *)*2*(n-1));for(i=0;i<2*(n-1);i++)invJac[i]=(double *)malloc(sizeof(double)*2*(n-1));//求逆for(i=0;i<2*(n-1);i++)for(j=0;j<2*(n-1);j++){if(i!=j)invJac[i][j]=0;elseinvJac[i][j]=1;}for(i=0;i<2*(n-1);i++){for(j=0;j<2*(n-1);j++){if(i!=j){temp=Jacob[j][i]/Jacob[i][i];for(k=0;k<2*(n-1);k++){Jacob[j][k]-=Jacob[i][k]*temp;invJac[j][k]-=invJac[i][k]*temp;}}}}for(i=0;i<2*(n-1);i++)if(Jacob[i][i]!=1){temp=Jacob[i][i];for(j=0;j<2*(n-1);j++)invJac[i][j]=invJac[i][j]/temp;}}//***************************************************************************** ********************//*********************************************电压修正********************************************voidUpdateU(){void InvJac();//求雅克比矩阵的逆inti,j;dfe=(double *)malloc(sizeof(double)2*(n-1));InvJac();for(i=0;i<2*(n-1);i++){dfe[i]=0;for(j=0;j<2*(n-1);j++)dfe[i]-=invJac[i][j]*dS[j];}for(i=0;i<n-1;i++){Node[i].e+=dfe[2*i+1];Node[i].f+=dfe[2*i];}}voidCalculatePQ(){inti,j;inttN,tType;double te,tf,tPd,tQd,tPs,tQs,tBc;//用于重新排列节点信息的临时变量//计算平衡节点功率mid1[n-1]=0;mid2[n-1]=0;for(j=0;j<n;j++){mid1[n-1]=mid1[n-1]+G[n-1][j]*Node[j].e-B[n-1][j]*Node[j].f;mid2[n-1]=mid2[n-1]+G[n-1][j]*Node[j].f+B[n-1][j]*Node[j].e;}Node[n-1].Ps=Node[n-1].e*mid1[n-1];Node[n-1].Qs=-Node[n-1].e*mid2[n-1];//计算PV节点的Qfor(i=nPQ;i<n-1;i++)Node[i].Qs=Node[i].f*mid1[i]-Node[i].e*mid2[i];//将节点参数排列为按节点号从小到大排列for(j=0;j<n-1;j++)for(i=0;i<n-j-1;i++){if(Node[i].N>Node[i+1].N){tN=Node[i].N;Node[i].N=Node[i+1].N;Node[i+1].N=tN;tType=Node[i].Type;Node[i].Type=Node[i+1].Type;Node[i+1].Type=tType;te=Node[i].e;Node[i].e=Node[i+1].e;Node[i+1].e=te;tf=Node[i].f;Node[i].f=Node[i+1].f;Node[i+1].f=tf;tPd=Node[i].Pd;Node[i].Pd=Node[i+1].Pd;Node[i+1].Pd=tPd;tQd=Node[i].Qd;Node[i].Qd=Node[i+1].Qd;Node[i+1].Qd=tQd;tPs=Node[i].Ps;Node[i].Ps=Node[i+1].Ps,Node[i+1].Ps=tPs;tQs=Node[i].Qs;Node[i].Qs=Node[i+1].Qs;Node[i+1].Qs=tQs;tBc=Node[i].Bc;Node[i].Bc=Node[i+1].Bc;Node[i+1].Bc=tBc;}}//转换为极坐标形式for(i=0;i<n;i++){te=sqrt(Node[i].e*Node[i].e+Node[i].f*Node[i].f);tf=atan(Node[i].f/Node[i].e)*180/PI;Node[i].e=te;Node[i].f=tf;}//输出结果printf("最终结果为:\n");printf(" N Tp Amp DltaPdQd Ps Qs Bc\n");for(i=0;i<n;i++)printf("%4d%4d%9.4lf%9.4lf%9.4lf%9.4lf%9.4lf%9.4lf%9.4lf\n",Node[i].N,Node[i].Type,Node[i].e, Node[i].f,Node[i].Pd,Node[i].Qd,Node[i].Ps,Node[i].Qs,Node[i].Bc);}//***************************************************************************** ********************void Print1(double *Mat,int n){int i;for(i=0;i<n;i++)printf("%9.4lf\n",Mat[i]);printf("\n");}void Print2(double **Mat,intm,int n){inti,j;for(i=0;i<m;i++){for(j=0;j<n;j++)printf("%9.4lf\t",Mat[i][j]);printf("\n");}printf("\n");}。

电力系统课程设计---电力系统潮流、短路计算和暂态稳定性分析

电力系统课程设计---电力系统潮流、短路计算和暂态稳定性分析
4.831311
6
8
1
Closed
No
37.11216
9.88447
38.40592
135
28.44883
0.168401
0.232344
6
9
1
Closed
No
54.1182
-5.19176
54.36666
140
38.83333
1.800829
1.050667
7
8
1
Closed
No
-9.68289
-4.01365
3
1
3支路参数
Line Records
首端节点编号
末端节点编号
状态
是否变压器
R
X
B
极限AMVA
1
2
Closed
Yes
0
0.0625
0
0
2
7
Closed
No
0.1301
0.12727
0.0109
100
2
9
Closed
No
0.01083
0.08644
0.0118
100
3
4
Closed
Yes
0
0.0586
二·设计原理及分析
2.1设计原理
根据设计要求,需保证任意一条线路出现故障时,每个负荷均不断电,因此必须保证每个节点处同时至少连接两条线路,当一条线路断开时发电机可过另一条线路给负荷供电,设计如下图。
2·2应用POWER WORLD软件设计的原理图
第3章·静态安全分析
安全分析,是用预想事故的分析方法来预知系统是否存在安全隐患,以便及早采取相应的措施防止系统发生大的事故。静态安全分析可判断发生预想事故后系统是否会过负荷。

哈工大电力系统分析短路及潮流计算实验上机程序

哈工大电力系统分析短路及潮流计算实验上机程序
elseif im>=0
fprintf(fid,'+%8.4fjn',im);
end
end
end end %%%============
fclose(fid);
%关闭文件
附:'node5.txt'
2、程序输出结果 节点导纳阵:
节点阻抗阵:
短路电流:
If= 0.0001+ 0.1082j 节点电压:
各支路电流:
for j=1:1:4
k=I(i,j);
re=real(k);
im=imag(k);
if(re~=0||im~=0)
fprintf(fid,'Branch%d--%d:I%d%d=',i,j,i,j);
fprintf(fid,'%8.4f',re);
if im<0
fprintf(fid,'%8.4fjn',im);
二、实验内容
1、编写数据输入、形成导纳阵程序
2、电力系统短路计算实用公式的计算程序及编制和调试
三、实验过程
1、程序代码及说明
%清屏 clear %读数据
fid=fopen('node5.txt','r');A=fscanf(fid,'%d',2);B=fscanf(fid,'%f',[5,A(2,1)]);fclose(fid);B=B';%求节点导纳矩阵
%===========================================
for j=1:1:A(1,1)-1
%===========================i~=j

哈工大数电上机实验报告

哈工大数电上机实验报告

数字逻辑电路与系统上机实验报告哈尔滨工业大学组合逻辑电路的设计与仿真2.1 实验要求本实验练习在Maxplus II环境下组合逻辑电路的设计与仿真。

2.2三人表决电路实验2.2.1 实验目的1. 熟悉MAXPLUS II原理图设计、波形仿真流程2. 练习用门电路实现给定的组合逻辑函数2.2.2 实验预习要求1. 预习教材《第四章组合逻辑电路》2. 了解本次实验的目的、电路设计要求2.2.3 实验原理设计三人表决电路,其原理为:三个人对某个提案进行表决,当多数人同意时,则提案通过,否则提案不通过。

输入:A、B、C,为’1’时表示同意,为’0’时表示不同意;输出:F,为’0’时表示提案通过,为’1’时表示提案不通过;波形仿真。

2.2.4 实验步骤1. 打开MAXPLUS II, 新建一个原理图文件,命名为EXP2_2.gdf。

三人表决电路原理图制输入信号A、B、C的波形(真值表中的每种输入情况均需出现)。

4. 运行仿真器得到输出信号F的波形,将完整的仿真波形图(包括全部输入输三人表决电路仿真波形图2.3 译码器实验2.3.1实验目的熟悉用译码器设计组合逻辑电路,并练习将多个低位数译码器扩展为一个高位数译码器。

2.3.2实验预习要求1. 预习教材《4-2-2 译码器》一节2. 了解本次实验的目的、电路设计要求2.3.3实验原理译码器是数字电路中的一种多输入多输出的组合逻辑电路,负责将二进制码或BCD码变换成按十进制数排序的输出信息,以驱动对应装置产生合理的逻辑动作。

商品的译码器品种较多,有2-4线、3-8线、4-10线及4-16线等。

本实验练习对双2-4线译码器74LS139的扩展,并用其实现特定的组合逻辑。

74LS139包含两个2-4线译码器,其输入输出如下:74LS139中译码器1真值表如下:74LS139要求使用两片74LS139实现逻辑函数(,,,)(2,7,13,15)F A B C D m =∑,在MAXPLUS II 环境下完成电路的设计与波形仿真。

电力系统潮流及短路电流计算程序汇总

电力系统潮流及短路电流计算程序汇总

班级:姓名:学号:一、作业要求编写程序计算图1所示算例系统的潮流及三相短路电流。

潮流计算:方法不限,计算系统的节点电压和相角。

短路电流:4号母线发生金属性三相短路时(zf=0),分别按照精确算法和近似算法计算短路电流、系统中各节点电压以及网络中各支路的电流分布,并对两种情况下的计算结果进行比较。

二、电路图及参数图1 3机9节点系统表1 9节点系统支路参数表2 9节点系统发电机参数表3 9节点系统负荷参数三、计算步骤(1) 进行系统正常运行状态的潮流计算,求得Ui (2) 形成不含发电机和负荷的节点导纳矩阵YN;(0)的并联组合;和导纳将发电机表示为电流源节点负荷用恒阻抗的接地支路表示;形成包括所有发电机支路和负荷支路的节点导纳矩阵Y,即在YN中的发电机节点和负荷节点的自导纳上分别增加发电机导纳yi和负荷导纳yLD,i(); Vi2Vi2*(4) 利用,计算节点阻抗矩阵,从而得到阻抗矩阵中的第f列;(5) 利用公式(6-7)或(6-10)计算短路电流;(6) 利用公式(6-8)或(6-11)计算系统中各节点电压;(7) 利用公式(6-9)计算变压器支路的电流;对输电线路利用П型等值电路计算支路电流。

四、计算结果节点导纳矩阵Yn:Columns 1 through 50 -17.3611i 0 0 0 +17.3611i 0 0 0 -16.0000i 0 0 0 0 0 0 -17.0648i 0 0 0 +17.3611i 0 0 3.3074 -39.3089i -1.3652 +11.6041i 0 0 0 -1.3652 +11.6041i 2.5528 -17.3382i 0 0 0 -1.9422 +10.5107i 0 0 0 +16.0000i 0 0 -1.1876 + 5.9751i0 0 0 0 0 0 0 0 +17.0648i 0 0Columns 6 through 90 0 0 00 0 +16.0000i 0 00 0 0 0 +17.0648i-1.9422 +10.5107i 0 0 00 -1.1876 + 5.9751i 0 03.2242 -15.8409i 0 0 -1.2820 + 5.5882i0 2.8047 -35.4456i -1.6171 +13.6980i 00 -1.6171 +13.6980i 2.7722 -23.3032i -1.1551 + 9.7843i-1.2820 + 5.5882i 0 -1.1551 + 9.7843i 2.4371 -32.1539i电压幅值:1.0400 1.0250 1.0250 1.0258 0.9956 1.0127 1.0258 1.0159 1.0324电压相角:0 0.1620 0.0814 -0.0387 -0.0696 -0.0644 0.0649 0.0127 0.0343节点有功:0.7164 1.6300 0.8500 0.0000 -1.2500 -0.9000 -0.0000 -1.0000 -0.0000节点无功:0.2705 0.0665 -0.1086 0.0000 -0.5000 -0.3000 -0.0000 -0.3500 -0.0000修正后的节点导纳矩阵Y:Columns 1 through 50 -20.6944i 0 0 0 +17.3611i 0 0 0 -19.3333i 0 0 0 0 0 0 -20.3982i 0 0 0 +17.3611i 0 0 3.3074 -39.3089i -1.3652 +11.6041i 0 0 0 -1.3652 +11.6041i 3.8716 -17.6627i 0 0 0 -1.9422 +10.5107i 0 0 0 +16.0000i 0 0 -1.1876 + 5.9751i0 0 0 0 0 0 0 0 +17.0648i 0Columns 6 through 90 0 0 00 0 +16.0000i 0 00 0 0 0 +17.0648i-1.9422 +10.5107i 0 0 00 -1.1876 + 5.9751i 0 04.1321 -16.0184i 0 0 -1.2820 +5.5882i0 2.8047 -35.4456i -1.6171 +13.6980i 00 -1.6171 +13.6980i 3.7323 -23.6669i -1.1551 + 9.7843i-1.2820 + 5.5882i 0 -1.1551 + 9.7843i 2.4371 -32.1539i节点阻抗矩阵Z的第4列:0.0463 + 0.1252i0.0329 + 0.0693i0.0316 + 0.0707i0.0552 + 0.1493i0.0589 + 0.1204i0.0562 + 0.1226i0.0397 + 0.0838i0.0416 + 0.0814i0.0378 + 0.0845i精确计算结果:短路电流:模值:6.4459相角:-71.9365节点电压模值:0.1831 0.5687 0.5427 0.0000 0.1466 0.1506 0.4537 0.44634 0 0.4495支路电流:i j Iij1 4 0.5779-3.1264i2 7 1.3702-1.4433i3 9 0.64294-1.4808i45 -0.77968+1.5248i 46 -0.6411+1.477i 57 -0.89528+1.6436i 6 9 -0.73353+1.5487i 78 0.50734+0.10234i 89 0.062766+0.056451i 近似计算结果:短路电流:模值:6.2838相角:-69.7198节点电压模值:0.1611 0.5214 0.51570.0000 0.1827 5 0.1675 0.4227 0.4348 0.4217五、程序流程图六、程序及输入文件 input_data.xls 文件:powerflow_cal.m 文件: l=9;%支路数 n=9;%节点数 m=6;%PQ节点数Yn=zeros(n);%初始化节点导纳矩阵YDATA1=xlsread('input_data.xls',1); %计算节点导纳矩阵Y for k=1:li=DATA1(k,1); j=DATA1(k,2); R=DATA1(k,3); X=DATA1(k,4); B2=DATA1(k,5); Yn(i,i)=Yn(i,i)+1i*B2+1/(R+1i*X); Yn(j,j)=Yn(j,j)+1i*B2+1/(R+1i*X);Yn(i,j)=Yn(i,j)-1/(R+1i*X); Yn(j,i)=Yn(j,i)-1/(R+1i*X);enddisp('节点导纳矩阵Yn:');disp(Yn);G=real(Yn);B=imag(Yn);DATA2=xlsread('input_data.xls',2);P=zeros(1,n);Q=zeros(1,n);U=ones(1,n);P(2:n)=DATA2(2:n,3);Q(4:n)=DATA2(4:n,4);U(1:3)=DATA2(1:3,5);%设置节点电压初值e(1)=DATA2(1,5);e(2:n)=1.0;f(1:n)=0.0;%设置迭代次数t=0;tmax=10;while t<=tmax%计算f(x)a(1:n)=0.0;c(1:n)=0.0;for i=2:nfor j=1:na(i)=a(i)+G(i,j)*e(j)-B(i,j)*f(j); c(i)=c(i)+G(i,j)*f(j)+B(i,j)*e(j); end endfor i=2:ndeltaP(i)=P(i)-e(i)*a(i)-f(i)*c(i); endfor j=4:ndeltaQ(j)=Q(j)-f(j)*a(j)+e(j)*c(j); endfor k=2:3deltaU2(k)=U(k)*U(k)-e(k)*e(k)-f(k)*f(k); endfx=[deltaP(2:n) deltaQ(4:n) deltaU2(2:3)]'; %计算雅克比矩阵J for i=2:nfor j=2:nif i~=jH(i,j)=-(G(i,j)*e(i)+B(i,j)*f(i)); 8N(i,j)=B(i,j)*e(i)-G(i,j)*f(i);elseH(i,j)=-a(i)-(G(i,i)*e(i)+B(i,i)*f(i));N(i,j)=-c(i)+(B(i,i)*e(i)-G(i,i)*f(i));endendendfor i=4:nfor j=2:nif i~=jM(i,j)=B(i,j)*e(i)-G(i,j)*f(i);L(i,j)=G(i,j)*e(i)+B(i,j)*f(i);elseM(i,j)=c(i)+(B(i,i)*e(i)-G(i,i)*f(i));L(i,j)=-a(i)+(G(i,i)*e(i)+B(i,i)*f(i));endendendfor i=2:3for j=2:nif i~=jR(i,j)=0;S(i,j)=0;elseR(i,j)=-2*e(i);S(i,j)=-2*f(i);endendendJ=[H(2:n,2:n) N(2:n,2:n);M(4:n,2:n) L(4:n,2:n);R(2:3,2:n) S(2:3,2:n)]; if max(abs(fx))<0.0001%输出结果break;else%求解修正方程获得dxdx=-J^(-1)*fx;dx=dx';e(2:n)=e(2:n)+dx(1:n-1);f(2:n)=f(2:n)+dx(n:2*(n-1));t=t+1;endendif t>tmaxstr='潮流计算不收敛';disp(str);elsea(1:n)=0.0;c(1:n)=0.0;for i=1:nfor j=1:na(i)=a(i)+G(i,j)*e(j)-B(i,j)*f(j); c(i)=c(i)+G(i,j)*f(j)+B(i,j)*e(j); end endfor i=1:nU(i)=e(i)+1i*f(i);amp(i)=abs(U(i));arg(i)=angle(U(i));P(i)=e(i)*a(i)+f(i)*c(i);Q(i)=f(i)*a(i)-e(i)*c(i);enddisp('电压幅值:');disp(amp);disp('电压相角:');disp(arg);disp('节点有功:');disp(P);disp('节点无功:');disp(Q);end%计算短路电流f=4;zf=0.0;%修正节点导纳矩阵Xd=DATA2(1:3,6);E=DATA2(1:3,7);for i=1:3Ii(i)=E(i)/(1i*Xd(i));endY=Yn;for i=1:3Y(i,i)=Y(i,i)+1/(1i*Xd(i));endfor j=4:nY(j,j)=Y(j,j)+(-P(j)+1i*Q(j))/(U(j)*U(j)); end disp('修正后的节点导纳矩阵Y:');disp(Y);Z=Y^(-1);disp('节点阻抗矩阵Z的第4列:');disp(Z(:,4));%精确计算disp('精确计算结果:');U0=U;If=U0(f)/(Z(f,f)+zf);amp=abs(If);arg=atand(imag(If)/real(If));disp('短路电流:');disp('模值:');disp(amp);disp('相角:');disp(arg);for i=1:nU(i)=U0(i)-Z(i,f)*If;amp=abs(U);enddisp('节点电压模值:');disp(amp);disp('支路电流: ');str=['i ' 'j ' ' Iij']; disp(str);for k=1:li=DATA1(k,1);j=DATA1(k,2);r=DATA1(k,3);x=DATA1(k,4);z=r+1i*x;I=(U(i)-U(j))/z;str=[num2str(i) ' ' num2str(j) disp(str); end%近似计算disp('近似计算结果:');U0(1:n)=1.0;If=U0(f)/(Z(f,f)+zf);amp=abs(If);arg=atand(imag(If)/real(If));disp('短路电流:');disp('模值:');disp(amp);11 num2str(I)];' 'disp('相角:');disp(arg);for i=1:nU(i)=U0(i)-Z(i,f)*If; amp=abs(U); enddisp('节点电压模值:'); disp(amp);。

电力系统分析综合实验一:潮流计算实验

电力系统分析综合实验一:潮流计算实验

电力系统分析综合实验一:潮流计算实验课程名称:电力系统分综合实验指导老师:成绩:实验名称:潮流分析实验实验类型:一、实验目的和要求(必填)二、实验内容和原理(必填)三、主要仪器设备(必填)四、操作方法和实验步骤五、实验数据记录和处理六、实验结果与分析(必填)七、讨论、心得一、实验目的和要求通过本实验熟悉PSCAD仿真软件,了解电力系统有功、无功的概念,掌握简单的潮流计算二、原理与说明(1)PSCAD/EMTDC是加拿大马尼托巴高压直流研究中心(ManitobaHVDCResearchCenter)推出的一款电力系统电磁暂态仿真软件。

EMTDC (ElectroMagneticTransientinDCSystem)是一种电力系统仿真分析软件,既可以研究交直流电力系统问题,又能完成电力电子仿真及其非线性控制的多功能工具。

PSCAD(PowerSystemComputerAidedDesign)是EMTDC的用户图形界面,也是EMTDC的图形用户接口,它的存在是为了更方便用户使用EMTDC。

PSCAD的开发成功,使得用户能更方便地使用EMTDC进行电力系统分析,使电力系统复杂部分可视化成为可能,而且软件可以作为实时数字仿真器的前置端。

用PSCAD进行潮流计算的时候要注意:①选取元件的时候,须辨别元件的属性,例如电源是三相还是单相;②设置元件参数时,要注意参数的物理意义③注意测量信号的方向④将多个曲线绘制在一张图表上时,须选取合适的范围,将单位标注清楚。

(2)三节点单相实验系统介绍在PSCAD界面搭建一个系统为50Hz的单相系统,如下图所示参数如下:G1:理想电压电源,100kVRMS,相角为0,频率为50HzG2:理想电压电源,100kVRMS,相角为60,频率为50HzG3:理想电压电源,100kVRMS,相角为30,频率为50HzX1:频率为50Hz的条件下,感抗为2X2:频率为50Hz的条件下,感抗为2X3:频率为50Hz的条件下,感抗为3X4:频率为50Hz的条件下,感抗为3X5:频率为50Hz的条件下,感抗为4X6:频率为50Hz的条件下,感抗为4Xline1:频率为50Hz的条件下,感抗为40Xline2:频率为50Hz的条件下,感抗为20Xline3:频率为50Hz的条件下,感抗为20仿真设置:电源:电压源输出坡至1.0p.u.的时间:0.05s仿真过程总时长:1s (确保仿真过程达到稳态)仿真步长:=50s(3)并联电容器并联电容器又称为移相电容器,是电力系统中一种重要的无功功率补偿设备,广泛地应用于改善负荷的功率因数。

电力系统分析计算机算法实验报告

电力系统分析计算机算法实验报告

电力系统分析计算机算法实验报告潮流计算的计算机算法潮流计算的计算机算法二、实验目的熟悉实验室里的PFC(潮流计算)软件,并用该软件对课本中的例2-1网络进行潮流计算。

三、实验电路图例[2-1]的电力系统四、软件计算步骤1、运行flowen50_2000_1.exe,进入起始界面2、输入密码进入程序主界面3、Calculate condition /Select…(计算环境/选择)点选LYS项,显示原始数据,再点Return回主界面。

4、Data prepare /DATAEDIT(数据准备/数据编辑)填写数据卡:需要填写“91卡”(约束条件卡),“01卡”(支路数据卡)和“02卡”(节点、发电机、负荷卡),数据第一项以卡号开头,(即:约束条件,填91,支路数据,填01,节点、发电机、负荷数据,填02)。

根据例2-1所给出的条件在编辑区填写各个数据卡,保存后退出回到主界面。

5、Data prepare /DATACHANGE(数据准备/数据改变)按Run开始转换数据,如果没有错误,将生成*.INT、*.P_V、*.Z_F、*.Z_H、*.Z_L等文件,并且程序直接返回主程序界面;6、Data prepare /Data check(数据准备/数据检查)点击check进行检查7、Calculate /Begin calculate(计算/开始计算)点Begin后开始潮流计算,如果结果收敛则出现如下图的显示,如果不收敛则必须找出原因重新计算或者对网络数据重新编辑。

8、在Lprint or Screen中查看该题的原始数据和计算数据以下七个图分别是点击ZL,ZF,ZH,FDJ,JIED,ZHILU,ZJI后显示的。

图a 支路原始数据(Branch)图b 发电机原始数据(Generator)图c 负荷原始数据(Load)图d 发电机结果数据(Generator)图e 节点结果数据(Node)图f 支路结果数据(Branch)图g 总计结果数据(Total)六、实验结论在Lprint or Screen中查看该题的节点结果数据,与课本中例2-1的计算结果中的节点比较,发现各个节点电压幅值相差小于等于0.03,而相位相差小于等于0.1°,应该在误差允许范围之内,因此此次实验计算出的潮流分布是正确的。

电力系统潮流及短路电流计算程序

电力系统潮流及短路电流计算程序

电力系统潮流及短路电流计算程序以下是一个简单的电力系统潮流计算程序的框架:1.输入数据准备阶段:-输入潮流计算的电力系统拓扑结构,包括各节点之间的连接关系、导线电阻、电抗等信息。

-输入电力系统的负荷信息,包括负荷节点、负荷大小、负荷类型等。

-输入电力系统的发电机信息,包括发电机节点、发电机类型、发电机容量等。

2.潮流计算阶段:-初始条件设置:给定电力系统中各节点的初始电压、相角等信息。

-节点功率方程求解:根据电力系统的拓扑结构和发电机、负荷信息,建立节点功率方程。

-潮流计算迭代:使用牛顿-拉夫逊法等迭代算法求解节点功率方程,得到各节点的电压、相角等参数。

3.潮流计算结果输出阶段:-输出各节点的电压、相角、有功功率、无功功率等参数。

-输出各支路的电流、功率损耗等参数。

-输出系统的功率平衡情况。

4.短路电流计算阶段:-输入短路电流计算的电力系统拓扑结构。

-输入短路电流计算的负荷信息。

-输入短路电流计算的电源信息。

-使用KVL(电压法)或KCL(电流法)等方法计算各节点短路电流。

5.短路电流计算结果输出阶段:-输出各节点的短路电流大小。

-输出各支路的短路电流大小。

以上只是一个电力系统潮流及短路电流计算程序的大致流程框架,具体实现细节和算法选择还需要根据具体情况进行进一步的设计和开发。

在实际应用中,还需要考虑各种特殊情况和计算优化方法,以提高计算速度和准确性。

总之,电力系统潮流及短路电流计算程序是电力工程师在设计和运行电力系统中不可或缺的工具,它能够帮助工程师快速了解系统的运行状态和电流分布情况,以便进行系统优化和安全评估。

电力系统潮流计算实验报告

电力系统潮流计算实验报告

11. 手算过程已知:节点1:PQ 节点, s(1)= -0.5000-j0.3500 节点2:PV 节点, p(2)=0.4000 v(2)=1.0500 节点3:平衡节点,U(3)=1.0000∠0.0000 网络的连接图:0.0500+j0.2000 1 0.0500+j0.2000231)计算节点导纳矩阵由2000.00500.012j Z 71.418.112j y ;2000.00500.013j Z71.418.113j y ;导纳矩阵中的各元素:42.936.271.418.171.418.1131211j j j y y Y ;71.418.11212j y Y ; 71.418.11313j y Y; 21Y 71.418.11212j y Y ; 71.418.12122j y Y;002323j y Y;31Y 71.418.11313j y Y; 32Y 002323j y Y;71.418.13133j y Y;形成导纳矩阵BY :71.418.10071.418.10071.418.171.418.171.418.171.418.142.936.2j j j j j j j j j Y B2)计算各PQ、PV 节点功率的不平衡量,及PV 节点电压的不平衡量:取:000.0000.1)0(1)0(1)0(1j jf e U000.0000.1)0(2)0(2)0(2j jf e U节点3是平衡节点,保持000.0000.1333j jf e U为定值。

nj j jij jij ijij jij i ieB fG f fB eG e P1)0()0()0()0()0()0()0(;2nj j jij jij ijij jij i ie B fG e f B eG f Q 1)0()0()0()0()0()0()0(;);(2)0(2)0(2)0(iiif e U)0.142.90.036.2(0.0)0.042.90.136.2(0.1)0(1P)0.171.40.018.1(0.0)0.071.40.118.1(0.1 )0.171.40.018.1(0.0)0.071.40.118.1(0.1 0.0 ;)0.142.90.036.2(0.1)0.042.90.136.2(0.0)0(1Q)0.171.40.018.1(0.1)0.071.40.118.1(0.0 )0.171.40.018.1(0.1)0.071.40.118.1(0.0 0.0 ;)0.171.40.018.1(0.0)0.071.40.118.1(0.1)0(2P)0.171.40.018.1(0.0)0.071.40.118.1(0.1 )0.00.00.00.0(0.0)0.10.00.10.0(0.1 0.0 ;101)(222)0(22)0(22)0(2f e U;于是:;)0()0(iiiP P P ;)0()0(iiiQQ Q);(2)0(2)0(22)0(iiiif e UU5.00.05.0)0(11)0(1P P P ;35.00.035.0)0(11)0(1QQ Q;4.00.04.0)0(22)0(2P P P ;1025.0)01(05.1)(2222)0(22)0(2222)0(2f e UU3)计算雅可比矩阵中各元素雅可比矩阵的各个元素分别为:3ji ij ji ij j i ij j i ij ji ij j i ij e U S f U R e Q L f Q J e P N f P H 22;;; 又: nj j jij jij i jij jij i ieB fG f fB eG e P1)0()0()0()0()0()0()0(; nj j jij jij ijij jij iieB fG e fB eG f Q 1)0()0()0()0()0()0()0(;);(2)0(2)0(2)0(iiif e U)0(1P )0(111)0(111)0(1)0(111)0(111)0(1e Bf G f f B e G e)0(212)0(212)0(1)0(212)0(212)0(1e B fG f f B e G e313313)0(1313313)0(1e Bf G f f B e G e ;)()()0(111)0(111)0(1)0(111)0(111)0(1)0(1e Bf Ge f B e G f Q)()()0(212)0(212)0(1)0(212)0(212)0(1e Bf G e f B e G f)()(313313)0(1313313)0(1e Bf G e f B e G f;)0(2P )0(121)0(121)0(2)0(121)0(121)0(2e Bf G f f B e G e)0(222)0(222)0(2)0(222)0(222)0(2eB fG f fBeG e323323)0(2323323)0(2e Bf G f f B e G e ;)(2)0(22)0(22)0(2f e U42.90.171.40.171.4313)0(212)0(1)0(1)0(11e B e Bf P H ; 36.20.118.10.118.10.136.222313)0(212)0(111)0(1)0(1)0(11 e G e G e G e P N 36.20.118.10.118.1313)0(212)0(1)0(1)0(11 e G e G f Q J442.90.171.40.171.40.142.922313)0(212)0(111)0(1)0(1)0(11 e B e B e B e Q L 71.40.171.4)0(112)0(2)0(1)0(12 e B f P H ; 18.10.118.1)0(112)0(2)0(1)0(12 e G e P N ; 18.10.118.1)0(112)0(2)0(1)0(12 e G f Q J ;71.40.171.4)0(112)0(2)0(1)0(12 e B e Q L ; 71.40.171.4)0(221)0(1)0(2)0(21 e B f P H ; 11.40.111.4)0(221)0(1)0(2)0(21 e G e P N ; 0)0(12)0(2)0(21 f U R ; 0)0(12)0(2)0(21 e U S ; 71.40.10.00.171.4323)0(121)0(2)0(2)0(22 e B e B f P H ; 18.10.10.00.118.10.118.122323)0(121)0(222)0(2)0(2)0(22 e G e G e G e P N ;02)0(2)0(22)0(2)0(22 f f U R ; 0.20.122)0(2)0(22)0(2)0(22 e e U S ; 得到K=0时的雅可比矩阵:0.200018.171.418.171.471.418.142.936.218.171.436.242.9)0(J4)建立修正方程组:5)0(2)0(2)0(1)0(10.200011.4959.1011.4959.10959.1011.4918.2122.811.4959.1022.8918.210975.04.035.08.0e f e f 解得:04875.001828.00504.00176.0)0(2)0(2)0(1)0(1e f e f 因为 )0()0()1(iiie e e ; )0()0()1(iiif f f ;所以 9782.00218.00.1)0(1)0(1)1(1e e e ; 0158.00158.00)0(1)0(1)1(1f f f ;05125.105125.00.1)0(2)0(2)1(2e e e ;05085.005085.00)0(2)0(2)1(2f f f ;5)运用各节点电压的新值进行下一次迭代:即取: 0158.09782.0)1(1)1(1)1(1j jf e U05085.005125.1)1(2)1(2)1(2j jf e U节点3时平衡节点,保持000.0000.1333j jf e U为定值。

哈工大电信院数字电路上机实验报告

哈工大电信院数字电路上机实验报告

Harbin Institute of Technology数字逻辑电路与系统课程名称:数字逻辑电路与系统注:本报告仅供参考班级:姓名:哈尔滨工业大学2015年 4月实验二时序逻辑电路的设计与仿真3.2 同步计数器实验3.2.1 实验目的1. 练习使用计数器设计简单的时序电路2. 熟悉用MAXPLUS II 仿真时序电路的方法3.2.2 实验预习要求1. 预习教材《6-3 计数器》2. 了解本次实验的目的、电路设计要求3.2.3 实验原理计数器是最基本、最常用的时序逻辑电路之一,有很多品种。

按计数后的输出数码来分,有二进制及BCD 码等区别;按计数操作是否有公共外时钟控制来分,可分为异步及同步两类;此外,还有计数器的初始状态可否预置,计数长度(模)可否改变,以及可否双向等区别。

本实验用集成同步4 位二进制加法计数器74LS161 设计N 分频电路,使输出信号CPO 的频率为输入时钟信号CP 频率的1/N,其中N=(学号后两位mod8)+8。

下表为74LS161 的功能表。

3.2.4 实验步骤1. 打开MAXPLUS II, 新建一个原理图文件,命名为EXP3_2.gdf。

2. 按照实验要求设计电路,将电路原理图填入下表。

3. 新建一个波形仿真文件,命名为EXP3_2.scf,加入时钟输入信号CP 及输出信号CPO,并点击MAXPLUS II 左侧工具条上的时钟按钮,将CP 的波形设置为周期性方波。

4. 运行仿真器得到输出信号CPO 的波形,将完整的仿真波形图(包括全部输入输出信号)附于下表。

3.3 时序电路分析实验3.3.1 实验目的练习用MAXPLUS II 进行时序逻辑电路的分析。

3.3.2 实验预习要求1. 预习教材《6-3-1 异步二进制计数器》2. 了解本次实验的目的、电路分析要求3.3.3 实验原理分析如下时序电路的功能,并判断给出的波形图是否正确。

3.3.4 实验步骤1. 打开MAXPLUS II, 新建一个原理图文件,命名为EXP3_3.gdf。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

上机实验实验一节点导纳阵生成和短路电流计算实验二简单系统的牛顿法潮流计算姓名:班级:141班学号:实验说明:本程序的电路结构来自翁增银、何仰赞主编的《电力系统分析》的例题实验一节点导纳阵生成和短路电流计算一、实验目的根据所给的电力系统,编制短路电流计算程序,通过计算机进行调试,最后完成一个切实可行的电力系统计算应用程序。

通过自己设计电力系统计算程序加深对电力系统分析的理解,同时加强计算机实际应用能力。

二、实验内容1、编写数据输入、形成导纳阵程序2、电力系统短路计算实用公式的计算程序及编制和调试三、实验过程1、程序代码及说明%清屏clear%读数据fid=fopen('node5.txt','r');A=fscanf(fid,'%d',2);B=fscanf(fid,'%f',[5,A(2,1)]);fclose(fid);B=B';%求节点导纳矩阵Y=zeros(A(1,1)); % 形成5×5的0阵%%%%%====================================================%导纳阵元素计算for a=1:1:A(2,1)m=B(a,1);n=B(a,2);if B(a,5)>0Y(m,m)=Y(m,m)+1/(B(a,3)+j*B(a,4));Y(n,n)=Y(n,n)+1/(B(a,3)+j*B(a,4))/(B(a,5)^2);Y(m,n)=-1/(B(a,3)+j*B(a,4))/B(a,5);Y(n,m)=Y(m,n);elseif B(a,5)<0Y(m,m)=Y(m,m)+1/(B(a,3)+j*B(a,4))-j*B(a,5);Y(n,n)=Y(n,n)+1/(B(a,3)+j*B(a,4))-j*B(a,5);Y(m,n)=-1/(B(a,3)+j*B(a,4));Y(n,m)=Y(m,n);endend%%%%%=======================================================Y(2,2)=Y(2,2)+j*0.01;Z=inv(Y);If=1/Z(3,3); %接金属短路,Zf=0for i=1:1:5V(1,i)=1-Z(i,3)/Z(3,3);end%%%======================================================== %计算各支路电流for a=1:1:A(2,1)m=B(a,1);n=B(a,2);if B(a,5)>0I(m,n)=(B(a,5)*V(1,m)-V(1,n))/(B(a,3)+j*B(a,4));elseif B(a,5)<0I(m,n)=(V(1,m)-V(1,n))/(B(a,3)+j*B(a,4));endend%%%=======================================================fid=fopen('ans.txt','w');fprintf(fid,'Y_matrix\n');%%%=======================================================%输出导纳阵for i=1:1:5for j=1:1:5k=Y(i,j);re=real(k);fprintf(fid,'%8.4f',re);im=imag(k);if im<0fprintf(fid,'%8.4fj\t',im);elseif im>=0fprintf(fid,'+%8.4fj\t',im);endendfprintf(fid,'\n');end%%%==========================================================%%%========================================================== %输出阻抗阵,导纳阵求逆fprintf(fid,'Z_matrix\n');for i=1:1:5for j=1:1:5k=Z(i,j);re=real(k);fprintf(fid,'%8.4f',re);im=imag(k);if im<0fprintf(fid,'%8.4fj\t',im);elseif im>=0fprintf(fid,'+%8.4fj\t',im);endendfprintf(fid,'\n');end%%%=========================================================%%%========================================================= %打印输出短路电流fprintf(fid,'If=');re=real(If);fprintf(fid,'%8.4f',re);im=imag(If);if im<0fprintf(fid,'%8.4fj\t',im);elseif im>=0fprintf(fid,'+%8.4fj\t',im);endfprintf(fid,'\nV\n');%%%========================================================%%%======================================================== %打印输出节点电压for i=1:1:5fprintf(fid,'Note%d:V%d=',i,i);k=V(1,i);re=real(k);fprintf(fid,'%8.4f',re);im=imag(k);if im<0fprintf(fid,'%8.4fj\t',im);elseif im>=0fprintf(fid,'+%8.4fj\t',im);endfprintf(fid,'\n');end%%%========================================================%%%======================================================== %输出打印支路电流fprintf(fid,'Ibr\n');for i=1:1:5for j=1:1:4k=I(i,j);re=real(k);im=imag(k);if(re~=0||im~=0)fprintf(fid,'Branch%d--%d:I%d%d=',i,j,i,j);fprintf(fid,'%8.4f',re);if im<0fprintf(fid,'%8.4fj\n',im);elseif im>=0fprintf(fid,'+%8.4fj\n',im);endendendend%%%========================================================== fclose(fid); %关闭文件附:'node5.txt'2、程序输出结果节点导纳阵:节点阻抗阵:短路电流:If= 0.0001+ 0.1082j节点电压:各支路电流:四、实验总结这是我的第一次上机实验,感觉稍微有点难,主要还是在工具软件—C语言或者MA TLAB的运用上,但是我相信,以后学习中,我会努力掌握的,这是我把理论应用于实际中的必要桥梁!实验二简单系统的牛顿法潮流计算一、实验目的根据所给的电力系统,编制牛顿法潮流计算程序,通过计算机进行调试,最后完成一个切实可行的电力系统计算应用程序。

通过自己设计电力系统计算程序加深对电力系统分析的理解,同时加强计算机实际应用能力。

二、实验内容电力系统潮流计算的计算程序设计及编制和调试。

三、程序框图四、实验过程1、实验程序及说明clearfid=fopen('node4.txt','r'); %打开输入数据A=fscanf(fid,'%f',8); %读8个数B=fscanf(fid,'%f',[5,A(2,1)]);C=fscanf(fid,'%f',[3,(A(1,1)-1)]);fclose(fid);B=B';C=C';B(2,5)=1/B(2,5);Y=zeros(A(1,1)); %得4×4的0阵%%%=============================================================== %与前一实验同法求导纳阵for a=1:1:A(2,1)m=B(a,1);n=B(a,2);if B(a,5)>0Y(m,m)=Y(m,m)+1/(B(a,3)+j*B(a,4));Y(n,n)=Y(n,n)+1/(B(a,3)+j*B(a,4))/(B(a,5)^2);Y(m,n)=-1/(B(a,3)+j*B(a,4))/B(a,5);Y(n,m)=Y(m,n);else if B(a,5)<0Y(m,m)=Y(m,m)+1/(B(a,3)+j*B(a,4))-j*B(a,5);Y(n,n)=Y(n,n)+1/(B(a,3)+j*B(a,4))-j*B(a,5);Y(m,n)=-1/(B(a,3)+j*B(a,4));Y(n,m)=Y(m,n);endendend%%%=================================================================%%%================================================================= %节点电压赋初值Q=zeros(2*A(1,1),1);for i=1:1:(A(1,1)-1)if C(i,3)>0Q(2*i-1,1)=C(i,3);Q(2*i,1)=0;elseQ(2*i-1,1)=1;Q(2*i,1)=0;endQ(2*A(3,1)-1,1)=A(4,1);Q(2*A(3,1),1)=0;endfid=fopen('answer.txt','w');fprintf(fid,'====================节点电压V=============================\n'); fprintf(fid,'迭代计数\t\t V1=e1+jf1\t\t\t\t V2=e2+jf2\t\t\t\tV3=e3+jf3\t\t\n');%%%=======================求W阵=================================== W=zeros(2*(A(1,1)-1),50);for x=1:1:50 %设置迭代次数为50次for i=1:1:A(7,1)k=C(i,1);p=0;q=0;m=0;n=0;for j=1:1:A(1,1)g=real(Y(k,j));b=imag(Y(k,j));e=Q(2*j-1,1);f=Q(2*j,1);p=p+g*e-b*f;q=q+g*f+b*e;m=m+g*e-b*f;n=n+g*f+b*e;endW(2*k,x)=C(k,2)-Q(2*k-1,1)*p-Q(2*k)*q;W(2*k-1,x)=C(k,3)-Q(2*k)*m+Q(2*k-1,1)*n;End%%%=========================PQ节点=================================%%%=========================PV节点================================= for l=1:1:A(8,1)k=C(l+A(7,1),1);p=0;q=0;m=0;n=0;for j=1:1:A(1,1)g=real(Y(k,j));b=imag(Y(k,j));e=Q(2*j-1,1);f=Q(2*j,1);p=p+g*e-b*f;q=q+g*f+b*e;endW(2*k,x)=C(k,2)-Q(2*k-1,1)*p-Q(2*k)*q;W(2*k-1,x)=(C(k,3))^2-(Q(2*k-1,1)^2+Q(2*k)^2);End%%%================================================================%%%=============================================================== %比较是否符合条件Max=0;for i=1:1:2*(A(1,1)-1)Max=max(abs(W(i,x)),Max);endif Max<A(5,1)break;end%%%=================================================================%%%================================================================= %求雅克比行列式for i=1:1:A(1,1)-1%===========================================for j=1:1:A(1,1)-1%===========================i~=jif i~=jk=C(i,1);g=real(Y(k,j));b=imag(Y(k,j));e=Q(2*k-1,1);f=Q(2*k,1);J(2*k-1,2*j-1)=-(g*e+b*f);J(2*k-1,2*j)=b*e-g*f;if i~=3J(2*k,2*j)=-J(2*k-1,2*j-1);J(2*k,2*j-1)=J(2*k-1,2*j);elseJ(2*k,2*j-1)=0;J(2*k,2*j)=0;endend%=============================== i=j ================== if i==jk=C(i,1);p=0;q=0;m=0;n=0;g=real(Y(k,k));b=imag(Y(k,k));J(2*k-1,2*j-1)=-g*Q(2*i-1,1)-b*Q(2*i,1);J(2*k-1,2*j)=b*Q(2*i-1,1)-g*Q(2*i,1);if k~=3J(2*k,2*j-1)=b*Q(2*i-1,1)-g*Q(2*i,1);J(2*k,2*j)=g*Q(2*i-1,1)+b*Q(2*i,1);endfor r=1:1:A(1,1)g=real(Y(k,r));b=imag(Y(k,r));e=Q(2*r-1,1);f=Q(2*r,1);p=p+g*e-b*f;q=q+g*f+b*e;endJ(2*k-1,2*j-1)=-p+J(2*k-1,2*j-1);J(2*k-1,2*j)=-q+J(2*k-1,2*j);if i~=3J(2*k,2*j-1)=q+J(2*k,2*j-1);J(2*k,2*j)=-p+ J(2*k,2*j);elseJ(2*k,2*j-1)=-2*Q(2*i-1,1);J(2*k,2*j)=-2*Q(2*i,1);endendendend%%%==============================================================%%%============================================================== %解修正方程得修正量Q0for i=1:2:5J0(i+1,:)=J(i,:);J0(i,:)=J(i+1,:);endJ=J0;Q0=-inv(J)*W(:,x);for i=1:1:6Q(i,1)=Q(i,1)+Q0(i,1);Endfprintf(fid,'\t%d\t\t',x);for i=1:A(1,1)-1k=C(i,1);if Q(2*k,1)>=0fprintf(fid,'%8.4f+%8.4fj\t\t ',Q(2*k-1,1),Q(2*k,1));elsefprintf(fid,'%8.4f%8.4fj\t\t',Q(2*k-1,1),Q(2*k,1));endendfprintf(fid,'\n');end%%%================================================================= %%%==================================平衡点功率======================k=A(3,1);v=0;j=sqrt(-1);for b=1:A(1,1)m=conj(Y(k,b));p=Q(2*b-1,1)+Q(2*b,1)*j;n=conj(p);v=v+m*n;endWp=(Q(2*k-1,1)+j*Q(2*k,1))*v;end%%%===========================节点电压V===========================%fid=fopen('answer.txt','w');fprintf(fid,'节点电压V\n');for i=1:A(1,1)-1k=C(i,1);if Q(2*k,1)>=0fprintf(fid,'node%d:%8.4f+%8.4fj\n',k,Q(2*k-1,1),Q(2*k,1));elsefprintf(fid,'node%d:%8.4f%8.4fj\n',k,Q(2*k-1,1),Q(2*k,1));endendfprintf(fid,'平衡点功率P+jQ=%8.4f+%8.4fj',real(Wp),imag(Wp));fclose(fid);附注:node4.txt %输入数据2、程序输出结果五、实验总结本次实验是我把应用理论知识的重要实践,经过实验,我有两点感想,首先,作为一名工科学生,应该能熟练运用C语言和MATLAB等工具,其次,理论如果不用于实践,就永远不知道理论是用来干什么的,学到头一直是满脑子的浆糊,所以,以我的切身经历建议,把这门实验放在跟课程平行的时间上进行,这样不仅有利于实验开展,也有利于学生更加深刻地学习!。

相关文档
最新文档