亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? powerflow.cpp

?? 電力系統牛頓拉夫遜法的潮流程序
?? CPP
?? 第 1 頁 / 共 3 頁
字號:
/*下面是數據輸入格式說明:
為了減少不必要的運算,本潮流程序中將嚴格規定數據的錄入格式.
具體要求如下:
1.數據共分六大組:即基本數據組、支路數據組、補償電容數據組、并聯電抗數據組、發電機節點數據組、負荷節點數據組。

2.在基本數據組內按照以下格式錄入以下數據:
  節點個數,支路條數,對地補償電容支路數,并聯電抗數、發電機節點個數,負荷節點個數,系統平均電壓,計算精度

3.在支路數據組內按照以下格式錄入以下數據:
  對于線路支路:  支路的第一個節點號,支路的第二個節點號,支路的電阻,支路的電抗,支路的導納
  對于變壓器支路:變壓器的第一個節點號,變壓器的第二個節點號,變壓器的電阻,變壓器的電抗,變壓器的非標準變比
注意:(1)支路兩端的節點號應把小號排在前面,大號排在后面;
  (2)各支路按其小節點號的順序排列;
  (3)對于線路支路,導納應為Y,而不是計算中的Y/2;
  (4)對于變壓器支路,變壓器非標準變比所在側的節點號應為負號。
另外,串聯電容也應該在系統中被認為是一條支路,且串聯電容的參數應當換算成為相應的電抗值,注意:此值為負。
特別提醒:本程序不支持同節點之間的并聯線路,需要先行歸化為一條線路,然后求解。

4.在補償電容數據組內按照以下格式錄入以下數據:
  所在節點號、導納值

5.在并聯電抗數據組內按照以下格式錄入以下數據:
  所在節點號、電抗值

6.在發電機節點數據組內按照以下格式錄入以下數據:
  發電機所在節點號,發電機所發有功,發電機所發無功,發電機節點的電壓
注意:(1)對于PV節點,無功應為發電機的無功上限;
  (2)對于PV節點,電壓為節點所需維持的電壓,應為負值;
  (3)對于PQ節點,電壓為計算過程中的節點的電壓初值。

7.在負荷節點數據組內按照以下格式錄入以下數據:
  負荷所在節點號,負荷有功,負荷無功,負荷節點的電壓
注意:(1)負荷節點一般為PQ節點,其電壓為計算過程中的節點的電壓初值;
  (2)負荷的有功和無功均應寫成注入節點功率的形式,即全部為負值;
  (3)特別的,系統的平衡節點應該被排在最后,即作為第N個節點,同時要求該節點為負荷節點;如果該點無負荷,則該點的負荷功率填零。

至于對所求解系統的描述性文字可以放在該文件的末尾,任意長度。
另外,本程序可以自動形成輸出文件,其文件名為輸入文件名后加"out",且輸出文件名的后綴確定為".dat"。例如,對于程序已給的5節點系統,輸入文件名"ps-5",后綴為".dat",輸出文件名為"ps-5out",后綴為".dat"。為了保證名稱的前后統一,因此建議:將輸入文件的名字寫成如下格式:****.dat;并且輸入文件的文件名的長度應不大于5(不計后綴)。











*/


/**********************************************************************/
/*****************PQ分解法潮流程序-BB方案,允許迭代次數2000次******************************/
/*********
        作者:李常剛,山東大學電氣工程學院02級3班,spring-_lee@163.com
        源于畢業設計題目,2006年4月3日
**********/
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <math.h>
#include <time.h>

  struct Branch_Type
  {
   int i,j;
   double R,X,YK;
  }; 
  struct Compensation_Type
  {
   int i;
   double Y;
  };
  struct Reactance_Type
  {
   int i;
   double X;
  };
  struct Generator_Type
  {
   int i;
   double P,Q;
   double V;
  };
  struct Load_Type
  {
   int i;
   double P,Q;
   double V;
  };
  struct PVNode_Type
  {
   int i;
   double V;
  };
  struct Yii_Type
  {
   double G,B;
  };
  struct Yij_Type
  {
   double G,B;
   int j;
  };
  struct NodalPow
  {
   double P,Q;
  };
  struct NodalVol
  {
    double V,theta;
  };
  struct GeneratorPower
  {
     double P,Q;
  };
  struct U_Type
  {
     double value;
     int j;
  };

  void Datain(int Nb,int Nl,int Nc,int Nr,int Ng,FILE *fp,struct Branch_Type *Branch,struct Compensation_Type *Compensation,struct Reactance_Type *Reactance,struct Load_Type *Load,struct Generator_Type *Generator,struct PVNode_Type *PVNode,int *Npv);/*從文件中讀入數據*/
  void AdmittanceMatrix(int N,int Nb,struct Yii_Type *Yii,struct Yii_Type *Yiil,struct Yij_Type *Yij,struct Yij_Type *Yijl,struct Branch_Type *Branch,int *NYseq1,int *NYsum1);/*導納矩陣形成函數*/
  void AdmittanceMatrixAdd(int Nb,int Nc,int Nr,struct Yii_Type *Yii,struct Yii_Type *Yiil,struct Yij_Type *Yij,struct Yij_Type *Yijl,struct Branch_Type *Branch,struct Compensation_Type *Compensation,struct Reactance_Type *Reactance);/*導納矩陣追加接地支路函數*/
  void Factorial(int flag,int N,int Npv,struct PVNode_Type *PVNode,int *NUsum,struct Yii_Type *Yii,struct Yij_Type *Yij,int *NYseq,double *D,struct U_Type *U);/*因子表形成函數*/
  void NodePower(int flag,int N,struct NodalVol *NodeVol,struct NodalPow *NodePow,struct Yii_Type *Yii,struct Yij_Type *Yij,int *NYseq);/*節點功率計算函數*/
  void Iteration(int flag,struct Generator_Type *Generator,struct Load_Type *Load,struct PVNode_Type *PVNode,struct NodalVol *NodeVol,struct NodalPow *NodePow,struct GeneratorPower *GenPower,int N,double *DI,double *MaxError,int *ErrNode);/*迭代函數*/
  void FormulaSolution(int flag,struct U_Type *U,double *D,int *NUsum,double *DI,int N,struct NodalVol *NodeVol,double V0);
  void NodeDataOutput(FILE *fp,struct NodalVol *NodeVol,struct Generator_Type *Generator,int N,struct GeneratorPower *GenPower,struct NodalPow *NodePow,struct Load_Type *Load,int Nl);
  void BranchDataOutput(FILE *fp,int Nb,int Nc,int Nr,struct Branch_Type *Branch,struct Compensation_Type *Compensation,struct Reactance_Type *Reactance,struct NodalVol *NodeVol);









main()
{
  int N;
  int Nb;
  int Nc;
  int Nr;
  int Ng;
  int Nl;
  double V0;
  double epsilon;
  struct Branch_Type *Branch;
  struct Compensation_Type *Compensation;
  struct Reactance_Type *Reactance;
  struct Generator_Type *Generator;
  struct Load_Type *Load;
  struct PVNode_Type *PVNode;
  int Npv=0;/*標記PV節點總個數*/
  struct Yii_Type *Yii,*Yiil;
  struct Yij_Type *Yij,*Yijl;
  int *NYseq,*NYsum;
  struct NodalPow *NodePow;
  struct NodalVol *NodeVol;
  struct GeneratorPower *GenPower;
  double *DI1,*DI2;
  double MaxError=0.0,MaxErrorTemp;
  int ErrNode,ErrNodeTemp;
  int Kp=1,Kq=1;


  int n,k,count;
  time_t now;
 



  int i;/*用以標記當前處理行號*/





 

  
  struct U_Type *U1,*U2;
  double *D1,*D2;
  int *NUsum1,*NUsum2;
  

  char FILENAME[20];
  FILE *fp;



 /* if((fp=fopen("README.txt","r"))==NULL)
  {
      printf("部分文件缺失,請確保文件的完整性!!\n");
      printf("按 ENTER 鍵返回!\n");
      scanf("%c",&ch);
      exit(1);
  }
*/

  /***********打開系統數據文件**********************/
  printf("Please Enter The Filename of The System:");
  gets(FILENAME);
  if((fp=fopen(FILENAME,"r"))==NULL)
  {
    printf("Cannot Find The File:%s\n",FILENAME);
    printf("Press ENTER to Escape!");
    getchar();
    exit(1);
  }



 /******************讀系統數據信息****************/
  fscanf(fp,"%d,%d,%d,%d,%d,%d,%lf,%lf",&N,&Nb,&Nc,&Nr,&Ng,&Nl,&V0,&epsilon);


 /******************給支路、發電機、負荷和PV節點分配內存******************/
  Branch=malloc((Nb+1)*sizeof(struct Branch_Type));
  if(Branch==NULL)
  {
    printf("Cannot Get Memory for That Many Values!");
    printf("Press ENTER to Escape!");
    getchar();
    exit(1);
  }
  Compensation=malloc((Nc+1)*sizeof(struct Compensation_Type));
  if(Compensation==NULL)
  {
    printf("Cannot Get Memory for That Many Values!");
    printf("Press ENTER to Escape!");
    getchar();
    exit(1);
  }
  Reactance=malloc((Nr+1)*sizeof(struct Reactance_Type));
  if(Reactance==NULL)
  {
    printf("Cannot Get Memory for That Many Values!");
    printf("Press ENTER to Escape!");
    getchar();
    exit(1);
  }
  Generator=malloc((Ng+1)*sizeof(struct Generator_Type));
  if(Generator==NULL)
  {
    printf("Cannot Get Memory for That Many Values!");
    printf("Press ENTER to Escape!");
    getchar();
    exit(1);
  }
  Load=malloc((Nl+1)*sizeof(struct Load_Type));
  if(Load==NULL)
  {
    printf("Cannot Get Memory for That Many Values!");
    printf("Press ENTER to Escape!");
    getchar();
    exit(1);
  }
  PVNode=malloc(N*sizeof(struct PVNode_Type));
  if(PVNode==NULL)
  {
    printf("Cannot Get Memory for That Many Values!");
    printf("Press ENTER to Escape!");
    getchar();
    exit(1);
  }
/**********內存分配完成***************/





  Datain(Nb,Nl,Nc,Nr,Ng,fp,Branch,Compensation,Reactance,Load,Generator,PVNode,&Npv);/*從文件中讀入數據*/




  for(n=0;1;n++)/*打開輸出文件*/
  {
    if(FILENAME[n]=='.')
    {
        FILENAME[n]='\0';
        strcat(FILENAME,"out.dat");
        break;
    }
  }
  if((fp=fopen(FILENAME,"w"))==NULL)/*打開數據輸出文件*/
  {
    printf("Cannot Find The File:%s\n",FILENAME);
    printf("Press ENTER to Escape!");
    getchar();
    exit(1);
  }
/************為導納矩陣分配內存,并形成導納矩陣*******************/

  Yii=malloc((N+1)*sizeof(struct Yii_Type));
  Yiil=malloc((N+1)*sizeof(struct Yii_Type));
  Yij=malloc((N+1)*sizeof(struct Yij_Type));//???
  Yijl=malloc((N+1)*sizeof(struct Yij_Type));
  NYseq=malloc((N+1)*sizeof(int));
  NYsum=malloc((N+1)*sizeof(int));


  AdmittanceMatrix(N,Nb,Yii,Yiil,Yij,Yijl,Branch,NYseq,NYsum);/*導納矩陣形成函數*/



/***********分配及導納矩陣的形成完成*******************/


/******************下面確認導納矩陣的正確性(僅用于調試)*********************

  fprintf(fp,"The Admittance Matrix is:\n");
  printf("The Admittance Matrix is:\n");

  for(n=1;n<=N;n++)
  {
    fprintf(fp,"Yii[%d]=%lf+j%lf\n",n,Yii[n].G,Yii[n].B);
    fprintf(fp,"Yiil[%d]=%lf+j%lf\n",n,Yiil[n].G,Yiil[n].B);


    printf("Yii[%d]=%lf+j%lf\n",n,Yii[n].G,Yii[n].B);
    printf("Yiil[%d]=%lf+j%lf\n",n,Yiil[n].G,Yiil[n].B);
  }
  for(n=1;n<=N-1;n++)
  {
    for(i=NYseq[n];i<=NYseq[n+1]-1;i++)
    {
        fprintf(fp,"Yij[%d][%d]=%lf+j%lf\n",n,Yij[i].j,Yij[i].G,Yij[i].B);
        fprintf(fp,"Yijl[%d][%d]=%lf+j%lf\n",n,Yijl[i].j,Yijl[i].G,Yijl[i].B);

        printf("Yij[%d][%d]=%lf+j%lf\n",n,Yij[i].j,Yij[i].G,Yij[i].B);
        printf("Yijl[%d][%d]=%lf+j%lf\n",n,Yijl[i].j,Yijl[i].G,Yijl[i].B);
    }
  }

*****************確認導納矩陣的正確性完成(僅用于調試)*********************/



/*****************下面形成因子表,采用BX方案(在B'中不忽略電阻,在B"中忽略電阻)*****************/
  U1=malloc((N-1)*(N-2)/2*sizeof(struct U_Type));
  U2=malloc((N-1)*(N-2)/2*sizeof(struct U_Type));
  D1=malloc(N*sizeof(double));
  D2=malloc(N*sizeof(double));
  NUsum1=malloc(N*sizeof(int));
  NUsum2=malloc(N*sizeof(int));

  Factorial(1,N,Npv,PVNode,NUsum1,Yii,Yij,NYseq,D1,U1);/*因子表形成函數*/
/**************************

  count=0;
  for(n=1;n<=N-1;n++)
  {
      fprintf(fp,"D[%d]=%lf;\n",n,D1[n]);

     }
  for(i=1;i<=N-1;i++)
  {
      
      for(n=1;n<=NUsum1[i];n++)
      {
          fprintf(fp,"U[%d][%d]=%lf\n",i,U1[count+n].j,U1[count+n].value);

      }
      count+=NUsum1[i];
  }


    count=0;

**************************************/
  AdmittanceMatrixAdd(Nb,Nc,Nr,Yii,Yiil,Yij,Yijl,Branch,Compensation,Reactance);/*導納矩陣追加接地支路函數*/
  Factorial(2,N,Npv,PVNode,NUsum2,Yii,Yij,NYseq,D2,U2);/*因子表形成函數*/


/********************************

  for(n=1;n<=N-1;n++)
  {
      fprintf(fp,"D[%d]=%lf;\n",n,D2[n]);
 
  }
  for(i=1;i<=N-1;i++)
  {
      
      for(n=1;n<=NUsum2[i];n++)
      {
         fprintf(fp,"U[%d][%d]=%lf\n",i,U2[count+n].j,U2[count+n].value);
      }
      count+=NUsum2[i];
  }



    
 
*************************************/



/****************下面利用所求得的因子表進行迭代求解******************/

   

  DI1=malloc(N*sizeof(double));
  DI2=malloc(N*sizeof(double));
  NodePow=malloc((N+1)*sizeof(struct NodalPow));
  NodeVol=malloc((N+1)*sizeof(struct NodalVol));


  /****先送電壓初值******/
  for(i=1;i<=N;i++)
  {
    NodeVol[i].V=V0;
    NodeVol[i].theta=0.0;
  }
  /*for(i=1;i<=Ng;i++)
  {
      n=Generator[i].i;
      NodeVol[n].V=Generator[i].V;
      NodeVol[n].theta=0.0;
  }
   for(i=1;i<=Nl;i++)
  {
      n=Load[i].i;
      NodeVol[n].V=Load[i].V;
      NodeVol[n].theta=0.0;
  }*/

  for(n=1;n<=Npv;n++)
  {
    i=PVNode[n].i;
    NodeVol[i].V=PVNode[n].V;
  }

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
天天综合日日夜夜精品| 欧美videos大乳护士334| 中文字幕中文字幕中文字幕亚洲无线| 久久91精品国产91久久小草| 日韩精品一区二区三区三区免费| 免费一级片91| 久久久久成人黄色影片| 成人av资源网站| 亚洲六月丁香色婷婷综合久久| 91福利精品第一导航| 午夜欧美电影在线观看| 日韩欧美一区二区不卡| 国产成人免费网站| 亚洲日本韩国一区| 欧美精品第一页| 国产丶欧美丶日本不卡视频| 中文字幕一区在线观看| 欧美色综合久久| 九九精品一区二区| 国产精品久久久久aaaa樱花 | 美美哒免费高清在线观看视频一区二区| 欧美日韩不卡在线| 国产精品一区二区x88av| 综合久久国产九一剧情麻豆| 欧美伦理视频网站| 国产91精品久久久久久久网曝门 | 欧美成人性战久久| 成人看片黄a免费看在线| 夜夜夜精品看看| 久久综合久久鬼色| 欧美综合色免费| 国产精品一区二区在线观看不卡| 亚洲少妇屁股交4| 欧美第一区第二区| 色婷婷激情一区二区三区| 色欧美片视频在线观看在线视频| 亚洲高清视频的网址| 国产拍揄自揄精品视频麻豆| 欧洲av在线精品| 国产成人精品三级| 日本免费新一区视频| 1024亚洲合集| 久久在线免费观看| 欧美精品 国产精品| 成人黄色综合网站| 狠狠色狠狠色综合| 无吗不卡中文字幕| 亚洲激情在线播放| 国产欧美日本一区二区三区| 欧美一区二区三区色| 色妹子一区二区| 成人午夜私人影院| 国产综合久久久久久久久久久久| 亚洲bt欧美bt精品| 亚洲美女视频一区| 日本一二三四高清不卡| 欧美www视频| 5566中文字幕一区二区电影| 色哟哟亚洲精品| aa级大片欧美| 成人午夜私人影院| 国产精品99久久久久久有的能看| 免费不卡在线观看| 午夜国产不卡在线观看视频| 亚洲美女淫视频| 亚洲男人天堂av网| 亚洲欧洲精品天堂一级| 国产精品美日韩| 久久久91精品国产一区二区精品| 日韩亚洲欧美在线| 欧美一级欧美一级在线播放| 3atv在线一区二区三区| 欧美日韩激情一区二区| 欧美日韩在线播放一区| 欧美在线你懂的| 欧美三区在线视频| 欧美午夜寂寞影院| 欧美裸体bbwbbwbbw| 欧美久久一二三四区| 欧美日韩免费高清一区色橹橹| 91国模大尺度私拍在线视频| 色综合久久久久综合99| 在线视频欧美精品| 欧美唯美清纯偷拍| 91精品在线免费观看| 欧美一级午夜免费电影| 日韩欧美在线综合网| 欧美精品一区二区三区在线播放| 精品少妇一区二区三区日产乱码 | 精品视频1区2区3区| 欧美中文字幕不卡| 欧美日韩激情在线| 欧美成人精品高清在线播放| 精品对白一区国产伦| 中文字幕欧美激情| 亚洲免费观看高清完整版在线| 亚洲影院免费观看| 日韩av电影免费观看高清完整版 | 成人黄色av电影| 色域天天综合网| 欧美乱妇15p| 26uuu国产在线精品一区二区| 欧美国产精品中文字幕| 亚洲人精品午夜| 婷婷丁香久久五月婷婷| 久久99精品久久久久久国产越南 | thepron国产精品| 欧美综合一区二区| 欧美成人福利视频| 中文字幕中文在线不卡住| 亚洲国产综合视频在线观看| 美腿丝袜亚洲三区| caoporen国产精品视频| 欧美人牲a欧美精品| 国产视频一区在线观看| 一区二区三区四区激情| 久久不见久久见免费视频7| 成人app软件下载大全免费| 欧美性大战久久久| 久久色视频免费观看| 亚洲精品久久嫩草网站秘色| 麻豆国产精品官网| 91啪亚洲精品| 精品国产一区a| 亚洲靠逼com| 国产精品中文字幕日韩精品 | 国产精品资源在线观看| 欧美在线看片a免费观看| 久久久久久亚洲综合影院红桃| 亚洲人成在线观看一区二区| 国产在线播放一区| 欧美色精品在线视频| 国产欧美精品区一区二区三区| 亚洲不卡在线观看| 99久久久久久| 2021中文字幕一区亚洲| 五月婷婷激情综合| av在线一区二区| 26uuu国产电影一区二区| 亚洲午夜久久久久久久久久久| 国产成人精品影院| 91精品国产一区二区三区| 亚洲久本草在线中文字幕| 国产精品99久久久久久似苏梦涵 | 日韩欧美一区在线| 亚洲综合色区另类av| 成人黄色软件下载| 国产情人综合久久777777| 久久99久久99精品免视看婷婷| 欧美午夜片在线看| 最新国产の精品合集bt伙计| 国产成人综合亚洲91猫咪| 日韩欧美的一区二区| 人人爽香蕉精品| 欧美日韩国产一级片| 亚洲综合免费观看高清完整版在线 | 日本不卡一区二区三区高清视频| 91丨九色丨蝌蚪丨老版| 国产精品三级av| 国产成人在线看| 久久日韩粉嫩一区二区三区| 日本不卡视频一二三区| 欧美日韩午夜在线| 亚洲国产aⅴ天堂久久| 欧美视频在线播放| 亚洲r级在线视频| 欧美精品三级日韩久久| 五月天国产精品| 欧美久久久久免费| 天天操天天干天天综合网| 欧美美女直播网站| 天天综合色天天综合色h| 在线成人av网站| 免费看黄色91| www久久久久| 久久99久久99| 日本一区二区视频在线观看| 成人成人成人在线视频| 亚洲欧洲av在线| 在线观看国产一区二区| 五月婷婷欧美视频| 日韩欧美中文一区| 国产精品亚洲综合一区在线观看| 国产欧美一区二区精品忘忧草| 丁香桃色午夜亚洲一区二区三区| 亚洲国产激情av| 色又黄又爽网站www久久| 亚洲成人手机在线| 日韩欧美在线综合网| 国产成人鲁色资源国产91色综| 国产精品久久久久毛片软件| 色欧美88888久久久久久影院| 午夜久久久影院| 日韩精品资源二区在线| 成人亚洲精品久久久久软件| 亚洲欧美日韩国产另类专区| 欧美久久久影院| 国产精品夜夜嗨| 一卡二卡三卡日韩欧美| 日韩午夜激情av|