资源描述:
《潮流上机计算.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、/*****潮流上机计算*****/#include#include#defineM50/*矩阵阶数*/inti,j,k,l,z;/*循环变量*/intn,/*节点数*/m,/*支路数*/dd,/*对地支路数*/pq,/*PQ节点数*/pv,/*PV节点数*/byqn,/*变压器数*/number,ii,ll=1,li=1;floateps,/*精度*/max1,max2;staticfloatG[M][M],B[M][M],D1[M],D2[M],yue[M][M],xing[M][M];structjiedian/*节点结构体*/{intnum,s
2、;/*num为节点号,s为节点类型*/floatp,q,e,f,v;}jiedian[M];structzhilu/*支路结构体*/{intnum;intp1,p2;/*支路的两个节点*/floatr,x;/*支路的电阻与电抗*/}zhilu[M];structbyq{intnum,p1,p2;floatr,x,s,k;}byq[M];FILE*fp1,*fp2;voiddata1()/*读取数据*/{inth,numb;fp1=fopen("input.txt","r");if(fp1==NULL){printf("cannotopenfile!");printf("在盘内创建一
3、个文件,并命名为input.txt.文件输入内容的格式如下:.");printf("==============================================================");printf("第一行:节点数,支路数,对地支路数,变压器数,PQ节点数,PV节点数,精度,");printf("换行后输入:第几个节点,节点类型,有功功率,无功功率,电压值,电压角度");printf("(若是PQ节点则类型是1,电压是自己预置的值;");printf("PV节点类型是2,不用输入无功功率,电压是题目给定的值;");printf(
4、"平衡节点类型是3,只需输入电压及其角度。)");printf("注意每次输入一个节点应该换行。");printf("继续换行输入:第几条支路,支路类型,支路连接的第一个节点号,支路连接的第二个节点号,支路电阻,支路电抗");printf("注意:支路没有变压器类型是1,有是2。若有变压器则还需要输入其变比和容量");printf("==============================================================");exit(0);}fscanf(fp1,"%d,%d,%d,%d,%d,%d,%f",&n,&
5、m,&dd,&byqn,&pq,&pv,&eps);/*输入节点数,支路数,对地支路数,变压器数,PQ节点数PV节点数和精度*/j=1;k=pq+1;for(i=1;i<=n;i++)/*输入节点类型的输入功率和节电电压初值*/{fscanf(fp1,"%d,%d",&numb,&h);if(h==1)/*类型h=1是PQ节点*/{fscanf(fp1,",%f,%f,%f,%f",&jiedian[j].p,&jiedian[j].q,&jiedian[j].e,&jiedian[j].f);jiedian[j].num=numb;jiedian[j].s=h;j++;}if(h
6、==2)/*类型h=2是pv节点*/{fscanf(fp1,",%f,%f,%f",&jiedian[k].p,&jiedian[k].v,&jiedian[k].f);jiedian[k].num=numb;jiedian[k].e=jiedian[k].v;jiedian[k].s=h;k++;}if(h==3)/*类型h=3是平衡节点*/{fscanf(fp1,",%f,%f",&jiedian[n].e,&jiedian[n].f);jiedian[n].num=numb;jiedian[n].s=h;}}for(i=1;i<=m+byqn;i++)/*输入支路阻抗*/
7、{fscanf(fp1,"%d,%d",&number,&ii);if(ii==1){fscanf(fp1,",%d,%d,%f,%f",&zhilu[ll].p1,&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,",%d,%d,%f,%f,%f,%