反应器大作业(SO2优化)12页_第1页
反应器大作业(SO2优化)12页_第2页
反应器大作业(SO2优化)12页_第3页
反应器大作业(SO2优化)12页_第4页
反应器大作业(SO2优化)12页_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、化学反应器理论大作业化学反应器理论大作业 二氧化硫转化器最优化学 院: 化学工程学院 班 级: 化研1108 学 号: 2011200126 姓 名: 马树刚 11化学反应器理论大作业二氧化硫转化器的最优化题目背景:SO21/2O2=SO3,四段绝热反应器,级间间接换热。1. 基础数据:混合物恒压热容 Cp 0.2549kcal/kg·KH =23135kcal/kmol床层空隙率 b554kg/m3进口SO2浓度8.0%,O2浓度9.0%,其余为氮气。处理量131kmolSO2/hr,要求最终转化率98。2. 动力学方程:式中:3. 基本要求:(1)在TX图上,做出平衡线,至少4条

2、等速率线;(2)以一维拟均相平推流模型为基础,在催化剂用量最少的前提下,总的及各段的催化剂装量;进出口温度、转化率;并在T-X图上标出折线;(3)程序用C,Fortran,BASIC语言之一编制;4. 讨论:(1)要求的最终转化率从97变化到99对催化剂用量的影响;(2)如果有关系:YO2YSO221,SO2进口浓度在79之间变化,对催化剂装量的影响。5. 选做:对优化结果进行校核。 算法简介及计算程序和结果1. 解题思路已知第一段入口和最后一段出口的转化率;第一段入口反应物浓度,各物性参数;段与段间采用间接冷却。可改变的参数为各段的入口温度;段与段之间的转化X1in T1inX1out T1

3、out第一段第二段第三段第四段X2in T2inX2out T2outX3in T3inX3out T3outX4in T4inX4out T4out率。图2.1 反应流程图由上述反应流程图分析可知:根据已知的入口组成,设定入口温度,根据反应速率对入口温度所求偏导数在这一段内对组成的积分为零可以求得此段出口转化率和出口温度,即得到下一段的入口转化率,又根据前一段的出口速率等于后一段的入口速率,可以求得下一段的入口温度;这样又可以计算下一段的出口情况。这样反复计算直至求出最后的出口情况。判断此出口情况是否满足题给条件(转化率达到98%),若不满足条件,则应重新假设再进行计算。这样反复寻优直至满足

4、条件。计算公式如下:第一段: 第一、二段之间:第二段: 第二、三段之间:第三段: 第三、四段之间:第四段: 其中:为绝热温升2. 计算程序和结果2.1平衡线及等速率线的计算程序:利用反应速度表达式,代入不同的速度值来确定不同温度下的转化率,从而求取等速率线和平衡线(速度等于0)。程序如下:#include "math.h"#include "stdio.h"#include "iostream.h"#include "stdlib.h"const double R=1.987;void strcopy(char *

5、str1,char *str2)for(int i=0; i<6; i+)str1i=str2i;double rate( double x, double t) double y,y1,y2,y3,keff,k,B; 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

6、)*exp(27200/(R*t); y1 = (0.09-0.04*x) / (1-0.04*x) * (0.08-0.08*x) / (1-0.04*x) / (0.08*x / (1-0.04*x); y2 = (0.08*x / (1-0.04*x) / (0.08-0.08*x) / (1-0.04*x) * sqrt(0.09-0.04*x) / (1-0.04*x) * 2.26203*pow(10,-5)*exp(11295.3 / t); B = 48148*exp(-7355.5 / t); y3 = sqrt(B+(B-1)*(1-x) / x) + sqrt(k*(1-

7、x) / x); y = keff*k*y1*(1-y2*y2) / (y3*y3); return y; void main() double x,t,d; double r0=0,step=0.0001; FILE *fp; char filename6; for(int i=0; i<=5; i+) t=693.15;do x=0.01;do x+=step; if(x>=1) goto next;d=fabs(pow(10,5)*rate(x,t) - pow(10,5)*r0);while(d>0.001);switch(i)case 0:strcopy(filen

8、ame,"data0");break;case 1:strcopy(filename,"data1");break;case 2:strcopy(filename,"data2");break;case 3:strcopy(filename,"data3");break;case 4:strcopy(filename,"data4");break;default:strcopy(filename,"data5");fp=fopen(filename,"a"

9、);if (x-0.0001)<1) printf("Xso2= %f T= %fn",x-0.0001,t); fprintf(fp,"%f %fn",x-0.0001,t); fclose(fp);next: t+=5; while(t<=873.15); r0 +=1.0*pow(10,-6); 2.2 催化剂用量最小时的温度、转化率及催化剂装量计算程序在催化剂用量最少(又能满足要求的最高反应速率)的前提下,计算各段进出口温度、转化率以及总的和各段的催化剂装量。程序如下:#include"math.h"#includ

10、e"stdio.h"#define R 1.987#define h 0.0001double myabs(double x) return(x>0?x:(-x); double r(double x,double t) double y,y1,y2,y3,keff,k,b; 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

11、)*exp(-35992 / (R*t); k = 2.3*pow(10,-8)*exp(27200/(R*t); y1 = (0.09-0.04*x) / (1-0.04*x) * (0.08-0.08*x) / (1-0.04*x) / (0.08*x / (1-0.04*x); y2 = (0.08*x / (1-0.04*x) / (0.08-0.08*x) / (1-0.04*x) * sqrt(0.09-0.04*x) / (1-0.04*x) * 2.26203*pow(10,-5)*exp(11295.3 / t); b = 48148*exp(-7355.5 / t); y3

12、 = sqrt(b+(b-1)*(1-x) / x) + sqrt(k*(1-x) / x); y = keff*k*y1*(1-y2*y2) / (y3*y3); return(y); double dr(double x,double t) double y; y= (r(x,t+h) - r(x,t-h) / (2*h); return(y); double t(double t0,double x0,double x) double y,lamda,H,cp,rou,c; H = -23135; cp = 254.9; rou = 0.500; c = 1.282; lamda = -

13、H*c/(rou*cp); y= t0 + lamda*(x-x0); return(y); double fun1(double x,double t) double y; y= -dr(x,t) / (r(x,t)*r(x,t); return(y); double jifen(double x0,double t0) double sum=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; goto end; sum = sum

14、 + h*( fun1(x1,t1) + fun1(x2,t2) / 20; x1=x2; while(sum<0); xout = x1-h/10;end: return(xout); double wjifen(double xin,double xou,double tin) double x1=xin,x2,t1,t2,sum=0.0,wcat; do t1=t(tin,xin,x1); x2=x1+h; t2=t(tin,xin,x2); sum = sum + (1/r(x1,t1) + 1/r(x2,t2)*h / 2000; x1=x2; while(x2<=xou

15、); wcat = sum*131*1000/3600; return(wcat); void main() double xout,tout,x0=0.0001,t0,t00=720,t1,wsum=0.0,wcat; double xou5,tin5,xin5,tou5; int i,j; do x0 = 0.0001; t0 = t00; printf("1 tin= %f xin= %en",t00,x0); i=0; xini =x0; tini =t00; do xout = jifen(x0,t0); tout = t(t0,x0,xout); xoui =

16、xout; toui=tout; printf("%d tout= %f ",i+1,tout); printf("xout= %e n",xout); printf("*n"); t1= 693.15;dot1 = t1 + 0.01;while(myabs(pow(10,5)*r(xout,t1)-pow(10,5)*r(xout,tout)>h); x0 = xout; t0 = t1; printf("%d tin= %f xin= %en",i+2,t0,xout); i+; xini = xout

17、; tini = t0;/* printf("%d tin= %f xin= %en",i+1,tini,xini); */ while(i<=3); t00 = t00-0.1; printf("nn"); while(x0<=0.98);FILE *fp;fp=fopen("data.txt","w"); for(j=0;j<=3;j+) printf("%d %f %e %f %en",j+1,tinj,xinj,touj,xouj); fprintf(fp,"

18、%d tin=%f xin=%e tout=%f xou=%en",j+1,tinj,xinj,touj,xouj); wcat = wjifen(xinj,xouj,tinj); printf("%d wcat=%fn",j+1,wcat); fprintf(fp,"%d wcat=%fn",j+1,wcat); wsum = wsum + wcat; printf("wsum= %fn",wsum);fclose(fp); 2.3 运行结果(1) 等速线和平衡线程序运算结果:(其中R为反应速率; T(K)为反应温度;表内

19、主体为各反应速率下对应系列温度的SO2转化率;)表2.1 R=I×10-6T/kI=0I=1I=2I=3I=4I=5693.150.9809-698.150.97970.1799-703.150.97820.4225-708.150.97620.59880.1219-713.150.9740.71810.3554-718.150.97150.79650.530.18440.0284-723.150.96860.84740.65440.38630.25850.0784728.150.96550.88020.7410.53730.43650.2903733.150.9620.90080.

20、80070.64730.56920.4536738.150.95820.91320.84130.72650.66640.5761743.150.95410.92020.86830.78280.7370.6669748.150.94960.92350.88570.82240.78760.7336753.150.94470.91920.88340.82370.79090.7398758.150.93940.91460.88040.82390.79280.7444763.150.93380.90940.87670.82310.79350.7474768.150.92780.90380.87250.8

21、2140.79320.7491773.150.92130.89780.86760.81880.79190.7497778.150.91440.89130.86220.81540.78970.7492783.150.90710.88440.85620.81130.78660.7477788.150.89940.8770.84960.80650.78270.7453793.150.89120.86910.84260.8010.77810.7421798.150.88260.86080.8350.79480.77280.738803.150.87350.85210.82690.78810.76680

22、.7332808.150.8640.84280.81830.78070.76020.7277813.150.8540.83320.80920.77270.75290.7215818.150.84360.8230.79960.76430.7450.7146823.150.83270.81250.78960.75520.73660.7071828.150.82150.80150.77910.74570.72760.699833.150.80970.790.76820.73570.71810.6904838.150.79760.77820.75680.72520.70810.6812843.150.

23、78510.7660.74510.71420.69770.6716848.150.77220.75340.73290.70290.68680.6614853.150.7590.74050.72040.69120.67550.6508858.150.74540.72730.70760.67910.66380.6398863.150.73150.71370.69440.66660.65180.6285868.150.71740.69990.6810.65390.63940.6167873.150.7030.68580.66730.64080.62680.6047(2) 关于催化剂用量程序运算结果以

24、下为运行结果:(经运算,满足给定条件的第一段最高入口温度为717.80K,此时可得到最少的催化剂用量)表2.2段序入口温度(K)入口转化率出口温度(K)出口转化率催化剂用量(kg)第一段717.8000000873.1488336.6766e-014176.348521第二段723.6000006.6766e-01778.5198949.0366e-015802.794136第三段715.9200009.0366e-01729.5056929.6204e-0110778.60990第四段693.1900009.6204e-01697.3881149.8008e-0125189.73005催化剂

25、总用量: 45947.482609kg=45.947T三、平衡线、等速线及操作线图根据以上数据利用Matlab进行编辑得图,程序如下: %平衡线和等速线load data0;x=data0(:,1);t=data0(:,2);plot(t,x,'r');load data1;x=data1(:,1);t=data1(:,2);hold onplot(t,x,'g');load data2;x=data2(:,1);t=data2(:,2);hold onplot(t,x);load data3;x=data3(:,1);t=data3(:,2);hold onplot(t,x,'y');load data4;x=data4(:,1);t=data4(:,2);plot(t,x);hold onload data5;x=data5(:,1);t=data5(:,2);hold onplot(t,x);%操作线y=10(-4) 717.800000; 6.6766e-001 873.148833 ; 6.67

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论