⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.cpp

📁 电力系统发输电系统基于非序贯的蒙特卡罗抽样的风险评估程序
💻 CPP
字号:
#include<stdio.h>
#include<stdlib.h>
#include<iostream.h>
#include<math.h>
#include<sys/timeb.h>
#include<time.h>

#include"datastruct.h"
#include"first.h"
#include"matrix.h"

void main()
{
	 printf("\n\n");
	 printf("  **************************************************************************\n");
	 printf("  **************************************************************************\n");
	 printf("  *************************大电网monte-carlo评估****************************\n");
     printf("  **************************************************************************\n");
	 printf("  *****************************************************************By Wangbin\n\n");

     int Busnum,Branchnum,Gennum;
	 int *balanceno;//平衡节点号
	 struct Busdata *busdata;//原始节点数据
	 struct Branchdata *branchdata;
	 struct Gendata *gendata;
     double *B;//节点导钠矩阵
	 double *X;//节点阻抗矩阵
	 double *PSP;//节点净注入功率
	 double *Angle;//节点电压相角向量
	 double *branchP;//线路有功
	 int NumSamp=1000; //设定monte-carlo抽样次数
	 printf("");
     
     double *sample; //元件强迫停运率

     double *load_index;//首行为负荷点名,第二行为LOLP,第三行为EDNS,第四行为EENS


     int loadnum=0;

 

     FILE *fp1;//输入文件
     fp1=fopen("IE24.txt","r+");
	 if(fp1==NULL)
	 {
	      printf("cannot open this file\n");
		  while(1);
	 }
	 fscanf(fp1,"%d",&Busnum);
	 fscanf(fp1,"%d",&Branchnum);
	 fscanf(fp1,"%d",&Gennum);
     
	 FILE *fp2;//输出文件
	 fp2=fopen("out_IE24.txt","w+");
	 if(fp2==NULL)
	 {
	      printf("cannot open this file\n"); 
	      while(1);
	 }
     


	 balanceno=new int[1];
	 busdata=new struct Busdata[Busnum];
	 branchdata=new struct Branchdata[Branchnum];
	 gendata=new struct Gendata[Gennum];
	 B=new double[(Busnum-1)*(Busnum-1)];
	 X=new double[(Busnum-1)*(Busnum-1)];
	 PSP=new double[Busnum-1];
	 Angle=new double[Branchnum];
	 branchP=new double[Branchnum];
	 sample=new double[3*(Gennum+Branchnum)];
     

	 char tmpbuf[128];
	 _tzset();
	 _strtime(tmpbuf);
	 fprintf(fp2,"\n\n开始计算时间:\t\t\t\t%s\n",tmpbuf);
	 printf("\n\n开始计算时间:%s\n",tmpbuf);

     indata(fp1,busdata,branchdata,gendata,Busnum,Branchnum,Gennum,balanceno);
     for(int i=0;i<Busnum;i++)
	 {
           if(busdata[i].PL>0)
		   loadnum++;
	 }
	 loadnum++;

     load_index=new double[loadnum*4];


	 formB(B,branchdata,busdata,Busnum,Branchnum,balanceno);
	 matrixinv(X,B,Busnum-1);
	 formPSP(PSP,busdata,Busnum,balanceno);
     formAngle(Busnum-1,Busnum-1,Busnum-1,1,X,PSP,Angle,Busnum,busdata,balanceno);
	 formBranchP(branchP,Angle,branchdata,busdata,Busnum,Branchnum);
	 form_sample(sample,branchdata,gendata,Branchnum,Gennum);
     outdata(fp2,busdata,branchdata,gendata,load_index,Busnum,Branchnum,Gennum,balanceno,sample,NumSamp,loadnum);
	 
	 /*printf("%4d ",*balanceno+1);
	 printf("\n\n");
     for(i=0;i<Busnum;i++)
	 {
	    printf("%4d ",busdata[i].busflag);
        printf("%4d  ",busdata[i].busno);
        printf("%4.4f ",busdata[i].PG);
        printf("%4.4f ",busdata[i].PL);
        printf("%4.4f ",busdata[i].V);
        printf("%4.4f ",busdata[i].angle);
		printf("%4.4f ",busdata[i].maxPG);
		printf("\n");
	 }
	 printf("\n");
	 for(i=0;i<Branchnum;i++)
	 {
	    printf( "%4d ",branchdata[i].branchno);
        printf( "%4d %4d ",branchdata[i].from,branchdata[i].to);
        printf( "%4.4f %4.4f ",branchdata[i].X,branchdata[i].capacity);
        printf( "%4.4f %4.4f ",branchdata[i].malfunctionrate,branchdata[i].repairtime);
        printf( "%4.4f ",branchdata[i].branchP);
        printf( "%4d",branchdata[i].alrnum);
	    printf("\n");
	 }
	 printf("\n");
     for(i=0;i<Gennum;i++)
	 {
	    printf("%4d ",gendata[i].Genno);
        printf("%4d ",gendata[i].linkno);
        printf("%4.4f ",gendata[i].maxP);
        printf("%4.8f ",gendata[i].malfunctionrate);
        printf("%4.8f ",gendata[i].repairtime);
	    printf("\n");
	 }
	 printf("\n");
	 for(i=0;i<Busnum-1;i++)
	 {
	 for(int j=0;j<Busnum-1;j++)
         printf("%4.5f ",B[i*(Busnum-1)+j]);
	 printf("\n"); 
	 }
	 printf("\n");
      for(i=0;i<Busnum-1;i++)
	 {
	 for(int j=0;j<Busnum-1;j++)
         printf("%4.5f ",X[i*(Busnum-1)+j]);
	 printf("\n");  
	 }
	  printf("\n");
	  for(i=0;i<Busnum-1;i++)
		  printf("%4.5f ",PSP[i]);
	  printf("\n\n");
	  for(i=0;i<Busnum;i++)
	  printf("%4.5f ",Angle[i]);
      printf("\n\n");
	  for(i=0;i<Branchnum;i++)
	  printf("%4.5f ",branchdata[i].branchP);
      printf("\n\n");
      for(i=0;i<Branchnum+Gennum;i++)
	  printf("%4.5f %4.5f %4.5f\n",sample[3*i+0],sample[3*i+1],sample[3*i+2]);
	  printf("\n");
	  for(i=0;i<loadnum;i++)
	  {
	     printf("%4.5f %4.5f %4.5f %4.5f\n",load_index[i],load_index[loadnum+i],load_index[2*loadnum+i],load_index[3*loadnum+i]);

	  }
	  printf("\n");*/
	 
	  _tzset();
      _strtime(tmpbuf);
	 fprintf(fp2,"\n\n计算结束时间:\t\t\t\t%s\n",tmpbuf);
	 printf("\n\n计算结束时间:%s\n",tmpbuf);
	 
	 delete []balanceno;
	 balanceno=NULL;
	 delete []busdata;
	 busdata=NULL;
	 delete []branchdata;
	 branchdata=NULL;
	 delete []gendata;
	 gendata=NULL;
	 delete []B;
	 B=NULL;
	 delete []X;
	 X=NULL;
	 delete []PSP;
	 PSP=NULL;
	 delete []Angle;
	 Angle=NULL;
	 delete []branchP;
	 branchP=NULL;
	 delete []sample;
	 sample=NULL;
	 delete []load_index;
	 load_index=NULL;


}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -