📄 main.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 + -