化反.docx

上传人:b****1 文档编号:1612627 上传时间:2023-05-01 格式:DOCX 页数:19 大小:109.43KB
下载 相关 举报
化反.docx_第1页
第1页 / 共19页
化反.docx_第2页
第2页 / 共19页
化反.docx_第3页
第3页 / 共19页
化反.docx_第4页
第4页 / 共19页
化反.docx_第5页
第5页 / 共19页
化反.docx_第6页
第6页 / 共19页
化反.docx_第7页
第7页 / 共19页
化反.docx_第8页
第8页 / 共19页
化反.docx_第9页
第9页 / 共19页
化反.docx_第10页
第10页 / 共19页
化反.docx_第11页
第11页 / 共19页
化反.docx_第12页
第12页 / 共19页
化反.docx_第13页
第13页 / 共19页
化反.docx_第14页
第14页 / 共19页
化反.docx_第15页
第15页 / 共19页
化反.docx_第16页
第16页 / 共19页
化反.docx_第17页
第17页 / 共19页
化反.docx_第18页
第18页 / 共19页
化反.docx_第19页
第19页 / 共19页
亲,该文档总共19页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

化反.docx

《化反.docx》由会员分享,可在线阅读,更多相关《化反.docx(19页珍藏版)》请在冰点文库上搜索。

化反.docx

化反

 

化学反应器理论

二氧化硫转化器最优化

 

班级

学号

姓名

二氧化硫转化率最优化

一、题目

1.反应原理及条件:

SO2+1/2O2=SO3,四段绝热反应器,级间间接换热。

2.基础数据:

混合物恒压热容Cp=0.2549[kcal/kg·K]

-ΔH=23135[kcal/kmol]

床层空隙率ρy=554[kg/m3]

进口SO2浓度8.0%,O2浓度9.0%,其余为氮气。

处理量131[kmolSO2/hr],要求最终转化率98%。

3.动力学方程:

式中:

4.基本要求:

(1)在T-X图上,做出平衡线,至少4条等速率线;

(2)以一维拟均相平推流模型为基础,在催化剂用量最少的前提下,总的及各段的催化剂装量;进出口温度、转化率;并在T-X图上标出折线;

(3)要求的最终转化率从98%变化到99%对催化剂用量的影响;

(4)如果有关系:

YO2+YSO2=21%,SO2进口浓度在7-9%之间变化,对催化剂装量的影响;

(5)对最优化结果进行校核。

二、计算过程

1.平衡线和等速率线的分析计算

由于反应速率的表达式是温度和转化率的函数,所以在入口浓度一定的条件下,当反应速率等于零的时候,不同的温度对应不同的转化率。

根据这些数据就可以作出此反应的平衡线。

改变反应速率的大小,分别可以得到不同反应速率下的等速率线。

平衡线和等速率线数据的计算程序如下:

#include

#include

#defineR1.987

#defineh0.0001

doubler(doublex,doublet,doublexso2)

{

doubler,r1,r2,r3,B,keff,K,Kp,Pso2,Pso3,Po2;

if(t>=693.15&&t<748.15)keff=7.6915*pow(10,18)*exp(-76062/(R*t));

if(t>=748.15&&t<=873.15)keff=1.5128*pow(10,7)*exp(-35992/(R*t));

K=2.3*pow(10,-8)*exp(27200/(R*t));

Kp=2.26203*pow(10,-5)*exp(11295.3/t);

Pso2=(xso2-xso2*x)/(1-xso2*x/2);

Pso3=xso2*x/(1-xso2*x/2);

Po2=(0.17-xso2-xso2*x/2)/(1-xso2*x/2);

r1=Po2*Pso2/Pso3;

r2=Pso3/(Pso2*sqrt(Po2)*Kp);

B=48148*exp(-7355.5/t);

r3=sqrt(B+(B-1)*(1-x)/x)+sqrt(K*(1-x)/x);

r=keff*K*r1*(1-r2*r2)/(r3*r3);

return(r);

}

voidmain()

{

doublexso2=0.08,x,t,r0=0,y;

inti;

for(i=0;i<5;i++){

printf("R%d=%e\n",i+1,r0);

for(t=693.15;t<=873.15;){

x=0.01;

do{

x=x+h;

if(x>=1)break;

y=fabs(pow(10,5)*r(x,t,xso2)-pow(10,5)*r0);

}while(y>0.001);

printf("%5.2f%5.4f\n",t,x);

t=t+5;

}

r0=r0+pow(10,-6);

}

}

运行上述程序后,获得的数据见下表:

温度T/k

反应速率=r×106

0.0

1.0

2.0

3.0

4.0

693.15

0.9809

 

 

 

 

698.15

0.9797

 

 

 

 

703.15

0.9782

0.0117

 

 

 

708.15

0.9762

0.2719

 

 

 

713.15

0.9740

0.4750

 

 

 

718.15

0.9715

0.6205

0.1844

 

 

723.15

0.9686

0.7214

0.3863

0.0784

 

728.15

0.9655

0.7901

0.5373

0.2903

0.0638

733.15

0.9620

0.8365

0.6473

0.4536

0.2689

738.15

0.9582

0.8674

0.7265

0.5761

0.4285

743.15

0.9541

0.8873

0.7828

0.6669

0.5500

748.15

0.9496

0.8995

0.8224

0.7336

0.6416

753.15

0.9447

0.8964

0.8237

0.7398

0.6529

758.15

0.9394

0.8927

0.8239

0.7444

0.6617

763.15

0.9338

0.8885

0.8231

0.7474

0.6685

768.15

0.9278

0.8837

0.8214

0.7491

0.6736

773.15

0.9213

0.8784

0.8188

0.7497

0.6772

778.15

0.9144

0.8725

0.8154

0.7492

0.6794

783.15

0.9071

0.8662

0.8113

0.7477

0.6804

788.15

0.8994

0.8593

0.8065

0.7453

0.6803

793.15

0.8912

0.8519

0.8010

0.7421

0.6792

798.15

0.8826

0.8440

0.7948

0.7380

0.6772

803.15

0.8735

0.8357

0.7881

0.7332

0.6743

808.15

0.8640

0.8268

0.7807

0.7277

0.6706

813.15

0.8540

0.8175

0.7727

0.7215

0.6661

818.15

0.8436

0.8077

0.7643

0.7146

0.6609

823.15

0.8327

0.7975

0.7552

0.7071

0.6550

828.15

0.8215

0.7868

0.7457

0.6990

0.6484

833.15

0.8097

0.7757

0.7357

0.6904

0.6412

838.15

0.7976

0.7642

0.7252

0.6812

0.6335

843.15

0.7851

0.7523

0.7142

0.6716

0.6252

848.15

0.7722

0.7400

0.7029

0.6614

0.6163

853.15

0.7590

0.7273

0.6912

0.6508

0.6070

858.15

0.7454

0.7143

0.6791

0.6398

0.5972

863.15

0.7315

0.7010

0.6666

0.6285

0.5870

868.15

0.7174

0.6874

0.6539

0.6167

0.5764

873.15

0.7030

0.6736

0.6408

0.6047

0.5654

根据上述数据制图2-1:

图2-1平衡线及等速率线图

上图以温度为横坐标,转化率为纵坐标。

最上面一条为平衡线,平衡线下的四条曲线为反应速率分别为1×10-6、2×10-6、3×10-6、4×10-6(mol/gcat·sec)时的等速率线。

2.在规定转化率下,催化剂用量最小的计算分析过程

根据入口组成,设定入口温度,根据反应对入口温度所求偏导数在这一段内对组成的积分为零,可以求得此段出口转化率,即下一段的入口组成。

由于段内操作线的斜率为

),因此根据入口温度、入口组成和出口组成计算可得出口温度。

要使催化剂用量最少,应使

,根据

计算每段的最小催化剂用量。

循环计算四段后可得最后的出口转化率,若不能满足要求(x=98%),则重新设定第一段入口温度,再进行计算直至满足条件。

上述计算过程的C语言程序如下:

#include

#include

#defineR1.987

#defineh0.0001

doubler(doublex,doublet,doublexso2)

{

doubler,r1,r2,r3,keff,K,B,Kp,Pso2,Pso3,Po2;

if(t>=693.15&&t<748.15)

keff=7.6915*pow(10,18)*exp(-76062/(R*t));

if(t>=748.15&&t<=873.15)

keff=1.5128*pow(10,7)*exp(-35992/(R*t));

K=2.3*pow(10,-8)*exp(27200/(R*t));

Kp=2.26203*pow(10,-5)*exp(11295.3/t);

Pso2=(xso2-xso2*x)/(1-xso2*x/2);

Pso3=xso2*x/(1-xso2*x/2);

Po2=(0.17-xso2-xso2*x/2)/(1-xso2*x/2);

r1=Po2*Pso2/Pso3;

r2=Pso3/(Pso2*sqrt(Po2)*Kp);

B=48148*exp(-7355.5/t);

r3=sqrt(B+(B-1)*(1-x)/x)+sqrt(K*(1-x)/x);

r=keff*K*r1*(1-r2*r2)/(r3*r3);

return(r);

}

doubledr(doublex,doublet,doublexso2)

{

doubley;

y=(r(x,t+h,xso2)-r(x,t-h,xso2))/(2*h);

return(y);

}

doublet(doublet0,doublex0,doublex)

{

doubley,lamda,H=-23135,Cp=254.9,rou=0.500,c=1.282;

lamda=-H*c/(rou*Cp);

y=t0+lamda*(x-x0);

return(y);

}

doublefun1(doublex,doublet,doublexso2)

{

doubley;

y=-dr(x,t,xso2)/(r(x,t,xso2)*r(x,t,xso2));

return(y);

}

doublejifen(doublex0,doublet0,doublexso2)

{

doublesum=0.0,x1=x0,x2,t1,t2=693.15,xout;

do{

t1=t(t0,x0,x1);

x2=x1+h/10;

t2=t(t0,x0,x2);

if(t2>873.15){

xout=x1;

gotoend;

}

sum=sum+h*(fun1(x1,t1,xso2)+fun1(x2,t2,xso2))/20;

x1=x2;

}while(sum<0);

xout=x1-h/10;

end:

return(xout);

}

doublewjifen(doublexin,doublexou,doubletin,doublexso2)

{

doubley,x1=xin,x2,t1,t2,sum=0.0,wcat;

do{

t1=t(tin,xin,x1);

x2=x1+h;

t2=t(tin,xin,x2);

if(t2>=873.15)gotoend;

sum=sum+(1/r(x1,t1,xso2)+1/r(x2,t2,xso2))*h/1000;

x1=x2;

}while(x2<=xou);

end:

wcat=sum*131*1000/3600;

return(wcat);

}

voidmain()

{

doublexso2=0.08,xout,tout,x0=0.0001,t0,t00=719,t1,wcat,wsum;

inti,j;

loop1:

wsum=0.0;

x0=0.0001;

t0=t00;

printf("1tin=%fxin=%e\n",t00,x0);

for(i=0;i<=3;i++){

xout=jifen(x0,t0,xso2);

tout=t(t0,x0,xout);

printf("%dtout=%f",i+1,tout);

printf("xout=%f\n",xout);

wcat=wjifen(x0,xout,t0,xso2);

printf("Wcat=%f",wcat);

wsum=wsum+wcat;

t1=693.15;

do{

t1=t1+0.01;

}while(fabs(pow(10,5)*r(xout,t1,xso2)-pow(10,5)*r(xout,tout,xso2))>h);

x0=xout;

t0=t1;

printf("%dtin=%fxin=%f\n",i+2,t0,xout);

}

printf("Wsum=%f\n",wsum);

t00=t00-0.1;

printf("\n\n");

if(x0<=0.98)gotoloop1;

}

以下为运行结果:

(经运算,满足给定条件的第一段最高入口温度为717.80K,此时可得到最少的催化剂用量)

段序

入口温度

(K)

入口转化率

出口温度

(K)

出口转化率

催化剂用量(kg)

催化剂总用量

第一段

717.80

0

873.148833

6.6766e-01

4176.35

45947.5kg

=45.947T

第二段

723.60

6.6766e-01

778.519894

9.0366e-01

5802.79

第三段

715.92

9.0366e-01

729.505692

9.6204e-01

10778.61

第四段

693.19

9.6204e-01

697.388114

9.8008e-01

25189.73

根据以上得到数据作出X-T折线图如图2-2所示

图2-2操作温度进-出口转化率折线图

三.结果与讨论

1.最终转化率从98%变化到99%对催化剂用量的影响

改变最终转化率从98%变化到99%,但结果不能输出。

改变计算过程2的计算程序,将转率设为从97%变化到98%的不同值,并计算各个值下催化剂的最小用量,得到如下表中数据:

最终转化率

97.0%

97.5%

98.0%

催化剂用量(T)

23.491

37.890

45.946

根据上表作转化率对催化剂用量影响关系图如图3

图3转化率对催化剂用量影响关系图

由图中看出,转化率由97.0%提高到98.0%过程中,随着转化率的升高,再提高很小的转化率时,结果所需的催化剂的量大大增加。

同时由程序的调试知最后出口转化率达不到99%。

2.SO2进口浓度变化,对催化剂装量的影响

本程序计算在一定SO2进口含量(须满足条件XSO2+XO2=0.21)的情况下使得出口转化率达到0.98时所需要的催化计量。

计算程序为:

#include"math.h"

#include"stdio.h"

#defineR1.987

#defineh0.0001

doubler(x,t,xso2)

doublex,t,xso2;

{

doubler,r1,r2,r3,keff,K,B,Kp,Pso2,Pso3,Po2;

if(t>=693.15&&t<748.15)

keff=7.6915*pow(10,18)*exp(-76062/(R*t));

if(t>=748.15&&t<=873.15)

keff=1.5128*pow(10,7)*exp(-35992/(R*t));

K=2.3*pow(10,-8)*exp("7200/(R*t));

Kp=2.26203*pow(10,-5)*exp(11295.3/t);

Pso2=(xso2-xso2*x)/(1-xso2*x/2);

Pso3=xso2*x/(1-xso2*x/2);

Po2=(0.21-xso2-xso2*x/2)/(1-xso2*x/2);

r1=Po2*Pso2/Pso3;

r2=Pso3/(Pso2*sqrt(Po2)*Kp);

B=48148*exp(-7355.5/t);

r3=sqrt(B+(B-1)*(1-x)/x)+sqrt(K*(1-x)/x);

r=keff*K*r1*(1-r2*r2)/(r3*r3);

return(r);

}

doubledr(x,t,xso2)

doublex,t,xso2;

{

doubley;

y=(r(x,t+h,xso2)-r(x,t-h,xso2))/(2*h);

return(y);

}

doublet(t0,x0,x)

doublet0,x0,x;

{

doubley,lamda,H=-23135,Cp=254.9,rou=0.500,c=1.282;

lamda=-H*c/(rou*Cp);

y=t0+lamda*(x-x0);

return(y);

}

doublefun1(x,t,xso2)

doublex,t,xso2;

{

doubley;

y=-dr(x,t,xso2)/(r(x,t,xso2)*r(x,t,xso2));

return(y);

}

doublejifen(x0,t0,xso2)

doublex0,t0,xso2;

{

doublesum=0.0,x1=x0,x2,t1,t2=693.15,xout;

do{

t1=t(t0,x0,x1);

x2=x1+h/10;

t2=t(t0,x0,x2);

if(t2>873.15){

xout=x1;

gotoend;

}

sum=sum+h*(fun1(x1,t1,xso2)+fun1(x2,t2,xso2))/20;

x1=x2;

}while(sum<0);

xout=x1-h/10;

end:

return(xout);

}

doublewjifen(xin,xou,tin,xso2)

doublexin,xou,tin,xso2;

{

doubley,x1=xin,x2,t1,t2,sum=0.0,wcat;

do{

t1=t(tin,xin,x1);

x2=x1+h;

t2=t(tin,xin,x2);

if(t2>=873.15)gotoend;

sum=sum+(1/r(x1,t1,xso2)+1/r(x2,t2,xso2))*h/1000;

x1=x2;

}while(x2<=xou);

end:

wcat=sum*131*1000/3600;

return(wcat);

}

main()

{

doublexso2=0.08,xout,tout,x0=0.0001,t0,t00=717,t1,wsum=0.0,wcat;

doublexou[5],tou[5],tin[5],xin[5];

inti,j;

loop1:

x0=0.0001;

t0=t00;

i=0;

xin[i]=x0;

tin[i]=t00;

loop2:

xout=jifen(x0,t0,xso2);

tout=t(t0,x0,xout);

xou[i]=xout;

tou[i]=tout;

t1=693.15;

do{

t1=t1+0.01;

}while(fabs(pow(10,5)*r(xout,t1,xso2)-pow(10,5)*r(xout,tout,xso2))>h);

x0=xout;

t0=t1;

i++;

xin[i]=xout;

tin[i]=t0;

if(i<=3)gotoloop2;

t00=t00-0.1;

if(x0<=0.98)gotoloop1;

printf("itinxintoutxoutwcat\n");

for(j=0;j<=3;j++){

wcat=wjifen(xin[j],xou[j],tin[j],xso2);

printf("%d%5.5f%5.5f%5.5f%5.5f%5.5f\n",j+1,tin[j],xin[j],tou[j],xou[j],wcat);

wsum=wsum+wcat;

}

printf("wsum=%f(KG)%f(Ton)\n",wsum,wsum/1000);

}

当二氧化硫浓度在7%到9%之间取值时,运行上面程序得到结果如下表所示:

XSO2

Tin/K

Xin

Tout/K

Xout

Wcat/KG

Wsum

0.070

1

717.00

0.00010

873.14936

0.67110

4648.31851

26480.67KG

=26.481T

2

738.42

0.67110

790.77774

0.

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2