电力系统潮流程序C语言,电力系统潮流C语音程

题目:一电力系统中,线路额定电压为110KV,导线均采用LGJ-120型的,其参数为r1=0.21Ω/km,x1=0.4Ω/km,b1=2.85×10-6S/km,

线路长度分别为l1=150km,l2=100km,l3=75km。变压器容量为63000kV.A,额定电压为110/11kV,短路电压百分数Uk%=10.5,在-2.5%

分接头上运行。电容器额定容量为5MV.A。若取Sb=100MV.A,Ub=Un,试形成系统的节点导纳矩阵。

输入数据如下:

4 4 1 2 2 0.00001

4 3 0.260331 0.495868 0.025864

1 4 0.173554 0.330579 0.017243

2 2 0.000000 -20.000000 0.000000

3 1 0.130165 0.247934 0.012932

1 2 0.000000 0.166667 1.128205

4 0 0.0 0.0 1.05

3 -1 0.2 0.0 1.05

2 0.5 0.3

4 0.15 0.1

计算程序如下:

#include

#include

#include

#define pnt

void read_data ();

void admt_matrix ();

void form_Jacobian ();

void solv_eqn ();

void node_flow ();

double * * newspacedouble2 (int,int);

void deletespacedouble2 (double * * ,int);

int num_node,num_line,num_tran,num_gene,num_load,iter;

struct data *line,*tran,*gene,*load;

double * * G,* * B, * * Jacob;

double *Um, *Ua, *P, *Q;

double error_max;

FILE *fin,*fou,*chk;

struct data

{

int i;

int j;

double a;

double b;

double c;

};

void main()

{

int i,j,conv;

double a,error;

fin=fopen("输入数据.txt","r");

if(fin==NULL)

{

printf("注意!没有“输入数据.txt”文件\n");

exit(0);

}

fou=fopen("潮流输出.txt","w");

if(pnt==1)

chk=fopen("中间结果.txt","w");

//输入原始数据和形成节点导纳矩阵

read_data();

G=newspacedouble2(num_node,num_node);

B=newspacedouble2(num_node,num_node);

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

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

G[i][j]=B[i][j]=0.0;

admt_matrix();

//给定电压有效值和相位初值

Um=new double[num_node+1];

Ua=new double[num_node+1];

for(i=1;i

{

Um[i]=1.0;

Ua[i]=0.0;

}

for(i=1;i

if(gene[i].j<=0)

Um[gene[i].i]=gene[i].c;

iter=0;

//形成雅克比矩阵计算功率误差

Jacob=newspacedouble2(2*num_node,2*num_node+1);

P=new double [num_node+1];

Q=new double [num_node+1];

R2:form_Jacobian();

//收敛判断

error=0.0;

for(i=1;i<=2*num_node;i++)

if(fabs(Jacob[i][2*num_node+1])>error)

eerror=fabs(Jacob[i][2*num_node+1]);

fprintf(fou,"\n 迭代次数:%2d 最大功率误差:%11.6f",iter+1,error);

if(error

{

conv=1;

goto R1;

}

if((iter>10)||(error>1.0e4))//潮流计算不收敛

{

fprintf(fou,"\n\n 潮流不收敛");

goto nd;

}

//求解修正方程

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值