电力系统潮流计算课程设计(4)

2018-12-19 22:21

南通大学

} }

int bal=0;

for(int i1=1;i1<=AllNodeNumber;i1++)

if(bus[NewNumber[i1]-1].NodeType==3) //平衡节点 {

bal=i1; }

maxerror=0;

for(i=1;i<=AllNodeNumber;i++)//形成雅克比矩阵 {

int balance;

if(bus[NewNumber[i]-1].NodeType==3) //平衡节点 {

balance=i;continue; }

else if(bus[NewNumber[i]-1].NodeType==0)//PQ节点 {

P[i][2*i-1]=-a[i]-(yii[i].G*bus[NewNumber[i]-1].NodeE+yii[i].B*bus[NewNumber[i]-1].NodeF);

P[i][2*i]=-b[i]+(yii[i].B*bus[NewNumber[i]-1].NodeE-yii[i].G*bus[NewNumber[i]-1].NodeF);

Q[i][2*i-1]=b[i]+(yii[i].B*bus[NewNumber[i]-1].NodeE-yii[i].G*bus[NewNumber[i]-1].NodeF);

Q[i][2*i]=-a[i]+(yii[i].G*bus[NewNumber[i]-1].NodeE+yii[i].B*bus[NewNumber[i]-1].NodeF);

if(i!=AllNodeNumber) {

for(int m=seq[i];m

if(seq[i]>BranchNumber)break;

P[i][2*yij[m].j-1]=-(yij[m].G*bus[NewNumber[i]-1].NodeE+yij[m].B*bus[NewNumber[i]-1].NodeF);

P[i][2*yij[m].j]=(yij[m].B*bus[NewNumber[i]-1].NodeE-yij[m].G*bus[NewNumber[i]-1].NodeF);

Q[i][2*yij[m].j-1]=P[i][2*yij[m].j]; Q[i][2*yij[m].j]=-P[i][2*yij[m].j-1]; } }

for(int s=seq[1];s

14

南通大学

{

int r;

if(yij[s].j==i) {

for(int l=1;l

if(s>=seq[l]&&s

if(r==balance)continue;

P[i][2*r-1]=-(yij[s].G*bus[NewNumber[i]-1].NodeE+yij[s].B*bus[NewNumber[i]-1].NodeF);

P[i][2*r]=yij[s].B*bus[NewNumber[i]-1].NodeE-yij[s].G*bus[NewNumber[i]-1].NodeF;

Q[i][2*r-1]=P[i][2*r]; Q[i][2*r]=-P[i][2*r-1]; } }

P[i][2*AllNodeNumber+1]=bus[NewNumber[i]-1].NodeP-bus[NewNumber[i]-1].NodeE*a[i]-bus[NewNumber[i]-1].NodeF*b[i];

Q[i][2*AllNodeNumber+1]=bus[NewNumber[i]-1].NodeQ-bus[NewNumber[i]-1].NodeF*a[i]+bus[NewNumber[i]-1].NodeE*b[i]; }

else//PV节点 {

P[i][2*i-1]=-a[i]-(yii[i].G*bus[NewNumber[i]-1].NodeE+yii[i].B*bus[NewNumber[i]-1].NodeF);

P[i][2*i]=-b[i]+(yii[i].B*bus[NewNumber[i]-1].NodeE-yii[i].G*bus[NewNumber[i]-1].NodeF);

Q[i][2*i-1]=-2*bus[NewNumber[i]-1].NodeE; Q[i][2*i]=-2*bus[NewNumber[i]-1].NodeF; if(i!=AllNodeNumber) {

for(int m=seq[i];m

if(seq[i]>BranchNumber)break;

P[i][2*yij[m].j-1]=-(yij[m].G*bus[NewNumber[i]-1].NodeE+yij[m].B*bus[NewNumber[i]-1].NodeF);

P[i][2*yij[m].j]=(yij[m].B*bus[NewNumber[i]-1].NodeE-yij[m].G*bus[NewNumber[i]-1].NodeF);

} }

for(int s=seq[1];s

15

南通大学

int r;

if(yij[s].j==i) {

for(int l=1;l

if(s>=seq[l]&&s

P[i][2*r-1]=-(yij[s].G*bus[NewNumber[i]-1].NodeE+yij[s].B*bus[NewNumber[i]-1].NodeF);

P[i][2*r]=yij[s].B*bus[NewNumber[i]-1].NodeE-yij[s].G*bus[NewNumber[i]-1].NodeF;

} }

P[i][2*AllNodeNumber+1]=bus[NewNumber[i]-1].NodeP-bus[NewNumber[i]-1].NodeE*a[i]-bus[NewNumber[i]-1].NodeF*b[i];

Q[i][2*AllNodeNumber+1]=bus[NewNumber[i]-1].VoltageVal*bus[NewNumber[i]-1].VoltageVal-bus[NewNumber[i]-1].NodeE*bus[NewNumber[i]-1].NodeE-bus[NewNumber[i]-1].NodeF*bus[NewNumber[i]-1].NodeF; }

for(int iii=(bal*2-1);iii<(bal*2+1);iii++) {

P[i][iii]=0; Q[i][iii]=0; }

if(fabs(maxerror)

if(fabs(maxerror)

double ss=Q[1][1];

for(int z=1;z<(2*AllNodeNumber+2);z++) {

Q[1][z]=Q[1][z]/ss;

P[1][z]=P[1][z]-Q[1][z]*ss; }

double s=P[1][2];

for(int y=1;y<(2*AllNodeNumber+2);y++) {

P[1][y]=P[1][y]/s; } }

for(int m=1;m

16

南通大学

if(m==balance)continue; double zy4=Q[i][2*m-1]; double zy5=P[i][2*m-1];

for(int z=(2*m-1);z<(2*AllNodeNumber+2);z++) {

Q[i][z]=Q[i][z]-Q[m][z]*zy4; P[i][z]=P[i][z]-Q[m][z]*zy5; }

double zy2=Q[i][2*m]; double zy3=P[i][2*m];

for(z=2*m;z<(2*AllNodeNumber+2);z++) {

Q[i][z]=Q[i][z]-P[m][z]*zy2; P[i][z]=P[i][z]-P[m][z]*zy3; } }

double s=Q[i][2*i-1];

for(int y=(2*i-1);y<(2*AllNodeNumber+2);y++) {

Q[i][y]=Q[i][y]/s; }

double zy6=P[i][2*i-1];

for(int z=2*i-1;z<(2*AllNodeNumber+2);z++) {

P[i][z]=P[i][z]-Q[i][z]*zy6; }

double s1=P[i][2*i];

for(y=2*i;y<(2*AllNodeNumber+2);y++) {

P[i][y]=P[i][y]/s1; } }

double *xx=new double[2*AllNodeNumber+1];//回代求解电压修正量 for(int h=AllNodeNumber;h>0;h--) {

double zy=0;

for(int g=2*AllNodeNumber;g>2*h;g--) zy+=xx[g]*P[h][g];

xx[2*h]=(P[h][2*AllNodeNumber+1]-zy); double zy1=0;

for(int f=2*AllNodeNumber;f>(2*h-1);f--) {

zy1+=xx[f]*Q[h][f]; }

17

南通大学

xx[2*h-1]=(Q[h][2*AllNodeNumber+1]-zy1); }

for(int n=0;n

bus[NewNumber[n+1]-1].NodeE=bus[NewNumber[n+1]-1].NodeE-xx[2*n+1]; bus[NewNumber[n+1]-1].NodeF=bus[NewNumber[n+1]-1].NodeF-xx[2*n+2]; }

count++;

output<

delete[2*AllNodeNumber+2] P[i]; delete[2*AllNodeNumber+2] Q[i]; } }

void POWERFLOW::branchpower()//支路功率计算 {

I=new CURRENT[BranchNumber]; power=new POWER[BranchNumber];

groundpower=new double[GroundNumber]; for(int i=0;i

double zz=branch[i].R*branch[i].R+branch[i].X*branch[i].X; if(branch[i].NodeI>0)//输电线路 {

double ee=bus[branch[i].NodeI-1].NodeE-bus[branch[i].NodeJ-1].NodeE; double ff=bus[branch[i].NodeI-1].NodeF-bus[branch[i].NodeJ-1].NodeF; double

vi2=bus[branch[i].NodeI-1].NodeE*bus[branch[i].NodeI-1].NodeE+bus[branch[i].NodeI-1].NodeF*bus[branch[i].NodeI-1].NodeF; double

vj2=bus[branch[i].NodeJ-1].NodeE*bus[branch[i].NodeJ-1].NodeE+bus[branch[i].NodeJ-1].NodeF*bus[branch[i].NodeJ-1].NodeF;

I[i].E=(ee*branch[i].R+ff*branch[i].X)/zz; I[i].F=(ff*branch[i].R-ee*branch[i].X)/zz;

power[i].P1=bus[branch[i].NodeI-1].NodeE*I[i].E+bus[branch[i].NodeI-1].NodeF*I[i].F;

power[i].Q1=bus[branch[i].NodeI-1].NodeF*I[i].E-bus[branch[i].NodeI-1].NodeE*I[i].F;

power[i].Q1=power[i].Q1-branch[i].Y*vi2/2;

power[i].P2=-bus[branch[i].NodeJ-1].NodeE*I[i].E-bus[branch[i].NodeJ-1].NodeF*I[i].F;

18


电力系统潮流计算课程设计(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2018届广东省百校联盟高三第二次联考数学(文)试题(解析版)

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: