1、include "stdafx.h"
#include
2、pen the file named 'data.txt' \n");
return;
}
fscanf_s(fp,"%d,%d",&nBus,&nBranch,100);
for(i=0;i 3、i=0;i 4、
for(i=0;i 5、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;
gY_B[bus2][bus2]=gY_B[bus2][bus2]+b+gBranch[i].B;
6、 gY_B[bus1][bus2]=gY_B[bus1][bus2]-b;
gY_B[bus2][bus1]=gY_B[bus2][bus1]-b;
}
else
{
break;
}
}
else
{
// add your codes
}
}
// output the Y matrix
if((fopen_s(&fp,"data\\ymatrix1.txt","w"))!=0)
{
printf("Can not open the f 7、ile named 'ymatrix.txt' \n");
return ;
}
fprintf(fp,"---Y Matrix---\n");
for(i=0;i 8、
{
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;
}
}
}
void GetUnbalance(int& nBus)
{ int i,j;
float sum1=0,sum2=0;
FILE *fp;
for(i=0;i 9、
if (gBus[i].Type!=2)
{
sum1=0;
sum2=0;
for(j=0;j 10、ge[i]*(gY_G[i][j]*gf[j]+gY_B[i][j]*ge[j]);
}
gDelta_P[i]= gBus[i].GenP-gBus[i].LoadP-sum1;
gDelta_Q[i]= gBus[i].GenQ-gBus[i].LoadQ-sum2;
if (gBus[i].Type==1)
gDelta_Q[i]= gBus[i].Voltage* gBus[i].Voltage-(gf[i]*gf[i]+ge[i]*ge[i]);
}
}
11、
for (i=0;i 12、j/2) // i is or not=j.
{ s1=0;
s2=0;
for (k=0;k 13、obi[i][j+1]=gY_G[i/2][j/2]*ge[j/2]+gY_B[i/2][j/2]*gf[j/2]+s2;
if (gBus[i/2].Type==0) //PQ pioint and PV Point difference.
{
gJaccobi[i+1][j]=-(gY_G[i/2][j/2]*ge[j/2]+gY_B[i/2][j/2]*gf[j/2])+s2;
gJaccobi[i+1][j+1]=gY_G[i/2][j/2]*gf[j/2]-gY_B[i/2][j/2]*ge[j/2 14、]-s1;
}
else //pv bus.
{
gJaccobi[i+1][j]=2*gf[i/2];
gJaccobi[i+1][j+1]=2*ge[i/2];
}
}
else
{
gJaccobi[i][j]=gY_G[i/2][j/2]*gf[i/2]-gY_B[i/2][j/2]*ge[i/2];
gJaccobi[i][j+1]=gY_G[i/2][j/2]*ge[i/2]+gY_B[i/2][j/2]*gf[i 15、/2];
if (gBus[i/2].Type==0)
{
gJaccobi[i+1][j]=-gJaccobi[i][j+1];
gJaccobi[i+1][j+1]=gJaccobi[i][j];
}
else
{
gJaccobi[i+1][j]=0;
gJaccobi[i+1][j+1]=0;
}
}
// output Jaccobimatrix.
if((fopen_s(&fp,"d 16、ata\\Jaccobimatrix.txt","w"))!=0)
{
printf("Can not open the file named 'Jaccobimatrix.txt' \n");
return ;
}
fprintf(fp,"---JaccobiMatrix---\n");
for(i=0;i<2*nBus;i++)
{
fprintf_s(fp,"%d ,",i+1);
for(j=0;j<2*nBus;j++)
{
fprintf_s(fp,"[%10.5f]",gJaccobi[i][j]); 17、
}
fprintf_s(fp,"\n");
}
fclose(fp);
}
void GetRevised(int& nBus)
{
int i,j;
NEquation ob1;
FILE *fp;
ob1.SetSize(2*nBus);
for(i=0;i<2*nBus;i++)
{
for(j=0;j<2*nBus;j++)
ob1.Data(i,j)=gJaccobi[i][j];
ob1.Value(i)=gDelta_PQ[i];
18、 }
ob1.Run();
for(i=0;i<2*nBus;i++)
{
gDelta_fe[i]=ob1.Value(i);
}
for (i=0;i 19、elta_e matrix.txt","w"))!=0)
{
printf("Can not open the file named 'Delta_f and Delta_e matrix.txt' \n");
return ;
}
fprintf(fp,"---Delta_f and Delta_e Matrix---\n");
for(i=0;i<2*nBus;i++)
{
fprintf(fp," Delta %d=%10.8f \n",i+1,gDelta_fe[i]);
}
fprintf_s( 20、fp,"\n");
fclose(fp);
}
void GetNewValue(int& nBus)
{
int i;
FILE *fp;
for (i=0;i 21、"Can not open the file named 'gf and ge matrix.txt' \n");
return ;
}
fprintf(fp,"---gf and ge Matrix---\n");
for(i=0;i 22、int argc, char* argv[])
{
int i,Count_Num,j,n,nBus,nBranch;
float maxValue,s1,s2,k,su1,su2,deltalinep[12][12]={0,0},deltalineq[12][12]={0,0},deltap[12][12]={0,0},deltaq[12][12]={0,0};
FILE *fp;
float g,b,d,r,x;
GetData(nBus,nBranch);
GetYMatrix(nBus,nBranch);
SetInitial(nBus);
23、 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 24、maxValue 25、ut zhuru power.
for (i=0;i 26、][j]*gf[j])-ge[i]*(gY_G[i][j]*gf[j]+gY_B[i][j]*ge[j]);
}
gBus[i].GenP=su1; gBus[i].GenQ=su2;
printf("zhurup[%d]=%10.7f zhuruq[%d]=%10.7f \n",i+1,gBus[i].GenP,i+1,gBus[i].GenQ);
27、 }
}
for(n=0; n 28、ge[j])+gf[i]*(gf[i]-gf[j]))*g+(ge[i]*gf[j]-ge[j]*gf[i])*b;
deltaq[i][j]=-(ge[i]*ge[i]+gf[i]*gf[i])*gBranch[n].B+(ge[i]*gf[j]-ge[j]*gf[i])*g-(ge[i]*(ge[i]-ge[j])+gf[i]*(gf[i]-gf[j]))*b;
deltap[j][i]=(ge[j]*(ge[j]-ge[i])+gf[j]*(gf[j]-gf[i]))*g+(ge[j]*gf[i]-ge[i] 29、gf[j])*b;
deltaq[j][i]=-(ge[j]*ge[j]+gf[j]*gf[j])*gBranch[n].B+(ge[j]*gf[i]-ge[i]*gf[j])*g-(ge[j]*(ge[j]-ge[i])+gf[j]*(gf[j]-gf[i]))*b;
}
else break;
}
else
{
k=gBranch[n].k;
deltap[i][j]= (ge[i]*ge[i]+gf[i 30、]*gf[i])*k*(k-1)*g+(ge[i]*(ge[i]-ge[j])+gf[i]*(gf[i]-gf[j]))*g*k+(ge[i]*gf[j]-ge[j]*gf[i])*b*k;
deltaq[i][j]=-(ge[i]*ge[i]+gf[i]*gf[i])*k*(k-1)*b+(ge[i]*gf[j]-ge[j]*gf[i])*g*k-(ge[i]*(ge[i]-ge[j])+gf[i]*(gf[i]-gf[j]))*b*k;
deltap[j][i]=(ge[j]*ge[j]+gf[j]*gf[j]) 31、1-k)*g+(ge[j]*(ge[j]-ge[i])+gf[j]*(gf[j]-gf[i]))*g*k+(ge[j]*gf[i]-ge[i]*gf[j])*b*k;
deltaq[j][i]=-(ge[j]*ge[j]+gf[j]*gf[j])*(1-k)*b+(ge[j]*gf[i]-ge[i]*gf[j])*g*k-(ge[j]*(ge[j]-ge[i])+gf[j]*(gf[j]-gf[i]))*b*k;
}
}
for (i 32、0;i 33、ineq[i][j]);
}
s1=0;s2=0;
for(i=0;i 34、
if((fopen_s(&fp,"data\\bus voltage and zhuru power.txt","w"))!=0)
{
printf("Can not open the file named 'bus voltage and zhuru power.txt' \n");
return 0;
}
fprintf(fp,"---bus voltage and zhuru power---\n");
for(i=0;i 35、zhuruq[%d]=%10.7f \n",i+1,gBus[i].GenP-gBus[i].LoadP,i+1,gBus[i].GenQ-gBus[i].LoadQ);
}
fprintf_s(fp,"\n");
for(i=0;i 36、n");
for(i=0;i
©2010-2025 宁波自信网络信息技术有限公司 版权所有
客服电话:4009-655-100 投诉/维权电话:18658249818