|
油库设计热力计算完整程序
#define Tqi 13.3 #define Ttu 3.4 #define D 23.76 #define H 12.53 #define PI 3.14159 #define P 800 #define fn 6 #define v 4.5 #define i 0.1 #define N 5 #define Tys 55.0 #define Tyz 70.0 #define Kding 0.35 #define Kdi 0.12 #define Fding 460.1 #define Fbi 935.3 #define Fdi 433 #define nd_80 35 #define md_20 897 #define u 0.0581 #include #include
float R0(float MPa) { if(MPa>0.5) return (0.00086); else if(MPa<0.2) return (0.0026); else return (0.0017); }
double Insert(double x1,double x2,double y1,double y2,double x) { return (y1+(y2-y1)/(x2-x1)*(x-x1));
}
float Md(float t) { return (md_20-(1.825-0.001315*md_20)*(t-20));
}
float Br(float t) { int j; float t1,t2,C1,C2; float C[12]={1.696,1.729,1.758,1.792,1.825,1.859, 1.888,1.921,1.955,1.985,2.018,2.047};
for(j=0;j<=11;j++) { if(j*10.0<=t&&(j+1)*10.0>=t) { t1=j*10.0; t2=(j+1)*10.0; C1=C[j]; C2=C[j+1]; break; } }
return (Insert(t1,t2,C1,C2,t));
}
float Pz(float md) { int k; float B[30]={1.151,1.130,1.108,0.997,0.974,0.953, 0.931,0.910,0.888,0.866,0.845,0.824, 0.803,0.782,0.760,0.739,0.718,0.696, 0.674,0.653,0.632,0.612,0.592,0.572, 0.553,0.534,0.516,0.497,0.479,0.462}; float md1,md2,B1,B2; for(k=0;k<=29;k++) { if(md>=k/100.0+0.73&&md<=(k+1)/100.0+0.73) { md1=k/100.0+0.73; md2=(k+1)/100.0+0.73;
B1=B[k]; B2=B[k+1]; break; }
} return (Insert(md1,md2,B1,B2,md)); }
float Fr( float Gr, float Pr, float A, float d) { float e,n,a2,Td; if(Gr*Pr>2.0e7) {e=0.135; n=1.0/3;} else if(Gr*Pr>=500&&Gr*Pr<=2.0e7) {e=0.54; n=1.0/4;} else {e=1.18; n=1.0/8;} a2=e*A/d*pow((Gr*Pr),n); return a2; } float BI_wen(float Tz,float Ty,float MPa,float d) { float Td,Tb,md_Td,c,A,B; float Gr,Pr,a2,K0; double nd_Td;
Tb=Tz-5; do {Tb-=0.01; Td=(Tb+Ty)/2; nd_Td=nd_80*(1.0e-6)*exp((-u)*(Td-80)); md_Td=Md(Td); c=Br(Td); A=117.5/Md(15.0)*(1-0.00054*Td); B=Pz(md_Td/1000); Gr=9.81*B*1.0e-3*(Tb-Ty)*d*d*d/(nd_Td*nd_Td); Pr=(nd_Td*c*1.0e3*md_Td)/A; a2=Fr(Gr,Pr,A,d); K0=1/((1/a2)+R0(MPa));
} while(fabs(Ty+K0/a2*(Tz-Ty)-Tb)>0.01); printf("\n\t |%5.2f +(%5.2f/%5.2f)*(%5.2f-%5.2f)-%5.2f|=|%f|<=0.01",Ty,K0,a2,Tz,Ty,Tb,(Ty+K0/a2*(Tz-Ty)-Tb)); printf("\n\t Tb=%5.2f, K0=%5.1f.",Tb,K0); return K0;
}
void main() { float Hbao,Ty,Dr,a,S,Kbi,K,Tj,md,c,Tz,MPa,d,K0,F,L; double Q1,Q2,Q3,Q; printf("\n\t Input the value of Tz,MPa and d:\t"); scanf("%f%f%f",&Tz,&MPa,&d); a=10+6*sqrt(v); Tj=((4*H/D+1)*Tqi+Ttu)/(4*H/D+2); { if((Tyz-Tj)/(Tys-Tj)<2) Ty=(Tys+Tyz)/2.0; else Ty=Tj+(Tyz-Tys)/(log((Tyz-Tj)/(Tys-Tj))); } S=i*pow((1+i),N)/(pow((1+i),N)-1); Dr=0.032+0.00013*Ty; Hbao=sqrt(fn*Dr*3.6/4.187*8400*(Tys-Tqi)/(P*S))-Dr*3.6/(a*4.187);
printf("\n\t Hbao=%4.2fmm.",Hbao);
Kbi=Dr*1000/Hbao; K=(Kding*(Fding+0.1*Fbi)+Kbi*0.9*Fbi+Kdi*Fdi)/(Fding+Fbi+Fdi); md=Md(Ty); c=Br(Ty); Q1=PI*D*D/4*0.9*H*md*c*(Tyz-Tys); Q2=6*12.5/100*PI*D*D/4*0.9*H*md; Q3=K*(Fding+Fbi+Fdi)*(Ty-Tj); Q=(Q1+Q2)/(3.6*48)+Q3; K0=BI_wen(Tz,Ty,MPa,d);
printf("\n\t Q1=%7.0fkJ, Q2=%7.0fkJ.\n\t Q3=%7.0fW, Q=%7.0fW.",Q1,Q2,Q3,Q);
F=1.1*Q/(K0*(Tz-Ty)); L=F/(PI*d);
printf("\n\t F =%5.1fm2, L=%6.1fm.",F,L);
} 32
|
|