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

2018-12-19 22:21

南通大学

ConnectNum[NodeConnect[NewNumber[z]][i]]++; ConnectNum[NodeConnect[NewNumber[z]][k]]++;

NodeConnect[NodeConnect[NewNumber[z]][i]][ConnectNum[NodeConnect[NewNumber[z]][i]]]=NodeConnect[NewNumber[z]][k];

NodeConnect[NodeConnect[NewNumber[z]][k]][ConnectNum[NodeConnect[NewNumber[z]][k]]]=NodeConnect[NewNumber[z]][i]; } } } }

ConnectNum[NewNumber[z]]=AllNodeNumber; }

for(i=1;i<(AllNodeNumber+1);i++)//新号数组中对应的老号 cout<

OldNewNumber=new int[AllNodeNumber+1]; for(i=1;i<(AllNodeNumber+1);i++) {

for(int j=1;j<(AllNodeNumber+1);j++) {

if(NewNumber[j]==i) OldNewNumber[i]=j; } }

for(i=1;i<(AllNodeNumber+1);i++)//老号数组中对应的新号 cout<

delete[] ConnectNum;

for (i = 0; i <(AllNodeNumber+1); i++) delete[15] NodeConnect[i]; }

void POWERFLOW::FormY()//形成导纳矩阵 {

int z=1;

yii =new Yii[AllNodeNumber+1]; yij =new Yij[BranchNumber+1]; seq =new int[AllNodeNumber+1]; sum =new int[AllNodeNumber]; for(int f=0;f

seq[f]=0; sum[f]=0;

9

南通大学

}

seq[AllNodeNumber]=0;

for(int i=1;i

for(int j=0;j

if((NewNumber[i]==abs(branch[j].NodeI))||(NewNumber[i]==abs(branch[j].NodeJ)))

{

if(OldNewNumber[abs(branch[j].NodeI)]

continue;

double Z=branch[j].R*branch[j].R+branch[j].X*branch[j].X; if(branch[j].NodeI<0) {

if(branch[j].Circuit==1) {

double

Z1=branch[j+1].R*branch[j+1].R+branch[j+1].X*branch[j+1].X;

yij[z].G=-branch[j].R/(Z*branch[j].Y)-branch[j+1].R/(Z1*branch[j+1].Y);

yij[z].B=branch[j].X/(Z*branch[j].Y)+branch[j+1].X/(Z1*branch[j+1].Y);

yii[OldNewNumber[abs(branch[j].NodeI)]].G+=-((1-branch[j].Y)*(-branch[j].R/(Z*branch[j].Y))/branch[j].Y+(1-branch[j+1].Y)*(-branch[j+1].R/(Z1*branch[j+1].Y))/branch[j+1].Y);

yii[OldNewNumber[abs(branch[j].NodeI)]].B+=-((1-branch[j].Y)*(branch[j].X/(Z*branch[j].Y))/branch[j].Y+(1-branch[j+1].Y)*(branch[j+1].X/(Z1*branch[j+1].Y))/branch[j+1].Y);

yii[OldNewNumber[abs(branch[j].NodeJ)]].G+=(1-branch[j].Y)*(-branch[j].R/(Z*branch[j].Y))+(1-branch[j+1].Y)*(-branch[j+1].R/(Z1*branch[j+1].Y));

yii[OldNewNumber[abs(branch[j].NodeJ)]].B+=(1-branch[j].Y)*(branch[j].X/(Z*branch[j].Y))+(1-branch[j+1].Y)*(branch[j+1].X/(Z1*branch[j+1].Y)); j++; } else {

yij[z].G=-branch[j].R/(Z*branch[j].Y);

10

南通大学

yij[z].B=branch[j].X/(Z*branch[j].Y);

yii[OldNewNumber[abs(branch[j].NodeI)]].G+=-(1-branch[j].Y)*yij[z].G/branch[j].Y;

yii[OldNewNumber[abs(branch[j].NodeI)]].B+=-(1-branch[j].Y)*yij[z].B/branch[j].Y;

yii[OldNewNumber[abs(branch[j].NodeJ)]].G+=(1-branch[j].Y)*yij[z].G;

yii[OldNewNumber[abs(branch[j].NodeJ)]].B+=(1-branch[j].Y)*yij[z].B; }

if(NewNumber[i]==abs(branch[j].NodeI))

yij[z].j=OldNewNumber[abs(branch[j].NodeJ)]; else

yij[z].j=OldNewNumber[abs(branch[j].NodeI)]; z++; } else {

if(branch[j].Circuit==1) {

yij[z].G=-branch[j].R/Z-branch[j+1].R/(branch[j+1].R*branch[j+1].R+branch[j+1].X*branch[j+1].X);

yij[z].B=branch[j].X/Z+branch[j+1].X/(branch[j+1].R*branch[j+1].R+branch[j+1].X*branch[j+1].X);

yii[OldNewNumber[abs(branch[j].NodeI)]].B+=branch[j].Y/2+branch[j+1].Y/2;

yii[OldNewNumber[abs(branch[j].NodeJ)]].B+=branch[j].Y/2+branch[j+1].Y/2; j++; } else {

yij[z].G=-branch[j].R/Z; yij[z].B=branch[j].X/Z;

yii[OldNewNumber[abs(branch[j].NodeI)]].B+=branch[j].Y/2;

yii[OldNewNumber[abs(branch[j].NodeJ)]].B+=branch[j].Y/2; }

if(NewNumber[i]==abs(branch[j].NodeI))

11

南通大学

yij[z].j=OldNewNumber[abs(branch[j].NodeJ)]; else

yij[z].j=OldNewNumber[abs(branch[j].NodeI)]; z++; }

sum[i]++; } }

if(i==1)

seq[i]=1; else

seq[i]=sum[i-1]+seq[i-1];

for(int y=seq[i];y<(seq[i]+sum[i]);y++) {

yii[i].G-=yij[y].G; yii[i].B-=yij[y].B; } }

seq[AllNodeNumber]=seq[AllNodeNumber-1]+sum[AllNodeNumber-1]; for(i=0;i<(AllNodeNumber+1);i++) {

for(int j=1;j

yii[i].G-=yij[j].G; yii[i].B-=yij[j].B; } }

for(i=0;i

yii[OldNewNumber[ground[i].Node]].B+=ground[i].B; } }

void POWERFLOW::FormJ()//形成雅克比矩阵(边形成边消去) {

a=new double[AllNodeNumber+1]; b=new double[AllNodeNumber+1];

for(int i=1;i<=AllNodeNumber;i++)//对角部分 {

a[i]=yii[i].G*bus[NewNumber[i]-1].NodeE-yii[i].B*bus[NewNumber[i]-1].NodeF;

b[i]=yii[i].G*bus[NewNumber[i]-1].NodeF+yii[i].B*bus[NewNumber[i]-1].NodeE; }

12

南通大学

for(int d=1;d

if(seq[d]>BranchNumber)break; for(int j=seq[d];j

a[d]+=yij[j].G*bus[NewNumber[yij[j].j]-1].NodeE-yij[j].B*bus[NewNumber[yij[j].j]-1].NodeF;

b[d]+=yij[j].G*bus[NewNumber[yij[j].j]-1].NodeF+yij[j].B*bus[NewNumber[yij[j].j]-1].NodeE; } }

for(int f=2;f<=AllNodeNumber;f++)//下三角部分 {

for(int s=seq[1];s

int r;

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

for(int l=1;l

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

a[f]+=yij[s].G*bus[NewNumber[r]-1].NodeE-yij[s].B*bus[NewNumber[r]-1].NodeF;

b[f]+=yij[s].G*bus[NewNumber[r]-1].NodeF+yij[s].B*bus[NewNumber[r]-1].NodeE; } } }

double**P=new double*[AllNodeNumber+1]; double**Q=new double*[AllNodeNumber+1]; for(int x=1;x<(AllNodeNumber+1);x++) {

P[x]=new double[2*AllNodeNumber+2]; Q[x]=new double[2*AllNodeNumber+2]; }

for(int p=1;p<=AllNodeNumber;p++) {

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

P[p][y]=0; Q[p][y]=0;

13


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

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

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

马上注册会员

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