📄 declare.pas
字号:
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 + -