电力系统稳潮流上机完整可运行程序.docx
- 文档编号:20215480
- 上传时间:2023-04-25
- 格式:DOCX
- 页数:17
- 大小:18.29KB
电力系统稳潮流上机完整可运行程序.docx
《电力系统稳潮流上机完整可运行程序.docx》由会员分享,可在线阅读,更多相关《电力系统稳潮流上机完整可运行程序.docx(17页珍藏版)》请在冰豆网上搜索。
电力系统稳潮流上机完整可运行程序
//flow.cpp:
Definestheentrypointfortheconsoleapplication.
//
#include"stdafx.h"
#include
#include
#include"NEquation.h"
#include"math.h"
#include"config.h"
voidtest()
{
NEquationob1;
ob1.SetSize
(2);
ob1.Data(0,0)=1;
ob1.Data(0,1)=2;
ob1.Data(1,0)=2;
ob1.Data(1,1)=1;
ob1.Value(0)=5;
ob1.Value
(1)=4;
ob1.Run();
printf("x1=%f\n",ob1.Value(0));
printf("x2=%f\n",ob1.Value
(1));
}
voidGetData(int&nBus,int&nBranch)//Readthedata
{
FILE*fp;
inti;
if((fp=fopen("data\\data5.txt","r"))==NULL)
{
printf("Cannotopenthefilenamed'data.txt'\n");
return;
}
fscanf(fp,"%d,%d",&nBus,&nBranch);
for(i=0;i { fscanf(fp,"%d,%f,%f,%f,%f,%f,%f,%d",&gBus[i].No,&gBus[i].Voltage,&gBus[i].Phase, &gBus[i].GenP,&gBus[i].GenQ,&gBus[i].LoadP,&gBus[i].LoadQ,&gBus[i].Type); } for(i=0;i { fscanf(fp,"%d,%d,%d,%f,%f,%f,%f",&gBranch[i].No,&gBranch[i].No_I,&gBranch[i].No_J, &gBranch[i].R,&gBranch[i].X,&gBranch[i].B,&gBranch[i].k); }/*半容纳*/ fclose(fp); } voidGetYMatrix(int&nBus,int&nBranch) { inti,j,bus1,bus2; floatr,x,d,g,b; FILE*fp; for(i=0;i { for(j=0;j { gY_G[i][j]=0; gY_B[i][j]=0; } } for(i=0;i { if(gBranch[i].k==0) { bus1=gBranch[i].No_I-1; bus2=gBranch[i].No_J-1; r=gBranch[i].R; x=gBranch[i].X; d=r*r+x*x; g=r/d; b=-x/d; if(bus1! =bus2) { gY_G[bus1][bus1]=gY_G[bus1][bus1]+g; gY_G[bus2][bus2]=gY_G[bus2][bus2]+g; gY_G[bus1][bus2]=gY_G[bus1][bus2]-g; gY_G[bus2][bus1]=gY_G[bus2][bus1]-g; gY_B[bus1][bus1]=gY_B[bus1][bus1]+b+gBranch[i].B;/*hengzong*/ gY_B[bus2][bus2]=gY_B[bus2][bus2]+b+gBranch[i].B; gY_B[bus1][bus2]=gY_B[bus1][bus2]-b; gY_B[bus2][bus1]=gY_B[bus2][bus1]-b; } else { gY_B[bus1][bus1]=gY_B[bus1][bus1]+b; //addyourcodes } } else {bus1=gBranch[i].No_I-1; bus2=gBranch[i].No_J-1; r=gBranch[i].R; x=gBranch[i].X; d=r*r+x*x; g=r/d; b=-x/d; gY_G[bus1][bus1]=gY_G[bus1][bus1]+gBranch[i].k*gBranch[i].k*g; gY_G[bus2][bus2]=gY_G[bus2][bus2]+g; gY_G[bus1][bus2]=gY_G[bus1][bus2]-g*gBranch[i].k; gY_G[bus2][bus1]=gY_G[bus2][bus1]-g*gBranch[i].k; gY_B[bus1][bus1]=gY_B[bus1][bus1]+gBranch[i].k*gBranch[i].k*b; gY_B[bus2][bus2]=gY_B[bus2][bus2]+b; gY_B[bus1][bus2]=gY_B[bus1][bus2]-b*gBranch[i].k; gY_B[bus2][bus1]=gY_B[bus2][bus1]-b*gBranch[i].k; //addyourcodes } } //outputtheYmatrixmk if((fp=fopen("data\\ymatrix1.txt","w"))==NULL) { printf("Cannotopenthefilenamed'ymatrix.txt'\n"); return; } fprintf(fp,"---YMatrix---\n"); for(i=0;i { for(j=0;j { fprintf(fp,"Y(%d,%d)=(%10.6f,%10.6f)\n",i+1,j+1,gY_G[i][j],gY_B[i][j]); } } fclose(fp); } voidSetInitial(int&nBus) { inti; for(i=0;i { if(gBus[i].Type==2) { gf[i]=gBus[i].Voltage*sin(gBus[i].Phase); ge[i]=gBus[i].Voltage*cos(gBus[i].Phase); } else { gf[i]=0; ge[i]=1; } } } voidGetUnbalance(int&nBus) { inti; intj; for(i=0;i if(gBus[i].Type! =2) { gDelta_P[i]=0; for(j=0;j {gDelta_P[i]=gDelta_P[i]+ge[i]*(gY_G[i][j]*ge[j]-gY_B[i][j]*gf[j])+gf[i]*(gY_G[i][j]*gf[j]+gY_B[i][j]*ge[j]); } gDelta_P[i]=gBus[i].GenP-gBus[i].LoadP-gDelta_P[i]; } for(i=0;i { if(gBus[i].Type==0) {gDelta_Q[i]=0; for(j=0;j {gDelta_Q[i]=gDelta_Q[i]+gf[i]*(gY_G[i][j]*ge[j]-gY_B[i][j]*gf[j])-ge[i]*(gY_G[i][j]*gf[j]+gY_B[i][j]*ge[j]); } gDelta_Q[i]=gBus[i].GenQ-gBus[i].LoadQ-gDelta_Q[i]; } elseif(gBus[i].Type==1) gDelta_Q[i]=gBus[i].Voltage*gBus[i].Voltage-(ge[i]*ge[i]+gf[i]*gf[i]); } for(i=0;i if(gBus[i].Type==2) { gDelta_Q[i]=0;gDelta_P[i]=0; } //addyourcodesgDelta_Q[i] } voidGetJaccobi(int&nBus) {inti,j,a,b; floatc=0,d=0; for(i=0;i for(j=0;j {if((i! =j)&&(gBus[i].Type! =1)) {a=i*2;b=j*2;gJaccobi[a][b]=gY_G[i][j]*gf[i]-gY_B[i][j]*ge[i];b=b+1; gJaccobi[a][b]=gY_G[i][j]*ge[i]+gY_B[i][j]*gf[i];a=a+1;gJaccobi[a][b]=gY_G[i][j]*gf[i]-gY_B[i][j]*ge[i];b=b-1; gJaccobi[a][b]=0-gY_G[i][j]*ge[i]-gY_B[i][j]*gf[i]; } elseif((i! =j)&&(gBus[i].Type==1)) {a=i*2;b=j*2;gJaccobi[a][b]=gY_G[i][j]*gf[i]-gY_B[i][j]*ge[i];b=b+1; gJaccobi[a][b]=gY_G[i][j]*ge[i]+gY_B[i][j]*gf[i];a=a+1;gJaccobi[a][b]=0;b=b-1;gJaccobi[a][b]=0; } } for(i=0;i {c=0,d=0;for(j=0;j if(i! =j) {c=c+gY_G[i][j]*ge[j]-gY_B[i][j]*gf[j];d=d+gY_G[i][j]*gf[j]+gY_B[i][j]*ge[j]; } c=c+gY_G[i][i]*ge[i]-gY_B[i][i]*gf[i];d=d+gY_G[i][i]*gf[i]+gY_B[i][i]*ge[i]; if(gBus[i].Type! =1) {a=i*2;b=i*2;gJaccobi[a][b]=gY_G[i][i]*gf[i]-gY_B[i][i]*ge[i]+d;b=b+1;gJaccobi[a][b]=gY_G[i][i]*ge[i]+gY_B[i][i]*gf[i]+c; a=a+1;gJaccobi[a][b]=gY_G[i][i]*gf[i]-gY_B[i][i]*ge[i]-d;b=b-1;gJaccobi[a][b]=c-gY_G[i][i]*ge[i]-gY_B[i][i]*gf[i]; } elseif(gBus[i].Type==1) {a=i*2;b=i*2;gJaccobi[a][b]=gY_G[i][i]*gf[i]-gY_B[i][i]*ge[i]+d;b=b+1;gJaccobi[a][b]=gY_G[i][i]*ge[i]+gY_B[i][i]*gf[i]+c; a=a+1;gJaccobi[a][b]=2*ge[i];b=b-1;gJaccobi[a][b]=2*gf[i]; } } for(i=0;i for(j=0;j {a=2*i;b=2*j; if(gBus[i].Type==2) {gJaccobi[a][b]=0;gJaccobi[a][b+1]=0;gJaccobi[a+1][b]=0;gJaccobi[a+1][b+1]=0; gJaccobi[b][a]=0;gJaccobi[b+1][a]=0;gJaccobi[b][a+1]=0;gJaccobi[b+1][a+1]=0; } } //addyourcodes } voidGetRevised(int&nBus) {inti,j,a,b,c; NEquationob1; a=2*nBus-2; ob1.SetSize(a); for(i=0;i if(gBus[i/2].Type==2) {c=i;break;} for(i=0;i
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 电力系统 潮流 上机 完整 运行 程序