大作业二氧化硫转化率最优化2.docx
- 文档编号:12547027
- 上传时间:2023-04-20
- 格式:DOCX
- 页数:17
- 大小:67.30KB
大作业二氧化硫转化率最优化2.docx
《大作业二氧化硫转化率最优化2.docx》由会员分享,可在线阅读,更多相关《大作业二氧化硫转化率最优化2.docx(17页珍藏版)》请在冰豆网上搜索。
大作业二氧化硫转化率最优化2
二氧化硫转化率最优化
化研0801冯鹤立2008000009
题目:
SO2+1/2O2=SO3,四段绝热反应器,级间间接换热。
1.基础数据:
混合物恒压热容Cp=0.2549[kcal/kg·K]
-ΔH=23135[kcal/kmol]
床层空隙率ρy=554[kg/m3]
进口SO2浓度8.0%,O2浓度9.0%,其余为氮气。
处理量131[kmolSO2/hr],要求最终转化率98%。
2.动力学方程:
式中:
3.基本要求:
(1)在T-X图上,做出平衡线,至少4条等速率线;
(2)以一维拟均相平推流模型为基础,在催化剂用量最少的前提下,总的及各段的催化剂装量;进出口温度、转化率;并在T-X图上标出折线;
4.讨论:
(1)要求的最终转化率从97%变化到99%对催化剂用量的影响;
(2)如果有关系:
YO2+YSO2=21%,SO2进口浓度在7-9%之间变化,对催化剂装量的影响。
计算过程:
(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
根据上述数据制图:
上图以温度为横坐标,转化率为纵坐标。
最上面一条为平衡线,平衡线下的四条曲线为反应速率分别为1e-6、2e-6、3e-6、4e-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;
}
运行上述程序的结果见下表:
X
Tin/K
Xin
Tout/K
Xout
Wcat/KG
Wsum/KG
0.98
1
717.80
0.00010
873.148833
0.66766
8349.6671140
91891.935289
2
723.60
0.66766
778.519894
0.90366
11605.588273
3
715.92
0.90366
729.505692
0.96204
21557.219801
4
693.19
0.96204
697.388114
0.98008
50379.460102
0.97
1
719.00
0.00010
873.148042
0.66250
8010.6611480
81141.232231
2
725.87
0.66250
780.764296
0.89839
10705.246828
3
718.65
0.89839
732.847724
0.95940
18921.891195
4
696.15
0.95940
700.611078
0.97858
43503.433060
本程序计算在一定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);
}
XSO2
Tin/K
Xin
Tout/K
Xout
Wcat/KG
Wsum/KG
0.070
1
717.00
0.00010
873.14936
0.67110
4648.31851
26480.6702
2
738.42
0.67110
790.77774
0.89609
4167.40302
3
732.77
0.89609
747.91253
0.96116
5352.48512
4
708.45
0.96116
712.88384
0.98017
12312.46358
0.075
1
716.50
0.00010
873.14969
0.67325
4962.02189
29195.76953
2
737.20
0.67325
789.46698
0.89785
4568.28686
3
761.31
0.89785
746.05692
0.96122
6040.78522
4
707.28
0.96122
711.65265
0.98001
13624.67556
0.080
1
715.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 作业 二氧化硫 转化 优化
![提示](https://static.bdocx.com/images/bang_tan.gif)