SO2反应器最优化(北化化反大作业)

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

二氧化硫转化器最优化

声明:本人使用Fortran90语言独立完成该作业。在前几届学生遗留下来的作业模板中,多数使用matlab软件或C语言编译,本人至今未见使用Fortran语言编译的作业。私以为Fortran语言相比于matlab语言或C语言,有着得天独厚的优势,更具有学习价值。故本作业的独立性毋庸置疑!

题目:SO

2+1/2O

2

=SO

3

,四段绝热反应器,级间间接换热。

1.基础数据:

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

-ΔH =23135[kcal/kmol]

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

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

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

2.动力学方程:

其中:

()

()

()[]sec.

/

1

1

2

2

3

2

3

2

3

2

2

2

gcat

mol

P

P

K

P

P

B

B

P

P

K

P

k

R

SO

SO

SO

SO

SO

SO

O

eff

SO

+

-

+

-

=

ξ

()

()

987

.1

3.

11295

exp

10

26203

.2

27200

exp

10

3.2

5.

7355

exp

48148

600

475

35992

exp

10

5128

.1

475

420

76062

exp

10

6915

.7

5

2

1

8

7

18

2

2

3

=

=

=

=

⎛-

=

-

⎛-

=

-

⎛-

=

-

-

R

T

K

P

P

K

P

RT

K

T

B

C

RT

k

C

RT

k

P

O

SO

P

SO

o

eff

o

eff

ξ

要求1:在T~X 图上,做出平衡线,至少4条等速率线 (1)平衡线:

反应简写为:A + 1/2B = C

当反应平衡时,(-r A )=0,得到(1-ξ2)= 0 ,即ξ= 1 整理得:P C =K p P A P B 1/2 其中:

00.08A y =00.09B y =0.5A δ=-

当X A 从0~1范围内变化时,可确定与X Ae 唯一对应的平衡温度T e ,编写程序使X A 从1.0开始,间隔为-0.1 ,分别算出相应的T e ,即得平衡线:

图1 平衡温度—平衡转化率示意图

00(1)1A A A A A A

y P X P y X δ-=

+0001(1)

2

1B A A B A A A

y P y P X P y X δ--=

+001A A C A A A

y PX P y X δ=

+

(2)等速率线

由于在同一反应速率(-r A )下,某一转化率X A 可能对应两个温度T ,而某一温度T 下,则对应唯一转化率X A 。所以..绘制等速率线时,........我.采用的方法为:.......先.确定反应速率......(.-.r .A .).,再..确定..温度..T .,然后对....X .A .从.0.到.1.进行迭代,.....找到..那个唯一的.....X .A .。当然,在求解X A 时也可以使用割线法等其他迭代算法,那样精度更高。但是此处绘制等速率线更多的是为了得到X A ~T 的趋势,而精度的降低并不影响曲线的走势。

图2 420~600℃ 下平衡线与等反应速率线

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

分析:要使总得催化剂用量最少,则每一段催化剂用量都要达到最小。当确定每一段

的X in 和X out 之后,根据0

(,)

out

in

X cat

A

X

A A A W dX F r X T =⎰可确定最佳进口温度T in ,使得W cat

最小,即满足:

(,)

10out

in

X A A A X

A in

r X T dX r T ∂=∂⎰(式1)。但在实际计算中,第一段

的X in 是知道的,只需假定一个T in 值,即可根据上式得到X out ,进而由操作线算出T out 。而段与段之间有,,1out i

in i X X +=,为使任意两段之间催化剂之和最小,进一步可

以得出段与段之间需满足:

,,,1,1(,)(,)out i out i in i in i r X T r X T ++=由

上式可确定下一段入口温度T in , i+1,如此循环四次即可得到各段反应器进出口温度、转化率,以及催化剂用量。

需要特别注意的是:.........在.计算积分式时,.......采用..的是数值....微.积分方法....。.在对..X .A .取微小步....长.Δ.X .时,..T .也会沿着操作线移动,..........得到..新的..T .’.,.下一步...的数值微积分是基于新的...........T .’.而计算的,.....如此..循环往复。.....在.编程的过程中,.......正.是由于本人忽略了这一点,误.............认为..T .值是不变的,从而导致了严重的计算错误,...................始终..得不到正确的解.......,.浪费了...大量时间查.....找算法上的错误,........而.忽略了对问题本质的研究。............这也..让我想起了导师王健红的一句话:...............“.建模..的关键不是优化算法,而是准确认识模型的原型!......................”. 以下几点计算过程中的问题,也应该得到重视:

①由X in 和T in 计算X out 时,X out 有两个限制条件,一是不能越过平衡线,二是X out 和操作线确定的温度不能越过600℃ ②根据,,

,1,1(,)(,)out i out i in i in i r X T r X T ++=求解T i n , i+1时,使用割线法对迭

代初值要求很严格,如果初值选择不合适,会导致得不到想要的解,甚至无解。虽然有其他高阶算法可以避免这类问题,但由于反应速率方程难以求得解析导,故不适用。 此处本人选择的是一个“笨办法”,也可以叫做试探法:T 从420℃开始,取微小增量进行迭代计算,直到满足r i+1 = r i 为止。此法虽然看起来“笨”,精度略低,但却在一定程度上加快了程序运行速度,巧妙得解决了问题。

相关文档
最新文档