牛顿-拉夫逊迭代法极坐标潮流计算C语言程序..doc
文本预览下载声明
/*利用牛顿-拉夫逊迭代法(极坐标形式),计算复杂电力系统潮流,具有收敛性好,收敛速度快等优点。所有参数应归算至标幺值下。
/*可计算最大节点数为100,可计算PQ,PV,平衡节点*/
/*可计算非标准变比和平行支路*/
#includestdio.h
#includemath.h
#includestdlib.h
#define M 100 /*最大矩阵阶数*/
#define Nl 100 /*迭代次数*/
int i,j,k,a,b,c; /*循环控制变量*/
int t,l;
double P,Q,H,J; /*中间变量*/
int n, /*节点数*/
m, /*支路数*/
pq, /*PQ节点数*/
pv; /*PV节点数*/
double eps; /*迭代精度*/
double aa[M],bb[M],cc[M],dd[M],max, rr,tt; /*中间变量*/
double mo,c1,d1,c2,d2; /*复数运算函数的返回值*/
double G[M][M],B[M][M],Y[M][M]; /*节点导纳矩阵中的实部、虚部及其模方值*/
double ykb[M][M],D[M],d[M],dU[M]; /*雅克比矩阵、不平衡量矩阵*/
struct jd /*节点结构体*/
{ int num,ty; /* num为节点号,ty为节点类型*/
double p,q,S,U,zkj,dp,dq,du,dj; /*节点有功、无功功率,功率模值,电压模值,阻抗角
牛顿--拉夫逊中功率不平衡量、电压修正量*/
} jd[M];
struct zl /*支路结构体*/
{ int numb; /*numb为支路号*/
int p1,p2; /*支路的两个节点*/
double kx; /*非标准变比*/
double r,x; /*支路的电阻与电抗*/
} zl[M];
FILE *fp1,*fp2;
void data() /* 读取数据 */
{
int h,number;
fp1=fopen(input.txt,r);
fscanf(fp1,%d,%d,%d,%d,%lf\n,n,m,pq,pv,eps); /*输入节点数,支路数,PQ节点数,PV节点数和迭代精度*/
for(i=1;i=n;i++) /*输入节点编号、类型、输入功率和电压初值*/
{
fscanf(fp1,%d,%d,number,h);
if(h==1)
显示全部