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

📄 gb3321.cpp

📁 dos下运行,根据国标GB-3321短路电流计算方法编写
💻 CPP
字号:
#include <iostream>
#include <stdio.h>
#include <math.h>
#include <string.h>
using std::cin;
using std::cout;
using std::endl;
int main()
{
	double sqrt(double);
	double exp(double);
	//循环判断choos3
	char choos3;
	int blian,VNG;
	const double pai=3.14159265, pfgen=1.41421356;
	cout <<"请输入并联机组数,发电机额定相电压(v)"<<endl;
	cin>>blian>>VNG;
	cout<<"请输入Ra(mΩ),Rgb,Xd_jchao,Xd_jshun,Xgb,Td_jchao,Ta"<<endl;
	float Ra,Rgb,Xd_jchao,Xd_jshun,Xgb,Td_jchao,Ta;
	cin>>Ra>>Rgb>>Xd_jchao>>Xd_jshun>>Xgb>>Td_jchao>>Ta;
	cout<<"请输入平均等效电动机参数VNM(v),台数q,Rs(mΩ),Xm_shun(mΩ),Tacm(ms),Tdcm(ms)"<<endl;
	int VNM;
	float q;
	double Rs,Xm,Tac,Tdc;
	cin>>VNM>>q>>Rs>>Xm>>Tac>>Tdc;
	double Rs_j,Xm_jshun,Tacm_j,Tdcm_j;
	Rs_j=Rs/q;
	Xm_jshun=Xm/q;
	Tacm_j=Tac;
	Tdcm_j=Tdc;


    do{
	float ig_jchao,ig_jshun;
	cout <<"是否计算临近汇流排短路电流?"<<endl;
	char choos1; //choose1 是否计算临近汇流排
	cin>>choos1;
	cout<<"choos="<<choos1<<endl;
	if(choos1=='y')//临近汇流排部分的计算程序
	{
	/*cout<<"请输入Ra(mΩ),Rgb,XD_jchao,XD_jshun,Td_jchao,Ta"<<endl;
	float Ra,Rgb,Xd_jchao,Xd_jshun,Xgb;
	cin>>Ra>>Rgb>>Xd_jchao>>Xd_jshun>>Xgb>>Td_jchao>>Ta;*/

	float RA_j,XD_jchao,XD_jshun;
	RA_j=Ra+Rgb;
	XD_jchao=Xd_jchao+Xgb;
	XD_jshun=Xd_jshun+Xgb;
	double ZD_jchao,ZD_jshun;
	ZD_jchao=sqrt(RA_j*RA_j+XD_jchao*XD_jchao);
	ZD_jshun=sqrt(RA_j*RA_j+XD_jshun*XD_jshun);
	cout<<"RA_j="<<RA_j<<endl
		<<"XD_jchao="<<XD_jchao<<endl
		<<"XD_jshun="<<XD_jshun<<endl
		<<"ZD_jchao="<<ZD_jchao<<", "<<"ZD_jshun="<<ZD_jshun<<endl;   //测试
	ig_jchao=VNG/ZD_jchao;
	ig_jshun=VNG/ZD_jshun;
	//为方便国标
	cout<<"ig_jchao="<<ig_jchao<<endl
		<<"ig_jshun="<<ig_jshun<<endl;
	
	double Alpha_j;
	double Tdcbg,sumt;
	sumt=(10*Xgb)/(pai*Ra);
	Tdcbg=(Ta+sumt)/(1+Rgb/Ra);
	Alpha_j=exp(-10/Tdcbg);
	cout<<"Tdcbg="<<Tdcbg<<endl
		<<"Alpha_j="<<Alpha_j<<endl;
	float Iavg_j,Imaxg_j,Ipg_j,iacg_j,idcg_j;
	iacg_j=(ig_jchao-ig_jshun)*exp(-10/Td_jchao)+ig_jshun;
	//方便国标
	cout<<"iacg_j="<<iacg_j<<endl;
	
	idcg_j=pfgen*ig_jchao*exp(-10/Tdcbg);
	Ipg_j=blian*((pfgen*iacg_j)+idcg_j);
	double sumg1,sumg2;
	sumg1=iacg_j*iacg_j+idcg_j*idcg_j;
	sumg2=iacg_j*iacg_j+idcg_j*idcg_j/4;
	Iavg_j=(sqrt(sumg1)+2*sqrt(sumg2))*2/3;
	Imaxg_j=2*sqrt(sumg1);
	//Iavg_j=1/3*(sqrt(iacg_j*iacg_j+idcg_j*idcg_j)+2*sqrt(iacg_j*iacg_j+idcg_j*idcg_j/4));
	//Imaxg_j=sqrt(iacg_j*iacg_j+idcg_j*idcg_j);
	
	float Iacm_j,Idcm_j,Ipm_j,Iavm_j,Imaxm_j;//临近汇流排电动机
	double suma;
	suma=sqrt(Rs_j*Rs_j+Xm_jshun*Xm_jshun);
	Iacm_j=VNM*exp(-10/Tacm_j)/suma;
	Idcm_j=pfgen*VNM*exp(-10/Tdcm_j)/suma;
	Ipm_j=(pfgen*Iacm_j+Idcm_j);
	double summ1,summ2;
	summ1=sqrt(Iacm_j*Iacm_j+Idcm_j*Idcm_j);
	summ2=sqrt(Iacm_j*Iacm_j+Idcm_j*Idcm_j/4);
	Iavm_j=(summ1+2*summ2)/3;
	Imaxm_j=summ1;
	//Iavm_j=Nave*(1/3*(sqrt(Iacm_j*Iacm_j+Idcm_j*Idcm_j)+2*sqrt(Iacm_j*Iacm_j+Idcm_j*Idcm_j/4)));
	//Imaxm_j=Nave*sqrt(Iacm_j*Iacm_j+Idcm_j*Idcm_j);//临近汇流排处计算结束
	float Ip_j,Iav_j,Imax_j;
	Ip_j=Ipm_j+Ipg_j;
	Iav_j=Iavm_j+Iavg_j;
	Imax_j=Imaxm_j+Imaxg_j;
	cout<<"Ipm_j= (kA)"<<Ipm_j<<endl;
	cout<<"Iavm_j= (kA)"<<Iavm_j<<endl;
	cout<<"Imaxm_j= (kA)"<<Imaxm_j<<endl;
	cout<<"Ipg_j= (kA)"<<Ipg_j<<endl;
	cout<<"Iavg_j= (kA)"<<Iavg_j<<endl;
	cout<<"Imaxg_j= (kA)"<<Imaxg_j<<endl;
	cout<<"Ip_j= (kA)"<<Ip_j<<endl;
	cout<<"Iav_j= (kA)"<<Iav_j<<endl;
	cout<<"Imax_j= (kA)"<<Imax_j<<endl;
	
	}
	if(choos1=='n')//远离汇流排部分计算
	{
	float RA_y,XD_ychao,XD_yshun;
	RA_y=(Ra+Rgb)/blian;
	XD_ychao=(Xd_jchao+Xgb)/blian;
	XD_yshun=(Xd_jshun+Xgb)/blian;
	
	cout<<"请输入Rf,Xf"<<endl;
	double Rf,Xf;
	cin>>Rf>>Xf;
	double Rk,Xk_chao,Xk_shun;
	Rk=RA_y+Rf;
	Xk_chao=XD_ychao+Xf;
	Xk_shun=XD_yshun+Xf;
	double Zk_chao,Zk_shun;
	Zk_chao=sqrt(Rk*Rk+Xk_chao*Xk_chao);
	Zk_shun=sqrt(Rk*Rk+Xk_shun*Xk_shun);
	cout<<"Zk_chao="<<Zk_chao<<endl;
	cout<<"Zk_shun="<<Zk_shun<<endl;
	float Ig_ychao,Ig_yshun;
	Ig_ychao=VNG/Zk_chao;
	Ig_yshun=VNG/Zk_shun;
	double Alpha_y;
	double Tdceg,sumta,sumtb;
	sumta=10*(Xgb+blian*Xf)/(pai*Ra);//ms 的公式。如果是S的公式不一样
	sumtb=1+(Rgb+blian*Rf)/Ra;
	Tdceg=(Ta+sumta)/sumtb;
	Alpha_y=exp(-10/Tdceg);
	cout<<"Alpha_y="<<Alpha_y<<endl;
	double Tde_ychao;
	double sumya,sumyb;
	sumya=1+(Xgb+blian*Xf)/Xd_jchao;
	sumyb=1+(Xgb+blian*Xf)/Xd_jshun;
	Tde_ychao=(Td_jchao*sumya)/sumyb;
	//Tde_ychao=(Xk_chao*XD_jshun*Td_jchao)/(Xk_shun*XD_jchao);
	float Ipg_y,Iavg_y,Imaxg_y,Iacg_y,Idcg_y;
	Iacg_y=(Ig_ychao-Ig_yshun)*exp(-10/Tde_ychao)+Ig_yshun;
	Idcg_y=pfgen*Alpha_y*Ig_ychao;
	Ipg_y=(pfgen*Iacg_y+Idcg_y);
	double sumg3,sumg4;
	sumg3=Iacg_y*Iacg_y+Idcg_y*Idcg_y;
	sumg4=Iacg_y*Iacg_y+Idcg_y*Idcg_y/4;
	Iavg_y=(sqrt(sumg3)+2*sqrt(sumg4))/3;
	Imaxg_y=sqrt(sumg3);//////////////////////////////////远离汇流排电动机计算


	//Iavg_y=1/3*(sqrt(Iacg_y*Iacg_y+Idcg_y*Idcg_y)+2*sqrt(Iacg_y*Iacg_y+Idcg_y*Idcg_y/4));
	//Imaxg_y=sqrt(Iacg_y*Iacg_y+Idcg_y*Idcg_y);
	double Tacem,Tdcem;
	Tacem=Tacm_j;
	double sumyma,sumymb;
	sumyma=Tdcm_j+(1000*Xf)/(100*pai*Rs_j);
	sumymb=1+Rf/Rs_j;
	Tdcem=sumyma/sumymb;
	cout<<"Tacem="<<Tacem<<endl
		<<"Tdcem="<<Tdcem<<endl
		<<"Xm_jshun="<<Xm_jshun<<endl
		<<"Xf="<<Xf<<endl
		<<"Rs_j="<<Rs_j<<endl;
	//Tdcem=(Xf+Xm_jshun)/(100*pai*(Rs_j+Rf));
	float Iacem,Idcem;
	double sumb,sumc;
	sumb=(Rs_j+Rf)*(Rs_j+Rf)+(Xm_jshun+Xf)*(Xm_jshun+Xf);
	sumc=sqrt(sumb);
	Iacem=(VNM*exp(-10/Tacem))/sumc;
    Idcem=(pfgen*VNM*exp(-10/Tdcem))/sumc;
	cout<<"sumc="<<sumc<<endl
		<<"sumb="<<sumb<<endl
		<<"Iacem="<<Iacem<<endl
		<<"Idcem="<<Idcem<<endl;////////////////////////////////检测

	//Iacem=(VNM*exp(-10/Tacem))/sqrt((Rs_j+Rf)*(Rs_j+Rf)+(Xm_jshun+Xf)*(Xm_jshun+Xf));
	//Idcem=(pfgen*VNM*exp(-10/Tdcem))/sqrt((Rs_j+Rf)*(Rs_j+Rf)+(Xm_jshun+Xf)*(Xm_jshun+Xf));
	float Ipm_y,Iavm_y,Imaxm_y;
	Ipm_y=pfgen*Iacem+Idcem;
	double summ3,summ4;
	summ3=sqrt(Iacem*Iacem+Idcem*Idcem);
	summ4=sqrt(Iacem*Iacem+Idcem*Idcem/4);
	Iavm_y=(summ3+2*summ4)/3;
	Imaxm_y=summ3;

	//Iavm_y=Nave*(1/3*(sqrt(Iacem*Iacem+Idcem*Idcem)+2*sqrt(Iacem*Iacem+Idcem*Idcem/4)));
	//Imaxm_y=Nave*sqrt(Iacem*Iacem+Idcem*Idcem);
	float Ip_y,Iav_y,Imax_y;
	Ip_y=Ipg_y+Ipm_y;
	Iav_y=Iavg_y+Iavm_y;
	Imax_y=Imaxg_y+Imaxm_y;

	cout<<"Ipg_y= (kA)"<<Ipg_y<<endl;
	cout<<"Iavg_y= (kA)"<<Iavg_y<<endl;
	cout<<"Imaxg_y= (kA)"<<Imaxg_y<<endl;
	cout<<"Ipm_y= (kA)"<<Ipm_y<<endl;
	cout<<"Iavm_y= (kA)"<<Iavm_y<<endl;
	cout<<"Imaxm_y= (kA)"<<Imaxm_y<<endl;
	cout<<"Ip_y= (kA)"<<Ip_y<<endl;
	cout<<"Iav_y= (kA)"<<Iav_y<<endl;
	cout<<"Imax_y= (kA)"<<Imax_y<<endl;
	
	}
 
	//double ZD_jchao,ZD_jshun;//??????????
	//超瞬态短路电流
	cout<<"是否继续计算短路电流?y/n"
		<<endl;
	cin>>choos3;
	}while(choos3=='y');
	

	
	

	return 0;

}

⌨️ 快捷键说明

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