您好,欢迎来到年旅网。
搜索
您的当前位置:首页潮流上机计算

潮流上机计算

来源:年旅网
/*****潮流上机计算*****/ #include #include

#define M 50 /*矩阵阶数*/ int i,j,k,l,z; /* 循环变量 */ int n, /* 节点数 */ m, /* 支路数 */ dd, /*对地支路数*/ pq, /* PQ节点数 */ pv, /* PV节点数 */ byqn, /* 变压器数*/ number, ii, ll=1, li=1; float eps, /* 精度 */ max1,max2;

static float G[M][M],B[M][M], D1[M],D2[M],yue[M][M],xing[M][M];

struct jiedian /* 节点结构体 */

{ int num,s; /* num为节点号,s为节点类型*/ float p,q,e,f,v; } jiedian[M];

struct zhilu /* 支路结构体 */ { int num; int p1,p2; /*支路的两个节点*/ float r,x; /*支路的电阻与电抗*/ } zhilu[M];

struct byq

{ int num, p1, p2; float r,x,s,k; }byq[M];

FILE *fp1,*fp2;

void data1() /* 读取数据 */ { int h,numb;

fp1=fopen(\"input.txt\

1

if(fp1==NULL)

{ printf(\" can not open file !\\n\");

printf(\" 在盘内创建一个文件,并命名为 input.txt. 文件输入内容的格式如下:.\\n\"); printf(\"\\n

==============================================================\\n\");

printf(\" 第一行:节点数, 支路数, 对地支路数,变压器数,PQ节点数,PV节点数,精度,\\n\"); printf(\"换行后输入:第几个节点,节点类型,有功功率,无功功率,电压值,电压角度\\n\"); printf(\"(若是PQ节点则类型是1,电压是自己预置的值;\\n\"); printf(\"PV节点类型是2,不用输入无功功率,电压是题目给定的值;\\n\"); printf(\"平衡节点类型是3,只需输入电压及其角度。)\\n\"); printf(\"注意每次输入一个节点应该换行。\\n\");

printf(\"\\n继续换行输入:第几条支路,支路类型,支路连接的第一个节点号,支路连接的第二个节点号,支路电阻,支路电抗\\n \");

printf(\"注意:支路没有变压器类型是1,有是2。若有变压器则还需要输入其变比和容量\\n\"); printf(\"\\n

==============================================================\\n\"); exit(0); }

fscanf(fp1,\"%d,%d,%d,%d,%d,%d,%f\\n\ /*输入节点数,支路数,对地支路数,变压器数,PQ节点数PV节点数和精度*/ j=1;k=pq+1;

for(i=1;i<=n;i++) /*输入节点类型的输入功率和节电电压初值*/ { fscanf(fp1,\"%d,%d\ if(h==1) /*类型h=1是PQ节点*/ { fscanf(fp1,\ &jiedian[j].e,&jiedian[j].f); jiedian[j].num=numb; jiedian[j].s=h; j++; } if(h==2) /*类型h=2是pv节点*/ { fscanf(fp1,\ &jiedian[k].f); jiedian[k].num=numb; jiedian[k].e=jiedian[k].v; jiedian[k].s=h; k++; }

2

if(h==3) /*类型h=3是平衡节点*/ { fscanf(fp1,\ jiedian[n].num=numb; jiedian[n].s=h; } }

for(i=1;i<=m+byqn;i++) /*输入支路阻抗*/ {fscanf(fp1,\"%d,%d\ if(ii==1) {fscanf(fp1,\ &zhilu[ll].p2, &zhilu[ll].r, &zhilu[ll].x); zhilu[ll].num=ll;ll++;} if(ii==2) /*变压器编号num,所连节点p1,p2,阻抗r,x,变比k,容量s*/ { fscanf(fp1,\ &byq[li].p2,&byq[li].r,&byq[li].x,&byq[li].k,&byq[li].s); byq[li].num=li;li++;} }

fclose(fp1);

if((fp2=fopen(\"output.txt\ { printf(\" can not open file!\\n\"); exit(0); }

fprintf(fp2,\"\\n 潮流上机实烻\\n\");

fprintf(fp2,\"\\n ************** 原始数据 **************\\n\"); fprintf(fp2,\"

===================================================================\\n\");

fprintf(fp2,\" 节点数:%2d 支路数:%2d 对地支路数:%2d 变压器数:%2d PQ节点数:%2d PV节点数:%2d 精度:%.5f\\n\ n,m,dd,byqn,pq,pv,eps);

fprintf(fp2,\" -------------------------------------------------------------------\\n\"); for(i=1;i<=pq;i++)

fprintf(fp2,\" PQ节点 节点%2d P[%d]=%f Q[%d]=%f\\n\ jiedian[i].num,jiedian[i].num,jiedian[i].p,jiedian[i].num,jiedian[i].q); for(i=pq+1;i<=pq+pv;i++)

fprintf(fp2,\" PV节点 节点%2d P[%d]=%f V[%d]=%f\\n\ jiedian[i].num,jiedian[i].num,jiedian[i].p,jiedian[i].num,jiedian[i].v); fprintf(fp2,\" 平衡节点 节点%2d e[%d]=%f f[%d]=%f\\n\ jiedian[n].num,jiedian[n].num,jiedian[n].e,jiedian[n].num,jiedian[n].f);

3

fprintf(fp2,\" -------------------------------------------------------------------\\n\"); for(i=1;i<=m;i++)

fprintf(fp2,\" 支路%2d 相关节点:%2d,%2d R=%f X=%f\\n\ i,zhilu[i].p1,zhilu[i].p2,zhilu[i].r,zhilu[i].x); for(i=1;i<=byqn;i++)

fprintf(fp2,\" 变压器编号%2d 相关节点:%2d,%2d R=%f X=%f 变比K=%f\\n\ byq[i].p1,byq[i].p2,byq[i].r,byq[i].x,byq[i].k); fprintf(fp2,\"

===================================================================\\n\"); }

void form_y() /* 形成节点导纳矩阵 */ {int bn;

float S,g,b,g1,b1,g2,b2; for(i=1;i<=m;i++) for(i=1;i<=m;i++) /*对地导纳*/ if((zhilu[i].p1==0)||(zhilu[i].p2==0))

{S=zhilu[i].r*zhilu[i].r+zhilu[i].x*zhilu[i].x; if(S==0)

{G[zhilu[i].p1][zhilu[i].p2]=B[zhilu[i].p1][zhilu[i].p2]=G[zhilu[i].p2][zhilu[i].p1]=B[zhilu[i].p2][zhilu[i].p1]=0;continue;} if(zhilu[i].p1==0) {G[zhilu[i].p1][zhilu[i].p2]+=zhilu[i].r/S; B[zhilu[i].p1][zhilu[i].p2]+=-zhilu[i].x/S;

G[zhilu[i].p2][zhilu[i].p1]=G[zhilu[i].p1][zhilu[i].p2]; B[zhilu[i].p2][zhilu[i].p1]=B[zhilu[i].p1][zhilu[i].p2]; } if(zhilu[i].p2==0)

{G[zhilu[i].p2][zhilu[i].p1]+=zhilu[i].r/S; B[zhilu[i].p2][zhilu[i].p1]+=-zhilu[i].x/S;

G[zhilu[i].p1][zhilu[i].p2]=G[zhilu[i].p2][zhilu[i].p1]; B[zhilu[i].p1][zhilu[i].p2]=B[zhilu[i].p2][zhilu[i].p1]; }

}

for(i=1;i<=m;i++) /*节点导纳矩阵的主对角线上的导纳*/ for(j=1;j<=n;j++) if((zhilu[i].p1==j)||(zhilu[i].p2==j)) { S=zhilu[i].r*zhilu[i].r+zhilu[i].x*zhilu[i].x; if(S==0) continue; G[j][j]+=zhilu[i].r/S;

4

B[j][j]+=-zhilu[i].x/S; }

for(j=1;j<=n;j++)

for(bn=1;bn<=byqn;bn++) {if(byq[bn].p1==j) { S=byq[bn].r*byq[bn].r+byq[bn].x*byq[bn].x; g=byq[bn].r/S; b=-byq[bn].x/S; g2=g/byq[bn].k; b2=b/byq[bn].k; g1=g*((1-byq[bn].k)/(byq[bn].k*byq[bn].k)); b1=b*((1-byq[bn].k)/(byq[bn].k*byq[bn].k)); G[j][j]=G[j][j]+g2+g1; B[j][j]=B[j][j]+b2+b1;} if(byq[bn].p2==j) {S=byq[bn].r*byq[bn].r+byq[bn].x*byq[bn].x; g=byq[bn].r/S; b=-byq[bn].x/S; g2=g/byq[bn].k; b2=b/byq[bn].k; g1=g*(byq[bn].k-1)/byq[bn].k; b1=b*(byq[bn].k-1)/byq[bn].k; G[j][j]=G[j][j]+g2+g1; B[j][j]=B[j][j]+b2+b1;} }

for(k=1;k<=m;k++) /*节点导纳矩阵非主对角线上的导纳*/ { i=zhilu[k].p1; j=zhilu[k].p2; S=zhilu[k].r*zhilu[k].r+zhilu[k].x*zhilu[k].x; if(S==0) continue; G[i][j]+=-zhilu[k].r/S; B[i][j]+=zhilu[k].x/S; G[j][i]=G[i][j]; B[j][i]=B[i][j]; }

for(bn=1;bn<=byqn;bn++)

{i=byq[bn].p1;j=byq[bn].p2;

S=byq[bn].r*byq[bn].r+byq[bn].x*byq[bn].x; G[i][j]+=-(byq[bn].r/S)/byq[bn].k; B[i][j]+=(byq[bn].x/S)/byq[bn].k; G[j][i]=G[i][j]; B[j][i]=B[i][j];}

5

/*输出节点导纳矩阵*/

fprintf(fp2,\"\\n\\n ********* 计算结果 *********\\n\"); fprintf(fp2,\"\\n 节点导纳矩阵为:\"); for(i=1;i<=n;i++)

{ fprintf(fp2,\"\\n \"); for(j=1;j<=n;j++) fprintf(fp2,\"%8.5f+j%8.5f \ }

fprintf(fp2,\"\\n

==============================================================\\n\"); fprintf(fp2,\"\\n B'矩阵为:\"); for(i=1;i<=n-1;i++)

{ fprintf(fp2,\"\\n \"); for(j=1;j<=n-1;j++) fprintf(fp2,\"%8.5f \ }

fprintf(fp2,\"\\n

==============================================================\\n\"); fprintf(fp2,\"\\n B''矩阵为:\"); for(i=1;i<=pq;i++)

{ fprintf(fp2,\"\\n \"); for(j=1;j<=pq;j++) fprintf(fp2,\"%8.5f \ }

fprintf(fp2,\"\\n

==============================================================\\n\"); }

void yueyue() { int a ,b; for(a=1;a<=M;a++) { for (b=1;b<=M;b++) {yue[a][b]=0;xing[a][b]=0;} } for(i=1;i<=pq;i++) {for (j=1;j<=pq;j++) xing[i][j]=B[i][j]; } for(i=1;i<=pq+pv;i++) {for(j=1;j<=pq+pv;j++) yue[i][j]=B[i][j]; }

6

}

void xingxing() /* 形成矩阵方程 */ { float ei,ej,fi,fj; int i1,j1; float dP[M];

for(i=1;i<=pq+pv;i++) /*初始化矩阵*/ { dP[i]=0; D1[i]=0; }

for(i=1;i<=pq;i++) /*PQ节点函数残量*/ { ei=jiedian[i].e; fi=jiedian[i].f; for(j=1;j<=n;j++) { i1=jiedian[i].num; j1=jiedian[j].num; ej=jiedian[j].e; fj=jiedian[j].f;

dP[i]+=ej*(G[i1][j1]*cos(fi-fj)+B[i1][j1]*sin(fi-fj)); } dP[i]=jiedian[i].p-dP[i]*ei; }

for(i=pq+1;i<=pq+pv;i++) /*PV节点函数残量*/ { ei=jiedian[i].e; fi=jiedian[i].f; for(j=1;j<=n;j++) { i1=jiedian[i].num; j1=jiedian[j].num; ej=jiedian[j].e; fj=jiedian[j].f; dP[i]+=ej*(G[i1][j1]*cos(fi-fj)+B[i1][j1]*sin(fi-fj)); }

dP[i]=jiedian[i].p-dP[i]*ei; }

7

for(i=1;i<=pq+pv;i++) /*形成函数残量矩阵D[M]*/ D1[i]=dP[i]/jiedian[i].e; /*形成^P */ max1=D1[1];

for(i=2;i<=pq+pv;i++) if(fabs(D1[i])>fabs(max1)) max1=D1[i]; max1=fabs(max1);

fprintf(fp2,\"\\n%8.5f\\n\ }

void xingxing1() /* 形成矩阵方程 */ { float ei,ej,fi,fj; int i1,j1; float dQ[M];

for(i=1;i<=pq+pv;i++) /*初始化矩阵*/ { dQ[i]=0; D2[i]=0; }

for(i=1;i<=pq;i++) /*PQ节点函数残量*/ { ei=jiedian[i].e; fi=jiedian[i].f; for(j=1;j<=n;j++) { i1=jiedian[i].num; j1=jiedian[j].num; ej=jiedian[j].e; fj=jiedian[j].f;

dQ[i]+=ej*(G[i1][j1]*sin(fi-fj)-B[i1][j1]*cos(fi-fj)); } dQ[i]=jiedian[i].q-dQ[i]*ei; }

for(i=1;i<=pq;i++)

D2[i]=dQ[i]/jiedian[i].e; /*形成^Q */ max2=D2[1]; for(i=2;i<=pq;i++)

if(fabs(D2[i])>fabs(max2)) max2=D2[i]; max2=fabs(max2);

fprintf(fp2,\"\\n%8.5f\\n\

8

}

void hua() { int c,d; for(c=1;c<=pq+pv;c++) yue[c][pq+pv+1]=D1[c]; for(c=1;c<=pq+pv;c++) {fprintf(fp2,\"\\n \"); for(d=1;d<=pq+pv+1;d++) fprintf(fp2,\"%8.5f\ }

void hua1() { int c,d; for(d=1;d<=pq;d++) xing[d][pq+1]=D2[d]; for(c=1;c<=pq;c++) { fprintf(fp2,\"\\n \"); for(d=1;d<=pq+1;d++) fprintf(fp2,\"%8.5f\ }

void solve1() { float d,t; k=1; do {

d=yue[k][k]; l=k; i=k+1; do {

if(fabs(yue[i][k])>fabs(d)) { d=yue[i][k]; l=i; }

i++;

} while(i<=pq+pv); if(l!=k)

{ for(j=k;j<=pq+pv+1;j++) { t=yue[l][j]; yue[l][j]=yue[k][j]; yue[k][j]=t;

/* 求解修正方程组 (用列主元消取法)*/ /*列选主元*/ 9

} }

for(j=k+1;j<=pq+pv+1;j++) /*正消*/ yue[k][j]/=yue[k][k]; for(i=k+1;i<=pq+pv;i++)

for(j=k+1;j<=pq+pv+1;j++) yue[i][j]-=yue[i][k]*yue[k][j]; k++;

} while(k<=pq+pv); if(k!=1) {

for(i=pq+pv;i>=1;i--) /*回代*/ { t=0;

for(j=i+1;j<=pq+pv;j++) t+=yue[i][j]*D1[j];

D1[i]=(yue[i][pq+pv+1]-t); } for(i=pq+pv;i>=1;i--) D1[i]=0-D1[i]; }

fprintf(fp2,\"\\n=====================================================================\\n\");

fprintf(fp2,\"\\n--------------------------输出变化角度--------------------------------\\n\"); for(i=1;i<=(pq+pv+1);i++) {fprintf(fp2,\"\\n\");

fprintf(fp2,\"节点为 %2d 变化的角度为= %8.6f\\n\ fprintf(fp2,\"\\n---------------------------------------------------------------------\\n\");

for(i=1;i<=(pq+pv);i++)

jiedian[i].f+=D1[i]/(jiedian[i].e);

fprintf(fp2,\"\\n=====================================================================\\n\");

fprintf(fp2,\"\\n--------------------------输出变化后的角度--------------------------------\\n\"); for(i=1;i<=pq+pv+1;i++) {fprintf(fp2,\"\\n\");

fprintf(fp2,\"节点为 %2d 变化后的角度为=%8.6f \ fprintf(fp2,\"\\n---------------------------------------------------------------------\\n\"); }

10

void solve2() /* 求解修正方程组 (用列主元消取法)*/ { float d,t; k=1; do {

d=yue[k][k]; l=k; i=k+1; do {

if(fabs(xing[i][k])>fabs(d)) /*列选主元*/ { d=xing[i][k]; l=i; }

i++;

} while(i<=pq); if(l!=k)

{ for(j=k;j<=pq+1;j++) { t=xing[l][j]; xing[l][j]=xing[k][j]; xing[k][j]=t; } }

for(j=k+1;j<=pq+1;j++) /*正消*/ xing[k][j]/=xing[k][k]; for(i=k+1;i<=pq;i++)

for(j=k+1;j<=pq+1;j++) xing[i][j]-=xing[i][k]*xing[k][j]; k++;

} while(k<=pq); if(k!=1) {

for(i=pq;i>=1;i--) /*回代*/ { t=0;

for(j=i+1;j<=pq;j++) t+=xing[i][j]*D2[j];

D2[i]=(xing[i][pq+1]-t); }

for(i=pq;i>=1;i--) D2[i]=0-D2[i]; }

fprintf(fp2,\"\\n============================================================

11

=========\\n\");

fprintf(fp2,\"\\n--------------------------输出变化电压--------------------------------\\n\"); for(i=1;i<=pq+pv+1;i++) {fprintf(fp2,\"\\n\");

fprintf(fp2,\"节点为 %2d 变化的电压为=%8.6f \

fprintf(fp2,\"\\n---------------------------------------------------------------------\\n\");

for(i=1;i<=(pq+pv);i++) jiedian[i].e+=D2[i];

fprintf(fp2,\"\\n=====================================================================\\n\");

fprintf(fp2,\"\\n--------------------------输出变化后的电压--------------------------------\\n\"); for(i=1;i<=pq+pv+1;i++) {fprintf(fp2,\"\\n\");

fprintf(fp2,\"节点为 %2d 变化后的电压为=%8.6f \ fprintf(fp2,\"\\n---------------------------------------------------------------------\\n\"); }

float mul_Re(x1,y1,x2,y2) float x1,x2,y1,y2; { float x;

x=x1*x2-y1*y2; return(x); }

float mul_Im(x1,y1,x2,y2) float x1,x2,y1,y2; { float y;

y=x1*y2+x2*y1; return(y); }

void data2() /* 潮流计算结果 */

{ float sp=0,sq=0,mo1,mo2,mo3,mo4,mo5,mo6,ff,S,gg=0,bb=0; int i1,j1,i11=0,j11=0;

static float P[M][M],Q[M][M];

fprintf(fp2,\"\\n\\n 各节点电压为:\"); for(i=1;i<=n;i++) { fprintf(fp2,\"\\n U[%d]=%8.6f∠%8.6f°\ jiedian[i].num,jiedian[i].e,jiedian[i].f*180/3.1415926);} jiedian[i].e=jiedian[i].e*cos(jiedian[i].f); jiedian[i].f=jiedian[i].e*sin(jiedian[i].f); fprintf(fp2,\"\\n

12

===================================================================\\n\");

fprintf(fp2,\"\\n\\n 平衡节点功率为:\"); for(i=1;i<=n;i++)

{ i1=jiedian[n].num; j1=jiedian[i].num; sp+=mul_Re(G[i1][j1],-B[i1][j1],jiedian[i].e,-jiedian[i].f); sq+=mul_Im(G[i1][j1],-B[i1][j1],jiedian[i].e,-jiedian[i].f); }

jiedian[n].p=mul_Re(jiedian[n].e,jiedian[n].f,sp,sq); jiedian[n].q=mul_Im(jiedian[n].e,jiedian[n].f,sp,sq);

fprintf(fp2,\"\\n S[%d]=%8.6f+j %8.6f\ fprintf(fp2,\" \\n ===================================================================\\n\");

fprintf(fp2,\"\\n\\n 线路功率如下:\\n\"); for(k=1;k<=m;k++) { i1=zhilu[k].p1; j1=zhilu[k].p2; for(l=1;l<=n;l++) { if(jiedian[l].num==i1) i=l; if(jiedian[l].num==j1) j=l; } sp=mul_Re(jiedian[i].e-jiedian[j].e,-jiedian[i].f+jiedian[j].f, -G[i1][j1],B[i1][j1]); sq=mul_Im(jiedian[i].e-jiedian[j].e,-jiedian[i].f+jiedian[j].f, -G[i1][j1],B[i1][j1]);

mo1=jiedian[i1].e*jiedian[i1].e+jiedian[i1].f*jiedian[i1].f; P[i1][j1]=mul_Re(jiedian[i].e,jiedian[i].f,sp,sq)+mo1*G[i1][0]; Q[i1][j1]=mul_Im(jiedian[i].e,jiedian[i].f,sp,sq)-mo1*B[j1][0]; sp=mul_Re(jiedian[j].e-jiedian[i].e,-jiedian[j].f+jiedian[i].f, -G[j1][i1],B[j1][i1]); sq=mul_Im(jiedian[j].e-jiedian[i].e,-jiedian[j].f+jiedian[i].f, -G[j1][i1],B[j1][i1]); mo2=jiedian[j1].e*jiedian[j1].e+jiedian[j1].f*jiedian[j1].f;

P[j1][i1]=mul_Re(jiedian[j].e,jiedian[j].f,sp,sq)+mo2*G[j1][0]; Q[j1][i1]=mul_Im(jiedian[j].e,jiedian[j].f,sp,sq)-mo2*B[j1][0]; if((i1!=i11)&&(j1!=j11))

{fprintf(fp2,\"\\n 线路%d-%d的功率:\ fprintf(fp2,\" %8.6f + j %8.6f\ fprintf(fp2,\"\\n 线路%d-%d的功率:\

13

fprintf(fp2,\" %8.6f + j %8.6f\ }

for(i=1;i<=m;i++) /*求平行支路的功率分布(功率按导纳分布)*/ {z=1;

mo3=zhilu[i].r*zhilu[i].r+zhilu[i].x*zhilu[i].x; mo3=1/sqrt(mo3); for(j=i+1;j<=m;j++)

{if((zhilu[i].p1==zhilu[j].p1)&&(zhilu[i].p2==zhilu[j].p2)&&zhilu[i].p1!=0&&zhilu[i].p2!=0) {i1=zhilu[i].p1; j1=zhilu[i].p2; mo4=zhilu[j].r*zhilu[j].r+zhilu[j].x*zhilu[j].x; mo4=1/sqrt(mo4); mo3=mo3+mo4; z++;}} if(z>1)

{ fprintf(fp2,\"\\n====================================================================\\n\");

fprintf(fp2,\"节点%d-%d之间有%d条平行支路\\n\ fprintf(fp2,\"功率分布为:\\n\");

for(k=i;k{ mo5=zhilu[k].r*zhilu[k].r+zhilu[k].x*zhilu[k].x; mo6=1/sqrt(mo5); ff=mo6/mo3;

fprintf(fp2,\"\\n 导纳Y=%8.6f的支路\

fprintf(fp2,\"\\n 支路%d-%d的功率:\ fprintf(fp2,\" %8.6f + j %8.6f\

fprintf(fp2,\"\\n 支路%d-%d的功率:\ fprintf(fp2,\" %8.6f + j %8.6f\\n\ }

i=i+z-1; } for(i=1;i<=m;i++) /*求对地支路的功率分布*/ {j=zhilu[i].p1; k=zhilu[i].p2; if((j==0)||(k==0)) { if(j==0) {mo1=jiedian[k].e*jiedian[k].e+jiedian[k].f*jiedian[k].f; S=zhilu[i].r*zhilu[i].r+zhilu[i].x*zhilu[i].x;

14

gg=zhilu[i].r/S; bb=-zhilu[i].x/S; P[k][0]=mo1*gg; Q[k][0]=-mo1*bb;

fprintf(fp2,\"\\n 线路%d-%d的功率:\ fprintf(fp2,\" %8.6f + j %8.6f\ }

if(k==0) {mo1=jiedian[j].e*jiedian[j].e+jiedian[j].f*jiedian[j].f; S=zhilu[i].r*zhilu[i].r+zhilu[i].x*zhilu[i].x; gg=zhilu[i].r/S; bb=-zhilu[i].x/S; P[j][0]=mo1*gg; Q[j][0]=-mo1*bb;

fprintf(fp2,\"\\n 线路%d-%d的功率:\ fprintf(fp2,\" %8.6f + j %8.6f\ } } }

}

fprintf(fp2,\"\\n

==================================================================\\n\"); fprintf(fp2,\"\\n\\n 线路上损耗的功率为:\"); i11=0,j11=0;

for(k=1;k<=(m-dd);k++) { i=zhilu[k].p1; j=zhilu[k].p2; if(i!=i11||j!=j11)

{fprintf(fp2,\"\\n 线路%d-%d上的功率损耗:\ fprintf(fp2,\" %8.6f + j %8.6f\ fabs(Q[i][j]+Q[j][i]));} j11=j,i11=i; } for(l=k;l<=m;l++) /*求对地支路的功率损耗*/ {i=zhilu[l].p1; j=zhilu[l].p2;

15

fprintf(fp2,\"\\n 线路%d-%d上的功率损耗:\ fprintf(fp2,\" %8.6f + j %8.6f\ fabs(Q[i][j])); } fprintf(fp2,\" \\n ====================================================================\\n\");

fprintf(fp2,\"\\n\\n 网络总损耗:\"); sp=0;sq=0;

for(i=0;i<=n;i++) for(j=0;j<=n;j++) { sp+=P[i][j]; sq+=Q[i][j]; }

fprintf(fp2,\" %8.6f + j %8.6f\\n\

fprintf(fp2,\"\\n ************************结束************************\\n\"); fclose(fp2); }

void main() /* 主函数 */ { data1(); form_y(); z=1; do { yueyue(); fprintf(fp2,\"\\n***********第%d遍************\\n\ xingxing(); hua(); solve1(); xingxing1(); hua1(); solve2(); z++; } while(((max1>=eps)||(max2>=eps))&&(z<=1000)); data2(); printf(\" !! 结果存放于output.txt文件中!!\\n\"); }

16

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- oldu.cn 版权所有 浙ICP备2024123271号-1

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务