1、电力系统潮流计算注:这是一个基于 NR 法的潮流计算通用程序,仅提供了子程序,需要做些处理才能成为一个可运行的计算程序!此程序非我原创,仅与大家共享!/* 这里提供的是电力系统潮流计算机解法的五个子程序,采用的方法是 * Newton_Raphson 法.* 程序中所用的变量说明如下:* N:网络节点总数. M:网络的 PQ 节点数.* L:网络的支路总数. N0:雅可比矩阵的行数.* N1:N0+1 K:打印开关.K=1,则打印;否则,不打印.* K1:子程序 PLSC 中判断输入电压的形式.K1=1,则为极座标形式.否则* 为直角坐标形式.* D:有功及无功功率误差的最大值.* G(I,J
2、):Ybus 的电导元素(实部).* B(I,J):Ybus 的电纳元素(虚部).* G1(I) :第 I 支路的串联电导. B1(I):第 I 支路的串联电纳. * C1(I) :第 I 支路的 pie 型对称接地电纳.* C(I,J):第 I 节点 J 支路不对称接地电纳.* CO(I) :第 I 节点的接地电纳.* S1(I) :第 I 节点的起始节点号. E1(I):第 I 节点的终止节点号. * P(I) :第 I 节点的注入有功功率. Q(I):第 I 节点的注入无功功率.* P0(I) :第 I 节点有功功率误差. Q0(I):第 I 节点无功功率误差. * V0(I) :第 I
3、 节点(PV 节点)的电压误差(平方误差).* V(I) :第 I 节点的电压误差幅值.* E(I) :第 I 节点的电压的实部. F(I):第 I 节点的电压的虚部. * JM(I,J):Jacoby 矩阵的第 I 行 J 列元素.* A(I,J):修正方程的增广矩阵,三角化矩阵的第 I 行 J 列元素,运算结 * 束后 A 矩阵的最后一列存放修正的解.* P1(I) :第 I 支路由 S1(I)节点注入的有功功率.* Q1(I) :第 I 支路由 S1(I)节点注入的无功功率.* P2(I) :第 I 支路由 E1(I)节点注入的有功功率.* Q2(I) :第 I 支路由 E1(I)节点注
4、入的无功功率.* P3(I) :第 I 支路的有功功率损耗.* Q3(I) :第 I 支路的无功功率损耗.* ANGLE(I):第 I 节点电压的角度.*/#include #include #define f1(i) (i-1) /* 把习惯的一阶矩阵的下标转化为 C 语言数组下标*/#define f2(i,j,n) (i-1)*(n)+j-1)/* 把习惯的二阶矩阵的下标转化为 C 语言数组下标*/* 本子程序根据所给的支路导纳及有关信息,形成结点 * 导纳矩阵,如打印参数 K=1,则输出电导矩阵 G 和电纳矩 B */void ybus(int n,int l,int m,float
5、*g,float *b,float *g1,float *b1,float *c1,float *c,float *co,int k,int *s1,int *e1)extern FILE *file4;FILE *fp;int i,j,io,i0;int pos1,pos2;int st,en;if(file4=NULL)fp=stdout;elsefp=file4; /* 输出到文件 */* 初始化矩阵 G,B */for(i=1;in?n:(io+4);fprintf(fp,“n“);for(j=io;jn?n:(io+4);fprintf(fp,“n“);for(j=io;j0 ? p
6、0pos1 : -p0pos1;if(d0?q0pos1:-q0pos1;if(dm) /* PV 结点 */* 计算式(4-90)中的 Rii */jmf2(2*i-1,2*i-1,n0)=-2*epos1;/* 计算式(4-90)中的 Sii */jmf2(2*i-1,2*i,n0)=-2*fpos1;/* 计算式(4-89) */for(j=1;jn0?n0:(io+4);fprintf(fp,“n“);for(j=io;j=i1;j+)fprintf(fp,“%10d“,j);for(i=1;i=n0;i+)fprintf(fp,“n%2d“,i);for(j=io;j=i1;j+)fprintf(fp,“%12.6f“,jmf2(i,j,n0);fprintf(fp,“n“);/* 本子程序用选列主元素的高斯消元法求解组 * 性方程组求各结点电压修正量,如打印参数 K=1,则*