#include <stdio.h>
#include <math.h>
#define M 50 /*矩阵阶数*/
#define N 50 /*迭代次数*/
int i,j,k,l,z; /* 循环变量 */
int n, /* 节点数 */
m, /* 支路数 */
dd, /*对地支路数*/
pq, /* PQ节点数 */
pv; /* PV节点数 */
float eps, /* 精度 */
max;
static float G[M][M],B[M][M],
D[M],ykb[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,bb; /*支路的电阻电抗与变压器变比*/
} zhilu[M];
FILE *fp1,*fp2;
void voltage()
{int i,j;
fprintf(fp2,"\n=====================================================================\n");
fprintf(fp2,"\n--------------------------输出 df,de--------------------------------\n");
for(i=1;i<=(pq+pv);i++)
{fprintf(fp2,"\n");
fprintf(fp2,"节点为 %2d df=%8.5f de=%8.5f\n",i,D[2*i-1],D[2*i]);}
fprintf(fp2,"\n---------------------------------------------------------------------\n");
fprintf(fp2,"\n----------------输出迭代过程中的电压值-------------------------------\n");
for(i=1;i<=(pq+pv);i++)
{fprintf(fp2,"\n 节点为 %2d f=%8.5f e=%8.5f\n",i,jiedian[i].f,jiedian[i].e);}
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);
}