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

📄 declare.pas

📁 《SESyetem节能模拟系统(版本:1.01a Final)》为自由软件,对热风炉进行 热平衡计算、传热模拟、燃烧优化、操作优化等设计。 本软件用Dephi6.0编写
💻 PAS
📖 第 1 页 / 共 5 页
字号:
Function B1(C2:Real):Real;
  begin
   Result:=(1-C2)/(1+C2);
  end;
Function B2(C2:Real):Real;
  begin
   Result:=C2/(1+C2);
  end;
Function Dw(Qw:Real;C1:Real):Real;
  begin
   Result:=Qw/(1+C1);
  end;
Function H1(A1:Real;A2:Real;B2:Real):Real;
  begin
   Result:=A1/(1-A2*B2);
  end;
Function H2(A2:Real;B2:Real):Real;
  begin
   Result:=A2/(1-A2*B2);
  end;
Function H3(B2:Real;H2:Real):Real;
  begin
   Result:=B2*H2;
  end;
Function H4(B1:Real;H2:Real):Real;
  begin
   Result:=B1*H2;
  end;
Function H5(Dw:Real;A2:Real;B2:Real):Real;
  begin
   Result:=Dw/(A2*B2-1);
  end;
Function K1(B1:Real;A2:Real;B2:Real):Real;
  begin
   Result:=B1/(1-A2*B2);
  end;
Function K2(A2:Real;B2:Real):Real;
  begin
   Result:=B2/(1-A2*B2);
  end;
Function K3(A2:Real;K2:Real):Real;
  begin
   Result:=A2*K2;
  end;
Function K4(A1:Real;K2:Real):Real;
  begin
   Result:=A1*K2;
  end;   
Function p:Real;
   begin    //标准状态下的烟气密度
   Result:=(32*SESystemElement.o2_coal[2]+44*SESystemElement.co2_coal[2]+28*SESystemElement.co_coal[2]+16*SESystemElement.ch4_coal[2]+28*SESystemElement.n2_coal[2]+18*SESystemElement.h2o_coal+2*SESystemElement.h2_coal[2])/2240;
   end;
  
procedure EquationCoefficient(T:Real;h:Real;ts:Real;u:Real);
var de,Hx,Ax,Gx,tf0,Ly,Lk,Tr,Tf,Ls,
    deg,deg1,deg2,deg3,Hm,Hm1,Hm2,Hm3,ded1,ded2,ded3,Hge,Hge1,Hge2,Hge3,
    V,F,Af,l0,PCO2,PH2O,eCO20,ACO20,eH2O0,AH2O0,qr0,ar0,
    py0,w0,Pr0,v0,ac0,az0,C10,Cps0,C20,Qw0,
    A10,A20,B10,B20,Dw0,H10,H20,H30,H40,H50,K10,K20,K30,K40,pair0:real;
begin
     de:=SESystemElement.structure[1];  //蓄热体直径
     Hx:=SESystemElement.structure[2];  //高度(m)
     Ax:=SESystemElement.structure[3]; //总蓄热面积(m^2)
     Gx:=SESystemElement.structure[4];  //蓄热体重量(kg)
     
     tf0:=SESystemElement.q4_inheat[1]; //冷风温度
     Ly:=SESystemElement.process_heatcompute[9]/2*273/(273+tf0);  //计算一半的烟气流量,化成标准状态  单位:m^3烟气
     Lk:=SESystemElement.q1_inheat[2]*273/(273+tf0); //热风流量
     
     Tr:=SESystemElement.q1_inheat[3];  //燃烧期
     Tf:=SESystemElement.q1_inheat[4];  //送风期
     Ls:=SESystemElement.Result_heatcompute[4]*4.18;// 散热量
    
     //格子砖参数
     deg1:=SESystemElement.grille[1][1];  //蓄热体参数
     deg2:=SESystemElement.grille[2][1];
     deg3:=SESystemElement.grille[3][1];
     
     Hm1:=SESystemElement.grille[1][2];    //
     Hm2:=SESystemElement.grille[2][2];
     Hm3:=SESystemElement.grille[3][2];
     
     ded1:=SESystemElement.grille[1][3];
     ded2:=SESystemElement.grille[2][3];
     ded3:=SESystemElement.grille[3][3];

     Hge1:=SESystemElement.grille[1][4];
     Hge2:=SESystemElement.grille[2][4];
     Hge2:=SESystemElement.grille[3][4];
     //
    if (BRanShao=TRUE) then
          begin
             if h<=12 then
                begin
                  deg:=deg1;Hm:=Hm1;Hge:=Hge1
                end
             else if (h>12) and (h<=24) then
                begin
                  deg:=deg2;Hm:=Hm2;Hge:=Hge2
                end
             else
                begin
                   deg:=deg3;Hm:=Hm3;Hge:=Hge3;
                end;
           end
     else
          begin
             if h<=12 then
                 begin
                    deg:=deg3;Hm:=Hm3;Hge:=Hge3
                 end
             else if (h>12) and (h<=24) then
                  begin
                     deg:=deg2;Hm:=Hm2;Hge:=Hge2
                  end
             else
                  begin
                     deg:=deg1;Hm:=Hm1;Hge:=Hge1;
           end;
     end;

     V:=3.14*power(deg/2,2)*Hx;  //
     F:=3.14*deg*Hx+2*3.14*power(deg/2,2);
     Af:=3.14*power(de/2,2); //
     l0:=AverageRadLen(V,F);
     PCO2:=SESystemElement.co2_fume[2]/100;
     PH2O:=SESystemElement.h2o_fume/100;

     //燃烧期
  if (bRanShao=TRUE) then
     begin
     eCO20:=EmissivityCO2(PCO2,T,l0);
     ACO20:=AbsorptivityCO2(eCO20,T,ts);
     eH2O0:=EmissivityH2O(PH2O,T,l0);
     AH2O0:=AbsorptivityH2O(eH2O0,T,ts);
     if T>ts then qr0:=RadiationEnergy(0.8,eCO20+eH2O0,T,ACO20+AH2O0,ts)else qr0:=0;
     ar0:=RadiationCoefficient(qr0,T,ts);            //辐射传热系数
     Af:=3.14*power(de/2,2);       //蓄热体横截面积
     py0:=FumeP(T,p);       //烟气实际密度
     w0:=FumeW(Ly*(273+T)/273,Hm*Af);  //烟气实际速度
     Pr0:=FumePr(FumeCp(T),FumeU(T),FumeR(T));  //普朗特数
     v0:=FumeU(T)/py0;                //运动粘度
     ac0:=ConvectionCoefficient(deg,FumeR(T),Pr0,w0,v0); //对流换热系数 

     az0:=TotalTransferCoefficient(ar0+ac0,Hge,SolidX(h,ts))*3600; // 综合换热系数 ,J/(h.m.℃)
     C10:=C1(az0,Ax,Ly*p,FumeCp(T),Hx,Hx/MaxPosition,1);
     Cps0:=RegeneratorCp(h,ts);             //蓄热体比热
     C20:=C2(az0,Ax,Gx,Cps0,Tr/MaxTime); //其中Tr是燃烧期
     Qw0:=LossEnergy(F,Ls,Ly*p,FumeCp(T),Hx/MaxPosition);  //散热量
  end;
  //送风期
 if(bRanShao=FALSE) then
  begin
     Af:=3.14*power(de/2,2); //
     pair0:=pair(T);
     w0:=AirW(Lk*u*(273+T)/273,Hm*Af);
     Pr0:=AirPr(Cpair(T),uair(T),rair(T));
     v0:=uair(T)/pair(T);
     ar0:=0;
     ac0:=ConvectionCoefficient(deg,rair(T),Pr0,w0,v0);

     az0:=TotalTransferCoefficient(ac0,Hge,SolidX(h,ts))*3600;
     C10:=C1(az0,Ax,Lk*1.293,Cpair(T),Hx,Hx/Maxposition,u);
     Cps0:=RegeneratorCp(h,ts);
     C20:=C2(az0,Ax,Gx,Cps0,Tf/MaxTime);  // 用到送风期时间
     Qw0:=LossEnergy(F,Ls,Lk*1.293,Cpair(T),Hx/MaxPosition);
   end;

   //公共系数
     A10:=A1(C10);
     A20:=A2(C10);
     B10:=B1(C20);
     B20:=B2(C20);
     Dw0:=Dw(Qw0,C10);    //
     H10:=H1(A10,A20,B20);
     H20:=H2(A20,B20);
     H30:=H3(B20,H20);
     H40:=H4(B10,H20);
     H50:=H5(Dw0,A20,B20);  //
     K10:=K1(B10,A20,B20);
     K20:=K2(A20,B20);
     K30:=K3(A20,K20);
     K40:=K4(A10,K20);
     
     AnalogElement.CommonCoefficient[1]:=A10;
     AnalogElement.CommonCoefficient[2]:=A20;
     AnalogElement.CommonCoefficient[3]:=B10;
     AnalogElement.CommonCoefficient[4]:=B20;
     AnalogElement.CommonCoefficient[5]:=Dw0;    //
     AnalogElement.CommonCoefficient[6]:=H10;
     AnalogElement.CommonCoefficient[7]:=H20;
     AnalogElement.CommonCoefficient[8]:=H30;
     AnalogElement.CommonCoefficient[9]:=H40;
     AnalogElement.CommonCoefficient[10]:=H50;  //
     AnalogElement.CommonCoefficient[11]:=K10;
     AnalogElement.CommonCoefficient[12]:=K20;
     AnalogElement.CommonCoefficient[13]:=K30;
     AnalogElement.CommonCoefficient[14]:=K40;  

end;

Function FUT(Y0:Real;TJ:Real):Real; //通过热风炉的无因次风量的计算公式
var HT,Tf:Real;
  begin
  Tf:=SESystemElement.q1_inheat[4];  //Tf表示送风期时间
  HT:=Tf/2.0;                        //Y0表示送风初始时刻的无因次风量
  if TJ>=HT then Result:=2.0-3.0*Y0-(1-2*Y0)*TJ/HT else Result:=(1-2*Y0)*TJ/HT+Y0;
  end;
  
//燃烧优化
Function Cpairj(t1:Real;t2:Real):Real;
begin
Result:=Cp(1.287,0.0001201,t1,t2);
end;
//平均定容比热公式化   单位kJ/(m^3.℃)
Function Cp(a:Real;b:Real;t1:Real;t2:Real):Real;
begin      //单位kJ/(m^3.℃)
Result:=a+(b/2)*(t1+t2);
end;
Function CpH2j(t1:Real;t2:Real):Real;
begin
Result:=Cp(1.28,0.0000523,t1,t2);
end;
Function CpN2j(t1:Real;t2:Real):Real;
begin
Result:=Cp(1.306,0.0001107,t1,t2);
end;
Function CpO2j(t1:Real;t2:Real):Real;
begin
Result:=Cp(1.313,0.0001577,t1,t2);
end;
Function CpCOj(t1:Real;t2:Real):Real;
begin
Result:=Cp(1.291,0.000121,t1,t2);
end;
Function CpH2Oj(t1:Real;t2:Real):Real;
begin
Result:=Cp(1.473,0.0002498,t1,t2);
end;
Function CpCO2j(t1:Real;t2:Real):Real;
begin
Result:=Cp(1.7132,0.0004723,t1,t2);
end;

Function Cpmeij(t1:Real;t2:Real):Real;
var H2,N2,O2,CO,H2O,CO2,CH4,CmHn,t:Real;
begin  //煤气的平均比热  单位 kJ/(m^3.℃)
     H2:=SESystemElement.h2_coal[2];
     N2:=SESystemElement.n2_coal[2];
     O2:=SESystemElement.o2_coal[2];
     CO:=SESystemElement.co_coal[2];
     H2O:=SESystemElement.h2o_coal;
     CO2:=SESystemElement.co2_coal[2];
     CH4:=SESystemElement.ch4_coal[2];
     CmHn:=SESystemElement.cmhn_coal[2];
     t:=(t1+t2)/2;
     Result:=(H2*CpH2j(t1,t2)+N2*CpN2j(t1,t2)+O2*CpO2j(t1,t2)+CO*CpCOj(t1,t2)
                  +H2O*CpH2Oj(t1,t2)+CO2*CpCO2j(t1,t2)
                     +CH4* CpCH4(t)/1000+CmHn*CpC2H4(t)/1000)/100;
end;

Function Cpyanj(t1:Real;t2:Real):Real; //烟气平均比热 单位 kJ/(m^3.℃)
var H2m,N2m,O2m,COm,H2Om,CO2m,CH4m,CmHnm:Real;
var Vco2,Vh2o,VN2,Vn:Real;
var tm,log0,los0,H2Sm,gmb:Real;
var m,n:integer;
var N2,H2O,CO2:Real;   //百分含量
begin
 //煤气成分
 CO2m:=SESystemElement.co2_coal[2];
 COm:=SESystemElement.co_coal[2];
 N2m:=SESystemElement.n2_coal[2];
 O2m:=SESystemElement.o2_coal[2];
 H2m:=SESystemElement.h2_coal[2];
 CH4m:=SESystemElement.ch4_coal[2];
 H2Om:=SESystemElement.h2o_coal;
 CmHnm:=SESystemElement.cmhn_coal[2];
 m:=2; n:=4; H2Sm:=0;  //C2H4m:=CmHnm;
   //完全燃烧下的烟气量
 Vco2:=(COm+m*CmHnm+CO2m)/100;
 Vh2o:=(H2m+(n/2)*CmHnm+H2Om)/100;
 tm:=SESystemElement.tm_coal; //煤气温度
 gmb:=int(100*DryAirtoHumidityAir(tm))/100;     //干空气的含水量
 Log0:=int(100*TheoryDryAirQ(H2m,COm,CH4m,m,n,CmHnm,H2Sm,O2m))/100; //理论干空气量
 Los0:=int(100*TheoryHumidityAirQ(Log0,gmb))/100;   //理论湿空气量
 VN2:=N2m/100+(79/100)*Los0;
   //完全燃烧下的烟气成分
 Vn:=Vco2+Vh2o+VN2;  // 烟气量 单位 m^3/m^3
 CO2:=Vco2/Vn;
 H2O:=Vh2o/vn;
 N2:=VN2/Vn;
 Result:=CO2*CpCO2j(t1,t2)+H2O*CpH2Oj(t1,t2)+N2*CpN2j(t1,t2);
end;

//操作优化
procedure ComputeBurnBlowTime;  //计算送风期、燃烧期
var time,i,j,k,yes:Integer;
   Ttemp,Te1,Te2,cha,tyanj:Real;
   tf,tr,t1,t2,L,pyan,dw,f:Real;
   Q,Qf,Qr,Qm,Qy,Qx1,Qx2,Qz,B:Real;
   az01,az02,ac01,ac02:Real;
   hunw,hunw1,hunw2,Vy:Real;
   ui,uj,ui0,uj0,uc0:real;
   bl:integer;
   Btr,Btf:Boolean;
   xt:Real;
   A10,A20,B10,B20,Dw0,H10,H20,H30,H40,H50,K10,K20,K30,K40:Real;
   tsolid,Tgas,Tair:array[1..41,1..41]of real;
   dot:Real;
begin
  //计算燃烧期和送风期
  xt:=SESystemElement.Result_heatcompute[7];   //理论燃烧温度
  tr:=SESystemElement.q1_inheat[3];    //假设燃烧期
  tf:=SESystemElement.q1_inheat[4];    //假设送风期  
  t2:=OperationImproveElement.Condition_OperationImprove[1];//热风温度!!!
  t1:=SESystemElement.q4_inheat[1];   //鼓风温度
  L:=SESystemElement.q1_inheat[2];      //热风流量 m^3/h!!!!
  Qf:=L*(t2-t1)*Cpairj(t1,t2);      //热风每小时带走的热量 单位:m^3/h
  B:=SESystemElement.q1_inheat[1];    //煤气流量 单位:m^3/h
  Qz:=SESystemElement.q1_inheat[5]; //煤气热值 单位:KJ/(Nm^3)
  f:=SESystemElement.structure[3]/(MaxPosition-1); //一个热风炉步长方向的蓄热面积
  Vy:=SESystemElement.process_heatcompute[9]; //烟气量 单位:m^3/m^3
  pyan:=OperationImproveElement.Condition_OperationImprove[2]; //排烟温度!!!!
  dw:=OperationImproveElement.Condition_OperationImprove[3];    //炉顶温度!!!!

  OperationImproveElement.Result_OperationImprove[1]:=SESystemElement.q1_inheat[1]; //煤气流量 单位:m^3/h
  OperationImproveElement.Result_OperationImprove[2]:=SESystemElement.q1_inheat[2]; //热风流量 m^3/h


  if (t2>=xt-80)or(xt=0)then

⌨️ 快捷键说明

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