潮流上机课程设计报告华电Word下载.docx
《潮流上机课程设计报告华电Word下载.docx》由会员分享,可在线阅读,更多相关《潮流上机课程设计报告华电Word下载.docx(19页珍藏版)》请在冰点文库上搜索。
节点数据,支路数据(包括变压器);
2.3用牛顿-拉夫逊法计算;
2.4根据所选潮流计算方法画流程图,划分出功能模块,有数据输入模块,导纳阵形成模块,解线性方程组模块,计算不平衡功率模块,形成雅可比矩阵模块,解修正方程模块,计算线路潮流,网损,PV节点无功功率和平衡节点功率,数据输出模块;
2.5据上述模块编制程序并上机调试程序,得出潮流计算结果;
2.6源程序及其程序中的符号说明集、程序流图
简单系统如下图所示,支路数据如下:
节点数据如下:
1)节点导纳阵
#include<
stdio.h>
math.h>
fstream.h>
#include"
LF.h"
//formnodeconductancematrix
intMakeY(intnB,intnL,Line*sL,double**YG,double**YB)
{
inti,j,l;
doubler,x,d1,g,b,t;
for(i=0;
i<
nB;
i++)
for(j=0;
j<
j++)
{YG[i][j]=0.0;
YB[i][j]=0.0;
}
for(i=0;
nL;
{r=sL[i].R;
x=sL[i].X;
g=r/(r*r+x*x);
b=-x/(r*r+x*x);
switch(sL[i].Type)
{case1:
//Line
break;
case2:
//Transformer
g*=1/sL[i].K;
b*=1/sL[i].K;
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(j=0;
printf("
%lf\t"
YG[i][j]);
printf("
虚部:
YB[i][j]);
/*ChecktheYmatrix*/
ofstreamfout("
out.txt"
fout<
<
"
--------------YMatrix--------------------"
<
endl;
{for(j=0;
fout<
YG[i][j]<
+j"
YB[i][j]<
\t"
;
fout<
fout.close();
return0;
2)计算功率不平衡量
//formdeltapanddeltaq
intCalDeltaPQ(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;
npv+npq+1;
{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));
}
PV节点%d的有功功率是%lf\n"
i,deltaf[k]);
if(k<
npq+npv&
&
k>
=npv)
PQ节点%d的有功功率是%lf\n"
if(k<
npq*2+npv&
=npv+npq)
{deltaf[k]=bus[i].GenQ-bus[i].LoadQ;
for(j=0;
{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));
PQ节点%d的无功功率是%lf\n"
}
3)雅各比矩阵的计算
/*
Purpose:
forundergraduatecourse
Task:
LoadFlow
Copyright@NCEPU,LiuChongru
*/
//formJacobianmatrix
intFormJacobian(intnpv,intnpq,Bus*bus,double**YG,double**YB,int*p_Jtobus,double**Jac)
{intnp=npv+npq,j,k,i,m;
//TODO
doublea[14],q[14];
{
i=p_Jtobus[k];
a[i]=0;
q[i]=0;
np)//HN
{
np+1;
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-bus[j].Phase));
q[i]+=bus[j].Volt*(YG[i][j]*cos(bus[i].Phase-bus[j].Phase)+YB[i][j]*sin(bus[i].Phase-bus[j].Phase));
}
for(m=0;
m<
m++)
{
j=p_Jtobus[m];
if(j!
{
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));
//FormH
elseJac[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));
//FormN
}
elseif(j==i)
{if(m<
np)
Jac[k][m]=-bus[i].Volt*a[i];
elseJac[k][m]=bus[i].Volt*q[i]+2*bus[i].Volt*bus[i].Volt*YG[i][j];
//FormN}
}
}
else
{
if(j!
for(m=0;
{
j=p_Jtobus[m];
np)Jac[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));
//FormJ
elseJac[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));
//FormL}
elseif(j==i)
{if(m<
Jac[k][m]=bus[i].Volt*q[i];
else
Jac[k][m]=bus[i].Volt*a[i]-2*bus[i].Volt*bus[i].Volt*YB[i][j];
np+npq;
{for(intj=0;
{printf("
%d%d%f"
i,j,Jac[i][j]);
//OutputthematrixtochecktheJacobianmatrix
ios:
:
app);
--------------JacobianMatrix--------------------"
i<
i++)
j<
j++)
Jac[i][j]<
4)线路损耗
//8.calculatethepowerflow
double*p_Pij,*p_Qij,*p_Pji,*p_Qji;
p_Pij=newdouble[nL];
p_Qij=newdouble[nL];
p_Pji=newdouble[nL];
p_Qji=newdouble[nL];
intx1,x2;
for(i=0;
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-bus[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-bus[x1].Phase));
{p_Pij[i]=bus[x1].Volt*bus[x1].Volt*(-YG[x1][x2])/line[i].K-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*((-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].Phase-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].Phase));
p_Qji[i]=-bus[x2].Volt*bus[x2].Volt*((-YB[x2][x1])*line[i].K+line[i].B)-bus[x2].Volt*bus[x1].Volt*((-YG[x2][x1])*sin(bus[x2].Phase-bus[x1].Phase)-(-YB[x2][x1])*cos(bus[x2].Phase-bus[x1].Phase));
//pandqofPHbusandPVbus
ints=0;
doublep[9],q[9],Ps[9],Qs[9],PS=0,QS=0;
for(i=0;
{p[i]=0;
for(intj=0;
{p[i]+=(bus[j].Volt*(YG[i][j])*cos(bus[j].Phase)-bus[j].Volt*(YB[i][j])*sin(bus[j].Phase));
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;
{PS+=Ps[i];
QS+=Qs[i];
PS=%7.7f,QS=%7.7f\n"
PS,QS);
//loss
doublePloss=0,Qloss=0;
{Ploss+=p_Pij[i]+p_Pji[i];
Qloss+=p_Qij[i]+p_Qji[i];
5)程序流图如下
6)得到的数据(out.txt)
--------------YMatrix--------------------
0+j-17.36110+j00+j00+j17.36110+j00+j00+j00+j00+j0
0+j00+j-160+j00+j00+j00+j00+j160+j00+j0
0+j00+j00+j-17.06480+j00+j00+j00+j00+j00+j17.0648
0+j17.36110+j00+j03.30738+j-39.3089-1.36519+j11.6041-1.94219+j10.51070+j00+j00+j0
0+j00+j00+j0-1.36519+j11.60412.55279+j-17.33820+j0-1.1876+j5.975130+j00+j0
0+j00+j00+j0-1.94219+j10.51070+j03.2242+j-15.84090+j00+j0-1.28201+j5.58824
0+j00+j160+j00+j0-1.1876+j5.975130+j02.80473+j-35.4456-1.61712+j13.6980+j0
0+j00+j00+j00+j00+j00+j0-1.61712+j13.6982.77221+j-23.3032-1.15509+j9.78427
0+j00+j00+j17.06480+j00+j0-1.28201+j5.588240+j0-1.15509+j9.784272.4371+j-32.1539
--------------JacobianMatrix--------------------
16.40000-16.400000000
017.491500000-17.4915000000
0040.1703-11.6041-10.51070003.30738-1.36519-1.94219000
00-11.604117.57920-5.9751300-1.365192.552790-1.187600
00-10.5107016.098900-5.58824-1.9421903.224200-1.28201
-16.400-5.97513036.0731-13.69800-1.187602.80473-1.617120
00000-13.69823.4822-9.78427000-1.617122.77221-1.15509
0-17.491500-5.588240-9.7842732.86400-1.282010-1.155092.4371
00-3.307381.365191.9421900038.4474-11.6041-10.5107000
001.36519-2.5527901.187600-11.604117.09720-5.9751300
001.942190-3.2242001.28201-10.5107015.582900-5.58824
0001.18760-2.804731.6171200-5.97513034.8181-13.6980
000001.61712-2.772211.15509000-13.69823.1242-9.78427
00001.2820101.15509-2.437100-5.588240-9.7842731.4437
16.92690000-16.9269000001.6879300
018.169100000-18.1691000000.883627
0041.9297-12.1301-11.15360003.54272-1.0628-1.76646000
00-12.045518.060