📄 中压计算.cpp
字号:
if(cf1[i].flag==1)
{cf1[i].q1=cf1[i].q1*H1/100;
cf2[i].q2=cf2[i].q2*H2/100;
}
}
/*void calculate1(double Nl) //用高,中压公式选铸铁管径
{ int i,j,k;
double a;
double b;
double d;
double p2;
double min=P2;
printf("Nl=%.3lf\n",Nl);
for(i=0;i<bo;i++)
{ p2=0;
for(j=0;j<N5;j++)
{a=pow((dcg0*10/bg[j].zfe+192.2*bg[j].zfe*ng.vi*V/c[i].q),0.25)*Y1;
//printf("a=%.3lf\n",a);
b=(pow(P1,2)-a*pow(c[i].q,2)/pow(bg[j].zfe,5)*ng.mi*(T+T0)/T0*Nl);
//printf("//////////////////////////////////b=%.3lf\n",b);
if(b>0)
{p2=pow(b,0.5);
if(fabs(p2-P2)<min)
{ min=fabs(p2-P2);
k=j;
}
}
}
printf("bg[k].zfe=%.3lf p2=%.3lf min=%.3lf\n",bg[k].zfe,p2,min);
bzgj[0][i]=choosediameter0(bg[k].zfe);
}
}
void calculate2(double Nl,double Dcg) //用高,中压公式选钢管管径
{ int i;
double a;
double b;
double d;
double P2;
d=50.0;
for(i=0;i<bo;i++)
{ do
{a=pow((Dcg/d+192.2*d*ng.vi/c[i].q),0.25)*Y1;
b=(P2*P2-a*c[i].q*c[i].q/pow(d,5)*ng.mi*(T+T0)/T0*Nl);
if(b>0)
P2=sqrt(b);
d=d+5.0;
}while(P2-P1<0.01);
bzgj[1][i]=choosediameter1(d);
}
}
void calculate3(double Nl,double Dcg) //用高,中压公式选塑料管径
{ int i;
double a;
double b;
double d;
double P2;
d=32.0;
for(i=0;i<bo;i++)
{ do
{a=pow((Dcg/d+192.2*d*ng.vi/c[i].q),0.25)*Y1;
b=(P2*P2-a*c[i].q*c[i].q/pow(d,5)*ng.mi*(T+T0)/T0*Nl);
if(b>0)
P2=sqrt(b);
d=d+4.0;
}while(P2-P1<0.01);
bzgj[2][i]=choosediameter2(d);
}
}*/
void show0()
{int i;
double pp1;
double pp2;
double pp3;
double pp4;
cf1[no-2].q1=Q2;
cf1[no-1].q1=Q3;
for(i=0;i<no;i++)
printf("%d %.3lf %d\n",cf1[i].name1,cf1[i].q1,cf1[i].flag);
cf2[no-2].q2=0;
cf2[no-1].q2=0;
for(i=0;i<no;i++)
printf("%d %.3lf\n",cf2[i].name2,cf2[i].q2);
pp1=(pow(P1+P0,2)-pow(P2+P0,2))/(L0*1.1)/ng.ki; //起点压力为200kp高压管道输气
pp1=(pow(P3+P0,2)-pow(P2+P0,2))/(L01*1.1)/ng.ki; //起点压力为250kp高压管道输气
printf(" pp200=%.3lf pp250=%.3lf \n",pp1,pp2);
pp3=(pow(P3+P0,2)-pow(P2+P0,2))/(L01*1.1)/ng.ki; //起点压力为200kp中压管道输气
pp4=(pow(P3+P0,2)-pow(P2+P0,2))/(L02*1.1)/ng.ki; //起点压力为250kp中压管道输气
printf(" pp200=%.3lf pp250=%.3lf \n",pp3,pp4);
printf("\n\n\n");
}
void show(int Ng,double Dcg,int y,int Nf,double Nq)
{ int i;
printf("文件名\n");
printf("outfile\n");
printf("节点数 管段数 参考压力 允许压力 非参考点数 压力级制 工况 总节点流量 \n");
printf("%d %d %d %d %d %d %d %.2lf\n",no,bo,P2,P1,h0,kp0,ksg1,Nq);
printf("绝对温度 燃气密度 运动粘度 管径最小标号 最大 粗糙度\n");
printf("%.2lf %.3lf %.3lfe-6 %d %d %.3lf\n",T0+T,ng.ki,ng.vi,k1,k2,Dcg);
for(i=0;i<h0;i++)
printf("%d\n",P1);
printf("节点流量\n");
for(i=0;i<no;i++)
printf("%d %.3lf\n",cf[i].name,cf[i].q);
printf("管段编号 管长 管段起终点 管径 管材参数 公式参数 \n");
for(i=0;i<bo;i++)
change(&c[i].a,&c[i].b);
for(i=0;i<bo;i++)
printf("%d %.3lf %d %d %d %d %d \n",i+1,c[i].l,c[i].a,c[i].b,bzgj[y][i],Ng,Nf);
}
void save0()
{int i;
FILE *fp;
fp=fopen("小时低峰用气.txt","w");
cf1[no-2].q1=Q2;
cf1[no-1].q1=Q3;
for(i=0;i<no;i++)
fprintf(fp,"%d %.3lf\n",cf1[i].name1,cf1[i].q1);
fclose(fp);
fp=fopen("小时高峰用气.txt","w");
cf2[no-2].q2=0;
cf2[no-1].q2=0;
for(i=0;i<no;i++)
fprintf(fp,"%d %.3lf\n",cf2[i].name2,cf2[i].q2);
fclose(fp);
}
void save(char *outfile,int Ng,double Dcg,int y,int Nf,double Nq)
{ int i;
FILE *fp;
fp=fopen(outfile,"w");
fprintf(fp,outfile);
fprintf(fp,"\n");
fprintf(fp,"%d %d %d %d %d %d %d %.2lf\n",no,bo,P2,P1,h0,kp0,ksg1,Nq);
fprintf(fp,"%.2lf %.3lf %.3lfe-6 %d %d %.3lf\n",T0+T,ng.ki,ng.vi,k1,k2,Dcg);
for(i=0;i<h0;i++)
fprintf(fp,"%d\n",P1);
for(i=0;i<no;i++)
fprintf(fp,"%.3lf\n",cf[i].q);
for(i=0;i<bo;i++)
change(&c[i].a,&c[i].b);
for(i=0;i<bo;i++)
fprintf(fp,"%d %.3lf %d %d %d %d %d \n",i+1,c[i].l,c[i].a,c[i].b,bzgj[y][i],Ng,Nf);
fclose(fp);
}
void main()
{int i,j,k;
char jsdata[][20]={"低峰计算流量.txt","高峰计算流量.txt"};
char outfile[][20]={"lp0ztg","lp1ggs","lp2slg","hp0ztg","hp1ggs","hp2slg"};
char indata[][20]={"小时低峰用气.txt","小时高峰用气.txt"};
double Nl[N]={L0,L01}; //Np各区管道长度数组
int Ng[3]={gcc0,gcc1,gcc2}; //Ng管材参数数组
int Nf[3]={gg2,gg2,gg4}; //Nf公式参数数数组
double Dcg[3]={dcg0,dcg1,dcg2}; //Dcg各种管型粗糙度数组
double Nq[N]={zq0,zq01}; //Nq总节点流量数
open0();
calculate();
show0();
save0();
for(i=0;i<N;i++)
{
open(jsdata[i],indata[i]);
/*calculate1(Nl[i]);
calculate2(Nl[i],dcg1);
calculate3(Nl[i],dcg2);*/
for(j=0;j<3;j++) //分三次输出数据取决于Ng[3],Nf[3],Dcg[3]
{ //show(Ng[j],Dcg[j],j,Nf[j],Nq[i]);
save(outfile[i*3+j],Ng[j],Dcg[j],j,Nf[j],Nq[i]);
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -