电力系统稳态潮流上机完整可运行程序.docx
《电力系统稳态潮流上机完整可运行程序.docx》由会员分享,可在线阅读,更多相关《电力系统稳态潮流上机完整可运行程序.docx(14页珍藏版)》请在冰豆网上搜索。
电力系统稳态潮流上机完整可运行程序
//flow.cpp:
Definestheentrypointfortheconsoleapplication.
//
#include"stdafx.h"
#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}}//outputtheYmatrixmkif((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;iif(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;iif(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;ifor(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;jif(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;ifor(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;iif(gBus[i/2].Type==2){c=i;break;}for(i=0;ifor(j=0;j{if(j>=c&&i>=c)ob1.Data(i,j)=gJaccobi[i+2][j+2];if(j>=c&&iob1.Data(i,j)=gJaccobi[i][j+2];if(j=c)ob1.Data(i,j)=gJaccobi[i+2][j];if(job1.Data(i,j)=gJaccobi[i][j];}b=c/2;for(i=0;i{if(i{ob1.Value(i*2)=gDelta_P[i];ob1.Value(i*2+1)=gDelta_Q[i];}if(i>=b){ob1.Value(i*2)=gDelta_P[i+1];ob1.Value(i*2+1)=gDelta_Q[i+1];}}ob1.Run();for(i=0;i{if(igDelta_fe[i]=ob1.Value(i);if(i>(c+1)){gDelta_fe[i]=ob1.Value(i-2);}gDelta_fe[c]=0;gDelta_fe[c+1]=0;} //addyourcodesgetit}voidGetNewValue(int&nBus){inti,a;for(i=0;i{a=2*i;gf[i]+=gDelta_fe[a];a+=1;ge[i]+=gDelta_fe[a];}//addyourcodes}intmain(intargc,char*argv[]){inti,Count_Num;floatmaxValue;intnBus,nBranch;intj,a;floatGss=0,Bss=0,z,c,d,x=0,y=0;floatdels[Bus_Num][Bus_Num],p[Bus_Num][Bus_Num],q[Bus_Num][Bus_Num],delp[Bus_Num][Bus_Num],delq[Bus_Num][Bus_Num];//test();GetData(nBus,nBranch);GetYMatrix(nBus,nBranch);SetInitial(nBus);for(Count_Num=0;Count_Num<=20;Count_Num++){GetUnbalance(nBus);GetJaccobi(nBus);GetRevised(nBus);GetNewValue(nBus);maxValue=fabs(gDelta_fe[0]);for(i=1;i<=2*(nBus-1)-1;i++){if(maxValue{maxValue=fabs(gDelta_fe[i]);}}if(maxValue{break;}}printf("叠代次数:%d\n",Count_Num);for(i=0;i{printf("节点%d电压为:%10.5f∠%f\n",i+1,sqrt(ge[i]*ge[i]+gf[i]*gf[i]),atan(gf[i]/ge[i])/3.14159*180);}//添加for(i=0;ifor(j=0;j{if(gY_B[i][j]<0)printf("Y(%d,%d)=%f%fj\n",i,j,gY_G[i][j],gY_B[i][j]);elseprintf("Y(%d,%d)=%f+%fj\n",i,j,gY_G[i][j],gY_B[i][j]);}for(i=0;iif(gBus[i].Type==2){a=i;break;}//qiubus2for(i=0;i{Gss+=ge[i]*gY_G[a][i]-gf[i]*gY_B[a][i];Bss+=0-gf[i]*gY_G[a][i]-ge[i]*gY_B[a][i];}z=Gss;Gss=Gss*ge[a]-Bss*gf[a];Bss=gf[a]*z+ge[a]*Bss;printf("平衡节点功率:%f+j%f\n",Gss,Bss);//xiaqiuxianlugonglvfor(i=0;ifor(j=0;j{p[i][j]=0;q[i][j]=0;} for(i=0;ifor(j=0;j{x=0;if(i!=j){for(a=0;a{if(gBranch[a].No_I-1==i&&gBranch[a].No_J-1==j){if(gBranch[a].k==0){y=0;x=gBranch[a].B;}else{y=(1-gBranch[a].k)*gY_G[i][j];x=(1-gBranch[a].k)*gY_B[i][j];}break;}if(gBranch[a].No_I-1==j&&gBranch[a].No_J-1==i){if(gBranch[a].k==0){y=0;x=gBranch[a].B;}else{y=(1-1/gBranch[a].k)*gY_G[i][j];x=(1-1/gBranch[a].k)*gBranch[a].B;}break;}}c=y*ge[i]-ge[i]*gY_G[i][j]-x*gf[i]+gf[i]*gY_B[i][j]+ge[j]*gY_G[i][j]-gf[j]*gY_B[i][j];d=0-y*gf[i]-x*ge[i]+gY_B[i][j]*ge[i]+gf[i]*gY_G[i][j]-ge[j]*gY_B[i][j]-gf[j]*gY_G[i][j];p[i][j]=ge[i]*c-gf[i]*d;q[i][j]=gf[i]*c+ge[i]*d;}if(i==j){for(a=0;a{if((gBranch[a].No_I-1==i)&&(gBranch[a].No_J-1==i)){x=(-1)/gBranch[a].X;break;}elsex=0;}p[i][j]=0;q[i][j]=(ge[i]*ge[i]+gf[i]*gf[i])*x*(-1);}}for(i=0;i{c=0;d=0;{for(j=0;j{c=c+p[i][j];d=d+q[i][j];}printf("校验:%f%f,%f%f\n",gBus[i].GenP-gBus[i].LoadP,c,gBus[i].GenQ-gBus[i].LoadQ,d);}}for(i=0;ifor(j=0;j{if(i!=j){delp[i][j]=p[i][j]+p[j][i];delq[i][j]=q[i][j]+q[j][i];}else{delp[i][i]=p[i][i];delq[i][i]=q[i][i];}}printf("潮流值\n");for(i=0;ifor(j=0;jprintf("线路潮流%d---%d%f+j%f\n",i+1,j+1,p[i][j],q[i][j]);for(i=0;ifor(j=0;jprintf("线路损耗%d--%d%f+j%f\n",i+1,j+1,delp[j][i],delq[j][i]);c=0;d=0;for(i=0;ifor(j=i;j{c+=2*delp[i][j];d+=2*delq[i][j];}printf("线路总损耗:%f+j%f\n",c,d);//addyourcodes//gBus[i].VoltagegY_G[bus1][bus1]gY_B[bus1][bus2]bus1=gBranch[i].No_I-1;bus2=gBranch[i].No_J-1;return0;}
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}}//outputtheYmatrixmkif((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;iif(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;iif(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;ifor(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;jif(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;ifor(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;iif(gBus[i/2].Type==2){c=i;break;}for(i=0;ifor(j=0;j{if(j>=c&&i>=c)ob1.Data(i,j)=gJaccobi[i+2][j+2];if(j>=c&&iob1.Data(i,j)=gJaccobi[i][j+2];if(j=c)ob1.Data(i,j)=gJaccobi[i+2][j];if(job1.Data(i,j)=gJaccobi[i][j];}b=c/2;for(i=0;i{if(i{ob1.Value(i*2)=gDelta_P[i];ob1.Value(i*2+1)=gDelta_Q[i];}if(i>=b){ob1.Value(i*2)=gDelta_P[i+1];ob1.Value(i*2+1)=gDelta_Q[i+1];}}ob1.Run();for(i=0;i{if(igDelta_fe[i]=ob1.Value(i);if(i>(c+1)){gDelta_fe[i]=ob1.Value(i-2);}gDelta_fe[c]=0;gDelta_fe[c+1]=0;} //addyourcodesgetit}voidGetNewValue(int&nBus){inti,a;for(i=0;i{a=2*i;gf[i]+=gDelta_fe[a];a+=1;ge[i]+=gDelta_fe[a];}//addyourcodes}intmain(intargc,char*argv[]){inti,Count_Num;floatmaxValue;intnBus,nBranch;intj,a;floatGss=0,Bss=0,z,c,d,x=0,y=0;floatdels[Bus_Num][Bus_Num],p[Bus_Num][Bus_Num],q[Bus_Num][Bus_Num],delp[Bus_Num][Bus_Num],delq[Bus_Num][Bus_Num];//test();GetData(nBus,nBranch);GetYMatrix(nBus,nBranch);SetInitial(nBus);for(Count_Num=0;Count_Num<=20;Count_Num++){GetUnbalance(nBus);GetJaccobi(nBus);GetRevised(nBus);GetNewValue(nBus);maxValue=fabs(gDelta_fe[0]);for(i=1;i<=2*(nBus-1)-1;i++){if(maxValue{maxValue=fabs(gDelta_fe[i]);}}if(maxValue{break;}}printf("叠代次数:%d\n",Count_Num);for(i=0;i{printf("节点%d电压为:%10.5f∠%f\n",i+1,sqrt(ge[i]*ge[i]+gf[i]*gf[i]),atan(gf[i]/ge[i])/3.14159*180);}//添加for(i=0;ifor(j=0;j{if(gY_B[i][j]<0)printf("Y(%d,%d)=%f%fj\n",i,j,gY_G[i][j],gY_B[i][j]);elseprintf("Y(%d,%d)=%f+%fj\n",i,j,gY_G[i][j],gY_B[i][j]);}for(i=0;iif(gBus[i].Type==2){a=i;break;}//qiubus2for(i=0;i{Gss+=ge[i]*gY_G[a][i]-gf[i]*gY_B[a][i];Bss+=0-gf[i]*gY_G[a][i]-ge[i]*gY_B[a][i];}z=Gss;Gss=Gss*ge[a]-Bss*gf[a];Bss=gf[a]*z+ge[a]*Bss;printf("平衡节点功率:%f+j%f\n",Gss,Bss);//xiaqiuxianlugonglvfor(i=0;ifor(j=0;j{p[i][j]=0;q[i][j]=0;} for(i=0;ifor(j=0;j{x=0;if(i!=j){for(a=0;a{if(gBranch[a].No_I-1==i&&gBranch[a].No_J-1==j){if(gBranch[a].k==0){y=0;x=gBranch[a].B;}else{y=(1-gBranch[a].k)*gY_G[i][j];x=(1-gBranch[a].k)*gY_B[i][j];}break;}if(gBranch[a].No_I-1==j&&gBranch[a].No_J-1==i){if(gBranch[a].k==0){y=0;x=gBranch[a].B;}else{y=(1-1/gBranch[a].k)*gY_G[i][j];x=(1-1/gBranch[a].k)*gBranch[a].B;}break;}}c=y*ge[i]-ge[i]*gY_G[i][j]-x*gf[i]+gf[i]*gY_B[i][j]+ge[j]*gY_G[i][j]-gf[j]*gY_B[i][j];d=0-y*gf[i]-x*ge[i]+gY_B[i][j]*ge[i]+gf[i]*gY_G[i][j]-ge[j]*gY_B[i][j]-gf[j]*gY_G[i][j];p[i][j]=ge[i]*c-gf[i]*d;q[i][j]=gf[i]*c+ge[i]*d;}if(i==j){for(a=0;a{if((gBranch[a].No_I-1==i)&&(gBranch[a].No_J-1==i)){x=(-1)/gBranch[a].X;break;}elsex=0;}p[i][j]=0;q[i][j]=(ge[i]*ge[i]+gf[i]*gf[i])*x*(-1);}}for(i=0;i{c=0;d=0;{for(j=0;j{c=c+p[i][j];d=d+q[i][j];}printf("校验:%f%f,%f%f\n",gBus[i].GenP-gBus[i].LoadP,c,gBus[i].GenQ-gBus[i].LoadQ,d);}}for(i=0;ifor(j=0;j{if(i!=j){delp[i][j]=p[i][j]+p[j][i];delq[i][j]=q[i][j]+q[j][i];}else{delp[i][i]=p[i][i];delq[i][i]=q[i][i];}}printf("潮流值\n");for(i=0;ifor(j=0;jprintf("线路潮流%d---%d%f+j%f\n",i+1,j+1,p[i][j],q[i][j]);for(i=0;ifor(j=0;jprintf("线路损耗%d--%d%f+j%f\n",i+1,j+1,delp[j][i],delq[j][i]);c=0;d=0;for(i=0;ifor(j=i;j{c+=2*delp[i][j];d+=2*delq[i][j];}printf("线路总损耗:%f+j%f\n",c,d);//addyourcodes//gBus[i].VoltagegY_G[bus1][bus1]gY_B[bus1][bus2]bus1=gBranch[i].No_I-1;bus2=gBranch[i].No_J-1;return0;}
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;
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}}//outputtheYmatrixmkif((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;iif(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;iif(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;ifor(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;jif(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;ifor(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;iif(gBus[i/2].Type==2){c=i;break;}for(i=0;ifor(j=0;j{if(j>=c&&i>=c)ob1.Data(i,j)=gJaccobi[i+2][j+2];if(j>=c&&iob1.Data(i,j)=gJaccobi[i][j+2];if(j=c)ob1.Data(i,j)=gJaccobi[i+2][j];if(job1.Data(i,j)=gJaccobi[i][j];}b=c/2;for(i=0;i{if(i{ob1.Value(i*2)=gDelta_P[i];ob1.Value(i*2+1)=gDelta_Q[i];}if(i>=b){ob1.Value(i*2)=gDelta_P[i+1];ob1.Value(i*2+1)=gDelta_Q[i+1];}}ob1.Run();for(i=0;i{if(igDelta_fe[i]=ob1.Value(i);if(i>(c+1)){gDelta_fe[i]=ob1.Value(i-2);}gDelta_fe[c]=0;gDelta_fe[c+1]=0;} //addyourcodesgetit}voidGetNewValue(int&nBus){inti,a;for(i=0;i{a=2*i;gf[i]+=gDelta_fe[a];a+=1;ge[i]+=gDelta_fe[a];}//addyourcodes}intmain(intargc,char*argv[]){inti,Count_Num;floatmaxValue;intnBus,nBranch;intj,a;floatGss=0,Bss=0,z,c,d,x=0,y=0;floatdels[Bus_Num][Bus_Num],p[Bus_Num][Bus_Num],q[Bus_Num][Bus_Num],delp[Bus_Num][Bus_Num],delq[Bus_Num][Bus_Num];//test();GetData(nBus,nBranch);GetYMatrix(nBus,nBranch);SetInitial(nBus);for(Count_Num=0;Count_Num<=20;Count_Num++){GetUnbalance(nBus);GetJaccobi(nBus);GetRevised(nBus);GetNewValue(nBus);maxValue=fabs(gDelta_fe[0]);for(i=1;i<=2*(nBus-1)-1;i++){if(maxValue{maxValue=fabs(gDelta_fe[i]);}}if(maxValue{break;}}printf("叠代次数:%d\n",Count_Num);for(i=0;i{printf("节点%d电压为:%10.5f∠%f\n",i+1,sqrt(ge[i]*ge[i]+gf[i]*gf[i]),atan(gf[i]/ge[i])/3.14159*180);}//添加for(i=0;ifor(j=0;j{if(gY_B[i][j]<0)printf("Y(%d,%d)=%f%fj\n",i,j,gY_G[i][j],gY_B[i][j]);elseprintf("Y(%d,%d)=%f+%fj\n",i,j,gY_G[i][j],gY_B[i][j]);}for(i=0;iif(gBus[i].Type==2){a=i;break;}//qiubus2for(i=0;i{Gss+=ge[i]*gY_G[a][i]-gf[i]*gY_B[a][i];Bss+=0-gf[i]*gY_G[a][i]-ge[i]*gY_B[a][i];}z=Gss;Gss=Gss*ge[a]-Bss*gf[a];Bss=gf[a]*z+ge[a]*Bss;printf("平衡节点功率:%f+j%f\n",Gss,Bss);//xiaqiuxianlugonglvfor(i=0;ifor(j=0;j{p[i][j]=0;q[i][j]=0;} for(i=0;ifor(j=0;j{x=0;if(i!=j){for(a=0;a{if(gBranch[a].No_I-1==i&&gBranch[a].No_J-1==j){if(gBranch[a].k==0){y=0;x=gBranch[a].B;}else{y=(1-gBranch[a].k)*gY_G[i][j];x=(1-gBranch[a].k)*gY_B[i][j];}break;}if(gBranch[a].No_I-1==j&&gBranch[a].No_J-1==i){if(gBranch[a].k==0){y=0;x=gBranch[a].B;}else{y=(1-1/gBranch[a].k)*gY_G[i][j];x=(1-1/gBranch[a].k)*gBranch[a].B;}break;}}c=y*ge[i]-ge[i]*gY_G[i][j]-x*gf[i]+gf[i]*gY_B[i][j]+ge[j]*gY_G[i][j]-gf[j]*gY_B[i][j];d=0-y*gf[i]-x*ge[i]+gY_B[i][j]*ge[i]+gf[i]*gY_G[i][j]-ge[j]*gY_B[i][j]-gf[j]*gY_G[i][j];p[i][j]=ge[i]*c-gf[i]*d;q[i][j]=gf[i]*c+ge[i]*d;}if(i==j){for(a=0;a{if((gBranch[a].No_I-1==i)&&(gBranch[a].No_J-1==i)){x=(-1)/gBranch[a].X;break;}elsex=0;}p[i][j]=0;q[i][j]=(ge[i]*ge[i]+gf[i]*gf[i])*x*(-1);}}for(i=0;i{c=0;d=0;{for(j=0;j{c=c+p[i][j];d=d+q[i][j];}printf("校验:%f%f,%f%f\n",gBus[i].GenP-gBus[i].LoadP,c,gBus[i].GenQ-gBus[i].LoadQ,d);}}for(i=0;ifor(j=0;j{if(i!=j){delp[i][j]=p[i][j]+p[j][i];delq[i][j]=q[i][j]+q[j][i];}else{delp[i][i]=p[i][i];delq[i][i]=q[i][i];}}printf("潮流值\n");for(i=0;ifor(j=0;jprintf("线路潮流%d---%d%f+j%f\n",i+1,j+1,p[i][j],q[i][j]);for(i=0;ifor(j=0;jprintf("线路损耗%d--%d%f+j%f\n",i+1,j+1,delp[j][i],delq[j][i]);c=0;d=0;for(i=0;ifor(j=i;j{c+=2*delp[i][j];d+=2*delq[i][j];}printf("线路总损耗:%f+j%f\n",c,d);//addyourcodes//gBus[i].VoltagegY_G[bus1][bus1]gY_B[bus1][bus2]bus1=gBranch[i].No_I-1;bus2=gBranch[i].No_J-1;return0;}
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}}//outputtheYmatrixmkif((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;iif(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;iif(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;ifor(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;jif(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;ifor(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;iif(gBus[i/2].Type==2){c=i;break;}for(i=0;ifor(j=0;j{if(j>=c&&i>=c)ob1.Data(i,j)=gJaccobi[i+2][j+2];if(j>=c&&iob1.Data(i,j)=gJaccobi[i][j+2];if(j=c)ob1.Data(i,j)=gJaccobi[i+2][j];if(job1.Data(i,j)=gJaccobi[i][j];}b=c/2;for(i=0;i{if(i{ob1.Value(i*2)=gDelta_P[i];ob1.Value(i*2+1)=gDelta_Q[i];}if(i>=b){ob1.Value(i*2)=gDelta_P[i+1];ob1.Value(i*2+1)=gDelta_Q[i+1];}}ob1.Run();for(i=0;i{if(igDelta_fe[i]=ob1.Value(i);if(i>(c+1)){gDelta_fe[i]=ob1.Value(i-2);}gDelta_fe[c]=0;gDelta_fe[c+1]=0;} //addyourcodesgetit}voidGetNewValue(int&nBus){inti,a;for(i=0;i{a=2*i;gf[i]+=gDelta_fe[a];a+=1;ge[i]+=gDelta_fe[a];}//addyourcodes}intmain(intargc,char*argv[]){inti,Count_Num;floatmaxValue;intnBus,nBranch;intj,a;floatGss=0,Bss=0,z,c,d,x=0,y=0;floatdels[Bus_Num][Bus_Num],p[Bus_Num][Bus_Num],q[Bus_Num][Bus_Num],delp[Bus_Num][Bus_Num],delq[Bus_Num][Bus_Num];//test();GetData(nBus,nBranch);GetYMatrix(nBus,nBranch);SetInitial(nBus);for(Count_Num=0;Count_Num<=20;Count_Num++){GetUnbalance(nBus);GetJaccobi(nBus);GetRevised(nBus);GetNewValue(nBus);maxValue=fabs(gDelta_fe[0]);for(i=1;i<=2*(nBus-1)-1;i++){if(maxValue{maxValue=fabs(gDelta_fe[i]);}}if(maxValue{break;}}printf("叠代次数:%d\n",Count_Num);for(i=0;i{printf("节点%d电压为:%10.5f∠%f\n",i+1,sqrt(ge[i]*ge[i]+gf[i]*gf[i]),atan(gf[i]/ge[i])/3.14159*180);}//添加for(i=0;ifor(j=0;j{if(gY_B[i][j]<0)printf("Y(%d,%d)=%f%fj\n",i,j,gY_G[i][j],gY_B[i][j]);elseprintf("Y(%d,%d)=%f+%fj\n",i,j,gY_G[i][j],gY_B[i][j]);}for(i=0;iif(gBus[i].Type==2){a=i;break;}//qiubus2for(i=0;i{Gss+=ge[i]*gY_G[a][i]-gf[i]*gY_B[a][i];Bss+=0-gf[i]*gY_G[a][i]-ge[i]*gY_B[a][i];}z=Gss;Gss=Gss*ge[a]-Bss*gf[a];Bss=gf[a]*z+ge[a]*Bss;printf("平衡节点功率:%f+j%f\n",Gss,Bss);//xiaqiuxianlugonglvfor(i=0;ifor(j=0;j{p[i][j]=0;q[i][j]=0;} for(i=0;ifor(j=0;j{x=0;if(i!=j){for(a=0;a{if(gBranch[a].No_I-1==i&&gBranch[a].No_J-1==j){if(gBranch[a].k==0){y=0;x=gBranch[a].B;}else{y=(1-gBranch[a].k)*gY_G[i][j];x=(1-gBranch[a].k)*gY_B[i][j];}break;}if(gBranch[a].No_I-1==j&&gBranch[a].No_J-1==i){if(gBranch[a].k==0){y=0;x=gBranch[a].B;}else{y=(1-1/gBranch[a].k)*gY_G[i][j];x=(1-1/gBranch[a].k)*gBranch[a].B;}break;}}c=y*ge[i]-ge[i]*gY_G[i][j]-x*gf[i]+gf[i]*gY_B[i][j]+ge[j]*gY_G[i][j]-gf[j]*gY_B[i][j];d=0-y*gf[i]-x*ge[i]+gY_B[i][j]*ge[i]+gf[i]*gY_G[i][j]-ge[j]*gY_B[i][j]-gf[j]*gY_G[i][j];p[i][j]=ge[i]*c-gf[i]*d;q[i][j]=gf[i]*c+ge[i]*d;}if(i==j){for(a=0;a{if((gBranch[a].No_I-1==i)&&(gBranch[a].No_J-1==i)){x=(-1)/gBranch[a].X;break;}elsex=0;}p[i][j]=0;q[i][j]=(ge[i]*ge[i]+gf[i]*gf[i])*x*(-1);}}for(i=0;i{c=0;d=0;{for(j=0;j{c=c+p[i][j];d=d+q[i][j];}printf("校验:%f%f,%f%f\n",gBus[i].GenP-gBus[i].LoadP,c,gBus[i].GenQ-gBus[i].LoadQ,d);}}for(i=0;ifor(j=0;j{if(i!=j){delp[i][j]=p[i][j]+p[j][i];delq[i][j]=q[i][j]+q[j][i];}else{delp[i][i]=p[i][i];delq[i][i]=q[i][i];}}printf("潮流值\n");for(i=0;ifor(j=0;jprintf("线路潮流%d---%d%f+j%f\n",i+1,j+1,p[i][j],q[i][j]);for(i=0;ifor(j=0;jprintf("线路损耗%d--%d%f+j%f\n",i+1,j+1,delp[j][i],delq[j][i]);c=0;d=0;for(i=0;ifor(j=i;j{c+=2*delp[i][j];d+=2*delq[i][j];}printf("线路总损耗:%f+j%f\n",c,d);//addyourcodes//gBus[i].VoltagegY_G[bus1][bus1]gY_B[bus1][bus2]bus1=gBranch[i].No_I-1;bus2=gBranch[i].No_J-1;return0;}
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}}//outputtheYmatrixmkif((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;iif(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;iif(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;ifor(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;jif(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;ifor(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;iif(gBus[i/2].Type==2){c=i;break;}for(i=0;ifor(j=0;j{if(j>=c&&i>=c)ob1.Data(i,j)=gJaccobi[i+2][j+2];if(j>=c&&iob1.Data(i,j)=gJaccobi[i][j+2];if(j=c)ob1.Data(i,j)=gJaccobi[i+2][j];if(job1.Data(i,j)=gJaccobi[i][j];}b=c/2;for(i=0;i{if(i{ob1.Value(i*2)=gDelta_P[i];ob1.Value(i*2+1)=gDelta_Q[i];}if(i>=b){ob1.Value(i*2)=gDelta_P[i+1];ob1.Value(i*2+1)=gDelta_Q[i+1];}}ob1.Run();for(i=0;i{if(igDelta_fe[i]=ob1.Value(i);if(i>(c+1)){gDelta_fe[i]=ob1.Value(i-2);}gDelta_fe[c]=0;gDelta_fe[c+1]=0;} //addyourcodesgetit}voidGetNewValue(int&nBus){inti,a;for(i=0;i{a=2*i;gf[i]+=gDelta_fe[a];a+=1;ge[i]+=gDelta_fe[a];}//addyourcodes}intmain(intargc,char*argv[]){inti,Count_Num;floatmaxValue;intnBus,nBranch;intj,a;floatGss=0,Bss=0,z,c,d,x=0,y=0;floatdels[Bus_Num][Bus_Num],p[Bus_Num][Bus_Num],q[Bus_Num][Bus_Num],delp[Bus_Num][Bus_Num],delq[Bus_Num][Bus_Num];//test();GetData(nBus,nBranch);GetYMatrix(nBus,nBranch);SetInitial(nBus);for(Count_Num=0;Count_Num<=20;Count_Num++){GetUnbalance(nBus);GetJaccobi(nBus);GetRevised(nBus);GetNewValue(nBus);maxValue=fabs(gDelta_fe[0]);for(i=1;i<=2*(nBus-1)-1;i++){if(maxValue{maxValue=fabs(gDelta_fe[i]);}}if(maxValue{break;}}printf("叠代次数:%d\n",Count_Num);for(i=0;i{printf("节点%d电压为:%10.5f∠%f\n",i+1,sqrt(ge[i]*ge[i]+gf[i]*gf[i]),atan(gf[i]/ge[i])/3.14159*180);}//添加for(i=0;ifor(j=0;j{if(gY_B[i][j]<0)printf("Y(%d,%d)=%f%fj\n",i,j,gY_G[i][j],gY_B[i][j]);elseprintf("Y(%d,%d)=%f+%fj\n",i,j,gY_G[i][j],gY_B[i][j]);}for(i=0;iif(gBus[i].Type==2){a=i;break;}//qiubus2for(i=0;i{Gss+=ge[i]*gY_G[a][i]-gf[i]*gY_B[a][i];Bss+=0-gf[i]*gY_G[a][i]-ge[i]*gY_B[a][i];}z=Gss;Gss=Gss*ge[a]-Bss*gf[a];Bss=gf[a]*z+ge[a]*Bss;printf("平衡节点功率:%f+j%f\n",Gss,Bss);//xiaqiuxianlugonglvfor(i=0;ifor(j=0;j{p[i][j]=0;q[i][j]=0;} for(i=0;ifor(j=0;j{x=0;if(i!=j){for(a=0;a{if(gBranch[a].No_I-1==i&&gBranch[a].No_J-1==j){if(gBranch[a].k==0){y=0;x=gBranch[a].B;}else{y=(1-gBranch[a].k)*gY_G[i][j];x=(1-gBranch[a].k)*gY_B[i][j];}break;}if(gBranch[a].No_I-1==j&&gBranch[a].No_J-1==i){if(gBranch[a].k==0){y=0;x=gBranch[a].B;}else{y=(1-1/gBranch[a].k)*gY_G[i][j];x=(1-1/gBranch[a].k)*gBranch[a].B;}break;}}c=y*ge[i]-ge[i]*gY_G[i][j]-x*gf[i]+gf[i]*gY_B[i][j]+ge[j]*gY_G[i][j]-gf[j]*gY_B[i][j];d=0-y*gf[i]-x*ge[i]+gY_B[i][j]*ge[i]+gf[i]*gY_G[i][j]-ge[j]*gY_B[i][j]-gf[j]*gY_G[i][j];p[i][j]=ge[i]*c-gf[i]*d;q[i][j]=gf[i]*c+ge[i]*d;}if(i==j){for(a=0;a{if((gBranch[a].No_I-1==i)&&(gBranch[a].No_J-1==i)){x=(-1)/gBranch[a].X;break;}elsex=0;}p[i][j]=0;q[i][j]=(ge[i]*ge[i]+gf[i]*gf[i])*x*(-1);}}for(i=0;i{c=0;d=0;{for(j=0;j{c=c+p[i][j];d=d+q[i][j];}printf("校验:%f%f,%f%f\n",gBus[i].GenP-gBus[i].LoadP,c,gBus[i].GenQ-gBus[i].LoadQ,d);}}for(i=0;ifor(j=0;j{if(i!=j){delp[i][j]=p[i][j]+p[j][i];delq[i][j]=q[i][j]+q[j][i];}else{delp[i][i]=p[i][i];delq[i][i]=q[i][i];}}printf("潮流值\n");for(i=0;ifor(j=0;jprintf("线路潮流%d---%d%f+j%f\n",i+1,j+1,p[i][j],q[i][j]);for(i=0;ifor(j=0;jprintf("线路损耗%d--%d%f+j%f\n",i+1,j+1,delp[j][i],delq[j][i]);c=0;d=0;for(i=0;ifor(j=i;j{c+=2*delp[i][j];d+=2*delq[i][j];}printf("线路总损耗:%f+j%f\n",c,d);//addyourcodes//gBus[i].VoltagegY_G[bus1][bus1]gY_B[bus1][bus2]bus1=gBranch[i].No_I-1;bus2=gBranch[i].No_J-1;return0;}
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
{bus1=gBranch[i].No_I-1;
gY_G[bus1][bus1]=gY_G[bus1][bus1]+gBranch[i].k*gBranch[i].k*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;
//outputtheYmatrixmk
if((fp=fopen("data\\ymatrix1.txt","w"))==NULL)
printf("Cannotopenthefilenamed'ymatrix.txt'\n");
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;iif(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;iif(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;ifor(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;jif(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;ifor(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;iif(gBus[i/2].Type==2){c=i;break;}for(i=0;ifor(j=0;j{if(j>=c&&i>=c)ob1.Data(i,j)=gJaccobi[i+2][j+2];if(j>=c&&iob1.Data(i,j)=gJaccobi[i][j+2];if(j=c)ob1.Data(i,j)=gJaccobi[i+2][j];if(job1.Data(i,j)=gJaccobi[i][j];}b=c/2;for(i=0;i{if(i{ob1.Value(i*2)=gDelta_P[i];ob1.Value(i*2+1)=gDelta_Q[i];}if(i>=b){ob1.Value(i*2)=gDelta_P[i+1];ob1.Value(i*2+1)=gDelta_Q[i+1];}}ob1.Run();for(i=0;i{if(igDelta_fe[i]=ob1.Value(i);if(i>(c+1)){gDelta_fe[i]=ob1.Value(i-2);}gDelta_fe[c]=0;gDelta_fe[c+1]=0;} //addyourcodesgetit}voidGetNewValue(int&nBus){inti,a;for(i=0;i{a=2*i;gf[i]+=gDelta_fe[a];a+=1;ge[i]+=gDelta_fe[a];}//addyourcodes}intmain(intargc,char*argv[]){inti,Count_Num;floatmaxValue;intnBus,nBranch;intj,a;floatGss=0,Bss=0,z,c,d,x=0,y=0;floatdels[Bus_Num][Bus_Num],p[Bus_Num][Bus_Num],q[Bus_Num][Bus_Num],delp[Bus_Num][Bus_Num],delq[Bus_Num][Bus_Num];//test();GetData(nBus,nBranch);GetYMatrix(nBus,nBranch);SetInitial(nBus);for(Count_Num=0;Count_Num<=20;Count_Num++){GetUnbalance(nBus);GetJaccobi(nBus);GetRevised(nBus);GetNewValue(nBus);maxValue=fabs(gDelta_fe[0]);for(i=1;i<=2*(nBus-1)-1;i++){if(maxValue{maxValue=fabs(gDelta_fe[i]);}}if(maxValue{break;}}printf("叠代次数:%d\n",Count_Num);for(i=0;i{printf("节点%d电压为:%10.5f∠%f\n",i+1,sqrt(ge[i]*ge[i]+gf[i]*gf[i]),atan(gf[i]/ge[i])/3.14159*180);}//添加for(i=0;ifor(j=0;j{if(gY_B[i][j]<0)printf("Y(%d,%d)=%f%fj\n",i,j,gY_G[i][j],gY_B[i][j]);elseprintf("Y(%d,%d)=%f+%fj\n",i,j,gY_G[i][j],gY_B[i][j]);}for(i=0;iif(gBus[i].Type==2){a=i;break;}//qiubus2for(i=0;i{Gss+=ge[i]*gY_G[a][i]-gf[i]*gY_B[a][i];Bss+=0-gf[i]*gY_G[a][i]-ge[i]*gY_B[a][i];}z=Gss;Gss=Gss*ge[a]-Bss*gf[a];Bss=gf[a]*z+ge[a]*Bss;printf("平衡节点功率:%f+j%f\n",Gss,Bss);//xiaqiuxianlugonglvfor(i=0;ifor(j=0;j{p[i][j]=0;q[i][j]=0;} for(i=0;ifor(j=0;j{x=0;if(i!=j){for(a=0;a{if(gBranch[a].No_I-1==i&&gBranch[a].No_J-1==j){if(gBranch[a].k==0){y=0;x=gBranch[a].B;}else{y=(1-gBranch[a].k)*gY_G[i][j];x=(1-gBranch[a].k)*gY_B[i][j];}break;}if(gBranch[a].No_I-1==j&&gBranch[a].No_J-1==i){if(gBranch[a].k==0){y=0;x=gBranch[a].B;}else{y=(1-1/gBranch[a].k)*gY_G[i][j];x=(1-1/gBranch[a].k)*gBranch[a].B;}break;}}c=y*ge[i]-ge[i]*gY_G[i][j]-x*gf[i]+gf[i]*gY_B[i][j]+ge[j]*gY_G[i][j]-gf[j]*gY_B[i][j];d=0-y*gf[i]-x*ge[i]+gY_B[i][j]*ge[i]+gf[i]*gY_G[i][j]-ge[j]*gY_B[i][j]-gf[j]*gY_G[i][j];p[i][j]=ge[i]*c-gf[i]*d;q[i][j]=gf[i]*c+ge[i]*d;}if(i==j){for(a=0;a{if((gBranch[a].No_I-1==i)&&(gBranch[a].No_J-1==i)){x=(-1)/gBranch[a].X;break;}elsex=0;}p[i][j]=0;q[i][j]=(ge[i]*ge[i]+gf[i]*gf[i])*x*(-1);}}for(i=0;i{c=0;d=0;{for(j=0;j{c=c+p[i][j];d=d+q[i][j];}printf("校验:%f%f,%f%f\n",gBus[i].GenP-gBus[i].LoadP,c,gBus[i].GenQ-gBus[i].LoadQ,d);}}for(i=0;ifor(j=0;j{if(i!=j){delp[i][j]=p[i][j]+p[j][i];delq[i][j]=q[i][j]+q[j][i];}else{delp[i][i]=p[i][i];delq[i][i]=q[i][i];}}printf("潮流值\n");for(i=0;ifor(j=0;jprintf("线路潮流%d---%d%f+j%f\n",i+1,j+1,p[i][j],q[i][j]);for(i=0;ifor(j=0;jprintf("线路损耗%d--%d%f+j%f\n",i+1,j+1,delp[j][i],delq[j][i]);c=0;d=0;for(i=0;ifor(j=i;j{c+=2*delp[i][j];d+=2*delq[i][j];}printf("线路总损耗:%f+j%f\n",c,d);//addyourcodes//gBus[i].VoltagegY_G[bus1][bus1]gY_B[bus1][bus2]bus1=gBranch[i].No_I-1;bus2=gBranch[i].No_J-1;return0;}
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;iif(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;iif(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;ifor(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;jif(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;ifor(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;iif(gBus[i/2].Type==2){c=i;break;}for(i=0;ifor(j=0;j{if(j>=c&&i>=c)ob1.Data(i,j)=gJaccobi[i+2][j+2];if(j>=c&&iob1.Data(i,j)=gJaccobi[i][j+2];if(j=c)ob1.Data(i,j)=gJaccobi[i+2][j];if(job1.Data(i,j)=gJaccobi[i][j];}b=c/2;for(i=0;i{if(i{ob1.Value(i*2)=gDelta_P[i];ob1.Value(i*2+1)=gDelta_Q[i];}if(i>=b){ob1.Value(i*2)=gDelta_P[i+1];ob1.Value(i*2+1)=gDelta_Q[i+1];}}ob1.Run();for(i=0;i{if(igDelta_fe[i]=ob1.Value(i);if(i>(c+1)){gDelta_fe[i]=ob1.Value(i-2);}gDelta_fe[c]=0;gDelta_fe[c+1]=0;} //addyourcodesgetit}voidGetNewValue(int&nBus){inti,a;for(i=0;i{a=2*i;gf[i]+=gDelta_fe[a];a+=1;ge[i]+=gDelta_fe[a];}//addyourcodes}intmain(intargc,char*argv[]){inti,Count_Num;floatmaxValue;intnBus,nBranch;intj,a;floatGss=0,Bss=0,z,c,d,x=0,y=0;floatdels[Bus_Num][Bus_Num],p[Bus_Num][Bus_Num],q[Bus_Num][Bus_Num],delp[Bus_Num][Bus_Num],delq[Bus_Num][Bus_Num];//test();GetData(nBus,nBranch);GetYMatrix(nBus,nBranch);SetInitial(nBus);for(Count_Num=0;Count_Num<=20;Count_Num++){GetUnbalance(nBus);GetJaccobi(nBus);GetRevised(nBus);GetNewValue(nBus);maxValue=fabs(gDelta_fe[0]);for(i=1;i<=2*(nBus-1)-1;i++){if(maxValue{maxValue=fabs(gDelta_fe[i]);}}if(maxValue{break;}}printf("叠代次数:%d\n",Count_Num);for(i=0;i{printf("节点%d电压为:%10.5f∠%f\n",i+1,sqrt(ge[i]*ge[i]+gf[i]*gf[i]),atan(gf[i]/ge[i])/3.14159*180);}//添加for(i=0;ifor(j=0;j{if(gY_B[i][j]<0)printf("Y(%d,%d)=%f%fj\n",i,j,gY_G[i][j],gY_B[i][j]);elseprintf("Y(%d,%d)=%f+%fj\n",i,j,gY_G[i][j],gY_B[i][j]);}for(i=0;iif(gBus[i].Type==2){a=i;break;}//qiubus2for(i=0;i{Gss+=ge[i]*gY_G[a][i]-gf[i]*gY_B[a][i];Bss+=0-gf[i]*gY_G[a][i]-ge[i]*gY_B[a][i];}z=Gss;Gss=Gss*ge[a]-Bss*gf[a];Bss=gf[a]*z+ge[a]*Bss;printf("平衡节点功率:%f+j%f\n",Gss,Bss);//xiaqiuxianlugonglvfor(i=0;ifor(j=0;j{p[i][j]=0;q[i][j]=0;} for(i=0;ifor(j=0;j{x=0;if(i!=j){for(a=0;a{if(gBranch[a].No_I-1==i&&gBranch[a].No_J-1==j){if(gBranch[a].k==0){y=0;x=gBranch[a].B;}else{y=(1-gBranch[a].k)*gY_G[i][j];x=(1-gBranch[a].k)*gY_B[i][j];}break;}if(gBranch[a].No_I-1==j&&gBranch[a].No_J-1==i){if(gBranch[a].k==0){y=0;x=gBranch[a].B;}else{y=(1-1/gBranch[a].k)*gY_G[i][j];x=(1-1/gBranch[a].k)*gBranch[a].B;}break;}}c=y*ge[i]-ge[i]*gY_G[i][j]-x*gf[i]+gf[i]*gY_B[i][j]+ge[j]*gY_G[i][j]-gf[j]*gY_B[i][j];d=0-y*gf[i]-x*ge[i]+gY_B[i][j]*ge[i]+gf[i]*gY_G[i][j]-ge[j]*gY_B[i][j]-gf[j]*gY_G[i][j];p[i][j]=ge[i]*c-gf[i]*d;q[i][j]=gf[i]*c+ge[i]*d;}if(i==j){for(a=0;a{if((gBranch[a].No_I-1==i)&&(gBranch[a].No_J-1==i)){x=(-1)/gBranch[a].X;break;}elsex=0;}p[i][j]=0;q[i][j]=(ge[i]*ge[i]+gf[i]*gf[i])*x*(-1);}}for(i=0;i{c=0;d=0;{for(j=0;j{c=c+p[i][j];d=d+q[i][j];}printf("校验:%f%f,%f%f\n",gBus[i].GenP-gBus[i].LoadP,c,gBus[i].GenQ-gBus[i].LoadQ,d);}}for(i=0;ifor(j=0;j{if(i!=j){delp[i][j]=p[i][j]+p[j][i];delq[i][j]=q[i][j]+q[j][i];}else{delp[i][i]=p[i][i];delq[i][i]=q[i][i];}}printf("潮流值\n");for(i=0;ifor(j=0;jprintf("线路潮流%d---%d%f+j%f\n",i+1,j+1,p[i][j],q[i][j]);for(i=0;ifor(j=0;jprintf("线路损耗%d--%d%f+j%f\n",i+1,j+1,delp[j][i],delq[j][i]);c=0;d=0;for(i=0;ifor(j=i;j{c+=2*delp[i][j];d+=2*delq[i][j];}printf("线路总损耗:%f+j%f\n",c,d);//addyourcodes//gBus[i].VoltagegY_G[bus1][bus1]gY_B[bus1][bus2]bus1=gBranch[i].No_I-1;bus2=gBranch[i].No_J-1;return0;}
fprintf(fp,"Y(%d,%d)=(%10.6f,%10.6f)\n",i+1,j+1,gY_G[i][j],gY_B[i][j]);
voidSetInitial(int&nBus)
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;iif(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;iif(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;ifor(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;jif(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;ifor(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;iif(gBus[i/2].Type==2){c=i;break;}for(i=0;ifor(j=0;j{if(j>=c&&i>=c)ob1.Data(i,j)=gJaccobi[i+2][j+2];if(j>=c&&iob1.Data(i,j)=gJaccobi[i][j+2];if(j=c)ob1.Data(i,j)=gJaccobi[i+2][j];if(job1.Data(i,j)=gJaccobi[i][j];}b=c/2;for(i=0;i{if(i{ob1.Value(i*2)=gDelta_P[i];ob1.Value(i*2+1)=gDelta_Q[i];}if(i>=b){ob1.Value(i*2)=gDelta_P[i+1];ob1.Value(i*2+1)=gDelta_Q[i+1];}}ob1.Run();for(i=0;i{if(igDelta_fe[i]=ob1.Value(i);if(i>(c+1)){gDelta_fe[i]=ob1.Value(i-2);}gDelta_fe[c]=0;gDelta_fe[c+1]=0;} //addyourcodesgetit}voidGetNewValue(int&nBus){inti,a;for(i=0;i{a=2*i;gf[i]+=gDelta_fe[a];a+=1;ge[i]+=gDelta_fe[a];}//addyourcodes}intmain(intargc,char*argv[]){inti,Count_Num;floatmaxValue;intnBus,nBranch;intj,a;floatGss=0,Bss=0,z,c,d,x=0,y=0;floatdels[Bus_Num][Bus_Num],p[Bus_Num][Bus_Num],q[Bus_Num][Bus_Num],delp[Bus_Num][Bus_Num],delq[Bus_Num][Bus_Num];//test();GetData(nBus,nBranch);GetYMatrix(nBus,nBranch);SetInitial(nBus);for(Count_Num=0;Count_Num<=20;Count_Num++){GetUnbalance(nBus);GetJaccobi(nBus);GetRevised(nBus);GetNewValue(nBus);maxValue=fabs(gDelta_fe[0]);for(i=1;i<=2*(nBus-1)-1;i++){if(maxValue{maxValue=fabs(gDelta_fe[i]);}}if(maxValue{break;}}printf("叠代次数:%d\n",Count_Num);for(i=0;i{printf("节点%d电压为:%10.5f∠%f\n",i+1,sqrt(ge[i]*ge[i]+gf[i]*gf[i]),atan(gf[i]/ge[i])/3.14159*180);}//添加for(i=0;ifor(j=0;j{if(gY_B[i][j]<0)printf("Y(%d,%d)=%f%fj\n",i,j,gY_G[i][j],gY_B[i][j]);elseprintf("Y(%d,%d)=%f+%fj\n",i,j,gY_G[i][j],gY_B[i][j]);}for(i=0;iif(gBus[i].Type==2){a=i;break;}//qiubus2for(i=0;i{Gss+=ge[i]*gY_G[a][i]-gf[i]*gY_B[a][i];Bss+=0-gf[i]*gY_G[a][i]-ge[i]*gY_B[a][i];}z=Gss;Gss=Gss*ge[a]-Bss*gf[a];Bss=gf[a]*z+ge[a]*Bss;printf("平衡节点功率:%f+j%f\n",Gss,Bss);//xiaqiuxianlugonglvfor(i=0;ifor(j=0;j{p[i][j]=0;q[i][j]=0;} for(i=0;ifor(j=0;j{x=0;if(i!=j){for(a=0;a{if(gBranch[a].No_I-1==i&&gBranch[a].No_J-1==j){if(gBranch[a].k==0){y=0;x=gBranch[a].B;}else{y=(1-gBranch[a].k)*gY_G[i][j];x=(1-gBranch[a].k)*gY_B[i][j];}break;}if(gBranch[a].No_I-1==j&&gBranch[a].No_J-1==i){if(gBranch[a].k==0){y=0;x=gBranch[a].B;}else{y=(1-1/gBranch[a].k)*gY_G[i][j];x=(1-1/gBranch[a].k)*gBranch[a].B;}break;}}c=y*ge[i]-ge[i]*gY_G[i][j]-x*gf[i]+gf[i]*gY_B[i][j]+ge[j]*gY_G[i][j]-gf[j]*gY_B[i][j];d=0-y*gf[i]-x*ge[i]+gY_B[i][j]*ge[i]+gf[i]*gY_G[i][j]-ge[j]*gY_B[i][j]-gf[j]*gY_G[i][j];p[i][j]=ge[i]*c-gf[i]*d;q[i][j]=gf[i]*c+ge[i]*d;}if(i==j){for(a=0;a{if((gBranch[a].No_I-1==i)&&(gBranch[a].No_J-1==i)){x=(-1)/gBranch[a].X;break;}elsex=0;}p[i][j]=0;q[i][j]=(ge[i]*ge[i]+gf[i]*gf[i])*x*(-1);}}for(i=0;i{c=0;d=0;{for(j=0;j{c=c+p[i][j];d=d+q[i][j];}printf("校验:%f%f,%f%f\n",gBus[i].GenP-gBus[i].LoadP,c,gBus[i].GenQ-gBus[i].LoadQ,d);}}for(i=0;ifor(j=0;j{if(i!=j){delp[i][j]=p[i][j]+p[j][i];delq[i][j]=q[i][j]+q[j][i];}else{delp[i][i]=p[i][i];delq[i][i]=q[i][i];}}printf("潮流值\n");for(i=0;ifor(j=0;jprintf("线路潮流%d---%d%f+j%f\n",i+1,j+1,p[i][j],q[i][j]);for(i=0;ifor(j=0;jprintf("线路损耗%d--%d%f+j%f\n",i+1,j+1,delp[j][i],delq[j][i]);c=0;d=0;for(i=0;ifor(j=i;j{c+=2*delp[i][j];d+=2*delq[i][j];}printf("线路总损耗:%f+j%f\n",c,d);//addyourcodes//gBus[i].VoltagegY_G[bus1][bus1]gY_B[bus1][bus2]bus1=gBranch[i].No_I-1;bus2=gBranch[i].No_J-1;return0;}
if(gBus[i].Type==2)
gf[i]=gBus[i].Voltage*sin(gBus[i].Phase);
ge[i]=gBus[i].Voltage*cos(gBus[i].Phase);
gf[i]=0;
ge[i]=1;
voidGetUnbalance(int&nBus)
intj;
for(i=0;iif(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;iif(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;ifor(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;jif(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;ifor(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;iif(gBus[i/2].Type==2){c=i;break;}for(i=0;ifor(j=0;j{if(j>=c&&i>=c)ob1.Data(i,j)=gJaccobi[i+2][j+2];if(j>=c&&iob1.Data(i,j)=gJaccobi[i][j+2];if(j=c)ob1.Data(i,j)=gJaccobi[i+2][j];if(job1.Data(i,j)=gJaccobi[i][j];}b=c/2;for(i=0;i{if(i{ob1.Value(i*2)=gDelta_P[i];ob1.Value(i*2+1)=gDelta_Q[i];}if(i>=b){ob1.Value(i*2)=gDelta_P[i+1];ob1.Value(i*2+1)=gDelta_Q[i+1];}}ob1.Run();for(i=0;i{if(igDelta_fe[i]=ob1.Value(i);if(i>(c+1)){gDelta_fe[i]=ob1.Value(i-2);}gDelta_fe[c]=0;gDelta_fe[c+1]=0;} //addyourcodesgetit}voidGetNewValue(int&nBus){inti,a;for(i=0;i{a=2*i;gf[i]+=gDelta_fe[a];a+=1;ge[i]+=gDelta_fe[a];}//addyourcodes}intmain(intargc,char*argv[]){inti,Count_Num;floatmaxValue;intnBus,nBranch;intj,a;floatGss=0,Bss=0,z,c,d,x=0,y=0;floatdels[Bus_Num][Bus_Num],p[Bus_Num][Bus_Num],q[Bus_Num][Bus_Num],delp[Bus_Num][Bus_Num],delq[Bus_Num][Bus_Num];//test();GetData(nBus,nBranch);GetYMatrix(nBus,nBranch);SetInitial(nBus);for(Count_Num=0;Count_Num<=20;Count_Num++){GetUnbalance(nBus);GetJaccobi(nBus);GetRevised(nBus);GetNewValue(nBus);maxValue=fabs(gDelta_fe[0]);for(i=1;i<=2*(nBus-1)-1;i++){if(maxValue{maxValue=fabs(gDelta_fe[i]);}}if(maxValue{break;}}printf("叠代次数:%d\n",Count_Num);for(i=0;i{printf("节点%d电压为:%10.5f∠%f\n",i+1,sqrt(ge[i]*ge[i]+gf[i]*gf[i]),atan(gf[i]/ge[i])/3.14159*180);}//添加for(i=0;ifor(j=0;j{if(gY_B[i][j]<0)printf("Y(%d,%d)=%f%fj\n",i,j,gY_G[i][j],gY_B[i][j]);elseprintf("Y(%d,%d)=%f+%fj\n",i,j,gY_G[i][j],gY_B[i][j]);}for(i=0;iif(gBus[i].Type==2){a=i;break;}//qiubus2for(i=0;i{Gss+=ge[i]*gY_G[a][i]-gf[i]*gY_B[a][i];Bss+=0-gf[i]*gY_G[a][i]-ge[i]*gY_B[a][i];}z=Gss;Gss=Gss*ge[a]-Bss*gf[a];Bss=gf[a]*z+ge[a]*Bss;printf("平衡节点功率:%f+j%f\n",Gss,Bss);//xiaqiuxianlugonglvfor(i=0;ifor(j=0;j{p[i][j]=0;q[i][j]=0;} for(i=0;ifor(j=0;j{x=0;if(i!=j){for(a=0;a{if(gBranch[a].No_I-1==i&&gBranch[a].No_J-1==j){if(gBranch[a].k==0){y=0;x=gBranch[a].B;}else{y=(1-gBranch[a].k)*gY_G[i][j];x=(1-gBranch[a].k)*gY_B[i][j];}break;}if(gBranch[a].No_I-1==j&&gBranch[a].No_J-1==i){if(gBranch[a].k==0){y=0;x=gBranch[a].B;}else{y=(1-1/gBranch[a].k)*gY_G[i][j];x=(1-1/gBranch[a].k)*gBranch[a].B;}break;}}c=y*ge[i]-ge[i]*gY_G[i][j]-x*gf[i]+gf[i]*gY_B[i][j]+ge[j]*gY_G[i][j]-gf[j]*gY_B[i][j];d=0-y*gf[i]-x*ge[i]+gY_B[i][j]*ge[i]+gf[i]*gY_G[i][j]-ge[j]*gY_B[i][j]-gf[j]*gY_G[i][j];p[i][j]=ge[i]*c-gf[i]*d;q[i][j]=gf[i]*c+ge[i]*d;}if(i==j){for(a=0;a{if((gBranch[a].No_I-1==i)&&(gBranch[a].No_J-1==i)){x=(-1)/gBranch[a].X;break;}elsex=0;}p[i][j]=0;q[i][j]=(ge[i]*ge[i]+gf[i]*gf[i])*x*(-1);}}for(i=0;i{c=0;d=0;{for(j=0;j{c=c+p[i][j];d=d+q[i][j];}printf("校验:%f%f,%f%f\n",gBus[i].GenP-gBus[i].LoadP,c,gBus[i].GenQ-gBus[i].LoadQ,d);}}for(i=0;ifor(j=0;j{if(i!=j){delp[i][j]=p[i][j]+p[j][i];delq[i][j]=q[i][j]+q[j][i];}else{delp[i][i]=p[i][i];delq[i][i]=q[i][i];}}printf("潮流值\n");for(i=0;ifor(j=0;jprintf("线路潮流%d---%d%f+j%f\n",i+1,j+1,p[i][j],q[i][j]);for(i=0;ifor(j=0;jprintf("线路损耗%d--%d%f+j%f\n",i+1,j+1,delp[j][i],delq[j][i]);c=0;d=0;for(i=0;ifor(j=i;j{c+=2*delp[i][j];d+=2*delq[i][j];}printf("线路总损耗:%f+j%f\n",c,d);//addyourcodes//gBus[i].VoltagegY_G[bus1][bus1]gY_B[bus1][bus2]bus1=gBranch[i].No_I-1;bus2=gBranch[i].No_J-1;return0;}
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;iif(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;ifor(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;jif(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;ifor(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;iif(gBus[i/2].Type==2){c=i;break;}for(i=0;ifor(j=0;j{if(j>=c&&i>=c)ob1.Data(i,j)=gJaccobi[i+2][j+2];if(j>=c&&iob1.Data(i,j)=gJaccobi[i][j+2];if(j=c)ob1.Data(i,j)=gJaccobi[i+2][j];if(job1.Data(i,j)=gJaccobi[i][j];}b=c/2;for(i=0;i{if(i{ob1.Value(i*2)=gDelta_P[i];ob1.Value(i*2+1)=gDelta_Q[i];}if(i>=b){ob1.Value(i*2)=gDelta_P[i+1];ob1.Value(i*2+1)=gDelta_Q[i+1];}}ob1.Run();for(i=0;i{if(igDelta_fe[i]=ob1.Value(i);if(i>(c+1)){gDelta_fe[i]=ob1.Value(i-2);}gDelta_fe[c]=0;gDelta_fe[c+1]=0;} //addyourcodesgetit}voidGetNewValue(int&nBus){inti,a;for(i=0;i{a=2*i;gf[i]+=gDelta_fe[a];a+=1;ge[i]+=gDelta_fe[a];}//addyourcodes}intmain(intargc,char*argv[]){inti,Count_Num;floatmaxValue;intnBus,nBranch;intj,a;floatGss=0,Bss=0,z,c,d,x=0,y=0;floatdels[Bus_Num][Bus_Num],p[Bus_Num][Bus_Num],q[Bus_Num][Bus_Num],delp[Bus_Num][Bus_Num],delq[Bus_Num][Bus_Num];//test();GetData(nBus,nBranch);GetYMatrix(nBus,nBranch);SetInitial(nBus);for(Count_Num=0;Count_Num<=20;Count_Num++){GetUnbalance(nBus);GetJaccobi(nBus);GetRevised(nBus);GetNewValue(nBus);maxValue=fabs(gDelta_fe[0]);for(i=1;i<=2*(nBus-1)-1;i++){if(maxValue{maxValue=fabs(gDelta_fe[i]);}}if(maxValue{break;}}printf("叠代次数:%d\n",Count_Num);for(i=0;i{printf("节点%d电压为:%10.5f∠%f\n",i+1,sqrt(ge[i]*ge[i]+gf[i]*gf[i]),atan(gf[i]/ge[i])/3.14159*180);}//添加for(i=0;ifor(j=0;j{if(gY_B[i][j]<0)printf("Y(%d,%d)=%f%fj\n",i,j,gY_G[i][j],gY_B[i][j]);elseprintf("Y(%d,%d)=%f+%fj\n",i,j,gY_G[i][j],gY_B[i][j]);}for(i=0;iif(gBus[i].Type==2){a=i;break;}//qiubus2for(i=0;i{Gss+=ge[i]*gY_G[a][i]-gf[i]*gY_B[a][i];Bss+=0-gf[i]*gY_G[a][i]-ge[i]*gY_B[a][i];}z=Gss;Gss=Gss*ge[a]-Bss*gf[a];Bss=gf[a]*z+ge[a]*Bss;printf("平衡节点功率:%f+j%f\n",Gss,Bss);//xiaqiuxianlugonglvfor(i=0;ifor(j=0;j{p[i][j]=0;q[i][j]=0;} for(i=0;ifor(j=0;j{x=0;if(i!=j){for(a=0;a{if(gBranch[a].No_I-1==i&&gBranch[a].No_J-1==j){if(gBranch[a].k==0){y=0;x=gBranch[a].B;}else{y=(1-gBranch[a].k)*gY_G[i][j];x=(1-gBranch[a].k)*gY_B[i][j];}break;}if(gBranch[a].No_I-1==j&&gBranch[a].No_J-1==i){if(gBranch[a].k==0){y=0;x=gBranch[a].B;}else{y=(1-1/gBranch[a].k)*gY_G[i][j];x=(1-1/gBranch[a].k)*gBranch[a].B;}break;}}c=y*ge[i]-ge[i]*gY_G[i][j]-x*gf[i]+gf[i]*gY_B[i][j]+ge[j]*gY_G[i][j]-gf[j]*gY_B[i][j];d=0-y*gf[i]-x*ge[i]+gY_B[i][j]*ge[i]+gf[i]*gY_G[i][j]-ge[j]*gY_B[i][j]-gf[j]*gY_G[i][j];p[i][j]=ge[i]*c-gf[i]*d;q[i][j]=gf[i]*c+ge[i]*d;}if(i==j){for(a=0;a{if((gBranch[a].No_I-1==i)&&(gBranch[a].No_J-1==i)){x=(-1)/gBranch[a].X;break;}elsex=0;}p[i][j]=0;q[i][j]=(ge[i]*ge[i]+gf[i]*gf[i])*x*(-1);}}for(i=0;i{c=0;d=0;{for(j=0;j{c=c+p[i][j];d=d+q[i][j];}printf("校验:%f%f,%f%f\n",gBus[i].GenP-gBus[i].LoadP,c,gBus[i].GenQ-gBus[i].LoadQ,d);}}for(i=0;ifor(j=0;j{if(i!=j){delp[i][j]=p[i][j]+p[j][i];delq[i][j]=q[i][j]+q[j][i];}else{delp[i][i]=p[i][i];delq[i][i]=q[i][i];}}printf("潮流值\n");for(i=0;ifor(j=0;jprintf("线路潮流%d---%d%f+j%f\n",i+1,j+1,p[i][j],q[i][j]);for(i=0;ifor(j=0;jprintf("线路损耗%d--%d%f+j%f\n",i+1,j+1,delp[j][i],delq[j][i]);c=0;d=0;for(i=0;ifor(j=i;j{c+=2*delp[i][j];d+=2*delq[i][j];}printf("线路总损耗:%f+j%f\n",c,d);//addyourcodes//gBus[i].VoltagegY_G[bus1][bus1]gY_B[bus1][bus2]bus1=gBranch[i].No_I-1;bus2=gBranch[i].No_J-1;return0;}
{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;iif(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;ifor(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;jif(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;ifor(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;iif(gBus[i/2].Type==2){c=i;break;}for(i=0;ifor(j=0;j{if(j>=c&&i>=c)ob1.Data(i,j)=gJaccobi[i+2][j+2];if(j>=c&&iob1.Data(i,j)=gJaccobi[i][j+2];if(j=c)ob1.Data(i,j)=gJaccobi[i+2][j];if(job1.Data(i,j)=gJaccobi[i][j];}b=c/2;for(i=0;i{if(i{ob1.Value(i*2)=gDelta_P[i];ob1.Value(i*2+1)=gDelta_Q[i];}if(i>=b){ob1.Value(i*2)=gDelta_P[i+1];ob1.Value(i*2+1)=gDelta_Q[i+1];}}ob1.Run();for(i=0;i{if(igDelta_fe[i]=ob1.Value(i);if(i>(c+1)){gDelta_fe[i]=ob1.Value(i-2);}gDelta_fe[c]=0;gDelta_fe[c+1]=0;} //addyourcodesgetit}voidGetNewValue(int&nBus){inti,a;for(i=0;i{a=2*i;gf[i]+=gDelta_fe[a];a+=1;ge[i]+=gDelta_fe[a];}//addyourcodes}intmain(intargc,char*argv[]){inti,Count_Num;floatmaxValue;intnBus,nBranch;intj,a;floatGss=0,Bss=0,z,c,d,x=0,y=0;floatdels[Bus_Num][Bus_Num],p[Bus_Num][Bus_Num],q[Bus_Num][Bus_Num],delp[Bus_Num][Bus_Num],delq[Bus_Num][Bus_Num];//test();GetData(nBus,nBranch);GetYMatrix(nBus,nBranch);SetInitial(nBus);for(Count_Num=0;Count_Num<=20;Count_Num++){GetUnbalance(nBus);GetJaccobi(nBus);GetRevised(nBus);GetNewValue(nBus);maxValue=fabs(gDelta_fe[0]);for(i=1;i<=2*(nBus-1)-1;i++){if(maxValue{maxValue=fabs(gDelta_fe[i]);}}if(maxValue{break;}}printf("叠代次数:%d\n",Count_Num);for(i=0;i{printf("节点%d电压为:%10.5f∠%f\n",i+1,sqrt(ge[i]*ge[i]+gf[i]*gf[i]),atan(gf[i]/ge[i])/3.14159*180);}//添加for(i=0;ifor(j=0;j{if(gY_B[i][j]<0)printf("Y(%d,%d)=%f%fj\n",i,j,gY_G[i][j],gY_B[i][j]);elseprintf("Y(%d,%d)=%f+%fj\n",i,j,gY_G[i][j],gY_B[i][j]);}for(i=0;iif(gBus[i].Type==2){a=i;break;}//qiubus2for(i=0;i{Gss+=ge[i]*gY_G[a][i]-gf[i]*gY_B[a][i];Bss+=0-gf[i]*gY_G[a][i]-ge[i]*gY_B[a][i];}z=Gss;Gss=Gss*ge[a]-Bss*gf[a];Bss=gf[a]*z+ge[a]*Bss;printf("平衡节点功率:%f+j%f\n",Gss,Bss);//xiaqiuxianlugonglvfor(i=0;ifor(j=0;j{p[i][j]=0;q[i][j]=0;} for(i=0;ifor(j=0;j{x=0;if(i!=j){for(a=0;a{if(gBranch[a].No_I-1==i&&gBranch[a].No_J-1==j){if(gBranch[a].k==0){y=0;x=gBranch[a].B;}else{y=(1-gBranch[a].k)*gY_G[i][j];x=(1-gBranch[a].k)*gY_B[i][j];}break;}if(gBranch[a].No_I-1==j&&gBranch[a].No_J-1==i){if(gBranch[a].k==0){y=0;x=gBranch[a].B;}else{y=(1-1/gBranch[a].k)*gY_G[i][j];x=(1-1/gBranch[a].k)*gBranch[a].B;}break;}}c=y*ge[i]-ge[i]*gY_G[i][j]-x*gf[i]+gf[i]*gY_B[i][j]+ge[j]*gY_G[i][j]-gf[j]*gY_B[i][j];d=0-y*gf[i]-x*ge[i]+gY_B[i][j]*ge[i]+gf[i]*gY_G[i][j]-ge[j]*gY_B[i][j]-gf[j]*gY_G[i][j];p[i][j]=ge[i]*c-gf[i]*d;q[i][j]=gf[i]*c+ge[i]*d;}if(i==j){for(a=0;a{if((gBranch[a].No_I-1==i)&&(gBranch[a].No_J-1==i)){x=(-1)/gBranch[a].X;break;}elsex=0;}p[i][j]=0;q[i][j]=(ge[i]*ge[i]+gf[i]*gf[i])*x*(-1);}}for(i=0;i{c=0;d=0;{for(j=0;j{c=c+p[i][j];d=d+q[i][j];}printf("校验:%f%f,%f%f\n",gBus[i].GenP-gBus[i].LoadP,c,gBus[i].GenQ-gBus[i].LoadQ,d);}}for(i=0;ifor(j=0;j{if(i!=j){delp[i][j]=p[i][j]+p[j][i];delq[i][j]=q[i][j]+q[j][i];}else{delp[i][i]=p[i][i];delq[i][i]=q[i][i];}}printf("潮流值\n");for(i=0;ifor(j=0;jprintf("线路潮流%d---%d%f+j%f\n",i+1,j+1,p[i][j],q[i][j]);for(i=0;ifor(j=0;jprintf("线路损耗%d--%d%f+j%f\n",i+1,j+1,delp[j][i],delq[j][i]);c=0;d=0;for(i=0;ifor(j=i;j{c+=2*delp[i][j];d+=2*delq[i][j];}printf("线路总损耗:%f+j%f\n",c,d);//addyourcodes//gBus[i].VoltagegY_G[bus1][bus1]gY_B[bus1][bus2]bus1=gBranch[i].No_I-1;bus2=gBranch[i].No_J-1;return0;}
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;iif(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;ifor(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;jif(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;ifor(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;iif(gBus[i/2].Type==2){c=i;break;}for(i=0;ifor(j=0;j{if(j>=c&&i>=c)ob1.Data(i,j)=gJaccobi[i+2][j+2];if(j>=c&&iob1.Data(i,j)=gJaccobi[i][j+2];if(j=c)ob1.Data(i,j)=gJaccobi[i+2][j];if(job1.Data(i,j)=gJaccobi[i][j];}b=c/2;for(i=0;i{if(i{ob1.Value(i*2)=gDelta_P[i];ob1.Value(i*2+1)=gDelta_Q[i];}if(i>=b){ob1.Value(i*2)=gDelta_P[i+1];ob1.Value(i*2+1)=gDelta_Q[i+1];}}ob1.Run();for(i=0;i{if(igDelta_fe[i]=ob1.Value(i);if(i>(c+1)){gDelta_fe[i]=ob1.Value(i-2);}gDelta_fe[c]=0;gDelta_fe[c+1]=0;} //addyourcodesgetit}voidGetNewValue(int&nBus){inti,a;for(i=0;i{a=2*i;gf[i]+=gDelta_fe[a];a+=1;ge[i]+=gDelta_fe[a];}//addyourcodes}intmain(intargc,char*argv[]){inti,Count_Num;floatmaxValue;intnBus,nBranch;intj,a;floatGss=0,Bss=0,z,c,d,x=0,y=0;floatdels[Bus_Num][Bus_Num],p[Bus_Num][Bus_Num],q[Bus_Num][Bus_Num],delp[Bus_Num][Bus_Num],delq[Bus_Num][Bus_Num];//test();GetData(nBus,nBranch);GetYMatrix(nBus,nBranch);SetInitial(nBus);for(Count_Num=0;Count_Num<=20;Count_Num++){GetUnbalance(nBus);GetJaccobi(nBus);GetRevised(nBus);GetNewValue(nBus);maxValue=fabs(gDelta_fe[0]);for(i=1;i<=2*(nBus-1)-1;i++){if(maxValue{maxValue=fabs(gDelta_fe[i]);}}if(maxValue{break;}}printf("叠代次数:%d\n",Count_Num);for(i=0;i{printf("节点%d电压为:%10.5f∠%f\n",i+1,sqrt(ge[i]*ge[i]+gf[i]*gf[i]),atan(gf[i]/ge[i])/3.14159*180);}//添加for(i=0;ifor(j=0;j{if(gY_B[i][j]<0)printf("Y(%d,%d)=%f%fj\n",i,j,gY_G[i][j],gY_B[i][j]);elseprintf("Y(%d,%d)=%f+%fj\n",i,j,gY_G[i][j],gY_B[i][j]);}for(i=0;iif(gBus[i].Type==2){a=i;break;}//qiubus2for(i=0;i{Gss+=ge[i]*gY_G[a][i]-gf[i]*gY_B[a][i];Bss+=0-gf[i]*gY_G[a][i]-ge[i]*gY_B[a][i];}z=Gss;Gss=Gss*ge[a]-Bss*gf[a];Bss=gf[a]*z+ge[a]*Bss;printf("平衡节点功率:%f+j%f\n",Gss,Bss);//xiaqiuxianlugonglvfor(i=0;ifor(j=0;j{p[i][j]=0;q[i][j]=0;} for(i=0;ifor(j=0;j{x=0;if(i!=j){for(a=0;a{if(gBranch[a].No_I-1==i&&gBranch[a].No_J-1==j){if(gBranch[a].k==0){y=0;x=gBranch[a].B;}else{y=(1-gBranch[a].k)*gY_G[i][j];x=(1-gBranch[a].k)*gY_B[i][j];}break;}if(gBranch[a].No_I-1==j&&gBranch[a].No_J-1==i){if(gBranch[a].k==0){y=0;x=gBranch[a].B;}else{y=(1-1/gBranch[a].k)*gY_G[i][j];x=(1-1/gBranch[a].k)*gBranch[a].B;}break;}}c=y*ge[i]-ge[i]*gY_G[i][j]-x*gf[i]+gf[i]*gY_B[i][j]+ge[j]*gY_G[i][j]-gf[j]*gY_B[i][j];d=0-y*gf[i]-x*ge[i]+gY_B[i][j]*ge[i]+gf[i]*gY_G[i][j]-ge[j]*gY_B[i][j]-gf[j]*gY_G[i][j];p[i][j]=ge[i]*c-gf[i]*d;q[i][j]=gf[i]*c+ge[i]*d;}if(i==j){for(a=0;a{if((gBranch[a].No_I-1==i)&&(gBranch[a].No_J-1==i)){x=(-1)/gBranch[a].X;break;}elsex=0;}p[i][j]=0;q[i][j]=(ge[i]*ge[i]+gf[i]*gf[i])*x*(-1);}}for(i=0;i{c=0;d=0;{for(j=0;j{c=c+p[i][j];d=d+q[i][j];}printf("校验:%f%f,%f%f\n",gBus[i].GenP-gBus[i].LoadP,c,gBus[i].GenQ-gBus[i].LoadQ,d);}}for(i=0;ifor(j=0;j{if(i!=j){delp[i][j]=p[i][j]+p[j][i];delq[i][j]=q[i][j]+q[j][i];}else{delp[i][i]=p[i][i];delq[i][i]=q[i][i];}}printf("潮流值\n");for(i=0;ifor(j=0;jprintf("线路潮流%d---%d%f+j%f\n",i+1,j+1,p[i][j],q[i][j]);for(i=0;ifor(j=0;jprintf("线路损耗%d--%d%f+j%f\n",i+1,j+1,delp[j][i],delq[j][i]);c=0;d=0;for(i=0;ifor(j=i;j{c+=2*delp[i][j];d+=2*delq[i][j];}printf("线路总损耗:%f+j%f\n",c,d);//addyourcodes//gBus[i].VoltagegY_G[bus1][bus1]gY_B[bus1][bus2]bus1=gBranch[i].No_I-1;bus2=gBranch[i].No_J-1;return0;}
{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;iif(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;ifor(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;jif(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;ifor(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;iif(gBus[i/2].Type==2){c=i;break;}for(i=0;ifor(j=0;j{if(j>=c&&i>=c)ob1.Data(i,j)=gJaccobi[i+2][j+2];if(j>=c&&iob1.Data(i,j)=gJaccobi[i][j+2];if(j=c)ob1.Data(i,j)=gJaccobi[i+2][j];if(job1.Data(i,j)=gJaccobi[i][j];}b=c/2;for(i=0;i{if(i{ob1.Value(i*2)=gDelta_P[i];ob1.Value(i*2+1)=gDelta_Q[i];}if(i>=b){ob1.Value(i*2)=gDelta_P[i+1];ob1.Value(i*2+1)=gDelta_Q[i+1];}}ob1.Run();for(i=0;i{if(igDelta_fe[i]=ob1.Value(i);if(i>(c+1)){gDelta_fe[i]=ob1.Value(i-2);}gDelta_fe[c]=0;gDelta_fe[c+1]=0;} //addyourcodesgetit}voidGetNewValue(int&nBus){inti,a;for(i=0;i{a=2*i;gf[i]+=gDelta_fe[a];a+=1;ge[i]+=gDelta_fe[a];}//addyourcodes}intmain(intargc,char*argv[]){inti,Count_Num;floatmaxValue;intnBus,nBranch;intj,a;floatGss=0,Bss=0,z,c,d,x=0,y=0;floatdels[Bus_Num][Bus_Num],p[Bus_Num][Bus_Num],q[Bus_Num][Bus_Num],delp[Bus_Num][Bus_Num],delq[Bus_Num][Bus_Num];//test();GetData(nBus,nBranch);GetYMatrix(nBus,nBranch);SetInitial(nBus);for(Count_Num=0;Count_Num<=20;Count_Num++){GetUnbalance(nBus);GetJaccobi(nBus);GetRevised(nBus);GetNewValue(nBus);maxValue=fabs(gDelta_fe[0]);for(i=1;i<=2*(nBus-1)-1;i++){if(maxValue{maxValue=fabs(gDelta_fe[i]);}}if(maxValue{break;}}printf("叠代次数:%d\n",Count_Num);for(i=0;i{printf("节点%d电压为:%10.5f∠%f\n",i+1,sqrt(ge[i]*ge[i]+gf[i]*gf[i]),atan(gf[i]/ge[i])/3.14159*180);}//添加for(i=0;ifor(j=0;j{if(gY_B[i][j]<0)printf("Y(%d,%d)=%f%fj\n",i,j,gY_G[i][j],gY_B[i][j]);elseprintf("Y(%d,%d)=%f+%fj\n",i,j,gY_G[i][j],gY_B[i][j]);}for(i=0;iif(gBus[i].Type==2){a=i;break;}//qiubus2for(i=0;i{Gss+=ge[i]*gY_G[a][i]-gf[i]*gY_B[a][i];Bss+=0-gf[i]*gY_G[a][i]-ge[i]*gY_B[a][i];}z=Gss;Gss=Gss*ge[a]-Bss*gf[a];Bss=gf[a]*z+ge[a]*Bss;printf("平衡节点功率:%f+j%f\n",Gss,Bss);//xiaqiuxianlugonglvfor(i=0;ifor(j=0;j{p[i][j]=0;q[i][j]=0;} for(i=0;ifor(j=0;j{x=0;if(i!=j){for(a=0;a{if(gBranch[a].No_I-1==i&&gBranch[a].No_J-1==j){if(gBranch[a].k==0){y=0;x=gBranch[a].B;}else{y=(1-gBranch[a].k)*gY_G[i][j];x=(1-gBranch[a].k)*gY_B[i][j];}break;}if(gBranch[a].No_I-1==j&&gBranch[a].No_J-1==i){if(gBranch[a].k==0){y=0;x=gBranch[a].B;}else{y=(1-1/gBranch[a].k)*gY_G[i][j];x=(1-1/gBranch[a].k)*gBranch[a].B;}break;}}c=y*ge[i]-ge[i]*gY_G[i][j]-x*gf[i]+gf[i]*gY_B[i][j]+ge[j]*gY_G[i][j]-gf[j]*gY_B[i][j];d=0-y*gf[i]-x*ge[i]+gY_B[i][j]*ge[i]+gf[i]*gY_G[i][j]-ge[j]*gY_B[i][j]-gf[j]*gY_G[i][j];p[i][j]=ge[i]*c-gf[i]*d;q[i][j]=gf[i]*c+ge[i]*d;}if(i==j){for(a=0;a{if((gBranch[a].No_I-1==i)&&(gBranch[a].No_J-1==i)){x=(-1)/gBranch[a].X;break;}elsex=0;}p[i][j]=0;q[i][j]=(ge[i]*ge[i]+gf[i]*gf[i])*x*(-1);}}for(i=0;i{c=0;d=0;{for(j=0;j{c=c+p[i][j];d=d+q[i][j];}printf("校验:%f%f,%f%f\n",gBus[i].GenP-gBus[i].LoadP,c,gBus[i].GenQ-gBus[i].LoadQ,d);}}for(i=0;ifor(j=0;j{if(i!=j){delp[i][j]=p[i][j]+p[j][i];delq[i][j]=q[i][j]+q[j][i];}else{delp[i][i]=p[i][i];delq[i][i]=q[i][i];}}printf("潮流值\n");for(i=0;ifor(j=0;jprintf("线路潮流%d---%d%f+j%f\n",i+1,j+1,p[i][j],q[i][j]);for(i=0;ifor(j=0;jprintf("线路损耗%d--%d%f+j%f\n",i+1,j+1,delp[j][i],delq[j][i]);c=0;d=0;for(i=0;ifor(j=i;j{c+=2*delp[i][j];d+=2*delq[i][j];}printf("线路总损耗:%f+j%f\n",c,d);//addyourcodes//gBus[i].VoltagegY_G[bus1][bus1]gY_B[bus1][bus2]bus1=gBranch[i].No_I-1;bus2=gBranch[i].No_J-1;return0;}
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;ifor(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;jif(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;ifor(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;iif(gBus[i/2].Type==2){c=i;break;}for(i=0;ifor(j=0;j{if(j>=c&&i>=c)ob1.Data(i,j)=gJaccobi[i+2][j+2];if(j>=c&&iob1.Data(i,j)=gJaccobi[i][j+2];if(j=c)ob1.Data(i,j)=gJaccobi[i+2][j];if(job1.Data(i,j)=gJaccobi[i][j];}b=c/2;for(i=0;i{if(i{ob1.Value(i*2)=gDelta_P[i];ob1.Value(i*2+1)=gDelta_Q[i];}if(i>=b){ob1.Value(i*2)=gDelta_P[i+1];ob1.Value(i*2+1)=gDelta_Q[i+1];}}ob1.Run();for(i=0;i{if(igDelta_fe[i]=ob1.Value(i);if(i>(c+1)){gDelta_fe[i]=ob1.Value(i-2);}gDelta_fe[c]=0;gDelta_fe[c+1]=0;} //addyourcodesgetit}voidGetNewValue(int&nBus){inti,a;for(i=0;i{a=2*i;gf[i]+=gDelta_fe[a];a+=1;ge[i]+=gDelta_fe[a];}//addyourcodes}intmain(intargc,char*argv[]){inti,Count_Num;floatmaxValue;intnBus,nBranch;intj,a;floatGss=0,Bss=0,z,c,d,x=0,y=0;floatdels[Bus_Num][Bus_Num],p[Bus_Num][Bus_Num],q[Bus_Num][Bus_Num],delp[Bus_Num][Bus_Num],delq[Bus_Num][Bus_Num];//test();GetData(nBus,nBranch);GetYMatrix(nBus,nBranch);SetInitial(nBus);for(Count_Num=0;Count_Num<=20;Count_Num++){GetUnbalance(nBus);GetJaccobi(nBus);GetRevised(nBus);GetNewValue(nBus);maxValue=fabs(gDelta_fe[0]);for(i=1;i<=2*(nBus-1)-1;i++){if(maxValue{maxValue=fabs(gDelta_fe[i]);}}if(maxValue{break;}}printf("叠代次数:%d\n",Count_Num);for(i=0;i{printf("节点%d电压为:%10.5f∠%f\n",i+1,sqrt(ge[i]*ge[i]+gf[i]*gf[i]),atan(gf[i]/ge[i])/3.14159*180);}//添加for(i=0;ifor(j=0;j{if(gY_B[i][j]<0)printf("Y(%d,%d)=%f%fj\n",i,j,gY_G[i][j],gY_B[i][j]);elseprintf("Y(%d,%d)=%f+%fj\n",i,j,gY_G[i][j],gY_B[i][j]);}for(i=0;iif(gBus[i].Type==2){a=i;break;}//qiubus2for(i=0;i{Gss+=ge[i]*gY_G[a][i]-gf[i]*gY_B[a][i];Bss+=0-gf[i]*gY_G[a][i]-ge[i]*gY_B[a][i];}z=Gss;Gss=Gss*ge[a]-Bss*gf[a];Bss=gf[a]*z+ge[a]*Bss;printf("平衡节点功率:%f+j%f\n",Gss,Bss);//xiaqiuxianlugonglvfor(i=0;ifor(j=0;j{p[i][j]=0;q[i][j]=0;} for(i=0;ifor(j=0;j{x=0;if(i!=j){for(a=0;a{if(gBranch[a].No_I-1==i&&gBranch[a].No_J-1==j){if(gBranch[a].k==0){y=0;x=gBranch[a].B;}else{y=(1-gBranch[a].k)*gY_G[i][j];x=(1-gBranch[a].k)*gY_B[i][j];}break;}if(gBranch[a].No_I-1==j&&gBranch[a].No_J-1==i){if(gBranch[a].k==0){y=0;x=gBranch[a].B;}else{y=(1-1/gBranch[a].k)*gY_G[i][j];x=(1-1/gBranch[a].k)*gBranch[a].B;}break;}}c=y*ge[i]-ge[i]*gY_G[i][j]-x*gf[i]+gf[i]*gY_B[i][j]+ge[j]*gY_G[i][j]-gf[j]*gY_B[i][j];d=0-y*gf[i]-x*ge[i]+gY_B[i][j]*ge[i]+gf[i]*gY_G[i][j]-ge[j]*gY_B[i][j]-gf[j]*gY_G[i][j];p[i][j]=ge[i]*c-gf[i]*d;q[i][j]=gf[i]*c+ge[i]*d;}if(i==j){for(a=0;a{if((gBranch[a].No_I-1==i)&&(gBranch[a].No_J-1==i)){x=(-1)/gBranch[a].X;break;}elsex=0;}p[i][j]=0;q[i][j]=(ge[i]*ge[i]+gf[i]*gf[i])*x*(-1);}}for(i=0;i{c=0;d=0;{for(j=0;j{c=c+p[i][j];d=d+q[i][j];}printf("校验:%f%f,%f%f\n",gBus[i].GenP-gBus[i].LoadP,c,gBus[i].GenQ-gBus[i].LoadQ,d);}}for(i=0;ifor(j=0;j{if(i!=j){delp[i][j]=p[i][j]+p[j][i];delq[i][j]=q[i][j]+q[j][i];}else{delp[i][i]=p[i][i];delq[i][i]=q[i][i];}}printf("潮流值\n");for(i=0;ifor(j=0;jprintf("线路潮流%d---%d%f+j%f\n",i+1,j+1,p[i][j],q[i][j]);for(i=0;ifor(j=0;jprintf("线路损耗%d--%d%f+j%f\n",i+1,j+1,delp[j][i],delq[j][i]);c=0;d=0;for(i=0;ifor(j=i;j{c+=2*delp[i][j];d+=2*delq[i][j];}printf("线路总损耗:%f+j%f\n",c,d);//addyourcodes//gBus[i].VoltagegY_G[bus1][bus1]gY_B[bus1][bus2]bus1=gBranch[i].No_I-1;bus2=gBranch[i].No_J-1;return0;}
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;jif(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;ifor(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;iif(gBus[i/2].Type==2){c=i;break;}for(i=0;ifor(j=0;j{if(j>=c&&i>=c)ob1.Data(i,j)=gJaccobi[i+2][j+2];if(j>=c&&iob1.Data(i,j)=gJaccobi[i][j+2];if(j=c)ob1.Data(i,j)=gJaccobi[i+2][j];if(job1.Data(i,j)=gJaccobi[i][j];}b=c/2;for(i=0;i{if(i{ob1.Value(i*2)=gDelta_P[i];ob1.Value(i*2+1)=gDelta_Q[i];}if(i>=b){ob1.Value(i*2)=gDelta_P[i+1];ob1.Value(i*2+1)=gDelta_Q[i+1];}}ob1.Run();for(i=0;i{if(igDelta_fe[i]=ob1.Value(i);if(i>(c+1)){gDelta_fe[i]=ob1.Value(i-2);}gDelta_fe[c]=0;gDelta_fe[c+1]=0;} //addyourcodesgetit}voidGetNewValue(int&nBus){inti,a;for(i=0;i{a=2*i;gf[i]+=gDelta_fe[a];a+=1;ge[i]+=gDelta_fe[a];}//addyourcodes}intmain(intargc,char*argv[]){inti,Count_Num;floatmaxValue;intnBus,nBranch;intj,a;floatGss=0,Bss=0,z,c,d,x=0,y=0;floatdels[Bus_Num][Bus_Num],p[Bus_Num][Bus_Num],q[Bus_Num][Bus_Num],delp[Bus_Num][Bus_Num],delq[Bus_Num][Bus_Num];//test();GetData(nBus,nBranch);GetYMatrix(nBus,nBranch);SetInitial(nBus);for(Count_Num=0;Count_Num<=20;Count_Num++){GetUnbalance(nBus);GetJaccobi(nBus);GetRevised(nBus);GetNewValue(nBus);maxValue=fabs(gDelta_fe[0]);for(i=1;i<=2*(nBus-1)-1;i++){if(maxValue{maxValue=fabs(gDelta_fe[i]);}}if(maxValue{break;}}printf("叠代次数:%d\n",Count_Num);for(i=0;i{printf("节点%d电压为:%10.5f∠%f\n",i+1,sqrt(ge[i]*ge[i]+gf[i]*gf[i]),atan(gf[i]/ge[i])/3.14159*180);}//添加for(i=0;ifor(j=0;j{if(gY_B[i][j]<0)printf("Y(%d,%d)=%f%fj\n",i,j,gY_G[i][j],gY_B[i][j]);elseprintf("Y(%d,%d)=%f+%fj\n",i,j,gY_G[i][j],gY_B[i][j]);}for(i=0;iif(gBus[i].Type==2){a=i;break;}//qiubus2for(i=0;i{Gss+=ge[i]*gY_G[a][i]-gf[i]*gY_B[a][i];Bss+=0-gf[i]*gY_G[a][i]-ge[i]*gY_B[a][i];}z=Gss;Gss=Gss*ge[a]-Bss*gf[a];Bss=gf[a]*z+ge[a]*Bss;printf("平衡节点功率:%f+j%f\n",Gss,Bss);//xiaqiuxianlugonglvfor(i=0;ifor(j=0;j{p[i][j]=0;q[i][j]=0;} for(i=0;ifor(j=0;j{x=0;if(i!=j){for(a=0;a{if(gBranch[a].No_I-1==i&&gBranch[a].No_J-1==j){if(gBranch[a].k==0){y=0;x=gBranch[a].B;}else{y=(1-gBranch[a].k)*gY_G[i][j];x=(1-gBranch[a].k)*gY_B[i][j];}break;}if(gBranch[a].No_I-1==j&&gBranch[a].No_J-1==i){if(gBranch[a].k==0){y=0;x=gBranch[a].B;}else{y=(1-1/gBranch[a].k)*gY_G[i][j];x=(1-1/gBranch[a].k)*gBranch[a].B;}break;}}c=y*ge[i]-ge[i]*gY_G[i][j]-x*gf[i]+gf[i]*gY_B[i][j]+ge[j]*gY_G[i][j]-gf[j]*gY_B[i][j];d=0-y*gf[i]-x*ge[i]+gY_B[i][j]*ge[i]+gf[i]*gY_G[i][j]-ge[j]*gY_B[i][j]-gf[j]*gY_G[i][j];p[i][j]=ge[i]*c-gf[i]*d;q[i][j]=gf[i]*c+ge[i]*d;}if(i==j){for(a=0;a{if((gBranch[a].No_I-1==i)&&(gBranch[a].No_J-1==i)){x=(-1)/gBranch[a].X;break;}elsex=0;}p[i][j]=0;q[i][j]=(ge[i]*ge[i]+gf[i]*gf[i])*x*(-1);}}for(i=0;i{c=0;d=0;{for(j=0;j{c=c+p[i][j];d=d+q[i][j];}printf("校验:%f%f,%f%f\n",gBus[i].GenP-gBus[i].LoadP,c,gBus[i].GenQ-gBus[i].LoadQ,d);}}for(i=0;ifor(j=0;j{if(i!=j){delp[i][j]=p[i][j]+p[j][i];delq[i][j]=q[i][j]+q[j][i];}else{delp[i][i]=p[i][i];delq[i][i]=q[i][i];}}printf("潮流值\n");for(i=0;ifor(j=0;jprintf("线路潮流%d---%d%f+j%f\n",i+1,j+1,p[i][j],q[i][j]);for(i=0;ifor(j=0;jprintf("线路损耗%d--%d%f+j%f\n",i+1,j+1,delp[j][i],delq[j][i]);c=0;d=0;for(i=0;ifor(j=i;j{c+=2*delp[i][j];d+=2*delq[i][j];}printf("线路总损耗:%f+j%f\n",c,d);//addyourcodes//gBus[i].VoltagegY_G[bus1][bus1]gY_B[bus1][bus2]bus1=gBranch[i].No_I-1;bus2=gBranch[i].No_J-1;return0;}
{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))
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;jif(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;ifor(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;iif(gBus[i/2].Type==2){c=i;break;}for(i=0;ifor(j=0;j{if(j>=c&&i>=c)ob1.Data(i,j)=gJaccobi[i+2][j+2];if(j>=c&&iob1.Data(i,j)=gJaccobi[i][j+2];if(j=c)ob1.Data(i,j)=gJaccobi[i+2][j];if(job1.Data(i,j)=gJaccobi[i][j];}b=c/2;for(i=0;i{if(i{ob1.Value(i*2)=gDelta_P[i];ob1.Value(i*2+1)=gDelta_Q[i];}if(i>=b){ob1.Value(i*2)=gDelta_P[i+1];ob1.Value(i*2+1)=gDelta_Q[i+1];}}ob1.Run();for(i=0;i{if(igDelta_fe[i]=ob1.Value(i);if(i>(c+1)){gDelta_fe[i]=ob1.Value(i-2);}gDelta_fe[c]=0;gDelta_fe[c+1]=0;} //addyourcodesgetit}voidGetNewValue(int&nBus){inti,a;for(i=0;i{a=2*i;gf[i]+=gDelta_fe[a];a+=1;ge[i]+=gDelta_fe[a];}//addyourcodes}intmain(intargc,char*argv[]){inti,Count_Num;floatmaxValue;intnBus,nBranch;intj,a;floatGss=0,Bss=0,z,c,d,x=0,y=0;floatdels[Bus_Num][Bus_Num],p[Bus_Num][Bus_Num],q[Bus_Num][Bus_Num],delp[Bus_Num][Bus_Num],delq[Bus_Num][Bus_Num];//test();GetData(nBus,nBranch);GetYMatrix(nBus,nBranch);SetInitial(nBus);for(Count_Num=0;Count_Num<=20;Count_Num++){GetUnbalance(nBus);GetJaccobi(nBus);GetRevised(nBus);GetNewValue(nBus);maxValue=fabs(gDelta_fe[0]);for(i=1;i<=2*(nBus-1)-1;i++){if(maxValue{maxValue=fabs(gDelta_fe[i]);}}if(maxValue{break;}}printf("叠代次数:%d\n",Count_Num);for(i=0;i{printf("节点%d电压为:%10.5f∠%f\n",i+1,sqrt(ge[i]*ge[i]+gf[i]*gf[i]),atan(gf[i]/ge[i])/3.14159*180);}//添加for(i=0;ifor(j=0;j{if(gY_B[i][j]<0)printf("Y(%d,%d)=%f%fj\n",i,j,gY_G[i][j],gY_B[i][j]);elseprintf("Y(%d,%d)=%f+%fj\n",i,j,gY_G[i][j],gY_B[i][j]);}for(i=0;iif(gBus[i].Type==2){a=i;break;}//qiubus2for(i=0;i{Gss+=ge[i]*gY_G[a][i]-gf[i]*gY_B[a][i];Bss+=0-gf[i]*gY_G[a][i]-ge[i]*gY_B[a][i];}z=Gss;Gss=Gss*ge[a]-Bss*gf[a];Bss=gf[a]*z+ge[a]*Bss;printf("平衡节点功率:%f+j%f\n",Gss,Bss);//xiaqiuxianlugonglvfor(i=0;ifor(j=0;j{p[i][j]=0;q[i][j]=0;} for(i=0;ifor(j=0;j{x=0;if(i!=j){for(a=0;a{if(gBranch[a].No_I-1==i&&gBranch[a].No_J-1==j){if(gBranch[a].k==0){y=0;x=gBranch[a].B;}else{y=(1-gBranch[a].k)*gY_G[i][j];x=(1-gBranch[a].k)*gY_B[i][j];}break;}if(gBranch[a].No_I-1==j&&gBranch[a].No_J-1==i){if(gBranch[a].k==0){y=0;x=gBranch[a].B;}else{y=(1-1/gBranch[a].k)*gY_G[i][j];x=(1-1/gBranch[a].k)*gBranch[a].B;}break;}}c=y*ge[i]-ge[i]*gY_G[i][j]-x*gf[i]+gf[i]*gY_B[i][j]+ge[j]*gY_G[i][j]-gf[j]*gY_B[i][j];d=0-y*gf[i]-x*ge[i]+gY_B[i][j]*ge[i]+gf[i]*gY_G[i][j]-ge[j]*gY_B[i][j]-gf[j]*gY_G[i][j];p[i][j]=ge[i]*c-gf[i]*d;q[i][j]=gf[i]*c+ge[i]*d;}if(i==j){for(a=0;a{if((gBranch[a].No_I-1==i)&&(gBranch[a].No_J-1==i)){x=(-1)/gBranch[a].X;break;}elsex=0;}p[i][j]=0;q[i][j]=(ge[i]*ge[i]+gf[i]*gf[i])*x*(-1);}}for(i=0;i{c=0;d=0;{for(j=0;j{c=c+p[i][j];d=d+q[i][j];}printf("校验:%f%f,%f%f\n",gBus[i].GenP-gBus[i].LoadP,c,gBus[i].GenQ-gBus[i].LoadQ,d);}}for(i=0;ifor(j=0;j{if(i!=j){delp[i][j]=p[i][j]+p[j][i];delq[i][j]=q[i][j]+q[j][i];}else{delp[i][i]=p[i][i];delq[i][i]=q[i][i];}}printf("潮流值\n");for(i=0;ifor(j=0;jprintf("线路潮流%d---%d%f+j%f\n",i+1,j+1,p[i][j],q[i][j]);for(i=0;ifor(j=0;jprintf("线路损耗%d--%d%f+j%f\n",i+1,j+1,delp[j][i],delq[j][i]);c=0;d=0;for(i=0;ifor(j=i;j{c+=2*delp[i][j];d+=2*delq[i][j];}printf("线路总损耗:%f+j%f\n",c,d);//addyourcodes//gBus[i].VoltagegY_G[bus1][bus1]gY_B[bus1][bus2]bus1=gBranch[i].No_I-1;bus2=gBranch[i].No_J-1;return0;}
{c=0,d=0;for(j=0;jif(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;ifor(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;iif(gBus[i/2].Type==2){c=i;break;}for(i=0;ifor(j=0;j{if(j>=c&&i>=c)ob1.Data(i,j)=gJaccobi[i+2][j+2];if(j>=c&&iob1.Data(i,j)=gJaccobi[i][j+2];if(j=c)ob1.Data(i,j)=gJaccobi[i+2][j];if(job1.Data(i,j)=gJaccobi[i][j];}b=c/2;for(i=0;i{if(i{ob1.Value(i*2)=gDelta_P[i];ob1.Value(i*2+1)=gDelta_Q[i];}if(i>=b){ob1.Value(i*2)=gDelta_P[i+1];ob1.Value(i*2+1)=gDelta_Q[i+1];}}ob1.Run();for(i=0;i{if(igDelta_fe[i]=ob1.Value(i);if(i>(c+1)){gDelta_fe[i]=ob1.Value(i-2);}gDelta_fe[c]=0;gDelta_fe[c+1]=0;} //addyourcodesgetit}voidGetNewValue(int&nBus){inti,a;for(i=0;i{a=2*i;gf[i]+=gDelta_fe[a];a+=1;ge[i]+=gDelta_fe[a];}//addyourcodes}intmain(intargc,char*argv[]){inti,Count_Num;floatmaxValue;intnBus,nBranch;intj,a;floatGss=0,Bss=0,z,c,d,x=0,y=0;floatdels[Bus_Num][Bus_Num],p[Bus_Num][Bus_Num],q[Bus_Num][Bus_Num],delp[Bus_Num][Bus_Num],delq[Bus_Num][Bus_Num];//test();GetData(nBus,nBranch);GetYMatrix(nBus,nBranch);SetInitial(nBus);for(Count_Num=0;Count_Num<=20;Count_Num++){GetUnbalance(nBus);GetJaccobi(nBus);GetRevised(nBus);GetNewValue(nBus);maxValue=fabs(gDelta_fe[0]);for(i=1;i<=2*(nBus-1)-1;i++){if(maxValue{maxValue=fabs(gDelta_fe[i]);}}if(maxValue{break;}}printf("叠代次数:%d\n",Count_Num);for(i=0;i{printf("节点%d电压为:%10.5f∠%f\n",i+1,sqrt(ge[i]*ge[i]+gf[i]*gf[i]),atan(gf[i]/ge[i])/3.14159*180);}//添加for(i=0;ifor(j=0;j{if(gY_B[i][j]<0)printf("Y(%d,%d)=%f%fj\n",i,j,gY_G[i][j],gY_B[i][j]);elseprintf("Y(%d,%d)=%f+%fj\n",i,j,gY_G[i][j],gY_B[i][j]);}for(i=0;iif(gBus[i].Type==2){a=i;break;}//qiubus2for(i=0;i{Gss+=ge[i]*gY_G[a][i]-gf[i]*gY_B[a][i];Bss+=0-gf[i]*gY_G[a][i]-ge[i]*gY_B[a][i];}z=Gss;Gss=Gss*ge[a]-Bss*gf[a];Bss=gf[a]*z+ge[a]*Bss;printf("平衡节点功率:%f+j%f\n",Gss,Bss);//xiaqiuxianlugonglvfor(i=0;ifor(j=0;j{p[i][j]=0;q[i][j]=0;} for(i=0;ifor(j=0;j{x=0;if(i!=j){for(a=0;a{if(gBranch[a].No_I-1==i&&gBranch[a].No_J-1==j){if(gBranch[a].k==0){y=0;x=gBranch[a].B;}else{y=(1-gBranch[a].k)*gY_G[i][j];x=(1-gBranch[a].k)*gY_B[i][j];}break;}if(gBranch[a].No_I-1==j&&gBranch[a].No_J-1==i){if(gBranch[a].k==0){y=0;x=gBranch[a].B;}else{y=(1-1/gBranch[a].k)*gY_G[i][j];x=(1-1/gBranch[a].k)*gBranch[a].B;}break;}}c=y*ge[i]-ge[i]*gY_G[i][j]-x*gf[i]+gf[i]*gY_B[i][j]+ge[j]*gY_G[i][j]-gf[j]*gY_B[i][j];d=0-y*gf[i]-x*ge[i]+gY_B[i][j]*ge[i]+gf[i]*gY_G[i][j]-ge[j]*gY_B[i][j]-gf[j]*gY_G[i][j];p[i][j]=ge[i]*c-gf[i]*d;q[i][j]=gf[i]*c+ge[i]*d;}if(i==j){for(a=0;a{if((gBranch[a].No_I-1==i)&&(gBranch[a].No_J-1==i)){x=(-1)/gBranch[a].X;break;}elsex=0;}p[i][j]=0;q[i][j]=(ge[i]*ge[i]+gf[i]*gf[i])*x*(-1);}}for(i=0;i{c=0;d=0;{for(j=0;j{c=c+p[i][j];d=d+q[i][j];}printf("校验:%f%f,%f%f\n",gBus[i].GenP-gBus[i].LoadP,c,gBus[i].GenQ-gBus[i].LoadQ,d);}}for(i=0;ifor(j=0;j{if(i!=j){delp[i][j]=p[i][j]+p[j][i];delq[i][j]=q[i][j]+q[j][i];}else{delp[i][i]=p[i][i];delq[i][i]=q[i][i];}}printf("潮流值\n");for(i=0;ifor(j=0;jprintf("线路潮流%d---%d%f+j%f\n",i+1,j+1,p[i][j],q[i][j]);for(i=0;ifor(j=0;jprintf("线路损耗%d--%d%f+j%f\n",i+1,j+1,delp[j][i],delq[j][i]);c=0;d=0;for(i=0;ifor(j=i;j{c+=2*delp[i][j];d+=2*delq[i][j];}printf("线路总损耗:%f+j%f\n",c,d);//addyourcodes//gBus[i].VoltagegY_G[bus1][bus1]gY_B[bus1][bus2]bus1=gBranch[i].No_I-1;bus2=gBranch[i].No_J-1;return0;}
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];
=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];
a=a+1;gJaccobi[a][b]=2*ge[i];b=b-1;gJaccobi[a][b]=2*gf[i];
for(i=0;ifor(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;iif(gBus[i/2].Type==2){c=i;break;}for(i=0;ifor(j=0;j{if(j>=c&&i>=c)ob1.Data(i,j)=gJaccobi[i+2][j+2];if(j>=c&&iob1.Data(i,j)=gJaccobi[i][j+2];if(j=c)ob1.Data(i,j)=gJaccobi[i+2][j];if(job1.Data(i,j)=gJaccobi[i][j];}b=c/2;for(i=0;i{if(i{ob1.Value(i*2)=gDelta_P[i];ob1.Value(i*2+1)=gDelta_Q[i];}if(i>=b){ob1.Value(i*2)=gDelta_P[i+1];ob1.Value(i*2+1)=gDelta_Q[i+1];}}ob1.Run();for(i=0;i{if(igDelta_fe[i]=ob1.Value(i);if(i>(c+1)){gDelta_fe[i]=ob1.Value(i-2);}gDelta_fe[c]=0;gDelta_fe[c+1]=0;} //addyourcodesgetit}voidGetNewValue(int&nBus){inti,a;for(i=0;i{a=2*i;gf[i]+=gDelta_fe[a];a+=1;ge[i]+=gDelta_fe[a];}//addyourcodes}intmain(intargc,char*argv[]){inti,Count_Num;floatmaxValue;intnBus,nBranch;intj,a;floatGss=0,Bss=0,z,c,d,x=0,y=0;floatdels[Bus_Num][Bus_Num],p[Bus_Num][Bus_Num],q[Bus_Num][Bus_Num],delp[Bus_Num][Bus_Num],delq[Bus_Num][Bus_Num];//test();GetData(nBus,nBranch);GetYMatrix(nBus,nBranch);SetInitial(nBus);for(Count_Num=0;Count_Num<=20;Count_Num++){GetUnbalance(nBus);GetJaccobi(nBus);GetRevised(nBus);GetNewValue(nBus);maxValue=fabs(gDelta_fe[0]);for(i=1;i<=2*(nBus-1)-1;i++){if(maxValue{maxValue=fabs(gDelta_fe[i]);}}if(maxValue{break;}}printf("叠代次数:%d\n",Count_Num);for(i=0;i{printf("节点%d电压为:%10.5f∠%f\n",i+1,sqrt(ge[i]*ge[i]+gf[i]*gf[i]),atan(gf[i]/ge[i])/3.14159*180);}//添加for(i=0;ifor(j=0;j{if(gY_B[i][j]<0)printf("Y(%d,%d)=%f%fj\n",i,j,gY_G[i][j],gY_B[i][j]);elseprintf("Y(%d,%d)=%f+%fj\n",i,j,gY_G[i][j],gY_B[i][j]);}for(i=0;iif(gBus[i].Type==2){a=i;break;}//qiubus2for(i=0;i{Gss+=ge[i]*gY_G[a][i]-gf[i]*gY_B[a][i];Bss+=0-gf[i]*gY_G[a][i]-ge[i]*gY_B[a][i];}z=Gss;Gss=Gss*ge[a]-Bss*gf[a];Bss=gf[a]*z+ge[a]*Bss;printf("平衡节点功率:%f+j%f\n",Gss,Bss);//xiaqiuxianlugonglvfor(i=0;ifor(j=0;j{p[i][j]=0;q[i][j]=0;} for(i=0;ifor(j=0;j{x=0;if(i!=j){for(a=0;a{if(gBranch[a].No_I-1==i&&gBranch[a].No_J-1==j){if(gBranch[a].k==0){y=0;x=gBranch[a].B;}else{y=(1-gBranch[a].k)*gY_G[i][j];x=(1-gBranch[a].k)*gY_B[i][j];}break;}if(gBranch[a].No_I-1==j&&gBranch[a].No_J-1==i){if(gBranch[a].k==0){y=0;x=gBranch[a].B;}else{y=(1-1/gBranch[a].k)*gY_G[i][j];x=(1-1/gBranch[a].k)*gBranch[a].B;}break;}}c=y*ge[i]-ge[i]*gY_G[i][j]-x*gf[i]+gf[i]*gY_B[i][j]+ge[j]*gY_G[i][j]-gf[j]*gY_B[i][j];d=0-y*gf[i]-x*ge[i]+gY_B[i][j]*ge[i]+gf[i]*gY_G[i][j]-ge[j]*gY_B[i][j]-gf[j]*gY_G[i][j];p[i][j]=ge[i]*c-gf[i]*d;q[i][j]=gf[i]*c+ge[i]*d;}if(i==j){for(a=0;a{if((gBranch[a].No_I-1==i)&&(gBranch[a].No_J-1==i)){x=(-1)/gBranch[a].X;break;}elsex=0;}p[i][j]=0;q[i][j]=(ge[i]*ge[i]+gf[i]*gf[i])*x*(-1);}}for(i=0;i{c=0;d=0;{for(j=0;j{c=c+p[i][j];d=d+q[i][j];}printf("校验:%f%f,%f%f\n",gBus[i].GenP-gBus[i].LoadP,c,gBus[i].GenQ-gBus[i].LoadQ,d);}}for(i=0;ifor(j=0;j{if(i!=j){delp[i][j]=p[i][j]+p[j][i];delq[i][j]=q[i][j]+q[j][i];}else{delp[i][i]=p[i][i];delq[i][i]=q[i][i];}}printf("潮流值\n");for(i=0;ifor(j=0;jprintf("线路潮流%d---%d%f+j%f\n",i+1,j+1,p[i][j],q[i][j]);for(i=0;ifor(j=0;jprintf("线路损耗%d--%d%f+j%f\n",i+1,j+1,delp[j][i],delq[j][i]);c=0;d=0;for(i=0;ifor(j=i;j{c+=2*delp[i][j];d+=2*delq[i][j];}printf("线路总损耗:%f+j%f\n",c,d);//addyourcodes//gBus[i].VoltagegY_G[bus1][bus1]gY_B[bus1][bus2]bus1=gBranch[i].No_I-1;bus2=gBranch[i].No_J-1;return0;}
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;iif(gBus[i/2].Type==2){c=i;break;}for(i=0;ifor(j=0;j{if(j>=c&&i>=c)ob1.Data(i,j)=gJaccobi[i+2][j+2];if(j>=c&&iob1.Data(i,j)=gJaccobi[i][j+2];if(j=c)ob1.Data(i,j)=gJaccobi[i+2][j];if(job1.Data(i,j)=gJaccobi[i][j];}b=c/2;for(i=0;i{if(i{ob1.Value(i*2)=gDelta_P[i];ob1.Value(i*2+1)=gDelta_Q[i];}if(i>=b){ob1.Value(i*2)=gDelta_P[i+1];ob1.Value(i*2+1)=gDelta_Q[i+1];}}ob1.Run();for(i=0;i{if(igDelta_fe[i]=ob1.Value(i);if(i>(c+1)){gDelta_fe[i]=ob1.Value(i-2);}gDelta_fe[c]=0;gDelta_fe[c+1]=0;} //addyourcodesgetit}voidGetNewValue(int&nBus){inti,a;for(i=0;i{a=2*i;gf[i]+=gDelta_fe[a];a+=1;ge[i]+=gDelta_fe[a];}//addyourcodes}intmain(intargc,char*argv[]){inti,Count_Num;floatmaxValue;intnBus,nBranch;intj,a;floatGss=0,Bss=0,z,c,d,x=0,y=0;floatdels[Bus_Num][Bus_Num],p[Bus_Num][Bus_Num],q[Bus_Num][Bus_Num],delp[Bus_Num][Bus_Num],delq[Bus_Num][Bus_Num];//test();GetData(nBus,nBranch);GetYMatrix(nBus,nBranch);SetInitial(nBus);for(Count_Num=0;Count_Num<=20;Count_Num++){GetUnbalance(nBus);GetJaccobi(nBus);GetRevised(nBus);GetNewValue(nBus);maxValue=fabs(gDelta_fe[0]);for(i=1;i<=2*(nBus-1)-1;i++){if(maxValue{maxValue=fabs(gDelta_fe[i]);}}if(maxValue{break;}}printf("叠代次数:%d\n",Count_Num);for(i=0;i{printf("节点%d电压为:%10.5f∠%f\n",i+1,sqrt(ge[i]*ge[i]+gf[i]*gf[i]),atan(gf[i]/ge[i])/3.14159*180);}//添加for(i=0;ifor(j=0;j{if(gY_B[i][j]<0)printf("Y(%d,%d)=%f%fj\n",i,j,gY_G[i][j],gY_B[i][j]);elseprintf("Y(%d,%d)=%f+%fj\n",i,j,gY_G[i][j],gY_B[i][j]);}for(i=0;iif(gBus[i].Type==2){a=i;break;}//qiubus2for(i=0;i{Gss+=ge[i]*gY_G[a][i]-gf[i]*gY_B[a][i];Bss+=0-gf[i]*gY_G[a][i]-ge[i]*gY_B[a][i];}z=Gss;Gss=Gss*ge[a]-Bss*gf[a];Bss=gf[a]*z+ge[a]*Bss;printf("平衡节点功率:%f+j%f\n",Gss,Bss);//xiaqiuxianlugonglvfor(i=0;ifor(j=0;j{p[i][j]=0;q[i][j]=0;} for(i=0;ifor(j=0;j{x=0;if(i!=j){for(a=0;a{if(gBranch[a].No_I-1==i&&gBranch[a].No_J-1==j){if(gBranch[a].k==0){y=0;x=gBranch[a].B;}else{y=(1-gBranch[a].k)*gY_G[i][j];x=(1-gBranch[a].k)*gY_B[i][j];}break;}if(gBranch[a].No_I-1==j&&gBranch[a].No_J-1==i){if(gBranch[a].k==0){y=0;x=gBranch[a].B;}else{y=(1-1/gBranch[a].k)*gY_G[i][j];x=(1-1/gBranch[a].k)*gBranch[a].B;}break;}}c=y*ge[i]-ge[i]*gY_G[i][j]-x*gf[i]+gf[i]*gY_B[i][j]+ge[j]*gY_G[i][j]-gf[j]*gY_B[i][j];d=0-y*gf[i]-x*ge[i]+gY_B[i][j]*ge[i]+gf[i]*gY_G[i][j]-ge[j]*gY_B[i][j]-gf[j]*gY_G[i][j];p[i][j]=ge[i]*c-gf[i]*d;q[i][j]=gf[i]*c+ge[i]*d;}if(i==j){for(a=0;a{if((gBranch[a].No_I-1==i)&&(gBranch[a].No_J-1==i)){x=(-1)/gBranch[a].X;break;}elsex=0;}p[i][j]=0;q[i][j]=(ge[i]*ge[i]+gf[i]*gf[i])*x*(-1);}}for(i=0;i{c=0;d=0;{for(j=0;j{c=c+p[i][j];d=d+q[i][j];}printf("校验:%f%f,%f%f\n",gBus[i].GenP-gBus[i].LoadP,c,gBus[i].GenQ-gBus[i].LoadQ,d);}}for(i=0;ifor(j=0;j{if(i!=j){delp[i][j]=p[i][j]+p[j][i];delq[i][j]=q[i][j]+q[j][i];}else{delp[i][i]=p[i][i];delq[i][i]=q[i][i];}}printf("潮流值\n");for(i=0;ifor(j=0;jprintf("线路潮流%d---%d%f+j%f\n",i+1,j+1,p[i][j],q[i][j]);for(i=0;ifor(j=0;jprintf("线路损耗%d--%d%f+j%f\n",i+1,j+1,delp[j][i],delq[j][i]);c=0;d=0;for(i=0;ifor(j=i;j{c+=2*delp[i][j];d+=2*delq[i][j];}printf("线路总损耗:%f+j%f\n",c,d);//addyourcodes//gBus[i].VoltagegY_G[bus1][bus1]gY_B[bus1][bus2]bus1=gBranch[i].No_I-1;bus2=gBranch[i].No_J-1;return0;}
{a=2*i;b=2*j;
{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;
voidGetRevised(int&nBus)
{inti,j,a,b,c;
a=2*nBus-2;
ob1.SetSize(a);
for(i=0;iif(gBus[i/2].Type==2){c=i;break;}for(i=0;ifor(j=0;j{if(j>=c&&i>=c)ob1.Data(i,j)=gJaccobi[i+2][j+2];if(j>=c&&iob1.Data(i,j)=gJaccobi[i][j+2];if(j=c)ob1.Data(i,j)=gJaccobi[i+2][j];if(job1.Data(i,j)=gJaccobi[i][j];}b=c/2;for(i=0;i{if(i{ob1.Value(i*2)=gDelta_P[i];ob1.Value(i*2+1)=gDelta_Q[i];}if(i>=b){ob1.Value(i*2)=gDelta_P[i+1];ob1.Value(i*2+1)=gDelta_Q[i+1];}}ob1.Run();for(i=0;i{if(igDelta_fe[i]=ob1.Value(i);if(i>(c+1)){gDelta_fe[i]=ob1.Value(i-2);}gDelta_fe[c]=0;gDelta_fe[c+1]=0;} //addyourcodesgetit}voidGetNewValue(int&nBus){inti,a;for(i=0;i{a=2*i;gf[i]+=gDelta_fe[a];a+=1;ge[i]+=gDelta_fe[a];}//addyourcodes}intmain(intargc,char*argv[]){inti,Count_Num;floatmaxValue;intnBus,nBranch;intj,a;floatGss=0,Bss=0,z,c,d,x=0,y=0;floatdels[Bus_Num][Bus_Num],p[Bus_Num][Bus_Num],q[Bus_Num][Bus_Num],delp[Bus_Num][Bus_Num],delq[Bus_Num][Bus_Num];//test();GetData(nBus,nBranch);GetYMatrix(nBus,nBranch);SetInitial(nBus);for(Count_Num=0;Count_Num<=20;Count_Num++){GetUnbalance(nBus);GetJaccobi(nBus);GetRevised(nBus);GetNewValue(nBus);maxValue=fabs(gDelta_fe[0]);for(i=1;i<=2*(nBus-1)-1;i++){if(maxValue{maxValue=fabs(gDelta_fe[i]);}}if(maxValue{break;}}printf("叠代次数:%d\n",Count_Num);for(i=0;i{printf("节点%d电压为:%10.5f∠%f\n",i+1,sqrt(ge[i]*ge[i]+gf[i]*gf[i]),atan(gf[i]/ge[i])/3.14159*180);}//添加for(i=0;ifor(j=0;j{if(gY_B[i][j]<0)printf("Y(%d,%d)=%f%fj\n",i,j,gY_G[i][j],gY_B[i][j]);elseprintf("Y(%d,%d)=%f+%fj\n",i,j,gY_G[i][j],gY_B[i][j]);}for(i=0;iif(gBus[i].Type==2){a=i;break;}//qiubus2for(i=0;i{Gss+=ge[i]*gY_G[a][i]-gf[i]*gY_B[a][i];Bss+=0-gf[i]*gY_G[a][i]-ge[i]*gY_B[a][i];}z=Gss;Gss=Gss*ge[a]-Bss*gf[a];Bss=gf[a]*z+ge[a]*Bss;printf("平衡节点功率:%f+j%f\n",Gss,Bss);//xiaqiuxianlugonglvfor(i=0;ifor(j=0;j{p[i][j]=0;q[i][j]=0;} for(i=0;ifor(j=0;j{x=0;if(i!=j){for(a=0;a{if(gBranch[a].No_I-1==i&&gBranch[a].No_J-1==j){if(gBranch[a].k==0){y=0;x=gBranch[a].B;}else{y=(1-gBranch[a].k)*gY_G[i][j];x=(1-gBranch[a].k)*gY_B[i][j];}break;}if(gBranch[a].No_I-1==j&&gBranch[a].No_J-1==i){if(gBranch[a].k==0){y=0;x=gBranch[a].B;}else{y=(1-1/gBranch[a].k)*gY_G[i][j];x=(1-1/gBranch[a].k)*gBranch[a].B;}break;}}c=y*ge[i]-ge[i]*gY_G[i][j]-x*gf[i]+gf[i]*gY_B[i][j]+ge[j]*gY_G[i][j]-gf[j]*gY_B[i][j];d=0-y*gf[i]-x*ge[i]+gY_B[i][j]*ge[i]+gf[i]*gY_G[i][j]-ge[j]*gY_B[i][j]-gf[j]*gY_G[i][j];p[i][j]=ge[i]*c-gf[i]*d;q[i][j]=gf[i]*c+ge[i]*d;}if(i==j){for(a=0;a{if((gBranch[a].No_I-1==i)&&(gBranch[a].No_J-1==i)){x=(-1)/gBranch[a].X;break;}elsex=0;}p[i][j]=0;q[i][j]=(ge[i]*ge[i]+gf[i]*gf[i])*x*(-1);}}for(i=0;i{c=0;d=0;{for(j=0;j{c=c+p[i][j];d=d+q[i][j];}printf("校验:%f%f,%f%f\n",gBus[i].GenP-gBus[i].LoadP,c,gBus[i].GenQ-gBus[i].LoadQ,d);}}for(i=0;ifor(j=0;j{if(i!=j){delp[i][j]=p[i][j]+p[j][i];delq[i][j]=q[i][j]+q[j][i];}else{delp[i][i]=p[i][i];delq[i][i]=q[i][i];}}printf("潮流值\n");for(i=0;ifor(j=0;jprintf("线路潮流%d---%d%f+j%f\n",i+1,j+1,p[i][j],q[i][j]);for(i=0;ifor(j=0;jprintf("线路损耗%d--%d%f+j%f\n",i+1,j+1,delp[j][i],delq[j][i]);c=0;d=0;for(i=0;ifor(j=i;j{c+=2*delp[i][j];d+=2*delq[i][j];}printf("线路总损耗:%f+j%f\n",c,d);//addyourcodes//gBus[i].VoltagegY_G[bus1][bus1]gY_B[bus1][bus2]bus1=gBranch[i].No_I-1;bus2=gBranch[i].No_J-1;return0;}
if(gBus[i/2].Type==2)
{c=i;break;}
for(i=0;ifor(j=0;j{if(j>=c&&i>=c)ob1.Data(i,j)=gJaccobi[i+2][j+2];if(j>=c&&iob1.Data(i,j)=gJaccobi[i][j+2];if(j=c)ob1.Data(i,j)=gJaccobi[i+2][j];if(job1.Data(i,j)=gJaccobi[i][j];}b=c/2;for(i=0;i{if(i{ob1.Value(i*2)=gDelta_P[i];ob1.Value(i*2+1)=gDelta_Q[i];}if(i>=b){ob1.Value(i*2)=gDelta_P[i+1];ob1.Value(i*2+1)=gDelta_Q[i+1];}}ob1.Run();for(i=0;i{if(igDelta_fe[i]=ob1.Value(i);if(i>(c+1)){gDelta_fe[i]=ob1.Value(i-2);}gDelta_fe[c]=0;gDelta_fe[c+1]=0;} //addyourcodesgetit}voidGetNewValue(int&nBus){inti,a;for(i=0;i{a=2*i;gf[i]+=gDelta_fe[a];a+=1;ge[i]+=gDelta_fe[a];}//addyourcodes}intmain(intargc,char*argv[]){inti,Count_Num;floatmaxValue;intnBus,nBranch;intj,a;floatGss=0,Bss=0,z,c,d,x=0,y=0;floatdels[Bus_Num][Bus_Num],p[Bus_Num][Bus_Num],q[Bus_Num][Bus_Num],delp[Bus_Num][Bus_Num],delq[Bus_Num][Bus_Num];//test();GetData(nBus,nBranch);GetYMatrix(nBus,nBranch);SetInitial(nBus);for(Count_Num=0;Count_Num<=20;Count_Num++){GetUnbalance(nBus);GetJaccobi(nBus);GetRevised(nBus);GetNewValue(nBus);maxValue=fabs(gDelta_fe[0]);for(i=1;i<=2*(nBus-1)-1;i++){if(maxValue{maxValue=fabs(gDelta_fe[i]);}}if(maxValue{break;}}printf("叠代次数:%d\n",Count_Num);for(i=0;i{printf("节点%d电压为:%10.5f∠%f\n",i+1,sqrt(ge[i]*ge[i]+gf[i]*gf[i]),atan(gf[i]/ge[i])/3.14159*180);}//添加for(i=0;ifor(j=0;j{if(gY_B[i][j]<0)printf("Y(%d,%d)=%f%fj\n",i,j,gY_G[i][j],gY_B[i][j]);elseprintf("Y(%d,%d)=%f+%fj\n",i,j,gY_G[i][j],gY_B[i][j]);}for(i=0;iif(gBus[i].Type==2){a=i;break;}//qiubus2for(i=0;i{Gss+=ge[i]*gY_G[a][i]-gf[i]*gY_B[a][i];Bss+=0-gf[i]*gY_G[a][i]-ge[i]*gY_B[a][i];}z=Gss;Gss=Gss*ge[a]-Bss*gf[a];Bss=gf[a]*z+ge[a]*Bss;printf("平衡节点功率:%f+j%f\n",Gss,Bss);//xiaqiuxianlugonglvfor(i=0;ifor(j=0;j{p[i][j]=0;q[i][j]=0;} for(i=0;ifor(j=0;j{x=0;if(i!=j){for(a=0;a{if(gBranch[a].No_I-1==i&&gBranch[a].No_J-1==j){if(gBranch[a].k==0){y=0;x=gBranch[a].B;}else{y=(1-gBranch[a].k)*gY_G[i][j];x=(1-gBranch[a].k)*gY_B[i][j];}break;}if(gBranch[a].No_I-1==j&&gBranch[a].No_J-1==i){if(gBranch[a].k==0){y=0;x=gBranch[a].B;}else{y=(1-1/gBranch[a].k)*gY_G[i][j];x=(1-1/gBranch[a].k)*gBranch[a].B;}break;}}c=y*ge[i]-ge[i]*gY_G[i][j]-x*gf[i]+gf[i]*gY_B[i][j]+ge[j]*gY_G[i][j]-gf[j]*gY_B[i][j];d=0-y*gf[i]-x*ge[i]+gY_B[i][j]*ge[i]+gf[i]*gY_G[i][j]-ge[j]*gY_B[i][j]-gf[j]*gY_G[i][j];p[i][j]=ge[i]*c-gf[i]*d;q[i][j]=gf[i]*c+ge[i]*d;}if(i==j){for(a=0;a{if((gBranch[a].No_I-1==i)&&(gBranch[a].No_J-1==i)){x=(-1)/gBranch[a].X;break;}elsex=0;}p[i][j]=0;q[i][j]=(ge[i]*ge[i]+gf[i]*gf[i])*x*(-1);}}for(i=0;i{c=0;d=0;{for(j=0;j{c=c+p[i][j];d=d+q[i][j];}printf("校验:%f%f,%f%f\n",gBus[i].GenP-gBus[i].LoadP,c,gBus[i].GenQ-gBus[i].LoadQ,d);}}for(i=0;ifor(j=0;j{if(i!=j){delp[i][j]=p[i][j]+p[j][i];delq[i][j]=q[i][j]+q[j][i];}else{delp[i][i]=p[i][i];delq[i][i]=q[i][i];}}printf("潮流值\n");for(i=0;ifor(j=0;jprintf("线路潮流%d---%d%f+j%f\n",i+1,j+1,p[i][j],q[i][j]);for(i=0;ifor(j=0;jprintf("线路损耗%d--%d%f+j%f\n",i+1,j+1,delp[j][i],delq[j][i]);c=0;d=0;for(i=0;ifor(j=i;j{c+=2*delp[i][j];d+=2*delq[i][j];}printf("线路总损耗:%f+j%f\n",c,d);//addyourcodes//gBus[i].VoltagegY_G[bus1][bus1]gY_B[bus1][bus2]bus1=gBranch[i].No_I-1;bus2=gBranch[i].No_J-1;return0;}
for(j=0;j{if(j>=c&&i>=c)ob1.Data(i,j)=gJaccobi[i+2][j+2];if(j>=c&&iob1.Data(i,j)=gJaccobi[i][j+2];if(j=c)ob1.Data(i,j)=gJaccobi[i+2][j];if(job1.Data(i,j)=gJaccobi[i][j];}b=c/2;for(i=0;i{if(i{ob1.Value(i*2)=gDelta_P[i];ob1.Value(i*2+1)=gDelta_Q[i];}if(i>=b){ob1.Value(i*2)=gDelta_P[i+1];ob1.Value(i*2+1)=gDelta_Q[i+1];}}ob1.Run();for(i=0;i{if(igDelta_fe[i]=ob1.Value(i);if(i>(c+1)){gDelta_fe[i]=ob1.Value(i-2);}gDelta_fe[c]=0;gDelta_fe[c+1]=0;} //addyourcodesgetit}voidGetNewValue(int&nBus){inti,a;for(i=0;i{a=2*i;gf[i]+=gDelta_fe[a];a+=1;ge[i]+=gDelta_fe[a];}//addyourcodes}intmain(intargc,char*argv[]){inti,Count_Num;floatmaxValue;intnBus,nBranch;intj,a;floatGss=0,Bss=0,z,c,d,x=0,y=0;floatdels[Bus_Num][Bus_Num],p[Bus_Num][Bus_Num],q[Bus_Num][Bus_Num],delp[Bus_Num][Bus_Num],delq[Bus_Num][Bus_Num];//test();GetData(nBus,nBranch);GetYMatrix(nBus,nBranch);SetInitial(nBus);for(Count_Num=0;Count_Num<=20;Count_Num++){GetUnbalance(nBus);GetJaccobi(nBus);GetRevised(nBus);GetNewValue(nBus);maxValue=fabs(gDelta_fe[0]);for(i=1;i<=2*(nBus-1)-1;i++){if(maxValue{maxValue=fabs(gDelta_fe[i]);}}if(maxValue{break;}}printf("叠代次数:%d\n",Count_Num);for(i=0;i{printf("节点%d电压为:%10.5f∠%f\n",i+1,sqrt(ge[i]*ge[i]+gf[i]*gf[i]),atan(gf[i]/ge[i])/3.14159*180);}//添加for(i=0;ifor(j=0;j{if(gY_B[i][j]<0)printf("Y(%d,%d)=%f%fj\n",i,j,gY_G[i][j],gY_B[i][j]);elseprintf("Y(%d,%d)=%f+%fj\n",i,j,gY_G[i][j],gY_B[i][j]);}for(i=0;iif(gBus[i].Type==2){a=i;break;}//qiubus2for(i=0;i{Gss+=ge[i]*gY_G[a][i]-gf[i]*gY_B[a][i];Bss+=0-gf[i]*gY_G[a][i]-ge[i]*gY_B[a][i];}z=Gss;Gss=Gss*ge[a]-Bss*gf[a];Bss=gf[a]*z+ge[a]*Bss;printf("平衡节点功率:%f+j%f\n",Gss,Bss);//xiaqiuxianlugonglvfor(i=0;ifor(j=0;j{p[i][j]=0;q[i][j]=0;} for(i=0;ifor(j=0;j{x=0;if(i!=j){for(a=0;a{if(gBranch[a].No_I-1==i&&gBranch[a].No_J-1==j){if(gBranch[a].k==0){y=0;x=gBranch[a].B;}else{y=(1-gBranch[a].k)*gY_G[i][j];x=(1-gBranch[a].k)*gY_B[i][j];}break;}if(gBranch[a].No_I-1==j&&gBranch[a].No_J-1==i){if(gBranch[a].k==0){y=0;x=gBranch[a].B;}else{y=(1-1/gBranch[a].k)*gY_G[i][j];x=(1-1/gBranch[a].k)*gBranch[a].B;}break;}}c=y*ge[i]-ge[i]*gY_G[i][j]-x*gf[i]+gf[i]*gY_B[i][j]+ge[j]*gY_G[i][j]-gf[j]*gY_B[i][j];d=0-y*gf[i]-x*ge[i]+gY_B[i][j]*ge[i]+gf[i]*gY_G[i][j]-ge[j]*gY_B[i][j]-gf[j]*gY_G[i][j];p[i][j]=ge[i]*c-gf[i]*d;q[i][j]=gf[i]*c+ge[i]*d;}if(i==j){for(a=0;a{if((gBranch[a].No_I-1==i)&&(gBranch[a].No_J-1==i)){x=(-1)/gBranch[a].X;break;}elsex=0;}p[i][j]=0;q[i][j]=(ge[i]*ge[i]+gf[i]*gf[i])*x*(-1);}}for(i=0;i{c=0;d=0;{for(j=0;j{c=c+p[i][j];d=d+q[i][j];}printf("校验:%f%f,%f%f\n",gBus[i].GenP-gBus[i].LoadP,c,gBus[i].GenQ-gBus[i].LoadQ,d);}}for(i=0;ifor(j=0;j{if(i!=j){delp[i][j]=p[i][j]+p[j][i];delq[i][j]=q[i][j]+q[j][i];}else{delp[i][i]=p[i][i];delq[i][i]=q[i][i];}}printf("潮流值\n");for(i=0;ifor(j=0;jprintf("线路潮流%d---%d%f+j%f\n",i+1,j+1,p[i][j],q[i][j]);for(i=0;ifor(j=0;jprintf("线路损耗%d--%d%f+j%f\n",i+1,j+1,delp[j][i],delq[j][i]);c=0;d=0;for(i=0;ifor(j=i;j{c+=2*delp[i][j];d+=2*delq[i][j];}printf("线路总损耗:%f+j%f\n",c,d);//addyourcodes//gBus[i].VoltagegY_G[bus1][bus1]gY_B[bus1][bus2]bus1=gBranch[i].No_I-1;bus2=gBranch[i].No_J-1;return0;}
{if(j>=c&&i>=c)
ob1.Data(i,j)=gJaccobi[i+2][j+2];
if(j>=c&&iob1.Data(i,j)=gJaccobi[i][j+2];if(j=c)ob1.Data(i,j)=gJaccobi[i+2][j];if(job1.Data(i,j)=gJaccobi[i][j];}b=c/2;for(i=0;i{if(i{ob1.Value(i*2)=gDelta_P[i];ob1.Value(i*2+1)=gDelta_Q[i];}if(i>=b){ob1.Value(i*2)=gDelta_P[i+1];ob1.Value(i*2+1)=gDelta_Q[i+1];}}ob1.Run();for(i=0;i{if(igDelta_fe[i]=ob1.Value(i);if(i>(c+1)){gDelta_fe[i]=ob1.Value(i-2);}gDelta_fe[c]=0;gDelta_fe[c+1]=0;} //addyourcodesgetit}voidGetNewValue(int&nBus){inti,a;for(i=0;i{a=2*i;gf[i]+=gDelta_fe[a];a+=1;ge[i]+=gDelta_fe[a];}//addyourcodes}intmain(intargc,char*argv[]){inti,Count_Num;floatmaxValue;intnBus,nBranch;intj,a;floatGss=0,Bss=0,z,c,d,x=0,y=0;floatdels[Bus_Num][Bus_Num],p[Bus_Num][Bus_Num],q[Bus_Num][Bus_Num],delp[Bus_Num][Bus_Num],delq[Bus_Num][Bus_Num];//test();GetData(nBus,nBranch);GetYMatrix(nBus,nBranch);SetInitial(nBus);for(Count_Num=0;Count_Num<=20;Count_Num++){GetUnbalance(nBus);GetJaccobi(nBus);GetRevised(nBus);GetNewValue(nBus);maxValue=fabs(gDelta_fe[0]);for(i=1;i<=2*(nBus-1)-1;i++){if(maxValue{maxValue=fabs(gDelta_fe[i]);}}if(maxValue{break;}}printf("叠代次数:%d\n",Count_Num);for(i=0;i{printf("节点%d电压为:%10.5f∠%f\n",i+1,sqrt(ge[i]*ge[i]+gf[i]*gf[i]),atan(gf[i]/ge[i])/3.14159*180);}//添加for(i=0;ifor(j=0;j{if(gY_B[i][j]<0)printf("Y(%d,%d)=%f%fj\n",i,j,gY_G[i][j],gY_B[i][j]);elseprintf("Y(%d,%d)=%f+%fj\n",i,j,gY_G[i][j],gY_B[i][j]);}for(i=0;iif(gBus[i].Type==2){a=i;break;}//qiubus2for(i=0;i{Gss+=ge[i]*gY_G[a][i]-gf[i]*gY_B[a][i];Bss+=0-gf[i]*gY_G[a][i]-ge[i]*gY_B[a][i];}z=Gss;Gss=Gss*ge[a]-Bss*gf[a];Bss=gf[a]*z+ge[a]*Bss;printf("平衡节点功率:%f+j%f\n",Gss,Bss);//xiaqiuxianlugonglvfor(i=0;ifor(j=0;j{p[i][j]=0;q[i][j]=0;} for(i=0;ifor(j=0;j{x=0;if(i!=j){for(a=0;a{if(gBranch[a].No_I-1==i&&gBranch[a].No_J-1==j){if(gBranch[a].k==0){y=0;x=gBranch[a].B;}else{y=(1-gBranch[a].k)*gY_G[i][j];x=(1-gBranch[a].k)*gY_B[i][j];}break;}if(gBranch[a].No_I-1==j&&gBranch[a].No_J-1==i){if(gBranch[a].k==0){y=0;x=gBranch[a].B;}else{y=(1-1/gBranch[a].k)*gY_G[i][j];x=(1-1/gBranch[a].k)*gBranch[a].B;}break;}}c=y*ge[i]-ge[i]*gY_G[i][j]-x*gf[i]+gf[i]*gY_B[i][j]+ge[j]*gY_G[i][j]-gf[j]*gY_B[i][j];d=0-y*gf[i]-x*ge[i]+gY_B[i][j]*ge[i]+gf[i]*gY_G[i][j]-ge[j]*gY_B[i][j]-gf[j]*gY_G[i][j];p[i][j]=ge[i]*c-gf[i]*d;q[i][j]=gf[i]*c+ge[i]*d;}if(i==j){for(a=0;a{if((gBranch[a].No_I-1==i)&&(gBranch[a].No_J-1==i)){x=(-1)/gBranch[a].X;break;}elsex=0;}p[i][j]=0;q[i][j]=(ge[i]*ge[i]+gf[i]*gf[i])*x*(-1);}}for(i=0;i{c=0;d=0;{for(j=0;j{c=c+p[i][j];d=d+q[i][j];}printf("校验:%f%f,%f%f\n",gBus[i].GenP-gBus[i].LoadP,c,gBus[i].GenQ-gBus[i].LoadQ,d);}}for(i=0;ifor(j=0;j{if(i!=j){delp[i][j]=p[i][j]+p[j][i];delq[i][j]=q[i][j]+q[j][i];}else{delp[i][i]=p[i][i];delq[i][i]=q[i][i];}}printf("潮流值\n");for(i=0;ifor(j=0;jprintf("线路潮流%d---%d%f+j%f\n",i+1,j+1,p[i][j],q[i][j]);for(i=0;ifor(j=0;jprintf("线路损耗%d--%d%f+j%f\n",i+1,j+1,delp[j][i],delq[j][i]);c=0;d=0;for(i=0;ifor(j=i;j{c+=2*delp[i][j];d+=2*delq[i][j];}printf("线路总损耗:%f+j%f\n",c,d);//addyourcodes//gBus[i].VoltagegY_G[bus1][bus1]gY_B[bus1][bus2]bus1=gBranch[i].No_I-1;bus2=gBranch[i].No_J-1;return0;}
ob1.Data(i,j)=gJaccobi[i][j+2];
if(j=c)
ob1.Data(i,j)=gJaccobi[i+2][j];
if(job1.Data(i,j)=gJaccobi[i][j];}b=c/2;for(i=0;i{if(i{ob1.Value(i*2)=gDelta_P[i];ob1.Value(i*2+1)=gDelta_Q[i];}if(i>=b){ob1.Value(i*2)=gDelta_P[i+1];ob1.Value(i*2+1)=gDelta_Q[i+1];}}ob1.Run();for(i=0;i{if(igDelta_fe[i]=ob1.Value(i);if(i>(c+1)){gDelta_fe[i]=ob1.Value(i-2);}gDelta_fe[c]=0;gDelta_fe[c+1]=0;} //addyourcodesgetit}voidGetNewValue(int&nBus){inti,a;for(i=0;i{a=2*i;gf[i]+=gDelta_fe[a];a+=1;ge[i]+=gDelta_fe[a];}//addyourcodes}intmain(intargc,char*argv[]){inti,Count_Num;floatmaxValue;intnBus,nBranch;intj,a;floatGss=0,Bss=0,z,c,d,x=0,y=0;floatdels[Bus_Num][Bus_Num],p[Bus_Num][Bus_Num],q[Bus_Num][Bus_Num],delp[Bus_Num][Bus_Num],delq[Bus_Num][Bus_Num];//test();GetData(nBus,nBranch);GetYMatrix(nBus,nBranch);SetInitial(nBus);for(Count_Num=0;Count_Num<=20;Count_Num++){GetUnbalance(nBus);GetJaccobi(nBus);GetRevised(nBus);GetNewValue(nBus);maxValue=fabs(gDelta_fe[0]);for(i=1;i<=2*(nBus-1)-1;i++){if(maxValue{maxValue=fabs(gDelta_fe[i]);}}if(maxValue{break;}}printf("叠代次数:%d\n",Count_Num);for(i=0;i{printf("节点%d电压为:%10.5f∠%f\n",i+1,sqrt(ge[i]*ge[i]+gf[i]*gf[i]),atan(gf[i]/ge[i])/3.14159*180);}//添加for(i=0;ifor(j=0;j{if(gY_B[i][j]<0)printf("Y(%d,%d)=%f%fj\n",i,j,gY_G[i][j],gY_B[i][j]);elseprintf("Y(%d,%d)=%f+%fj\n",i,j,gY_G[i][j],gY_B[i][j]);}for(i=0;iif(gBus[i].Type==2){a=i;break;}//qiubus2for(i=0;i{Gss+=ge[i]*gY_G[a][i]-gf[i]*gY_B[a][i];Bss+=0-gf[i]*gY_G[a][i]-ge[i]*gY_B[a][i];}z=Gss;Gss=Gss*ge[a]-Bss*gf[a];Bss=gf[a]*z+ge[a]*Bss;printf("平衡节点功率:%f+j%f\n",Gss,Bss);//xiaqiuxianlugonglvfor(i=0;ifor(j=0;j{p[i][j]=0;q[i][j]=0;} for(i=0;ifor(j=0;j{x=0;if(i!=j){for(a=0;a{if(gBranch[a].No_I-1==i&&gBranch[a].No_J-1==j){if(gBranch[a].k==0){y=0;x=gBranch[a].B;}else{y=(1-gBranch[a].k)*gY_G[i][j];x=(1-gBranch[a].k)*gY_B[i][j];}break;}if(gBranch[a].No_I-1==j&&gBranch[a].No_J-1==i){if(gBranch[a].k==0){y=0;x=gBranch[a].B;}else{y=(1-1/gBranch[a].k)*gY_G[i][j];x=(1-1/gBranch[a].k)*gBranch[a].B;}break;}}c=y*ge[i]-ge[i]*gY_G[i][j]-x*gf[i]+gf[i]*gY_B[i][j]+ge[j]*gY_G[i][j]-gf[j]*gY_B[i][j];d=0-y*gf[i]-x*ge[i]+gY_B[i][j]*ge[i]+gf[i]*gY_G[i][j]-ge[j]*gY_B[i][j]-gf[j]*gY_G[i][j];p[i][j]=ge[i]*c-gf[i]*d;q[i][j]=gf[i]*c+ge[i]*d;}if(i==j){for(a=0;a{if((gBranch[a].No_I-1==i)&&(gBranch[a].No_J-1==i)){x=(-1)/gBranch[a].X;break;}elsex=0;}p[i][j]=0;q[i][j]=(ge[i]*ge[i]+gf[i]*gf[i])*x*(-1);}}for(i=0;i{c=0;d=0;{for(j=0;j{c=c+p[i][j];d=d+q[i][j];}printf("校验:%f%f,%f%f\n",gBus[i].GenP-gBus[i].LoadP,c,gBus[i].GenQ-gBus[i].LoadQ,d);}}for(i=0;ifor(j=0;j{if(i!=j){delp[i][j]=p[i][j]+p[j][i];delq[i][j]=q[i][j]+q[j][i];}else{delp[i][i]=p[i][i];delq[i][i]=q[i][i];}}printf("潮流值\n");for(i=0;ifor(j=0;jprintf("线路潮流%d---%d%f+j%f\n",i+1,j+1,p[i][j],q[i][j]);for(i=0;ifor(j=0;jprintf("线路损耗%d--%d%f+j%f\n",i+1,j+1,delp[j][i],delq[j][i]);c=0;d=0;for(i=0;ifor(j=i;j{c+=2*delp[i][j];d+=2*delq[i][j];}printf("线路总损耗:%f+j%f\n",c,d);//addyourcodes//gBus[i].VoltagegY_G[bus1][bus1]gY_B[bus1][bus2]bus1=gBranch[i].No_I-1;bus2=gBranch[i].No_J-1;return0;}
ob1.Data(i,j)=gJaccobi[i][j];
b=c/2;
for(i=0;i{if(i{ob1.Value(i*2)=gDelta_P[i];ob1.Value(i*2+1)=gDelta_Q[i];}if(i>=b){ob1.Value(i*2)=gDelta_P[i+1];ob1.Value(i*2+1)=gDelta_Q[i+1];}}ob1.Run();for(i=0;i{if(igDelta_fe[i]=ob1.Value(i);if(i>(c+1)){gDelta_fe[i]=ob1.Value(i-2);}gDelta_fe[c]=0;gDelta_fe[c+1]=0;} //addyourcodesgetit}voidGetNewValue(int&nBus){inti,a;for(i=0;i{a=2*i;gf[i]+=gDelta_fe[a];a+=1;ge[i]+=gDelta_fe[a];}//addyourcodes}intmain(intargc,char*argv[]){inti,Count_Num;floatmaxValue;intnBus,nBranch;intj,a;floatGss=0,Bss=0,z,c,d,x=0,y=0;floatdels[Bus_Num][Bus_Num],p[Bus_Num][Bus_Num],q[Bus_Num][Bus_Num],delp[Bus_Num][Bus_Num],delq[Bus_Num][Bus_Num];//test();GetData(nBus,nBranch);GetYMatrix(nBus,nBranch);SetInitial(nBus);for(Count_Num=0;Count_Num<=20;Count_Num++){GetUnbalance(nBus);GetJaccobi(nBus);GetRevised(nBus);GetNewValue(nBus);maxValue=fabs(gDelta_fe[0]);for(i=1;i<=2*(nBus-1)-1;i++){if(maxValue{maxValue=fabs(gDelta_fe[i]);}}if(maxValue{break;}}printf("叠代次数:%d\n",Count_Num);for(i=0;i{printf("节点%d电压为:%10.5f∠%f\n",i+1,sqrt(ge[i]*ge[i]+gf[i]*gf[i]),atan(gf[i]/ge[i])/3.14159*180);}//添加for(i=0;ifor(j=0;j{if(gY_B[i][j]<0)printf("Y(%d,%d)=%f%fj\n",i,j,gY_G[i][j],gY_B[i][j]);elseprintf("Y(%d,%d)=%f+%fj\n",i,j,gY_G[i][j],gY_B[i][j]);}for(i=0;iif(gBus[i].Type==2){a=i;break;}//qiubus2for(i=0;i{Gss+=ge[i]*gY_G[a][i]-gf[i]*gY_B[a][i];Bss+=0-gf[i]*gY_G[a][i]-ge[i]*gY_B[a][i];}z=Gss;Gss=Gss*ge[a]-Bss*gf[a];Bss=gf[a]*z+ge[a]*Bss;printf("平衡节点功率:%f+j%f\n",Gss,Bss);//xiaqiuxianlugonglvfor(i=0;ifor(j=0;j{p[i][j]=0;q[i][j]=0;} for(i=0;ifor(j=0;j{x=0;if(i!=j){for(a=0;a{if(gBranch[a].No_I-1==i&&gBranch[a].No_J-1==j){if(gBranch[a].k==0){y=0;x=gBranch[a].B;}else{y=(1-gBranch[a].k)*gY_G[i][j];x=(1-gBranch[a].k)*gY_B[i][j];}break;}if(gBranch[a].No_I-1==j&&gBranch[a].No_J-1==i){if(gBranch[a].k==0){y=0;x=gBranch[a].B;}else{y=(1-1/gBranch[a].k)*gY_G[i][j];x=(1-1/gBranch[a].k)*gBranch[a].B;}break;}}c=y*ge[i]-ge[i]*gY_G[i][j]-x*gf[i]+gf[i]*gY_B[i][j]+ge[j]*gY_G[i][j]-gf[j]*gY_B[i][j];d=0-y*gf[i]-x*ge[i]+gY_B[i][j]*ge[i]+gf[i]*gY_G[i][j]-ge[j]*gY_B[i][j]-gf[j]*gY_G[i][j];p[i][j]=ge[i]*c-gf[i]*d;q[i][j]=gf[i]*c+ge[i]*d;}if(i==j){for(a=0;a{if((gBranch[a].No_I-1==i)&&(gBranch[a].No_J-1==i)){x=(-1)/gBranch[a].X;break;}elsex=0;}p[i][j]=0;q[i][j]=(ge[i]*ge[i]+gf[i]*gf[i])*x*(-1);}}for(i=0;i{c=0;d=0;{for(j=0;j{c=c+p[i][j];d=d+q[i][j];}printf("校验:%f%f,%f%f\n",gBus[i].GenP-gBus[i].LoadP,c,gBus[i].GenQ-gBus[i].LoadQ,d);}}for(i=0;ifor(j=0;j{if(i!=j){delp[i][j]=p[i][j]+p[j][i];delq[i][j]=q[i][j]+q[j][i];}else{delp[i][i]=p[i][i];delq[i][i]=q[i][i];}}printf("潮流值\n");for(i=0;ifor(j=0;jprintf("线路潮流%d---%d%f+j%f\n",i+1,j+1,p[i][j],q[i][j]);for(i=0;ifor(j=0;jprintf("线路损耗%d--%d%f+j%f\n",i+1,j+1,delp[j][i],delq[j][i]);c=0;d=0;for(i=0;ifor(j=i;j{c+=2*delp[i][j];d+=2*delq[i][j];}printf("线路总损耗:%f+j%f\n",c,d);//addyourcodes//gBus[i].VoltagegY_G[bus1][bus1]gY_B[bus1][bus2]bus1=gBranch[i].No_I-1;bus2=gBranch[i].No_J-1;return0;}
{if(i
{ob1.Value(i*2)=gDelta_P[i];
ob1.Value(i*2+1)=gDelta_Q[i];
if(i>=b)
{ob1.Value(i*2)=gDelta_P[i+1];
ob1.Value(i*2+1)=gDelta_Q[i+1];
for(i=0;i{if(igDelta_fe[i]=ob1.Value(i);if(i>(c+1)){gDelta_fe[i]=ob1.Value(i-2);}gDelta_fe[c]=0;gDelta_fe[c+1]=0;} //addyourcodesgetit}voidGetNewValue(int&nBus){inti,a;for(i=0;i{a=2*i;gf[i]+=gDelta_fe[a];a+=1;ge[i]+=gDelta_fe[a];}//addyourcodes}intmain(intargc,char*argv[]){inti,Count_Num;floatmaxValue;intnBus,nBranch;intj,a;floatGss=0,Bss=0,z,c,d,x=0,y=0;floatdels[Bus_Num][Bus_Num],p[Bus_Num][Bus_Num],q[Bus_Num][Bus_Num],delp[Bus_Num][Bus_Num],delq[Bus_Num][Bus_Num];//test();GetData(nBus,nBranch);GetYMatrix(nBus,nBranch);SetInitial(nBus);for(Count_Num=0;Count_Num<=20;Count_Num++){GetUnbalance(nBus);GetJaccobi(nBus);GetRevised(nBus);GetNewValue(nBus);maxValue=fabs(gDelta_fe[0]);for(i=1;i<=2*(nBus-1)-1;i++){if(maxValue{maxValue=fabs(gDelta_fe[i]);}}if(maxValue{break;}}printf("叠代次数:%d\n",Count_Num);for(i=0;i{printf("节点%d电压为:%10.5f∠%f\n",i+1,sqrt(ge[i]*ge[i]+gf[i]*gf[i]),atan(gf[i]/ge[i])/3.14159*180);}//添加for(i=0;ifor(j=0;j{if(gY_B[i][j]<0)printf("Y(%d,%d)=%f%fj\n",i,j,gY_G[i][j],gY_B[i][j]);elseprintf("Y(%d,%d)=%f+%fj\n",i,j,gY_G[i][j],gY_B[i][j]);}for(i=0;iif(gBus[i].Type==2){a=i;break;}//qiubus2for(i=0;i{Gss+=ge[i]*gY_G[a][i]-gf[i]*gY_B[a][i];Bss+=0-gf[i]*gY_G[a][i]-ge[i]*gY_B[a][i];}z=Gss;Gss=Gss*ge[a]-Bss*gf[a];Bss=gf[a]*z+ge[a]*Bss;printf("平衡节点功率:%f+j%f\n",Gss,Bss);//xiaqiuxianlugonglvfor(i=0;ifor(j=0;j{p[i][j]=0;q[i][j]=0;} for(i=0;ifor(j=0;j{x=0;if(i!=j){for(a=0;a{if(gBranch[a].No_I-1==i&&gBranch[a].No_J-1==j){if(gBranch[a].k==0){y=0;x=gBranch[a].B;}else{y=(1-gBranch[a].k)*gY_G[i][j];x=(1-gBranch[a].k)*gY_B[i][j];}break;}if(gBranch[a].No_I-1==j&&gBranch[a].No_J-1==i){if(gBranch[a].k==0){y=0;x=gBranch[a].B;}else{y=(1-1/gBranch[a].k)*gY_G[i][j];x=(1-1/gBranch[a].k)*gBranch[a].B;}break;}}c=y*ge[i]-ge[i]*gY_G[i][j]-x*gf[i]+gf[i]*gY_B[i][j]+ge[j]*gY_G[i][j]-gf[j]*gY_B[i][j];d=0-y*gf[i]-x*ge[i]+gY_B[i][j]*ge[i]+gf[i]*gY_G[i][j]-ge[j]*gY_B[i][j]-gf[j]*gY_G[i][j];p[i][j]=ge[i]*c-gf[i]*d;q[i][j]=gf[i]*c+ge[i]*d;}if(i==j){for(a=0;a{if((gBranch[a].No_I-1==i)&&(gBranch[a].No_J-1==i)){x=(-1)/gBranch[a].X;break;}elsex=0;}p[i][j]=0;q[i][j]=(ge[i]*ge[i]+gf[i]*gf[i])*x*(-1);}}for(i=0;i{c=0;d=0;{for(j=0;j{c=c+p[i][j];d=d+q[i][j];}printf("校验:%f%f,%f%f\n",gBus[i].GenP-gBus[i].LoadP,c,gBus[i].GenQ-gBus[i].LoadQ,d);}}for(i=0;ifor(j=0;j{if(i!=j){delp[i][j]=p[i][j]+p[j][i];delq[i][j]=q[i][j]+q[j][i];}else{delp[i][i]=p[i][i];delq[i][i]=q[i][i];}}printf("潮流值\n");for(i=0;ifor(j=0;jprintf("线路潮流%d---%d%f+j%f\n",i+1,j+1,p[i][j],q[i][j]);for(i=0;ifor(j=0;jprintf("线路损耗%d--%d%f+j%f\n",i+1,j+1,delp[j][i],delq[j][i]);c=0;d=0;for(i=0;ifor(j=i;j{c+=2*delp[i][j];d+=2*delq[i][j];}printf("线路总损耗:%f+j%f\n",c,d);//addyourcodes//gBus[i].VoltagegY_G[bus1][bus1]gY_B[bus1][bus2]bus1=gBranch[i].No_I-1;bus2=gBranch[i].No_J-1;return0;}
{if(igDelta_fe[i]=ob1.Value(i);if(i>(c+1)){gDelta_fe[i]=ob1.Value(i-2);}gDelta_fe[c]=0;gDelta_fe[c+1]=0;} //addyourcodesgetit}voidGetNewValue(int&nBus){inti,a;for(i=0;i{a=2*i;gf[i]+=gDelta_fe[a];a+=1;ge[i]+=gDelta_fe[a];}//addyourcodes}intmain(intargc,char*argv[]){inti,Count_Num;floatmaxValue;intnBus,nBranch;intj,a;floatGss=0,Bss=0,z,c,d,x=0,y=0;floatdels[Bus_Num][Bus_Num],p[Bus_Num][Bus_Num],q[Bus_Num][Bus_Num],delp[Bus_Num][Bus_Num],delq[Bus_Num][Bus_Num];//test();GetData(nBus,nBranch);GetYMatrix(nBus,nBranch);SetInitial(nBus);for(Count_Num=0;Count_Num<=20;Count_Num++){GetUnbalance(nBus);GetJaccobi(nBus);GetRevised(nBus);GetNewValue(nBus);maxValue=fabs(gDelta_fe[0]);for(i=1;i<=2*(nBus-1)-1;i++){if(maxValue{maxValue=fabs(gDelta_fe[i]);}}if(maxValue{break;}}printf("叠代次数:%d\n",Count_Num);for(i=0;i{printf("节点%d电压为:%10.5f∠%f\n",i+1,sqrt(ge[i]*ge[i]+gf[i]*gf[i]),atan(gf[i]/ge[i])/3.14159*180);}//添加for(i=0;ifor(j=0;j{if(gY_B[i][j]<0)printf("Y(%d,%d)=%f%fj\n",i,j,gY_G[i][j],gY_B[i][j]);elseprintf("Y(%d,%d)=%f+%fj\n",i,j,gY_G[i][j],gY_B[i][j]);}for(i=0;iif(gBus[i].Type==2){a=i;break;}//qiubus2for(i=0;i{Gss+=ge[i]*gY_G[a][i]-gf[i]*gY_B[a][i];Bss+=0-gf[i]*gY_G[a][i]-ge[i]*gY_B[a][i];}z=Gss;Gss=Gss*ge[a]-Bss*gf[a];Bss=gf[a]*z+ge[a]*Bss;printf("平衡节点功率:%f+j%f\n",Gss,Bss);//xiaqiuxianlugonglvfor(i=0;ifor(j=0;j{p[i][j]=0;q[i][j]=0;} for(i=0;ifor(j=0;j{x=0;if(i!=j){for(a=0;a{if(gBranch[a].No_I-1==i&&gBranch[a].No_J-1==j){if(gBranch[a].k==0){y=0;x=gBranch[a].B;}else{y=(1-gBranch[a].k)*gY_G[i][j];x=(1-gBranch[a].k)*gY_B[i][j];}break;}if(gBranch[a].No_I-1==j&&gBranch[a].No_J-1==i){if(gBranch[a].k==0){y=0;x=gBranch[a].B;}else{y=(1-1/gBranch[a].k)*gY_G[i][j];x=(1-1/gBranch[a].k)*gBranch[a].B;}break;}}c=y*ge[i]-ge[i]*gY_G[i][j]-x*gf[i]+gf[i]*gY_B[i][j]+ge[j]*gY_G[i][j]-gf[j]*gY_B[i][j];d=0-y*gf[i]-x*ge[i]+gY_B[i][j]*ge[i]+gf[i]*gY_G[i][j]-ge[j]*gY_B[i][j]-gf[j]*gY_G[i][j];p[i][j]=ge[i]*c-gf[i]*d;q[i][j]=gf[i]*c+ge[i]*d;}if(i==j){for(a=0;a{if((gBranch[a].No_I-1==i)&&(gBranch[a].No_J-1==i)){x=(-1)/gBranch[a].X;break;}elsex=0;}p[i][j]=0;q[i][j]=(ge[i]*ge[i]+gf[i]*gf[i])*x*(-1);}}for(i=0;i{c=0;d=0;{for(j=0;j{c=c+p[i][j];d=d+q[i][j];}printf("校验:%f%f,%f%f\n",gBus[i].GenP-gBus[i].LoadP,c,gBus[i].GenQ-gBus[i].LoadQ,d);}}for(i=0;ifor(j=0;j{if(i!=j){delp[i][j]=p[i][j]+p[j][i];delq[i][j]=q[i][j]+q[j][i];}else{delp[i][i]=p[i][i];delq[i][i]=q[i][i];}}printf("潮流值\n");for(i=0;ifor(j=0;jprintf("线路潮流%d---%d%f+j%f\n",i+1,j+1,p[i][j],q[i][j]);for(i=0;ifor(j=0;jprintf("线路损耗%d--%d%f+j%f\n",i+1,j+1,delp[j][i],delq[j][i]);c=0;d=0;for(i=0;ifor(j=i;j{c+=2*delp[i][j];d+=2*delq[i][j];}printf("线路总损耗:%f+j%f\n",c,d);//addyourcodes//gBus[i].VoltagegY_G[bus1][bus1]gY_B[bus1][bus2]bus1=gBranch[i].No_I-1;bus2=gBranch[i].No_J-1;return0;}
gDelta_fe[i]=ob1.Value(i);
if(i>(c+1))
{gDelta_fe[i]=ob1.Value(i-2);
gDelta_fe[c]=0;
gDelta_fe[c+1]=0;
//addyourcodesgetit
voidGetNewValue(int&nBus)
{inti,a;
for(i=0;i{a=2*i;gf[i]+=gDelta_fe[a];a+=1;ge[i]+=gDelta_fe[a];}//addyourcodes}intmain(intargc,char*argv[]){inti,Count_Num;floatmaxValue;intnBus,nBranch;intj,a;floatGss=0,Bss=0,z,c,d,x=0,y=0;floatdels[Bus_Num][Bus_Num],p[Bus_Num][Bus_Num],q[Bus_Num][Bus_Num],delp[Bus_Num][Bus_Num],delq[Bus_Num][Bus_Num];//test();GetData(nBus,nBranch);GetYMatrix(nBus,nBranch);SetInitial(nBus);for(Count_Num=0;Count_Num<=20;Count_Num++){GetUnbalance(nBus);GetJaccobi(nBus);GetRevised(nBus);GetNewValue(nBus);maxValue=fabs(gDelta_fe[0]);for(i=1;i<=2*(nBus-1)-1;i++){if(maxValue{maxValue=fabs(gDelta_fe[i]);}}if(maxValue{break;}}printf("叠代次数:%d\n",Count_Num);for(i=0;i{printf("节点%d电压为:%10.5f∠%f\n",i+1,sqrt(ge[i]*ge[i]+gf[i]*gf[i]),atan(gf[i]/ge[i])/3.14159*180);}//添加for(i=0;ifor(j=0;j{if(gY_B[i][j]<0)printf("Y(%d,%d)=%f%fj\n",i,j,gY_G[i][j],gY_B[i][j]);elseprintf("Y(%d,%d)=%f+%fj\n",i,j,gY_G[i][j],gY_B[i][j]);}for(i=0;iif(gBus[i].Type==2){a=i;break;}//qiubus2for(i=0;i{Gss+=ge[i]*gY_G[a][i]-gf[i]*gY_B[a][i];Bss+=0-gf[i]*gY_G[a][i]-ge[i]*gY_B[a][i];}z=Gss;Gss=Gss*ge[a]-Bss*gf[a];Bss=gf[a]*z+ge[a]*Bss;printf("平衡节点功率:%f+j%f\n",Gss,Bss);//xiaqiuxianlugonglvfor(i=0;ifor(j=0;j{p[i][j]=0;q[i][j]=0;} for(i=0;ifor(j=0;j{x=0;if(i!=j){for(a=0;a{if(gBranch[a].No_I-1==i&&gBranch[a].No_J-1==j){if(gBranch[a].k==0){y=0;x=gBranch[a].B;}else{y=(1-gBranch[a].k)*gY_G[i][j];x=(1-gBranch[a].k)*gY_B[i][j];}break;}if(gBranch[a].No_I-1==j&&gBranch[a].No_J-1==i){if(gBranch[a].k==0){y=0;x=gBranch[a].B;}else{y=(1-1/gBranch[a].k)*gY_G[i][j];x=(1-1/gBranch[a].k)*gBranch[a].B;}break;}}c=y*ge[i]-ge[i]*gY_G[i][j]-x*gf[i]+gf[i]*gY_B[i][j]+ge[j]*gY_G[i][j]-gf[j]*gY_B[i][j];d=0-y*gf[i]-x*ge[i]+gY_B[i][j]*ge[i]+gf[i]*gY_G[i][j]-ge[j]*gY_B[i][j]-gf[j]*gY_G[i][j];p[i][j]=ge[i]*c-gf[i]*d;q[i][j]=gf[i]*c+ge[i]*d;}if(i==j){for(a=0;a{if((gBranch[a].No_I-1==i)&&(gBranch[a].No_J-1==i)){x=(-1)/gBranch[a].X;break;}elsex=0;}p[i][j]=0;q[i][j]=(ge[i]*ge[i]+gf[i]*gf[i])*x*(-1);}}for(i=0;i{c=0;d=0;{for(j=0;j{c=c+p[i][j];d=d+q[i][j];}printf("校验:%f%f,%f%f\n",gBus[i].GenP-gBus[i].LoadP,c,gBus[i].GenQ-gBus[i].LoadQ,d);}}for(i=0;ifor(j=0;j{if(i!=j){delp[i][j]=p[i][j]+p[j][i];delq[i][j]=q[i][j]+q[j][i];}else{delp[i][i]=p[i][i];delq[i][i]=q[i][i];}}printf("潮流值\n");for(i=0;ifor(j=0;jprintf("线路潮流%d---%d%f+j%f\n",i+1,j+1,p[i][j],q[i][j]);for(i=0;ifor(j=0;jprintf("线路损耗%d--%d%f+j%f\n",i+1,j+1,delp[j][i],delq[j][i]);c=0;d=0;for(i=0;ifor(j=i;j{c+=2*delp[i][j];d+=2*delq[i][j];}printf("线路总损耗:%f+j%f\n",c,d);//addyourcodes//gBus[i].VoltagegY_G[bus1][bus1]gY_B[bus1][bus2]bus1=gBranch[i].No_I-1;bus2=gBranch[i].No_J-1;return0;}
a=2*i;
gf[i]+=gDelta_fe[a];
a+=1;
ge[i]+=gDelta_fe[a];
intmain(intargc,char*argv[])
inti,Count_Num;
floatmaxValue;
intnBus,nBranch;
intj,a;
floatGss=0,Bss=0,z,c,d,x=0,y=0;
floatdels[Bus_Num][Bus_Num],p[Bus_Num][Bus_Num],q[Bus_Num][Bus_Num],delp[Bus_Num][Bus_Num],delq[Bus_Num][Bus_Num];
//test();
GetData(nBus,nBranch);
GetYMatrix(nBus,nBranch);
SetInitial(nBus);
for(Count_Num=0;Count_Num<=20;Count_Num++)
GetUnbalance(nBus);
GetJaccobi(nBus);
GetRevised(nBus);
GetNewValue(nBus);
maxValue=fabs(gDelta_fe[0]);
for(i=1;i<=2*(nBus-1)-1;i++)
if(maxValue{maxValue=fabs(gDelta_fe[i]);}}if(maxValue{break;}}printf("叠代次数:%d\n",Count_Num);for(i=0;i{printf("节点%d电压为:%10.5f∠%f\n",i+1,sqrt(ge[i]*ge[i]+gf[i]*gf[i]),atan(gf[i]/ge[i])/3.14159*180);}//添加for(i=0;ifor(j=0;j{if(gY_B[i][j]<0)printf("Y(%d,%d)=%f%fj\n",i,j,gY_G[i][j],gY_B[i][j]);elseprintf("Y(%d,%d)=%f+%fj\n",i,j,gY_G[i][j],gY_B[i][j]);}for(i=0;iif(gBus[i].Type==2){a=i;break;}//qiubus2for(i=0;i{Gss+=ge[i]*gY_G[a][i]-gf[i]*gY_B[a][i];Bss+=0-gf[i]*gY_G[a][i]-ge[i]*gY_B[a][i];}z=Gss;Gss=Gss*ge[a]-Bss*gf[a];Bss=gf[a]*z+ge[a]*Bss;printf("平衡节点功率:%f+j%f\n",Gss,Bss);//xiaqiuxianlugonglvfor(i=0;ifor(j=0;j{p[i][j]=0;q[i][j]=0;} for(i=0;ifor(j=0;j{x=0;if(i!=j){for(a=0;a{if(gBranch[a].No_I-1==i&&gBranch[a].No_J-1==j){if(gBranch[a].k==0){y=0;x=gBranch[a].B;}else{y=(1-gBranch[a].k)*gY_G[i][j];x=(1-gBranch[a].k)*gY_B[i][j];}break;}if(gBranch[a].No_I-1==j&&gBranch[a].No_J-1==i){if(gBranch[a].k==0){y=0;x=gBranch[a].B;}else{y=(1-1/gBranch[a].k)*gY_G[i][j];x=(1-1/gBranch[a].k)*gBranch[a].B;}break;}}c=y*ge[i]-ge[i]*gY_G[i][j]-x*gf[i]+gf[i]*gY_B[i][j]+ge[j]*gY_G[i][j]-gf[j]*gY_B[i][j];d=0-y*gf[i]-x*ge[i]+gY_B[i][j]*ge[i]+gf[i]*gY_G[i][j]-ge[j]*gY_B[i][j]-gf[j]*gY_G[i][j];p[i][j]=ge[i]*c-gf[i]*d;q[i][j]=gf[i]*c+ge[i]*d;}if(i==j){for(a=0;a{if((gBranch[a].No_I-1==i)&&(gBranch[a].No_J-1==i)){x=(-1)/gBranch[a].X;break;}elsex=0;}p[i][j]=0;q[i][j]=(ge[i]*ge[i]+gf[i]*gf[i])*x*(-1);}}for(i=0;i{c=0;d=0;{for(j=0;j{c=c+p[i][j];d=d+q[i][j];}printf("校验:%f%f,%f%f\n",gBus[i].GenP-gBus[i].LoadP,c,gBus[i].GenQ-gBus[i].LoadQ,d);}}for(i=0;ifor(j=0;j{if(i!=j){delp[i][j]=p[i][j]+p[j][i];delq[i][j]=q[i][j]+q[j][i];}else{delp[i][i]=p[i][i];delq[i][i]=q[i][i];}}printf("潮流值\n");for(i=0;ifor(j=0;jprintf("线路潮流%d---%d%f+j%f\n",i+1,j+1,p[i][j],q[i][j]);for(i=0;ifor(j=0;jprintf("线路损耗%d--%d%f+j%f\n",i+1,j+1,delp[j][i],delq[j][i]);c=0;d=0;for(i=0;ifor(j=i;j{c+=2*delp[i][j];d+=2*delq[i][j];}printf("线路总损耗:%f+j%f\n",c,d);//addyourcodes//gBus[i].VoltagegY_G[bus1][bus1]gY_B[bus1][bus2]bus1=gBranch[i].No_I-1;bus2=gBranch[i].No_J-1;return0;}
maxValue=fabs(gDelta_fe[i]);
if(maxValue{break;}}printf("叠代次数:%d\n",Count_Num);for(i=0;i{printf("节点%d电压为:%10.5f∠%f\n",i+1,sqrt(ge[i]*ge[i]+gf[i]*gf[i]),atan(gf[i]/ge[i])/3.14159*180);}//添加for(i=0;ifor(j=0;j{if(gY_B[i][j]<0)printf("Y(%d,%d)=%f%fj\n",i,j,gY_G[i][j],gY_B[i][j]);elseprintf("Y(%d,%d)=%f+%fj\n",i,j,gY_G[i][j],gY_B[i][j]);}for(i=0;iif(gBus[i].Type==2){a=i;break;}//qiubus2for(i=0;i{Gss+=ge[i]*gY_G[a][i]-gf[i]*gY_B[a][i];Bss+=0-gf[i]*gY_G[a][i]-ge[i]*gY_B[a][i];}z=Gss;Gss=Gss*ge[a]-Bss*gf[a];Bss=gf[a]*z+ge[a]*Bss;printf("平衡节点功率:%f+j%f\n",Gss,Bss);//xiaqiuxianlugonglvfor(i=0;ifor(j=0;j{p[i][j]=0;q[i][j]=0;} for(i=0;ifor(j=0;j{x=0;if(i!=j){for(a=0;a{if(gBranch[a].No_I-1==i&&gBranch[a].No_J-1==j){if(gBranch[a].k==0){y=0;x=gBranch[a].B;}else{y=(1-gBranch[a].k)*gY_G[i][j];x=(1-gBranch[a].k)*gY_B[i][j];}break;}if(gBranch[a].No_I-1==j&&gBranch[a].No_J-1==i){if(gBranch[a].k==0){y=0;x=gBranch[a].B;}else{y=(1-1/gBranch[a].k)*gY_G[i][j];x=(1-1/gBranch[a].k)*gBranch[a].B;}break;}}c=y*ge[i]-ge[i]*gY_G[i][j]-x*gf[i]+gf[i]*gY_B[i][j]+ge[j]*gY_G[i][j]-gf[j]*gY_B[i][j];d=0-y*gf[i]-x*ge[i]+gY_B[i][j]*ge[i]+gf[i]*gY_G[i][j]-ge[j]*gY_B[i][j]-gf[j]*gY_G[i][j];p[i][j]=ge[i]*c-gf[i]*d;q[i][j]=gf[i]*c+ge[i]*d;}if(i==j){for(a=0;a{if((gBranch[a].No_I-1==i)&&(gBranch[a].No_J-1==i)){x=(-1)/gBranch[a].X;break;}elsex=0;}p[i][j]=0;q[i][j]=(ge[i]*ge[i]+gf[i]*gf[i])*x*(-1);}}for(i=0;i{c=0;d=0;{for(j=0;j{c=c+p[i][j];d=d+q[i][j];}printf("校验:%f%f,%f%f\n",gBus[i].GenP-gBus[i].LoadP,c,gBus[i].GenQ-gBus[i].LoadQ,d);}}for(i=0;ifor(j=0;j{if(i!=j){delp[i][j]=p[i][j]+p[j][i];delq[i][j]=q[i][j]+q[j][i];}else{delp[i][i]=p[i][i];delq[i][i]=q[i][i];}}printf("潮流值\n");for(i=0;ifor(j=0;jprintf("线路潮流%d---%d%f+j%f\n",i+1,j+1,p[i][j],q[i][j]);for(i=0;ifor(j=0;jprintf("线路损耗%d--%d%f+j%f\n",i+1,j+1,delp[j][i],delq[j][i]);c=0;d=0;for(i=0;ifor(j=i;j{c+=2*delp[i][j];d+=2*delq[i][j];}printf("线路总损耗:%f+j%f\n",c,d);//addyourcodes//gBus[i].VoltagegY_G[bus1][bus1]gY_B[bus1][bus2]bus1=gBranch[i].No_I-1;bus2=gBranch[i].No_J-1;return0;}
break;
printf("叠代次数:
%d\n",Count_Num);
for(i=0;i{printf("节点%d电压为:%10.5f∠%f\n",i+1,sqrt(ge[i]*ge[i]+gf[i]*gf[i]),atan(gf[i]/ge[i])/3.14159*180);}//添加for(i=0;ifor(j=0;j{if(gY_B[i][j]<0)printf("Y(%d,%d)=%f%fj\n",i,j,gY_G[i][j],gY_B[i][j]);elseprintf("Y(%d,%d)=%f+%fj\n",i,j,gY_G[i][j],gY_B[i][j]);}for(i=0;iif(gBus[i].Type==2){a=i;break;}//qiubus2for(i=0;i{Gss+=ge[i]*gY_G[a][i]-gf[i]*gY_B[a][i];Bss+=0-gf[i]*gY_G[a][i]-ge[i]*gY_B[a][i];}z=Gss;Gss=Gss*ge[a]-Bss*gf[a];Bss=gf[a]*z+ge[a]*Bss;printf("平衡节点功率:%f+j%f\n",Gss,Bss);//xiaqiuxianlugonglvfor(i=0;ifor(j=0;j{p[i][j]=0;q[i][j]=0;} for(i=0;ifor(j=0;j{x=0;if(i!=j){for(a=0;a{if(gBranch[a].No_I-1==i&&gBranch[a].No_J-1==j){if(gBranch[a].k==0){y=0;x=gBranch[a].B;}else{y=(1-gBranch[a].k)*gY_G[i][j];x=(1-gBranch[a].k)*gY_B[i][j];}break;}if(gBranch[a].No_I-1==j&&gBranch[a].No_J-1==i){if(gBranch[a].k==0){y=0;x=gBranch[a].B;}else{y=(1-1/gBranch[a].k)*gY_G[i][j];x=(1-1/gBranch[a].k)*gBranch[a].B;}break;}}c=y*ge[i]-ge[i]*gY_G[i][j]-x*gf[i]+gf[i]*gY_B[i][j]+ge[j]*gY_G[i][j]-gf[j]*gY_B[i][j];d=0-y*gf[i]-x*ge[i]+gY_B[i][j]*ge[i]+gf[i]*gY_G[i][j]-ge[j]*gY_B[i][j]-gf[j]*gY_G[i][j];p[i][j]=ge[i]*c-gf[i]*d;q[i][j]=gf[i]*c+ge[i]*d;}if(i==j){for(a=0;a{if((gBranch[a].No_I-1==i)&&(gBranch[a].No_J-1==i)){x=(-1)/gBranch[a].X;break;}elsex=0;}p[i][j]=0;q[i][j]=(ge[i]*ge[i]+gf[i]*gf[i])*x*(-1);}}for(i=0;i{c=0;d=0;{for(j=0;j{c=c+p[i][j];d=d+q[i][j];}printf("校验:%f%f,%f%f\n",gBus[i].GenP-gBus[i].LoadP,c,gBus[i].GenQ-gBus[i].LoadQ,d);}}for(i=0;ifor(j=0;j{if(i!=j){delp[i][j]=p[i][j]+p[j][i];delq[i][j]=q[i][j]+q[j][i];}else{delp[i][i]=p[i][i];delq[i][i]=q[i][i];}}printf("潮流值\n");for(i=0;ifor(j=0;jprintf("线路潮流%d---%d%f+j%f\n",i+1,j+1,p[i][j],q[i][j]);for(i=0;ifor(j=0;jprintf("线路损耗%d--%d%f+j%f\n",i+1,j+1,delp[j][i],delq[j][i]);c=0;d=0;for(i=0;ifor(j=i;j{c+=2*delp[i][j];d+=2*delq[i][j];}printf("线路总损耗:%f+j%f\n",c,d);//addyourcodes//gBus[i].VoltagegY_G[bus1][bus1]gY_B[bus1][bus2]bus1=gBranch[i].No_I-1;bus2=gBranch[i].No_J-1;return0;}
printf("节点%d电压为:
%10.5f∠%f\n",i+1,sqrt(ge[i]*ge[i]+gf[i]*gf[i]),atan(gf[i]/ge[i])/3.14159*180);
//添加
for(i=0;ifor(j=0;j{if(gY_B[i][j]<0)printf("Y(%d,%d)=%f%fj\n",i,j,gY_G[i][j],gY_B[i][j]);elseprintf("Y(%d,%d)=%f+%fj\n",i,j,gY_G[i][j],gY_B[i][j]);}for(i=0;iif(gBus[i].Type==2){a=i;break;}//qiubus2for(i=0;i{Gss+=ge[i]*gY_G[a][i]-gf[i]*gY_B[a][i];Bss+=0-gf[i]*gY_G[a][i]-ge[i]*gY_B[a][i];}z=Gss;Gss=Gss*ge[a]-Bss*gf[a];Bss=gf[a]*z+ge[a]*Bss;printf("平衡节点功率:%f+j%f\n",Gss,Bss);//xiaqiuxianlugonglvfor(i=0;ifor(j=0;j{p[i][j]=0;q[i][j]=0;} for(i=0;ifor(j=0;j{x=0;if(i!=j){for(a=0;a{if(gBranch[a].No_I-1==i&&gBranch[a].No_J-1==j){if(gBranch[a].k==0){y=0;x=gBranch[a].B;}else{y=(1-gBranch[a].k)*gY_G[i][j];x=(1-gBranch[a].k)*gY_B[i][j];}break;}if(gBranch[a].No_I-1==j&&gBranch[a].No_J-1==i){if(gBranch[a].k==0){y=0;x=gBranch[a].B;}else{y=(1-1/gBranch[a].k)*gY_G[i][j];x=(1-1/gBranch[a].k)*gBranch[a].B;}break;}}c=y*ge[i]-ge[i]*gY_G[i][j]-x*gf[i]+gf[i]*gY_B[i][j]+ge[j]*gY_G[i][j]-gf[j]*gY_B[i][j];d=0-y*gf[i]-x*ge[i]+gY_B[i][j]*ge[i]+gf[i]*gY_G[i][j]-ge[j]*gY_B[i][j]-gf[j]*gY_G[i][j];p[i][j]=ge[i]*c-gf[i]*d;q[i][j]=gf[i]*c+ge[i]*d;}if(i==j){for(a=0;a{if((gBranch[a].No_I-1==i)&&(gBranch[a].No_J-1==i)){x=(-1)/gBranch[a].X;break;}elsex=0;}p[i][j]=0;q[i][j]=(ge[i]*ge[i]+gf[i]*gf[i])*x*(-1);}}for(i=0;i{c=0;d=0;{for(j=0;j{c=c+p[i][j];d=d+q[i][j];}printf("校验:%f%f,%f%f\n",gBus[i].GenP-gBus[i].LoadP,c,gBus[i].GenQ-gBus[i].LoadQ,d);}}for(i=0;ifor(j=0;j{if(i!=j){delp[i][j]=p[i][j]+p[j][i];delq[i][j]=q[i][j]+q[j][i];}else{delp[i][i]=p[i][i];delq[i][i]=q[i][i];}}printf("潮流值\n");for(i=0;ifor(j=0;jprintf("线路潮流%d---%d%f+j%f\n",i+1,j+1,p[i][j],q[i][j]);for(i=0;ifor(j=0;jprintf("线路损耗%d--%d%f+j%f\n",i+1,j+1,delp[j][i],delq[j][i]);c=0;d=0;for(i=0;ifor(j=i;j{c+=2*delp[i][j];d+=2*delq[i][j];}printf("线路总损耗:%f+j%f\n",c,d);//addyourcodes//gBus[i].VoltagegY_G[bus1][bus1]gY_B[bus1][bus2]bus1=gBranch[i].No_I-1;bus2=gBranch[i].No_J-1;return0;}
for(j=0;j{if(gY_B[i][j]<0)printf("Y(%d,%d)=%f%fj\n",i,j,gY_G[i][j],gY_B[i][j]);elseprintf("Y(%d,%d)=%f+%fj\n",i,j,gY_G[i][j],gY_B[i][j]);}for(i=0;iif(gBus[i].Type==2){a=i;break;}//qiubus2for(i=0;i{Gss+=ge[i]*gY_G[a][i]-gf[i]*gY_B[a][i];Bss+=0-gf[i]*gY_G[a][i]-ge[i]*gY_B[a][i];}z=Gss;Gss=Gss*ge[a]-Bss*gf[a];Bss=gf[a]*z+ge[a]*Bss;printf("平衡节点功率:%f+j%f\n",Gss,Bss);//xiaqiuxianlugonglvfor(i=0;ifor(j=0;j{p[i][j]=0;q[i][j]=0;} for(i=0;ifor(j=0;j{x=0;if(i!=j){for(a=0;a{if(gBranch[a].No_I-1==i&&gBranch[a].No_J-1==j){if(gBranch[a].k==0){y=0;x=gBranch[a].B;}else{y=(1-gBranch[a].k)*gY_G[i][j];x=(1-gBranch[a].k)*gY_B[i][j];}break;}if(gBranch[a].No_I-1==j&&gBranch[a].No_J-1==i){if(gBranch[a].k==0){y=0;x=gBranch[a].B;}else{y=(1-1/gBranch[a].k)*gY_G[i][j];x=(1-1/gBranch[a].k)*gBranch[a].B;}break;}}c=y*ge[i]-ge[i]*gY_G[i][j]-x*gf[i]+gf[i]*gY_B[i][j]+ge[j]*gY_G[i][j]-gf[j]*gY_B[i][j];d=0-y*gf[i]-x*ge[i]+gY_B[i][j]*ge[i]+gf[i]*gY_G[i][j]-ge[j]*gY_B[i][j]-gf[j]*gY_G[i][j];p[i][j]=ge[i]*c-gf[i]*d;q[i][j]=gf[i]*c+ge[i]*d;}if(i==j){for(a=0;a{if((gBranch[a].No_I-1==i)&&(gBranch[a].No_J-1==i)){x=(-1)/gBranch[a].X;break;}elsex=0;}p[i][j]=0;q[i][j]=(ge[i]*ge[i]+gf[i]*gf[i])*x*(-1);}}for(i=0;i{c=0;d=0;{for(j=0;j{c=c+p[i][j];d=d+q[i][j];}printf("校验:%f%f,%f%f\n",gBus[i].GenP-gBus[i].LoadP,c,gBus[i].GenQ-gBus[i].LoadQ,d);}}for(i=0;ifor(j=0;j{if(i!=j){delp[i][j]=p[i][j]+p[j][i];delq[i][j]=q[i][j]+q[j][i];}else{delp[i][i]=p[i][i];delq[i][i]=q[i][i];}}printf("潮流值\n");for(i=0;ifor(j=0;jprintf("线路潮流%d---%d%f+j%f\n",i+1,j+1,p[i][j],q[i][j]);for(i=0;ifor(j=0;jprintf("线路损耗%d--%d%f+j%f\n",i+1,j+1,delp[j][i],delq[j][i]);c=0;d=0;for(i=0;ifor(j=i;j{c+=2*delp[i][j];d+=2*delq[i][j];}printf("线路总损耗:%f+j%f\n",c,d);//addyourcodes//gBus[i].VoltagegY_G[bus1][bus1]gY_B[bus1][bus2]bus1=gBranch[i].No_I-1;bus2=gBranch[i].No_J-1;return0;}
{if(gY_B[i][j]<0)printf("Y(%d,%d)=%f%fj\n",i,j,gY_G[i][j],gY_B[i][j]);elseprintf("Y(%d,%d)=%f+%fj\n",i,j,gY_G[i][j],gY_B[i][j]);
for(i=0;iif(gBus[i].Type==2){a=i;break;}//qiubus2for(i=0;i{Gss+=ge[i]*gY_G[a][i]-gf[i]*gY_B[a][i];Bss+=0-gf[i]*gY_G[a][i]-ge[i]*gY_B[a][i];}z=Gss;Gss=Gss*ge[a]-Bss*gf[a];Bss=gf[a]*z+ge[a]*Bss;printf("平衡节点功率:%f+j%f\n",Gss,Bss);//xiaqiuxianlugonglvfor(i=0;ifor(j=0;j{p[i][j]=0;q[i][j]=0;} for(i=0;ifor(j=0;j{x=0;if(i!=j){for(a=0;a{if(gBranch[a].No_I-1==i&&gBranch[a].No_J-1==j){if(gBranch[a].k==0){y=0;x=gBranch[a].B;}else{y=(1-gBranch[a].k)*gY_G[i][j];x=(1-gBranch[a].k)*gY_B[i][j];}break;}if(gBranch[a].No_I-1==j&&gBranch[a].No_J-1==i){if(gBranch[a].k==0){y=0;x=gBranch[a].B;}else{y=(1-1/gBranch[a].k)*gY_G[i][j];x=(1-1/gBranch[a].k)*gBranch[a].B;}break;}}c=y*ge[i]-ge[i]*gY_G[i][j]-x*gf[i]+gf[i]*gY_B[i][j]+ge[j]*gY_G[i][j]-gf[j]*gY_B[i][j];d=0-y*gf[i]-x*ge[i]+gY_B[i][j]*ge[i]+gf[i]*gY_G[i][j]-ge[j]*gY_B[i][j]-gf[j]*gY_G[i][j];p[i][j]=ge[i]*c-gf[i]*d;q[i][j]=gf[i]*c+ge[i]*d;}if(i==j){for(a=0;a{if((gBranch[a].No_I-1==i)&&(gBranch[a].No_J-1==i)){x=(-1)/gBranch[a].X;break;}elsex=0;}p[i][j]=0;q[i][j]=(ge[i]*ge[i]+gf[i]*gf[i])*x*(-1);}}for(i=0;i{c=0;d=0;{for(j=0;j{c=c+p[i][j];d=d+q[i][j];}printf("校验:%f%f,%f%f\n",gBus[i].GenP-gBus[i].LoadP,c,gBus[i].GenQ-gBus[i].LoadQ,d);}}for(i=0;ifor(j=0;j{if(i!=j){delp[i][j]=p[i][j]+p[j][i];delq[i][j]=q[i][j]+q[j][i];}else{delp[i][i]=p[i][i];delq[i][i]=q[i][i];}}printf("潮流值\n");for(i=0;ifor(j=0;jprintf("线路潮流%d---%d%f+j%f\n",i+1,j+1,p[i][j],q[i][j]);for(i=0;ifor(j=0;jprintf("线路损耗%d--%d%f+j%f\n",i+1,j+1,delp[j][i],delq[j][i]);c=0;d=0;for(i=0;ifor(j=i;j{c+=2*delp[i][j];d+=2*delq[i][j];}printf("线路总损耗:%f+j%f\n",c,d);//addyourcodes//gBus[i].VoltagegY_G[bus1][bus1]gY_B[bus1][bus2]bus1=gBranch[i].No_I-1;bus2=gBranch[i].No_J-1;return0;}
{a=i;break;}
//qiubus2
for(i=0;i{Gss+=ge[i]*gY_G[a][i]-gf[i]*gY_B[a][i];Bss+=0-gf[i]*gY_G[a][i]-ge[i]*gY_B[a][i];}z=Gss;Gss=Gss*ge[a]-Bss*gf[a];Bss=gf[a]*z+ge[a]*Bss;printf("平衡节点功率:%f+j%f\n",Gss,Bss);//xiaqiuxianlugonglvfor(i=0;ifor(j=0;j{p[i][j]=0;q[i][j]=0;} for(i=0;ifor(j=0;j{x=0;if(i!=j){for(a=0;a{if(gBranch[a].No_I-1==i&&gBranch[a].No_J-1==j){if(gBranch[a].k==0){y=0;x=gBranch[a].B;}else{y=(1-gBranch[a].k)*gY_G[i][j];x=(1-gBranch[a].k)*gY_B[i][j];}break;}if(gBranch[a].No_I-1==j&&gBranch[a].No_J-1==i){if(gBranch[a].k==0){y=0;x=gBranch[a].B;}else{y=(1-1/gBranch[a].k)*gY_G[i][j];x=(1-1/gBranch[a].k)*gBranch[a].B;}break;}}c=y*ge[i]-ge[i]*gY_G[i][j]-x*gf[i]+gf[i]*gY_B[i][j]+ge[j]*gY_G[i][j]-gf[j]*gY_B[i][j];d=0-y*gf[i]-x*ge[i]+gY_B[i][j]*ge[i]+gf[i]*gY_G[i][j]-ge[j]*gY_B[i][j]-gf[j]*gY_G[i][j];p[i][j]=ge[i]*c-gf[i]*d;q[i][j]=gf[i]*c+ge[i]*d;}if(i==j){for(a=0;a{if((gBranch[a].No_I-1==i)&&(gBranch[a].No_J-1==i)){x=(-1)/gBranch[a].X;break;}elsex=0;}p[i][j]=0;q[i][j]=(ge[i]*ge[i]+gf[i]*gf[i])*x*(-1);}}for(i=0;i{c=0;d=0;{for(j=0;j{c=c+p[i][j];d=d+q[i][j];}printf("校验:%f%f,%f%f\n",gBus[i].GenP-gBus[i].LoadP,c,gBus[i].GenQ-gBus[i].LoadQ,d);}}for(i=0;ifor(j=0;j{if(i!=j){delp[i][j]=p[i][j]+p[j][i];delq[i][j]=q[i][j]+q[j][i];}else{delp[i][i]=p[i][i];delq[i][i]=q[i][i];}}printf("潮流值\n");for(i=0;ifor(j=0;jprintf("线路潮流%d---%d%f+j%f\n",i+1,j+1,p[i][j],q[i][j]);for(i=0;ifor(j=0;jprintf("线路损耗%d--%d%f+j%f\n",i+1,j+1,delp[j][i],delq[j][i]);c=0;d=0;for(i=0;ifor(j=i;j{c+=2*delp[i][j];d+=2*delq[i][j];}printf("线路总损耗:%f+j%f\n",c,d);//addyourcodes//gBus[i].VoltagegY_G[bus1][bus1]gY_B[bus1][bus2]bus1=gBranch[i].No_I-1;bus2=gBranch[i].No_J-1;return0;}
{Gss+=ge[i]*gY_G[a][i]-gf[i]*gY_B[a][i];Bss+=0-gf[i]*gY_G[a][i]-ge[i]*gY_B[a][i];
z=Gss;Gss=Gss*ge[a]-Bss*gf[a];Bss=gf[a]*z+ge[a]*Bss;
printf("平衡节点功率:
%f+j%f\n",Gss,Bss);
//xiaqiuxianlugonglv
for(i=0;ifor(j=0;j{p[i][j]=0;q[i][j]=0;} for(i=0;ifor(j=0;j{x=0;if(i!=j){for(a=0;a{if(gBranch[a].No_I-1==i&&gBranch[a].No_J-1==j){if(gBranch[a].k==0){y=0;x=gBranch[a].B;}else{y=(1-gBranch[a].k)*gY_G[i][j];x=(1-gBranch[a].k)*gY_B[i][j];}break;}if(gBranch[a].No_I-1==j&&gBranch[a].No_J-1==i){if(gBranch[a].k==0){y=0;x=gBranch[a].B;}else{y=(1-1/gBranch[a].k)*gY_G[i][j];x=(1-1/gBranch[a].k)*gBranch[a].B;}break;}}c=y*ge[i]-ge[i]*gY_G[i][j]-x*gf[i]+gf[i]*gY_B[i][j]+ge[j]*gY_G[i][j]-gf[j]*gY_B[i][j];d=0-y*gf[i]-x*ge[i]+gY_B[i][j]*ge[i]+gf[i]*gY_G[i][j]-ge[j]*gY_B[i][j]-gf[j]*gY_G[i][j];p[i][j]=ge[i]*c-gf[i]*d;q[i][j]=gf[i]*c+ge[i]*d;}if(i==j){for(a=0;a{if((gBranch[a].No_I-1==i)&&(gBranch[a].No_J-1==i)){x=(-1)/gBranch[a].X;break;}elsex=0;}p[i][j]=0;q[i][j]=(ge[i]*ge[i]+gf[i]*gf[i])*x*(-1);}}for(i=0;i{c=0;d=0;{for(j=0;j{c=c+p[i][j];d=d+q[i][j];}printf("校验:%f%f,%f%f\n",gBus[i].GenP-gBus[i].LoadP,c,gBus[i].GenQ-gBus[i].LoadQ,d);}}for(i=0;ifor(j=0;j{if(i!=j){delp[i][j]=p[i][j]+p[j][i];delq[i][j]=q[i][j]+q[j][i];}else{delp[i][i]=p[i][i];delq[i][i]=q[i][i];}}printf("潮流值\n");for(i=0;ifor(j=0;jprintf("线路潮流%d---%d%f+j%f\n",i+1,j+1,p[i][j],q[i][j]);for(i=0;ifor(j=0;jprintf("线路损耗%d--%d%f+j%f\n",i+1,j+1,delp[j][i],delq[j][i]);c=0;d=0;for(i=0;ifor(j=i;j{c+=2*delp[i][j];d+=2*delq[i][j];}printf("线路总损耗:%f+j%f\n",c,d);//addyourcodes//gBus[i].VoltagegY_G[bus1][bus1]gY_B[bus1][bus2]bus1=gBranch[i].No_I-1;bus2=gBranch[i].No_J-1;return0;}
for(j=0;j{p[i][j]=0;q[i][j]=0;} for(i=0;ifor(j=0;j{x=0;if(i!=j){for(a=0;a{if(gBranch[a].No_I-1==i&&gBranch[a].No_J-1==j){if(gBranch[a].k==0){y=0;x=gBranch[a].B;}else{y=(1-gBranch[a].k)*gY_G[i][j];x=(1-gBranch[a].k)*gY_B[i][j];}break;}if(gBranch[a].No_I-1==j&&gBranch[a].No_J-1==i){if(gBranch[a].k==0){y=0;x=gBranch[a].B;}else{y=(1-1/gBranch[a].k)*gY_G[i][j];x=(1-1/gBranch[a].k)*gBranch[a].B;}break;}}c=y*ge[i]-ge[i]*gY_G[i][j]-x*gf[i]+gf[i]*gY_B[i][j]+ge[j]*gY_G[i][j]-gf[j]*gY_B[i][j];d=0-y*gf[i]-x*ge[i]+gY_B[i][j]*ge[i]+gf[i]*gY_G[i][j]-ge[j]*gY_B[i][j]-gf[j]*gY_G[i][j];p[i][j]=ge[i]*c-gf[i]*d;q[i][j]=gf[i]*c+ge[i]*d;}if(i==j){for(a=0;a{if((gBranch[a].No_I-1==i)&&(gBranch[a].No_J-1==i)){x=(-1)/gBranch[a].X;break;}elsex=0;}p[i][j]=0;q[i][j]=(ge[i]*ge[i]+gf[i]*gf[i])*x*(-1);}}for(i=0;i{c=0;d=0;{for(j=0;j{c=c+p[i][j];d=d+q[i][j];}printf("校验:%f%f,%f%f\n",gBus[i].GenP-gBus[i].LoadP,c,gBus[i].GenQ-gBus[i].LoadQ,d);}}for(i=0;ifor(j=0;j{if(i!=j){delp[i][j]=p[i][j]+p[j][i];delq[i][j]=q[i][j]+q[j][i];}else{delp[i][i]=p[i][i];delq[i][i]=q[i][i];}}printf("潮流值\n");for(i=0;ifor(j=0;jprintf("线路潮流%d---%d%f+j%f\n",i+1,j+1,p[i][j],q[i][j]);for(i=0;ifor(j=0;jprintf("线路损耗%d--%d%f+j%f\n",i+1,j+1,delp[j][i],delq[j][i]);c=0;d=0;for(i=0;ifor(j=i;j{c+=2*delp[i][j];d+=2*delq[i][j];}printf("线路总损耗:%f+j%f\n",c,d);//addyourcodes//gBus[i].VoltagegY_G[bus1][bus1]gY_B[bus1][bus2]bus1=gBranch[i].No_I-1;bus2=gBranch[i].No_J-1;return0;}
{p[i][j]=0;q[i][j]=0;
for(i=0;ifor(j=0;j{x=0;if(i!=j){for(a=0;a{if(gBranch[a].No_I-1==i&&gBranch[a].No_J-1==j){if(gBranch[a].k==0){y=0;x=gBranch[a].B;}else{y=(1-gBranch[a].k)*gY_G[i][j];x=(1-gBranch[a].k)*gY_B[i][j];}break;}if(gBranch[a].No_I-1==j&&gBranch[a].No_J-1==i){if(gBranch[a].k==0){y=0;x=gBranch[a].B;}else{y=(1-1/gBranch[a].k)*gY_G[i][j];x=(1-1/gBranch[a].k)*gBranch[a].B;}break;}}c=y*ge[i]-ge[i]*gY_G[i][j]-x*gf[i]+gf[i]*gY_B[i][j]+ge[j]*gY_G[i][j]-gf[j]*gY_B[i][j];d=0-y*gf[i]-x*ge[i]+gY_B[i][j]*ge[i]+gf[i]*gY_G[i][j]-ge[j]*gY_B[i][j]-gf[j]*gY_G[i][j];p[i][j]=ge[i]*c-gf[i]*d;q[i][j]=gf[i]*c+ge[i]*d;}if(i==j){for(a=0;a{if((gBranch[a].No_I-1==i)&&(gBranch[a].No_J-1==i)){x=(-1)/gBranch[a].X;break;}elsex=0;}p[i][j]=0;q[i][j]=(ge[i]*ge[i]+gf[i]*gf[i])*x*(-1);}}for(i=0;i{c=0;d=0;{for(j=0;j{c=c+p[i][j];d=d+q[i][j];}printf("校验:%f%f,%f%f\n",gBus[i].GenP-gBus[i].LoadP,c,gBus[i].GenQ-gBus[i].LoadQ,d);}}for(i=0;ifor(j=0;j{if(i!=j){delp[i][j]=p[i][j]+p[j][i];delq[i][j]=q[i][j]+q[j][i];}else{delp[i][i]=p[i][i];delq[i][i]=q[i][i];}}printf("潮流值\n");for(i=0;ifor(j=0;jprintf("线路潮流%d---%d%f+j%f\n",i+1,j+1,p[i][j],q[i][j]);for(i=0;ifor(j=0;jprintf("线路损耗%d--%d%f+j%f\n",i+1,j+1,delp[j][i],delq[j][i]);c=0;d=0;for(i=0;ifor(j=i;j{c+=2*delp[i][j];d+=2*delq[i][j];}printf("线路总损耗:%f+j%f\n",c,d);//addyourcodes//gBus[i].VoltagegY_G[bus1][bus1]gY_B[bus1][bus2]bus1=gBranch[i].No_I-1;bus2=gBranch[i].No_J-1;return0;}
for(j=0;j{x=0;if(i!=j){for(a=0;a{if(gBranch[a].No_I-1==i&&gBranch[a].No_J-1==j){if(gBranch[a].k==0){y=0;x=gBranch[a].B;}else{y=(1-gBranch[a].k)*gY_G[i][j];x=(1-gBranch[a].k)*gY_B[i][j];}break;}if(gBranch[a].No_I-1==j&&gBranch[a].No_J-1==i){if(gBranch[a].k==0){y=0;x=gBranch[a].B;}else{y=(1-1/gBranch[a].k)*gY_G[i][j];x=(1-1/gBranch[a].k)*gBranch[a].B;}break;}}c=y*ge[i]-ge[i]*gY_G[i][j]-x*gf[i]+gf[i]*gY_B[i][j]+ge[j]*gY_G[i][j]-gf[j]*gY_B[i][j];d=0-y*gf[i]-x*ge[i]+gY_B[i][j]*ge[i]+gf[i]*gY_G[i][j]-ge[j]*gY_B[i][j]-gf[j]*gY_G[i][j];p[i][j]=ge[i]*c-gf[i]*d;q[i][j]=gf[i]*c+ge[i]*d;}if(i==j){for(a=0;a{if((gBranch[a].No_I-1==i)&&(gBranch[a].No_J-1==i)){x=(-1)/gBranch[a].X;break;}elsex=0;}p[i][j]=0;q[i][j]=(ge[i]*ge[i]+gf[i]*gf[i])*x*(-1);}}for(i=0;i{c=0;d=0;{for(j=0;j{c=c+p[i][j];d=d+q[i][j];}printf("校验:%f%f,%f%f\n",gBus[i].GenP-gBus[i].LoadP,c,gBus[i].GenQ-gBus[i].LoadQ,d);}}for(i=0;ifor(j=0;j{if(i!=j){delp[i][j]=p[i][j]+p[j][i];delq[i][j]=q[i][j]+q[j][i];}else{delp[i][i]=p[i][i];delq[i][i]=q[i][i];}}printf("潮流值\n");for(i=0;ifor(j=0;jprintf("线路潮流%d---%d%f+j%f\n",i+1,j+1,p[i][j],q[i][j]);for(i=0;ifor(j=0;jprintf("线路损耗%d--%d%f+j%f\n",i+1,j+1,delp[j][i],delq[j][i]);c=0;d=0;for(i=0;ifor(j=i;j{c+=2*delp[i][j];d+=2*delq[i][j];}printf("线路总损耗:%f+j%f\n",c,d);//addyourcodes//gBus[i].VoltagegY_G[bus1][bus1]gY_B[bus1][bus2]bus1=gBranch[i].No_I-1;bus2=gBranch[i].No_J-1;return0;}
{x=0;
{for(a=0;a{if(gBranch[a].No_I-1==i&&gBranch[a].No_J-1==j){if(gBranch[a].k==0){y=0;x=gBranch[a].B;}else{y=(1-gBranch[a].k)*gY_G[i][j];x=(1-gBranch[a].k)*gY_B[i][j];}break;}if(gBranch[a].No_I-1==j&&gBranch[a].No_J-1==i){if(gBranch[a].k==0){y=0;x=gBranch[a].B;}else{y=(1-1/gBranch[a].k)*gY_G[i][j];x=(1-1/gBranch[a].k)*gBranch[a].B;}break;}}c=y*ge[i]-ge[i]*gY_G[i][j]-x*gf[i]+gf[i]*gY_B[i][j]+ge[j]*gY_G[i][j]-gf[j]*gY_B[i][j];d=0-y*gf[i]-x*ge[i]+gY_B[i][j]*ge[i]+gf[i]*gY_G[i][j]-ge[j]*gY_B[i][j]-gf[j]*gY_G[i][j];p[i][j]=ge[i]*c-gf[i]*d;q[i][j]=gf[i]*c+ge[i]*d;}if(i==j){for(a=0;a{if((gBranch[a].No_I-1==i)&&(gBranch[a].No_J-1==i)){x=(-1)/gBranch[a].X;break;}elsex=0;}p[i][j]=0;q[i][j]=(ge[i]*ge[i]+gf[i]*gf[i])*x*(-1);}}for(i=0;i{c=0;d=0;{for(j=0;j{c=c+p[i][j];d=d+q[i][j];}printf("校验:%f%f,%f%f\n",gBus[i].GenP-gBus[i].LoadP,c,gBus[i].GenQ-gBus[i].LoadQ,d);}}for(i=0;ifor(j=0;j{if(i!=j){delp[i][j]=p[i][j]+p[j][i];delq[i][j]=q[i][j]+q[j][i];}else{delp[i][i]=p[i][i];delq[i][i]=q[i][i];}}printf("潮流值\n");for(i=0;ifor(j=0;jprintf("线路潮流%d---%d%f+j%f\n",i+1,j+1,p[i][j],q[i][j]);for(i=0;ifor(j=0;jprintf("线路损耗%d--%d%f+j%f\n",i+1,j+1,delp[j][i],delq[j][i]);c=0;d=0;for(i=0;ifor(j=i;j{c+=2*delp[i][j];d+=2*delq[i][j];}printf("线路总损耗:%f+j%f\n",c,d);//addyourcodes//gBus[i].VoltagegY_G[bus1][bus1]gY_B[bus1][bus2]bus1=gBranch[i].No_I-1;bus2=gBranch[i].No_J-1;return0;}
{if(gBranch[a].No_I-1==i&&gBranch[a].No_J-1==j){if(gBranch[a].k==0){y=0;x=gBranch[a].B;}else{y=(1-gBranch[a].k)*gY_G[i][j];x=(1-gBranch[a].k)*gY_B[i][j];}break;}
if(gBranch[a].No_I-1==j&&gBranch[a].No_J-1==i){if(gBranch[a].k==0){y=0;x=gBranch[a].B;}else{y=(1-1/gBranch[a].k)*gY_G[i][j];x=(1-1/gBranch[a].k)*gBranch[a].B;}break;}
c=y*ge[i]-ge[i]*gY_G[i][j]-x*gf[i]+gf[i]*gY_B[i][j]+ge[j]*gY_G[i][j]-gf[j]*gY_B[i][j];d=0-y*gf[i]-x*ge[i]+gY_B[i][j]*ge[i]+gf[i]*gY_G[i][j]-ge[j]*gY_B[i][j]-gf[j]*gY_G[i][j];
p[i][j]=ge[i]*c-gf[i]*d;q[i][j]=gf[i]*c+ge[i]*d;
if(i==j)
for(a=0;a{if((gBranch[a].No_I-1==i)&&(gBranch[a].No_J-1==i)){x=(-1)/gBranch[a].X;break;}elsex=0;}p[i][j]=0;q[i][j]=(ge[i]*ge[i]+gf[i]*gf[i])*x*(-1);}}for(i=0;i{c=0;d=0;{for(j=0;j{c=c+p[i][j];d=d+q[i][j];}printf("校验:%f%f,%f%f\n",gBus[i].GenP-gBus[i].LoadP,c,gBus[i].GenQ-gBus[i].LoadQ,d);}}for(i=0;ifor(j=0;j{if(i!=j){delp[i][j]=p[i][j]+p[j][i];delq[i][j]=q[i][j]+q[j][i];}else{delp[i][i]=p[i][i];delq[i][i]=q[i][i];}}printf("潮流值\n");for(i=0;ifor(j=0;jprintf("线路潮流%d---%d%f+j%f\n",i+1,j+1,p[i][j],q[i][j]);for(i=0;ifor(j=0;jprintf("线路损耗%d--%d%f+j%f\n",i+1,j+1,delp[j][i],delq[j][i]);c=0;d=0;for(i=0;ifor(j=i;j{c+=2*delp[i][j];d+=2*delq[i][j];}printf("线路总损耗:%f+j%f\n",c,d);//addyourcodes//gBus[i].VoltagegY_G[bus1][bus1]gY_B[bus1][bus2]bus1=gBranch[i].No_I-1;bus2=gBranch[i].No_J-1;return0;}
if((gBranch[a].No_I-1==i)&&(gBranch[a].No_J-1==i))
{x=(-1)/gBranch[a].X;break;
elsex=0;
p[i][j]=0;q[i][j]=(ge[i]*ge[i]+gf[i]*gf[i])*x*(-1);
for(i=0;i{c=0;d=0;{for(j=0;j{c=c+p[i][j];d=d+q[i][j];}printf("校验:%f%f,%f%f\n",gBus[i].GenP-gBus[i].LoadP,c,gBus[i].GenQ-gBus[i].LoadQ,d);}}for(i=0;ifor(j=0;j{if(i!=j){delp[i][j]=p[i][j]+p[j][i];delq[i][j]=q[i][j]+q[j][i];}else{delp[i][i]=p[i][i];delq[i][i]=q[i][i];}}printf("潮流值\n");for(i=0;ifor(j=0;jprintf("线路潮流%d---%d%f+j%f\n",i+1,j+1,p[i][j],q[i][j]);for(i=0;ifor(j=0;jprintf("线路损耗%d--%d%f+j%f\n",i+1,j+1,delp[j][i],delq[j][i]);c=0;d=0;for(i=0;ifor(j=i;j{c+=2*delp[i][j];d+=2*delq[i][j];}printf("线路总损耗:%f+j%f\n",c,d);//addyourcodes//gBus[i].VoltagegY_G[bus1][bus1]gY_B[bus1][bus2]bus1=gBranch[i].No_I-1;bus2=gBranch[i].No_J-1;return0;}
{c=0;d=0;
{for(j=0;j{c=c+p[i][j];d=d+q[i][j];}printf("校验:%f%f,%f%f\n",gBus[i].GenP-gBus[i].LoadP,c,gBus[i].GenQ-gBus[i].LoadQ,d);}}for(i=0;ifor(j=0;j{if(i!=j){delp[i][j]=p[i][j]+p[j][i];delq[i][j]=q[i][j]+q[j][i];}else{delp[i][i]=p[i][i];delq[i][i]=q[i][i];}}printf("潮流值\n");for(i=0;ifor(j=0;jprintf("线路潮流%d---%d%f+j%f\n",i+1,j+1,p[i][j],q[i][j]);for(i=0;ifor(j=0;jprintf("线路损耗%d--%d%f+j%f\n",i+1,j+1,delp[j][i],delq[j][i]);c=0;d=0;for(i=0;ifor(j=i;j{c+=2*delp[i][j];d+=2*delq[i][j];}printf("线路总损耗:%f+j%f\n",c,d);//addyourcodes//gBus[i].VoltagegY_G[bus1][bus1]gY_B[bus1][bus2]bus1=gBranch[i].No_I-1;bus2=gBranch[i].No_J-1;return0;}
{c=c+p[i][j];d=d+q[i][j];}
printf("校验:
%f%f,%f%f\n",gBus[i].GenP-gBus[i].LoadP,c,gBus[i].GenQ-gBus[i].LoadQ,d);
for(i=0;ifor(j=0;j{if(i!=j){delp[i][j]=p[i][j]+p[j][i];delq[i][j]=q[i][j]+q[j][i];}else{delp[i][i]=p[i][i];delq[i][i]=q[i][i];}}printf("潮流值\n");for(i=0;ifor(j=0;jprintf("线路潮流%d---%d%f+j%f\n",i+1,j+1,p[i][j],q[i][j]);for(i=0;ifor(j=0;jprintf("线路损耗%d--%d%f+j%f\n",i+1,j+1,delp[j][i],delq[j][i]);c=0;d=0;for(i=0;ifor(j=i;j{c+=2*delp[i][j];d+=2*delq[i][j];}printf("线路总损耗:%f+j%f\n",c,d);//addyourcodes//gBus[i].VoltagegY_G[bus1][bus1]gY_B[bus1][bus2]bus1=gBranch[i].No_I-1;bus2=gBranch[i].No_J-1;return0;}
for(j=0;j{if(i!=j){delp[i][j]=p[i][j]+p[j][i];delq[i][j]=q[i][j]+q[j][i];}else{delp[i][i]=p[i][i];delq[i][i]=q[i][i];}}printf("潮流值\n");for(i=0;ifor(j=0;jprintf("线路潮流%d---%d%f+j%f\n",i+1,j+1,p[i][j],q[i][j]);for(i=0;ifor(j=0;jprintf("线路损耗%d--%d%f+j%f\n",i+1,j+1,delp[j][i],delq[j][i]);c=0;d=0;for(i=0;ifor(j=i;j{c+=2*delp[i][j];d+=2*delq[i][j];}printf("线路总损耗:%f+j%f\n",c,d);//addyourcodes//gBus[i].VoltagegY_G[bus1][bus1]gY_B[bus1][bus2]bus1=gBranch[i].No_I-1;bus2=gBranch[i].No_J-1;return0;}
{if(i!
=j){delp[i][j]=p[i][j]+p[j][i];delq[i][j]=q[i][j]+q[j][i];
else{delp[i][i]=p[i][i];delq[i][i]=q[i][i];}
printf("潮流值\n");
for(i=0;ifor(j=0;jprintf("线路潮流%d---%d%f+j%f\n",i+1,j+1,p[i][j],q[i][j]);for(i=0;ifor(j=0;jprintf("线路损耗%d--%d%f+j%f\n",i+1,j+1,delp[j][i],delq[j][i]);c=0;d=0;for(i=0;ifor(j=i;j{c+=2*delp[i][j];d+=2*delq[i][j];}printf("线路总损耗:%f+j%f\n",c,d);//addyourcodes//gBus[i].VoltagegY_G[bus1][bus1]gY_B[bus1][bus2]bus1=gBranch[i].No_I-1;bus2=gBranch[i].No_J-1;return0;}
for(j=0;jprintf("线路潮流%d---%d%f+j%f\n",i+1,j+1,p[i][j],q[i][j]);for(i=0;ifor(j=0;jprintf("线路损耗%d--%d%f+j%f\n",i+1,j+1,delp[j][i],delq[j][i]);c=0;d=0;for(i=0;ifor(j=i;j{c+=2*delp[i][j];d+=2*delq[i][j];}printf("线路总损耗:%f+j%f\n",c,d);//addyourcodes//gBus[i].VoltagegY_G[bus1][bus1]gY_B[bus1][bus2]bus1=gBranch[i].No_I-1;bus2=gBranch[i].No_J-1;return0;}
printf("线路潮流%d---%d%f+j%f\n",i+1,j+1,p[i][j],q[i][j]);
for(i=0;ifor(j=0;jprintf("线路损耗%d--%d%f+j%f\n",i+1,j+1,delp[j][i],delq[j][i]);c=0;d=0;for(i=0;ifor(j=i;j{c+=2*delp[i][j];d+=2*delq[i][j];}printf("线路总损耗:%f+j%f\n",c,d);//addyourcodes//gBus[i].VoltagegY_G[bus1][bus1]gY_B[bus1][bus2]bus1=gBranch[i].No_I-1;bus2=gBranch[i].No_J-1;return0;}
for(j=0;jprintf("线路损耗%d--%d%f+j%f\n",i+1,j+1,delp[j][i],delq[j][i]);c=0;d=0;for(i=0;ifor(j=i;j{c+=2*delp[i][j];d+=2*delq[i][j];}printf("线路总损耗:%f+j%f\n",c,d);//addyourcodes//gBus[i].VoltagegY_G[bus1][bus1]gY_B[bus1][bus2]bus1=gBranch[i].No_I-1;bus2=gBranch[i].No_J-1;return0;}
printf("线路损耗%d--%d%f+j%f\n",i+1,j+1,delp[j][i],delq[j][i]);
c=0;d=0;
for(i=0;ifor(j=i;j{c+=2*delp[i][j];d+=2*delq[i][j];}printf("线路总损耗:%f+j%f\n",c,d);//addyourcodes//gBus[i].VoltagegY_G[bus1][bus1]gY_B[bus1][bus2]bus1=gBranch[i].No_I-1;bus2=gBranch[i].No_J-1;return0;}
for(j=i;j{c+=2*delp[i][j];d+=2*delq[i][j];}printf("线路总损耗:%f+j%f\n",c,d);//addyourcodes//gBus[i].VoltagegY_G[bus1][bus1]gY_B[bus1][bus2]bus1=gBranch[i].No_I-1;bus2=gBranch[i].No_J-1;return0;}
{c+=2*delp[i][j];d+=2*delq[i][j];
printf("线路总损耗:
%f+j%f\n",c,d);
//gBus[i].VoltagegY_G[bus1][bus1]gY_B[bus1][bus2]bus1=gBranch[i].No_I-1;bus2=gBranch[i].No_J-1;
return0;
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1