news 2026/9/17 11:15:14

100kt/a丙烷制环氧丙烷初步设计:PDH-HPPO集成与Aspen模拟

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
100kt/a丙烷制环氧丙烷初步设计:PDH-HPPO集成与Aspen模拟

简介:这份初步设计说明书面向化工类本科生、参加化工设计竞赛的团队以及从事丙烯衍生物工艺设计的工程人员,围绕年产100kt环氧丙烷项目给出完整的工艺与工程方案。资源为1个doc文档,压缩包约17.96MB,内容按初步设计说明书体例编排,含总论、总图运输、工艺方案、设备选型、安全环保与经济分析等章节,可直接作为竞赛作品参考或课程设计范本。工艺路线以天津石化副产及进口丙烷为原料,先用改进的Catofin工艺脱氢制丙烯与氢气,再以蒽醌法制过氧化氢,并通过HPPO法在同一反应器内集成生产环氧丙烷与丙二醇单甲醚,方案兼顾原料综合利用与绿色化设计。文档对厂址选择、建厂条件、总平面布置、公用工程消耗、经营管理与研究意义均有展开论述,便于读者理解从原料到产品的全流程设计逻辑与集成工艺的工程取舍。目前已有85人学习下载。

1. 拿到 100kt/a 丙烷制环氧丙烷这道题,先别急着套老流程

大学生化工设计竞赛里,碰上“东华科技杯”这类命题,很多队伍第一反应是直接搬氯醇法或者共氧化法的成熟流程。真落到绿色化工设计方案的评分表上就会发现问题:氯醇法皂化废水含盐量高,共氧化法又联产叔丁醇或苯乙烯,联产品市场一波动整套装置的经济性跟着晃。这份 100kt/a 丙烷制环氧丙烷初步设计说明书走的是另一条路线——丙烷先经改进 Catofin 工艺脱氢拿到丙烯和氢气,氢气回喂蒽醌法制过氧化氢工段,产出的双氧水再与丙烯一起进 HPPO 环氧化反应器,一步得到环氧丙烷,副产丙二醇单甲醚。全程无氯、无联产醇醚,氢源氧源在系统内闭环。说明书从厂址选择、总图运输、产品方案一路写到工艺模拟优化、换热网络、设备选型和配管仪表,可以当成一份全流程模板来拆。下面按反应段、分离段、换热与设备三段展开,重点讲参数怎么定、模拟怎么设、图纸怎么核对。

2. 丙烷脱氢反应段:Catofin 循环固定床的热力学边界与反应器尺寸计算

2.1 丙烷脱氢的热力学上限怎么算

主反应为强吸热、分子数增加的可逆反应:

C3H8(g) ⇌ C3H6(g) + H2(g),ΔH°298 = +124.3 kJ/mol

高温和低压对平衡有利,但温度过高会加剧裂解和结焦,Catofin 把反应温度窗口定在 560~650 °C,同时把反应器抽到 0.2~0.5 bar(a) 的负压。带惰性稀释气时,平衡转化率还能再抬一截。用 Python 跑一个不动点求解就能看清边界:

import numpy as np from scipy.optimize import brentq def kp_pdh(T): """丙烷脱氢平衡常数,单位 bar;经验关联式 log10Kp = -6147/T + 7.13""" return 10 ** (-6147.0 / T + 7.13) def equilibrium_conversion(T, P_bar, n_inert=0.0): """ 计算丙烷脱氢平衡转化率 T : 温度 K P_bar : 总压 bar n_inert : 每 mol 丙烷配入的惰性气体 mol 数 """ Kp = kp_pdh(T) def f(x): # Kp = x^2 * P / [(1 - x)(1 + x + n_inert)] return x * x * P_bar - Kp * (1 - x) * (1 + x + n_inert) return brentq(f, 1e-6, 0.999) for T in (823, 873, 923): for P in (0.3, 0.5, 1.0): print(f"T={T}K P={P}bar x_eq={equilibrium_conversion(T, P):.3f}")

代码里Kp用了 log10-linear 的经验拟合,brentq在 [1e-6, 0.999] 区间里找零点,n_inert用来模拟配入蒸汽或氮气的情形。550 °C、0.3 bar 下热力学平衡转化率能算到 70% 以上,但这只是上限——动力学限制、结焦失活和裂解副反应会把实际单程转化率压到 45~50%。所以看到模拟出来的转化率远低于 70% 并不代表参数错了,关键要看选择性是否落在 90% 以上。

2.2 Catofin 的循环时序与操作参数

Catofin 采用多台绝热固定床并联,靠阀门切换实现反应-再生循环。单台反应器一个完整周期约 22~24 min,切分如下:

阶段时长温度压力目的
反应10~11 min560~650 °C0.2~0.5 bar(a)丙烷脱氢生成丙烯
抽真空/吹扫1~2 min与反应同温降至 0.05 bar排出烃类,防止再生时爆燃
再生9~10 min620~700 °C微正压空气烧焦,恢复活性
再抽真空/还原1~2 min逐步回温抽至负压排空气,切入下一轮反应

反应阶段是绝热温降过程,进出口温差可达 40~60 K,进料温度一般要比目标平均温度高 20~30 K。再生时烧焦是强放热,床层温度会冲高 50~80 K,铬系催化剂要控制烧焦空气的氧含量不超过 1.5%,否则容易把活性组分烧结。

注意:切换阀的时序是 Catofin 最容易被挑刺的环节。设计说明书里通常只给一张时序表,实际工程中必须核对反应阀和再生阀是否存在同时开启的窗口,一旦串气会把空气带进烃系统。

2.3 催化剂装填量与床层压降的估算

催化剂装填量按丙烷进料量和质量空速(WHSV)反推,Catofin 的 WHSV 一般取 0.4~0.8 h⁻¹。装填量定下来之后,床层压降要用 Ergun 方程核对,尤其负压操作时压降过大直接抽不到目标真空度:

import numpy as np def ergun(dp, eps, rho_g, mu, G, L): """ Ergun 方程估算固定床压降 Pa dp : 颗粒直径 m eps : 床层空隙率 rho_g : 气体密度 kg/m3 mu : 气体粘度 Pa·s G : 质量流率 kg/(m2·s) L : 床层高度 m """ term1 = 150 * (1 - eps) ** 2 / eps ** 3 * mu * G / dp ** 2 term2 = 1.75 * (1 - eps) / eps ** 3 * rho_g * G ** 2 / dp return (term1 + term2) * L # φ3 mm 挤条催化剂,空隙率 0.4,床高 3 m,气体密度 0.45 kg/m3 dP = ergun(dp=3e-3, eps=0.4, rho_g=0.45, mu=2.2e-5, G=0.35, L=3.0) print(f"床层压降 ≈ {dP:.0f} Pa")

term1是黏性损失项,负压条件下主导;term2是惯性损失项,高压或高流速时才明显。颗粒直径从 3 mm 降到 2 mm,压降大约会翻一倍,但比表面积提高又会改善活性——选粒径本质是在压降和活性之间做权衡。工程上一般把整个反应段压降控制在 5 kPa 以内,超过就意味着真空系统要重新选型。

3. 从丙烯到环氧丙烷:蒽醌法过氧化氢与 HPPO 环氧化集成

3.1 蒽醌法工作液体系与三步反应

上游脱氢产出的氢气先要变成双氧水才能喂给环氧化反应器,这条路线就是蒽醌法(AO 法)。工作液由 2-乙基蒽醌(EAQ)溶解在三甲苯和磷酸三辛酯(TOP)的混合溶剂中构成,后续循环使用。整个工序分三步:

  1. 氢化:EAQ + H2 → EAQH2,Pd/Al2O3 催化剂,0.25~0.3 MPa,45~65 °C,氢化效率控制在 8~12 g H2O2/L 工作液。
  2. 氧化:EAQH2 + O2 → EAQ + H2O2,压缩空气鼓泡,40~55 °C,氧化尾气要用活性炭吸附后放空。
  3. 萃取后处理:去离子水逆流萃取,得到约 27.5% 的双氧水;工作液经干燥、碱洗、白土床再生后回到氢化塔。

三甲苯作为主溶剂负责溶解蒽醌,TOP 提高氢化产物的溶解度,两者配比直接关系工作液稳定性和降解速率。常见做法是三甲苯与 TOP 体积比 7:3 到 6:4 之间,模拟里必须用实测或文献的二元交互参数,不能拿理想溶液近似。

3.2 HPPO 反应条件与 TS-1 分子筛催化

HPPO 用钛硅分子筛 TS-1 作催化剂,甲醇作溶剂,丙烯与双氧水直接环氧化:

C3H6 + H2O2 → C3H6O + H2O,ΔH°298 = −116 kJ/mol

典型操作条件为 40~60 °C、5~15 bar,甲醇与丙烯摩尔比 3~8,H2O2 转化率可以做到 99% 以上,PO 选择性超过 95%。甲醇的作用是溶解双氧水、抑制 PO 水解,同时带走强放热。副产物主要是丙二醇单甲醚(由 PO 与甲醇开环生成)和少量丙二醇。这份说明书把 HPPO 环氧化和上游蒽醌法集成在一个反应器里,好处是节省中间储罐和输送换热,代价是 H2O2 浓度波动会直接传到环氧化选择性上。

提示:H2O2 与丙烯进料比一般取 1.05~1.15 的轻微过量。过量太多会拉高后段双氧水分解和丙二醇单甲醚的生成量,太低又会让丙烯聚合生成重组分。

3.3 集成反应器的物料衡算

设计阶段最常用的是按化学计量比先算主副反应分流,再拿 Aspen Plus 里的 RStoic 或 RPlug 严格核算。手算部分可以用一段 Python 快速核对:

M = {'C3H6': 42.08, 'H2O2': 34.01, 'PO': 58.08, 'H2O': 18.02, 'PMME': 90.12} def hppo_balance(n_C3H6_kmol, h2o2_excess=1.10, sel_PO=0.95, sel_PMME=0.04): """ HPPO 反应器初级衡算 n_C3H6_kmol : 丙烯进料 kmol/h h2o2_excess : 双氧水过量系数 sel_PO : 转化为环氧丙烷的选择性 sel_PMME : 转化为丙二醇单甲醚的选择性 """ n_h2o2 = n_C3H6_kmol * h2o2_excess n_PO = n_C3H6_kmol * sel_PO n_PMME = n_C3H6_kmol * sel_PMME return { 'n_C3H6_in' : n_C3H6_kmol, 'n_H2O2_in' : n_h2o2, 'n_PO_out' : n_PO, 'n_PMME_out': n_PMME, 'n_H2O_out' : n_PO + n_PMME, 'po_kg_h' : n_PO * M['PO'], } res = hppo_balance(1000.0) for k, v in res.items(): print(f"{k:>12s}: {v:10.1f}")

sel_POsel_PMME加不到 1 的差值代表丙二醇和重组分,通常留给 Aspen 严格动力学模型补齐。1000 kmol/h 丙烯、95% 选择性的情况下,PO 理论产率约 55.2 t/h,年操作 8000 h 对应产能约 44 万吨——要缩回 10 万吨/年规模,把丙烯进料折算到 227 kmol/h 量级即可,再按实际运行工时和开工率打折。

4. 精馏序列与换热网络:萃取精馏塔和差压热耦合精馏的模拟设置

4.1 物性方法选择与二元交互参数

HPPO 反应器出料往下走,主要分离任务是从大量甲醇中回收 PO,再切出丙二醇单甲醚。这套体系里有强极性组分(甲醇、水、PO),也有弱极性烃,物性方法的选择直接决定塔顶塔釜组成能不能对上:

体系区域推荐方法理由
PO/甲醇/水(极性)NRTL-RK氢键体系,活度系数偏离大
烃类/惰性气PENG-ROB高压气相,状态方程更准
全流程NRTL + Henry 组分兼顾极性与溶解气

Aspen 里如果不给 NRTL 交互参数,软件默认估算值可能让 PO-甲醇共沸点偏 3~5 °C,萃取精馏塔理论板数就会算少。比较稳妥的做法是从 NIST 或 DECHEMA 手册把关键二元对的 Aij、Bij 抄进来,然后拿一份实测的气液平衡数据点校核。

4.2 萃取精馏塔的简捷法到严格法

PO 与甲醇会形成共沸,直接精馏切不开,得加入萃取剂(常用 C7/C8 烃或水)改变相对挥发度。设计通常分两步走:先用 Fenske-Underwood-Gilliland 简捷法估理论板数和回流比,再转 RadFrac 严格法收敛。

import math def fenske_min_stages(xD, xB, alpha_lk_hk): """Fenske 方程:全回流最小理论板数""" return math.log((xD / (1 - xD)) * ((1 - xB) / xB)) / math.log(alpha_lk_hk) # 塔顶 PO 摩尔分数 0.995,塔釜 0.005,轻重组分相对挥发度 2.4 Nmin = fenske_min_stages(0.995, 0.005, 2.4) print(f"Nmin = {Nmin:.1f} 块理论板")

alpha_lk_hk是加了溶剂之后校正过的相对挥发度,不是纯 PO-甲醇对的原始值。Nmin 算出来约 9.6 块,实际设计按 1.3~1.5 倍取塔板数,萃取段还要额外加 5~10 块作为溶剂回收段。严格法收敛困难时,先把溶剂进料位置、溶剂比(溶剂/进料摩尔比)、回流比三个变量分开调,别同时动。溶剂比通常从 3:1 起步,升到 6:1 理论板需求会显著下降,但再沸器负荷线性上涨,经济最优点一般在 4~5 之间。

4.3 差压热耦合精馏的压差怎么定

差压热耦合的思路是把高压塔的塔顶冷凝器直接当成低压塔的再沸器,省掉一路公用工程蒸汽和循环冷却水。压差要满足两个条件:高压塔顶温度比低压塔釜温度高出一个合理的传热温差(一般 15~25 K),同时两个塔的分离要求都能达到。压差具体是多少,可以用 Antoine 方程反算:

def antoine(T_c, A, B, C): """Antoine 方程,返回 mmHg""" return 10 ** (A - B / (T_c + C)) def pressure_shift(T_bottom_low, dT_min, A, B, C): """ 已知低压塔釜温,反算高压塔操作压力 T_bottom_low : 低压塔釜温 °C dT_min : 最小传热温差 K """ T_cond_high = T_bottom_low + dT_min P_high_mmHg = antoine(T_cond_high, A, B, C) return T_cond_high, P_high_mmHg / 750.06 # mmHg 转 bar # 甲醇 Antoine 参数(mmHg, °C):A=8.0724, B=1574.99, C=238.87 T_high, P_high = pressure_shift(65, 18, 8.0724, 1574.99, 238.87) print(f"高压塔顶温度 {T_high:.1f} °C,压力约 {P_high:.2f} bar(a)")

65 °C 釜温、18 K 温差下,高压塔顶要跑到 83 °C 左右、压力约 1.8 bar(a)。这个压差既能让甲醇蒸汽冷凝给低压塔釜供热,又不会把塔顶温度抬到影响 PO 热稳定性(PO 在 120 °C 以上开始明显异构化为丙酮和烯丙醇)。耦合之后整体再沸器负荷能降 30~40%,但代价是两个塔的开工时序必须联动,开车时先启高压塔,再按温差把低压塔接进来。

4.4 换热网络与夹点分析的实现

全流程冷热流股提取出来之后,用问题表法做夹点分析:

def enthalpy_intervals(streams, dTmin=20.0): """ 构造换热网络问题表 streams : [(名称, 类型, Ts, Tt, CP_kW_K)],类型 'hot' 或 'cold' dTmin : 最小传热温差 K """ events = [] for name, kind, Ts, Tt, CP in streams: Ts_s = Ts + dTmin / 2 if kind == 'cold' else Ts - dTmin / 2 Tt_s = Tt + dTmin / 2 if kind == 'cold' else Tt - dTmin / 2 events.append((max(Ts_s, Tt_s), CP if kind == 'hot' else -CP)) events.append((min(Ts_s, Tt_s), -CP if kind == 'hot' else CP)) events.sort(key=lambda e: -e[0]) balance, net = [], 0.0 for T, dH in events: net += dH balance.append((T, net)) return balance

dTmin是关键参数:气-液换热取 20 K,液-液换热可降到 10 K。累计焓流归零的那一点就是夹点,夹点温度以上做热回收、以下配公用工程,能避免出现穿过夹点的换热器。丙烷脱氢段和 HPPO 段都是强放热/强吸热交替的过程,换热网络再压缩的空间通常比精馏段更大。

5. 设备选型、配管编号与设计说明书自查的几个实操技巧

5.1 关键设备的选型口径

  • 反应器:Catofin 循环固定床按单台催化剂装填量和循环周期数确定台数,最少 4 台并联才能保证连续出料;HPPO 反应器是气-液-固三相浆态床,按 H2O2 处理量和 TS-1 催化剂悬浮浓度反推直径和高度。
  • 塔设备:萃取精馏塔顶冷凝器面积按最大气相负荷的 1.15 倍留裕量,塔径用泛点气速的 70~80% 反推。
  • 变压吸附塔:用于脱氢尾气提氢,吸附剂填 5A 分子筛,操作周期取 2~4 min,塔体壁厚要按疲劳工况核算。
  • 冷箱:乙烯-丙烯复叠式制冷,分割温度取 −35~−40 °C,高低压制冷剂流量比由压缩机排气量匹配。
  • 泵/压缩机:按最大流量乘 1.1、扬程乘 1.1 选型,压缩机再看是否需要用防喘振回路。

5.2 管道编号的自动校验

配管章节最容易出错的不是绘制,而是编号格式不统一。可以写个小脚本先过滤一遍:

import re def parse_pipe_tag(tag): """ 校验管道号,格式约定为:介质代号-管道序号-公称直径-管道级别 例:PG-10125-150-A1A """ pattern = re.compile( r'^(?P<medium>[A-Z]{1,3})-(?P<seq>\d{4,6})-(?P<dn>\d+)-(?P<grade>[A-Z0-9]{2,4})$' ) m = pattern.match(tag) if not m: raise ValueError(f"管道号 {tag} 不符合编号规则") return m.groupdict() for t in ("PG-10125-150-A1A", "PL-2043-80-B2B", "PG10125-150-A1A"): try: print(t, "->", parse_pipe_tag(t)) except ValueError as e: print(t, "->", e)

medium是介质代号(PG 表示工艺气体、PL 表示工艺液体),seq是顺序号,dn是公称直径,grade是管道级别。三个示例里第三个因为缺少连字符会直接报错。批量把装配图里的管道号导成 CSV 跑一遍,比人工看图纸快得多。

5.3 交图前值得跑一遍的核对项

  1. 全流程物料衡算闭合误差是否小于 0.5%,如果超了,优先检查循环流股和 purge 流量的设定。
  2. 冷热流股换热温差有没有低于 10 K 的,尤其注意再沸器和冷凝器的交叉点。
  3. 反应器循环时序里是否存在阀门状态冲突,Catofin 的抽真空和再生切换是最容易漏的地方。
  4. 塔设备的水力学核算是否在泛点 70~85% 区间,超出就调整塔径或塔板间距。
  5. 安全阀、爆破片和紧急泄放的口径有没有单独列出计算书,竞赛评审非常看重这一项。

换热网络一旦改动,务必要回头把每一股物流的进出口温度重新跑一遍,交叉换热的耦合很容易在改图时拉出新的温度交叉。

本文还有配套的精品资源,点击获取

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/17 11:14:44

QMK 中 3W6HS 分体键盘的构建、烧录与双 MCU 矩阵扫描机制详解

QMK 中 3W6HS 分体键盘的构建、烧录与双 MCU 矩阵扫描机制详解 【免费下载链接】qmk_firmware Open-source keyboard firmware for Atmel AVR and Arm USB families 项目地址: https://gitcode.com/GitHub_Trending/qm/qmk_firmware 3W6HS 是一款基于 RP2040、支持热插拔…

作者头像 李华
网站建设 2026/9/17 11:10:33

Java Web实习系统:JSP+Servlet+MySQL实战搭建与论文转化

简介&#xff1a;本资源是一篇面向高校计算机专业本科生与实习指导教师的毕业设计类论文&#xff0c;聚焦基于JSP与MySQL技术构建的实习实训管理系统&#xff0c;解决传统线下管理效率低、信息分散、流程不透明等痛点。论文完整覆盖需求分析、系统设计、数据库建模、JSP页面开发…

作者头像 李华
网站建设 2026/9/17 11:09:14

MySQL 8.0关键字与保留字避坑指南:从报错到规范

先从一个上周刚处理过的工单说起。业务同学建了一张客户反馈表&#xff0c;字段直接命名为desc&#xff0c;用来存描述内容。建表的时候一切正常&#xff0c;一到应用联调就报错&#xff1a;ERROR 1064&#xff0c;看错误日志定位到一条select desc from feedback ...&#xff…

作者头像 李华
网站建设 2026/9/17 11:07:58

Mac/Windows 部署 OpenClaw,模型通道接到 TaoToken 行不行?

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华