yifang 发表于 2012-9-12 19:13:27

油库设计热力计算完整程序

油库设计热力计算完整程序

#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<stdio.h>
#include<math.h>

float R0(float MPa)
{if(MPa>0.5)
      return (0.00086);
      else if(MPa<0.2)
         return (0.0026);
         elsereturn (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={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;   C2=C;
                  break;
                }
              }

        return (Insert(t1,t2,C1,C2,t));


   }



float Pz(float md)
   {        int k;
        float B={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;                  B2=B;
                        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);
                  returnK0;


   }


void main()
   {    floatHbao,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;
                   elseTy=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

小怪兽-大庆 发表于 2013-3-17 21:24:29

不错,不错,学的好~

xueba1993 发表于 2017-4-6 11:26:43

谢谢分享,这个是C语言的,习惯用Matlab了
页: [1]
查看完整版本: 油库设计热力计算完整程序