PRO/II 10.2 INP 语法参考
本技能提供PRO/II 10.2关键词输入(INP)文件的正确语法,所有语法均通过实际PRO/II 10.2输出验证。
文件结构要求
⚠️ 关键:所有INP文件必须包含以下完整节结构,且必须按指定顺序排列!
INP文件节必须按以下顺序排列(PRO/II 10.2强制要求,违反即ABORT):
1. TITLE → 文件头(General段:TITLE, PRINT, TOLERANCE, DIMENSION, SEQUENCE, CALCULATION)
2. COMPONENT DATA → 组分定义
3. THERMODYNAMIC DATA → 热力学方法
4. REGRESSION DATA → 回归数据(可选)
5. STREAM DATA → 流股数据
6. RXDATA → 反应数据(可选,但必须在STREAM DATA之后!)
7. PROCEDURE DATA → 过程数据(可选)
8. UNIT OPERATIONS → 强制段头,不能省略!
9. RECYCLE DATA → 循环数据(可选)
10. END → 文件结束
🔴 致命错误:COMP ID= 语法不合法
- 错误: COMP ID=H2 / ID=CO / ID=CO2 / ... — PRO/II 10.2 关键词模式不识别此语法
- 报错: *** ABORT *** Data in the input file is out of order.
- 修正: 使用 LIBID 1,H2/2,CO/3,CO2/..., BANK=CURRENT 格式(2026-06-12 Shell气化验证)
🔴 致命错误:HEATER 关键词不存在
- 错误: HEATER UID=E1 — PRO/II 10.2 关键词模式不支持 HEATER 单元操作
- 修正: 使用 FLASH UID=E1 + OPERATION ISOTHERMAL, TEMPERATURE=220, DP=100 替代(2026-06-12 Shell气化验证)
🔴 致命错误:RXDATA放在STREAM DATA之前
- 错误信息: *** ABORT *** Data in the input file is out of order.
- PRO/II严格检查节顺序,RXDATA必须在STREAM DATA之后、UNIT OPERATIONS之前
- 官方案例验证:A3G.INP, A5.INP, A6BG.INP, A7.INP的RXDATA均在STREAM DATA之后
最常见错误:直接从 STREAM DATA 跳到 COLUMN/HX 等单元操作,省略 UNIT OPERATIONS 段头。
- 后果:PRO/II 把 COLUMN/HX 等关键字当作流股数据解析,报 "not recognized" 错误
- 修正:在 STREAM DATA 段结束后,必须先写 UNIT OPERATIONS,再定义单元操作
注释语法规则
🔴 致命错误:PRO/II 10.2 关键词模式不支持 ! 作为注释字符!
PRO/II 10.2 不识别 ! 开头的注释行,会导致以下错误:
- ! 单独一行 → *** ERROR *** Statement '!' is not recognized.
- ! 注释内容 → *** ERROR *** Statement must begin with a keyword.
- 含中文的注释行 → 同上错误(即使!被支持,非ASCII字符也会导致解析问题)
❌ 禁止使用的注释方式(2026-06-12 UOP PDH模型验证):
! ---- 这是注释 ---- ← 报错!PRO/II不识别!
! 反应器段 ← 报错!
! 丙烯纯度 ≥99.5% ← 报错!含非ASCII字符
✅ 正确的注释方式:
1. 不使用注释(官方案例做法:60+个Applib案例均无注释行)
2. NOTES 关键字(仅限STREAM DATA和UNIT OPERATIONS段之间):
inp
NOTES TEXT=Feed stream for PDH reactor
3. C 或 * 在第1列(FORTRAN风格,部分版本支持,但官方案例未使用,不建议依赖)
⚠️ 最佳实践:INP文件中不使用任何注释行,保持纯关键词语句。
TITLE段
⚠️ TITLE 仅支持 PROJECT=、PROBLEM=、USER= 三个关键字!
- ❌ NAME= — 不被识别,报"Keyword 'NAME' is not recognized"后ABORT(2026-06-12 Shell气化v2验证)
- ✅ PROBLEM= — 正确替代,用于问题描述
- ❌ TITLE/PROBLEM值中不能含/字符! — /被PRO/II解析为字段分隔符,导致字符串被截断,后面的部分变成无效字符,报"Misplaced or invalid character"后ABORT。例如2000T/D→2000TPD(2026-06-12 Shell气化v2验证)
TITLE PROJECT=PROJECT_NAME, PROBLEM=PROBLEM_NAME, USER=USER_NAME
PRINT INPUT=ALL, STREAM=COMPONENT, RATE=M, MBALANCE=ON
TOLERANCE DEFAULT=V94
DIMENSION METRIC, MDUTY=ON, BASIS=MOLE, PRES=KPA, TEMP=C, DUTY=KW, &
STDTEMP=0, STDPRES=101.325
SEQUENCE SIMSCI
CALCULATION RECYCLE=TEAR, TVPBASIS=37.7778, RVPBASIS=APIN
COMPONENT DATA段
每个组分必须单独一行LIBID,不能在一行中指定多个组分:
COMPONENT DATA
CURRENT SEARCH=SIMSCI,PROCESS
LIBID 1,H2O, BANK=CURRENT
LIBID 2,NH3, BANK=CURRENT
多组分语法(单个LIBID中):
LIBID 3,AIR/4,N2/6,H2O/7,C6H6, BANK=CURRENT
特殊库中的组分:
LIBID 5,R245FA,,RHP, BANK=DIPPRL2018:DIPPR
ASSAY 蒸馏曲线定义(⚠️ 正确语法,已由 PRO/II 示例验证):
ASSAY 数据不在 COMPONENT DATA 段单独定义,而是在 STREAM DATA 段的 PROPERTY STREAM 语句中用子语句定义。
COMPONENT DATA 段只需:
1. LIBID 定义轻端组分(C2-C5, H2O 等)
2. CUTPOINTS TBPCUTS(t_unit)= 定义假组分沸程范围
3. ASSAY CURVEFIT=..., CONVERSION=..., FIT=..., FORMATION=... 拟合设置
COMPONENT DATA
LIBID 1,H2O/2,C2/3,C3/4,IC4/5,NC4/6,IC5/7,NC5, BANK=SIMSCI, PROCESS
CUTPOINTS TBPCUTS(C)=40,370,10/550,4/700,2
ASSAY CURVEFIT=IMPR, CONVERSION=API94, &
FIT=SPLINE, FORMATION=VER91
⚠️ 以下语法在关键词模式中无效,PRO/II 不识别:
- ~~ASSAY ID=CRUDE01, TYPE=TBP, UNIT=C, NPOINT=11~~
- ~~ASSAY ID=..., NPOINT=... + 独立数据行~~
CUTPOINTS TBPCUTS 语法说明:
- TBPCUTS(C)=start, end1, n1/ end2, n2/ ...
- 第一组:start 到 end1 之间生成 n1 个假组分
- 后续组:从上一组 end 到当前 end 之间生成 ncuts 个假组分
- 原油蒸馏必须定义 TBPCUTS,否则 ASSAY 无法生成假组分
ASSAY 拟合参数说明:
| 参数 | 说明 |
|---|---|
CURVEFIT= |
曲线拟合方法:IMPR(改进)或 SPLINE |
CONVERSION= |
转换方法:API94(推荐) |
FIT= |
曲线拟合过程(SPLINE 或 ALTERNATE) |
FORMATION= |
形成方法(VER91 或 CURRENT) |
PETRO — 手动定义石油假组分(可选,通常由 TBPCUTS 自动生成):
PETRO 11, BP135, 120, 0.757, 135/12, BP260, 200, 0.836, 260
- 语法:
PETRO id, name, MW, SG, NBP id:组分编号,name:组分名(最长8字符)MW:分子量,SG:比重(无因次,如 0.757),NBP:常压沸点- ⚠️ 不是
PETROLEUM(kg/m3,C)!关键字是PETRO,不带单位说明符 - ⚠️ 参数顺序是 id, name, MW, SG, NBP(5个参数)
- ⚠️ SG 是无因次比重(0.757),不是密度(757 kg/m3)
NONLIBRARY(非库组分):
NONLIBRARY 1, H2O, 18.015, 1000, 100
NONLIBRARY 2, METHANOL, 32.04, 791, 64.7
PETROLEUM(石油组分 — 已废弃,用 PETRO + TBPCUTS 替代):
PETRO 11, BP135, 120, 0.757, 135
- 语法:
PETRO id, name, MW, SG, NBP(不是 PETROLEUM) - ⚠️ 旧语法
PETROLEUM(kg/m3,C)已废弃,会导致 "Value not between 299 and 2E4" 错误
SYNCOMP(同步组分数据):
SYNCOMP 1, H2O, 18.015, 1000, 100
SYNLIQ(合成液体组分):
SYNLIQ(W) 1, H2O, 18.015, 1000, 100, P, O, N, A
NOTES(注释):
NOTES TEXT=Component data for crude distillation unit
STRUCTURE(UNIFAC结构组):
STRUCTURE 1, 1(2)/2(1)
GROUP 1, 0.632, 0.632
GROUP 2, 0.120, 1.200
GENERAL DATA段
> 语法来源: PRO/II 10.2 Keyword Manual (Chapter 5, page 31+)
DIMENSION (量纲单位声明)
必须使用完整的 DIMENSION 语句,不能只写 DIMENSION METRIC!
DIMENSION METRIC, TEMP=C, PRESSURE=KPA, WT=KG, &
TIME=HR, LENGTH=M, ENERGY=KJ, WORK=KW, DUTY=KW, &
LIQVOL=M3, VAPVOL=M3, DENSITY=KG/M3, &
XDENSITY=DENSITY, &
STDTEMP=0, STDPRES=101.325
BASIS=MOLE
MDUTY=ON
| 参数 | 默认值 (ENGLISH) | METRIC | SI | 说明 |
|---|---|---|---|---|
TEMP |
F | C | K | 温度单位 |
PRESSURE |
PSIA | KG/CM2 | KPA | 压力单位 |
WT |
LB | KG | KG | 重量单位 |
TIME |
HR | HR | HR | 时间单位 |
LENGTH |
FT | M | M | 长度单位 |
ENERGY |
BTU | KCAL | KJ | 能量单位 |
WORK |
HP | KW | KW | 功单位 |
DUTY |
BTU/HR | 10^6 KCAL/HR | 10^6 KJ/HR | 热负荷单位 |
BASIS |
MOLE | MOLE | MOLE | 基准 (MOLE/MASS/LV/GV) |
MDUTY |
OFF | OFF | OFF | 热负荷是否使用10^6前缀 |
关键:
- BASIS=MOLE 声明流量和组成的默认基准为摩尔
- MDUTY=ON 表示热负荷单位使用 10^6 前缀 (如 MW 而不是 W)
- 声明 STDTEMP 和 STDPRES 重新定义标准状态
🔴 致命陷阱:压力关键字不带单位后缀时使用 DIMENSION 默认单位(METRIC = KG/CM2,不是 KPA!)
- 已验证(2026-08-13 吸收式脱乙烷 V26):DIMENSION METRIC(未声明 PRESSURE)下,
FLASH ... OPERATION ISOTHERMAL, TEMPERATURE=45, PRESSURE=2650 被解析为 2650 kg/cm² = 260 MPa,
而非预期的 26.5 bar(2650 kPa)。
- 后果:能正常收敛、物料平衡闭合(GLOBAL DEVIATION 0.00%),但焓值被压缩效应严重扭曲——
冷却器 DUTY 输出 -6.01 M·kcal/h,实际应为 -36.11 M·kcal/h(差 6 倍)。静默错误,极易漏检。
- 修复:① 在 DIMENSION 中显式声明 PRESSURE=KPA;② 或每个压力关键字带后缀 PRESSURE(KPA)=2650;
③ 塔的 PRESSURE(KPA) 1,2000/30,2150 写法正确(带后缀),流股 PRESSURE(KPA)=3100 正确。
- 校验方法:① 看 ot3 输出 PRESSURE, KG/CM2 数值是否合理(260 MPa 明显荒谬);
② 单位焓自洽检查——同温度不同流股的单位焓(KCAL/KG)应相近(如 45°C 贫油 ≈24 kcal/kg)。
OUTDIMENSION (输出量纲单位)
OUTDIMENSION METRIC, ADD, &
TEMP=C, PRESSURE=KPA, WT=KG, &
TIME=HR, DUTY=KW
| 关键字 | 说明 |
|---|---|
ADD |
生成默认单位和指定单位的双份报告 |
REPLACE |
仅用指定单位生成报告 |
CALCULATION (计算选项)
CALCULATION TRIALS=50, RECYCLE=TEAR, &
TVPBASIS=37.7778, &
RVPBASIS=APIN, &
COMPCHECK=INPUT, &
MAXOPS=1000000, &
FLASH=DEFAULT, &
DVARIABLE=ON, &
PHASE=SIMSCI, &
TMIN=OLDLIMIT, TMAX=OLDLIMIT
| 参数 | 默认值 | 说明 |
|---|---|---|
TRIALS |
50 | 每个循环流股的最大迭代次数 |
RECYCLE |
ALL | 选择考虑收敛的循环流股 (ALL/TEAR) |
TVPBASIS |
100 F | 计算TVP的默认温度 |
RVPBASIS |
APINAPHTHA | 计算RVP的方法 |
INCHECK |
关闭 | 仅进行输入检查,不进行计算 |
COMPCHECK |
CALC | 检查组分与热力学方法的兼容性 (CALC/INPUT) |
MAXOPS |
1,000,000 | 计算期间的最大单元操作和分支决策数 |
FLASH |
DEFAULT | 闪蒸算法选择 (DEFAULT/ALTERNATE) |
DVARIABLE |
ON | 增强某些解决方案的准确性 |
PHASE |
SIMSCI | 超临界相指定 (SIMSCI/LIQUID/VAPOR) |
TMIN/TMAX |
OLDLIMIT | 温度相关属性的最小/最大温度 |
TOLERANCE (容差设置)
⚠️ TOLERANCE 不支持 FLASH= 和 COLUMN= 作为关键字参数!
- ❌ TOLERANCE FLASH=0.0001, COLUMN=0.0001 — COLUMN 不被识别,报"Keyword 'COLUMN' is not recognized"后ERROR
- ❌ TOLERANCE FLASH=0.0001 — FLASH 不是独立TOLERANCE子关键字(仅存在于STREAM内部),作为顶层关键字不被识别
- ✅ TOLERANCE DEFAULT=V94 — 最常用格式,采用V94默认容差标准
- ✅ TOLERANCE DEFAULT=V94, STREAM=0.0001 — 带自定义流股容差
- ✅ TOLERANCE COMPONENT=0.0005, EQUILIBRIUM=0.0005 — 化学平衡容差
TOLERANCE 合法关键字(117个官方案例验证):DEFAULT、STREAM、COMPONENT、EQUILIBRIUM、KVALUE、ENTHALPY、DUTY、MISCELLANEOUS/MISC、MBAL、UAMBAL
TOLERANCE DEFAULT=V94
或
TOLERANCE DEFAULT=V94, STREAM=0.0001, , , &
DUTY=0.005, MISCELLANEOUS=0.01
| 参数 | 默认值 | 说明 |
|---|---|---|
DEFAULT |
V94 | 容差标准版本(V94为当前推荐) |
STREAM dx, dt, dmin, dp |
0.001, -0.01, 0.001, 0.01 | 循环流股收敛容差 |
COMPONENT |
- | 组分物料平衡容差 |
EQUILIBRIUM |
- | 化学平衡容差 |
KVALUE |
- | K值容差 |
ENTHALPY |
- | 焓值容差 |
DUTY |
0.0001 | 加热器或冷却器负荷规范绝对误差容差 |
MISCELLANEOUS/MISC |
0.001 | 所有其他类型规范的误差容差 |
MBAL |
1% | 全流程总物料平衡容差 |
UAMBAL |
SKIP | 是否包含UAS和Excel单元操作在总物料平衡检查中 |
容差约定:
- 正值表示相对容差
- 负值表示绝对容差
SEQUENCE (计算顺序)
SEQUENCE SIMSCI
或
SEQUENCE DEFINED=HX2, C1, F1
| 关键字 | 说明 |
|---|---|
SIMSCI |
默认方法,使用SimSci开发的改进的最先进算法 |
PROCESS |
使用PROCESS (PRO/II前身) 中最初出现的方法 |
ASENTERED |
按输入文件中列出的确切顺序执行单元操作 |
DEFINED=uid, uid, ... |
用户定义单元操作的执行顺序 |
SCALE (流股缩放)
SCALE STREAM=SID, RATE(M)=value, {COMP=i,j}
- 缩放选定的产品流股到所需的流量
- 所有其他流股和单元操作相应缩放
- 注意: 某些单元操作不可缩放 (PIPE, DEPRESSURING, PLUGFLOW REACTOR, HXRIG, ROTARY DRUM FILTER, FILTERING CENTRIFUGE, DISSOLVER, CRYSTALLIZER, COLUMNS WITH HYDRAULICS)
CHECK (固体检查)
CHECK SOLID
- 检查碳氢化合物和碳氢化合物/水混合物中固体的存在
- 测试的固体形成组分: CO2, H2S, Benzene
- 固体报告为流股总量的百分比
PRINT (打印选项)
PRINT INPUT=ALL, STREAM=COMPONENT, RATE=M, MBALANCE=ON, &
KVT1(C)=temp1, KVT2(C)=temp2, &
WIDTH=120, PLENGTH=60, &
NOWARNING
| 参数 | 选项 | 说明 |
|---|---|---|
INPUT |
ALL/PART/NONE/COMPONENT | 输入打印选项 |
STREAM |
ALL/COMPONENT/SUMMARY/NONE | 流股打印选项 |
RATE |
M/WT/LV/GV | 流量打印基准 |
MBALANCE |
ON/OFF | 物料平衡打印 |
WIDTH |
80/120/132 | 输出宽度 |
PLENGTH |
60 | 页面长度 |
NOWARNING |
- | 禁止警告信息 |
DESCRIPTION (模拟描述)
DESCRIPTION text
- 每个关键字文件允许最多十个 DESCRIPTION 语句
- 每个语句包含前80列的描述性文本
- 文本出现在结果打印输出的第一页上
DBASE (数据库打印选项)
DBASE DATA={SEQUENCE, STREAM, PETRO, PROFILE, PDS or ALL}
| 参数 | 说明 |
|---|---|
SEQUENCE |
打印计算顺序 |
STREAM |
打印流股数据 |
PETRO |
打印PETRO数据 |
PROFILE |
打印剖面数据 |
PDS |
打印PDS数据 |
ALL |
打印所有数据库信息 |
DCOMP (组分数据打印选项)
DCOMP {PERCENT=M, WT, LV, GV},
{TBP, WTFRAC},
{MCONC, WCONC},
{PWRATE},
{TOTAL},
{DCOMP},
{TRIAL=1 or 100},
{MBAL or MBALANCE=ON or OFF}
| 参数 | 选项 | 说明 |
|---|---|---|
PERCENT |
M/WT/LV/GV | 打印百分比的基准 |
TBP |
- | 打印真沸点数据 |
WTFRAC |
- | 打印质量分数 |
MCONC |
- | 打印摩尔浓度 |
WCONC |
- | 打印质量浓度 |
PWRATE |
- | 打印功率速率 |
TOTAL |
- | 打印总计 |
EXERGY (㶲分析选项)
EXERGY {TZERO(utemp)=value},
{PZERO(upres)=value}
| 参数 | 说明 |
|---|---|
TZERO |
㶲分析参考温度(可选) |
PZERO |
㶲分析参考压力(可选) |
说明:
- 㶲分析用于评估工艺的热力学效率
- TZERO 默认值为环境温度
- PZERO 默认值为环境压力
THERMODYNAMIC DATA段
基本语法 — 必须使用 PROPERTY STREAM= (不是 PROP STREAM=):
纯组分流股:
PROPERTY STREAM=NAME, TEMPERATURE=50, PRESSURE=200, PHASE=L, &
RATE(WT)=1000, COMPOSITION(M)=1,1
多组分流股(摩尔组成):
PROPERTY STREAM=NAME, TEMPERATURE=55.6, PRESSURE=34.8, PHASE=M, &
RATE(WT)=500000, COMPOSITION(M)=1,0.5/2,0.3/3,0.2
多组分流股(质量组成,带NORMALIZE):
PROPERTY STREAM=NAME, TEMPERATURE=188, PHASE=L, RATE(WT)=29205, &
COMPOSITION(WT)=1,2.05/2,1.37/3,93.97/4,2.57, NORMALIZE
流量单位:
- RATE(WT) — 质量流量 (kg/h) ✓ 正确
- RATE(M) — 摩尔流量 (kg-mol/h)
- ~~RATE(KG)~~ — 不支持 ✗
- ~~RATE(W)~~ — 不支持 ✗
组分指定(极易出错,请严格按此格式):
⚠️ 数值规则(2026-06-11~19 CDU/VDU验证,极其重要!)
| 单位限定符 | 数值含义 | 总和必须等于 | 示例 |
|---|---|---|---|
COMPOSITION(WT)= |
百分比(0-100) | 100.0 | 1,33.3/2,33.3/3,33.4 ✅ |
COMPOSITION(M)= |
分数(0.0-1.0) | 1.0 | 1,0.333/2,0.333/3,0.334 ✅ |
COMPOSITION(LV)= |
百分比(0-100) | 100.0 | 同WT |
COMPOSITION(GV)= |
百分比(0-100) | 100.0 | 同WT |
配对规则(必须匹配,否则报"COMPOSITION DOES NOT EQUAL RATE"):
| RATE单位 | 必须配对 | 错误配对 | 示例 |
|---|---|---|---|
RATE(KG/H)= |
COMPOSITION(WT)= |
❌ COMPOSITION(M)= |
100000 KG/H + WT百分比 |
RATE(M)= |
COMPOSITION(M)= |
❌ COMPOSITION(WT)= |
1000 M + M分数 |
RATE(WT)= |
COMPOSITION(WT)= |
— | 同KG/H |
🔴 PRO/II 10.2 不支持 COMPOSITION行中的NORMALIZE关键字(2026-06-11验证)
- 必须手动确保总和精确等于100%(WT/LV/GV)或1.0(M)
- NORMALIZE 只能用于 ASSAY 子语句(如 LIGHTEND 行)
格式规则:
- COMPOSITION(M)=comp_id,fraction — 摩尔分数(0.0-1.0)
- COMPOSITION(WT)=comp_id,fraction — 质量百分比(0-100)
- 组分之间用 / 分隔,/ 只出现在组分对之间,末尾绝对不能有 /
- NORMALIZE 必须紧跟在最后一个组分对后面,用 , 分隔,不能单独成行(仅适用于ASSAY子语句)
- 正确示例:COMPOSITION(WT)=1,33.3/2,33.3/3,33.4(总和=100.0)
- 正确示例:COMPOSITION(M)=1,0.333/2,0.333/3,0.334(总和=1.0)
- 错误示例:COMPOSITION(WT)=1,0.33/2,0.33/3,0.34(WT不能用分数!总和=1.0≠100)
温度指定:
- 循环流股(如VALVE出口)必须提供TEMPERATURE或液相分数初始估计值
THERMODYNAMIC METHOD 详细语法(Chapter 7)
> 语法来源: PRO/II 10.2 Keyword Manual (Chapter 7, page 281+)
METHOD 语句(热力学方法选择)
METHOD SYSTEM=method_name, SET=setid, {DEFAULT}
{OPTIONS option_name=value}
{WATER PROPERTY=model_name}
{TRANSPORT=model_name}
| 参数 | 说明 |
|---|---|
SYSTEM= |
热力学方法:PR/SRK/LKP/BWRS/UNIQUAC/NRTL/WILSON/IDEAL |
SET= |
热力学数据集 ID(最长 8 字符),用于区分多个方法集 |
DEFAULT |
将此数据集设为默认(可选) |
WATER PROPERTY= |
水性质模型:IF97/STEAM-TA/NONE |
TRANSPORT= |
传递性质模型:IF97/DIPPR/STEAM-TA |
可用热力学方法:
| 方法 | 名称 | 适用场景 |
|---|---|---|
PR |
Peng-Robinson | 烃类+非极性气体,最常用 |
SRK |
Soave-Redlich-Kwong | 酸性气体(CO2/H2S),优于PR |
LKP |
Lee-Kesler-Plocker | 轻烃类 |
BWRS |
Benedict-Webb-Rubin-Starling | 天然气 |
UNIQUAC |
UNIQUAC | 极性+非极性混合物 |
NRTL |
NRTL | 极性混合物,液液平衡 |
WILSON |
Wilson | 极性混合物 |
IDEAL |
Ideal Gas | 理想气体,无逸度校正 |
PARAMETER 语句(方法参数 + BIP)
PARAMETER THERM=setid,
{BIP(name1, name2)=value,}
{BIP(name1, name3)=value,}
{property=value}
| 参数 | 说明 |
|---|---|
THERM= |
热力学数据集 ID(必须已用 METHOD 定义) |
BIP(,) |
二元交互作用参数(kij),覆盖默认值 |
property=value |
方法特定参数(如 PR 的 PC= 等) |
BIP 语法示例:
METHOD SYSTEM=PR, SET=SET01
PARAMETER THERM=SET01,
BIP(H2O, MEOH)=0.05,
BIP(CO2, MEOH)=0.10
COMPONENT DATA 中的组分属性(Chapter 7.3)
当使用 NONLIBRARY 定义非库组分时,需指定:
NONLIBRARY i, name, MW, SPGRAV, TB, {TC, PC, VC, ACENTRIC}
| 参数 | 含义 | 单位 |
|---|---|---|
i |
组分 ID | 整数 |
name |
组分名 | 最长 8 字符 |
MW |
分子量 | kg/kmol |
SPGRAV |
比重(15°C) | 无量纲 |
TB |
正常沸点 | °C 或 °F |
TC |
临界温度 | °C 或 °F |
PC |
临界压力 | kPa 或 PSIA |
VC |
临界体积 | m3/kmol |
ACENTRIC |
偏心因子 | 无量纲 |
PETROLEUM 语句(石油组分属性,Chapter 7.4)
PETROLEUM(kg/m3, C) i, name, SG, TREF, NBP
| 参数 | 含义 |
|---|---|
i |
组分 ID |
name |
石油组分名 |
SG |
比重(kg/m3 或 lb/ft3) |
TREF |
参考温度(°C 或 °F) |
NBP |
正常沸点(°C 或 °F) |
BIP MATRIX 语句(批量 BIP 定义)
BIP MATRIX
METHOD=method_name,
PAIR(comp1, comp2), kij=value
PAIR(comp1, comp3), kij=value
关键:
- BIP 参数对收敛影响极大,不准确会导致 COLUMN 不收敛
- 优先使用 SimSci 数据库中的默认值
- 只有实验数据时才手动修改 BIP
UNIT OPERATIONS段
HX(简单换热器)
> 语法来源: PRO/II 10.2 Keyword Manual (Chapter 13.1, page 628+)
HX UID=NAME, {ZONES(OUTPUT)=5}, {PLOT}
HOT FEED=HOT-IN, M=HOT-OUT, DP(upres)=0.0, {METHOD=setid}
COLD FEED=COLD-IN, M=COLD-OUT, DP(upres)=0.0, {METHOD=setid}
CONFIG COUNTERCURRENT, TPASS=2, SPASS=1
OPERATION DUTY=1000
OPERATION 官方全部参数(13.1手册 Table 13.1-2A/2B):
| 参数 | 含义 | 单位限定符 |
|---|---|---|
DUTY |
总热负荷 | uduty (百万能量/时间) |
HTEMP |
热侧产品出口温度 | utemp |
CTEMP |
冷侧产品出口温度 | utemp |
HLFRAC |
热侧产品液相分率 | FRAC (0~1) |
CLFRAC |
冷侧产品液相分率 | FRAC (0~1) |
HDTBB |
热侧出口低于泡点温差 | utemp |
CDTBB |
冷侧出口低于泡点温差 | utemp |
HDTAD |
热侧出口高于露点温差 | utemp |
CDTAD |
冷侧出口高于露点温差 | utemp |
HOCI |
热出口-冷入口温差 | utemp |
HICO |
热入口-冷出口温差 | utemp |
HOCO |
热出口-冷出口温差 | utemp |
TMIN |
HOCI 与 HICO 的最小值 | utemp |
MITA |
最小内部温差(自动分区) | utemp |
UA |
UA值 | uhtco·uarea |
HXRIG(严格换热器)OPERATION 额外参数:
- SDTEMP / TDTEMP — 壳侧/管侧温度变化(ΔT),仅在 HXRIG 中用
- ~~DTEMP~~ — HX 中不存在此关键字。HXRIG 用 SDTEMP/TDTEMP
配置选项:
- CONFIG COUNTERCURRENT 或 COCURRENT(逆流/并流)
- CONFIG U(unit)=value, AREA(unit)=value — UA 规格(此时不能有 OPERATION)
- CONFIG UAMAX=value — UA 上限
- TPASS=2, SPASS=1 — 管程/壳程数
UTILITY(公用工程侧)— HX必须有两侧定义!
! 冷却器:HOT侧(工艺) + UTILITY(冷却水)
UTILITY WATER, TIN(C)=30, TEMP(C)=40
! 低温加热器:COLD侧(工艺) + UTILITY(蒸汽,TSAT<400°C)
UTILITY STEAM, TSAT=150
! 空冷器:HOT侧(工艺) + UTILITY(空气)
UTILITY AIR, TIN=85, TEMPERATURE=115
! 蒸汽加热器(基于压力)
UTILITY STEAM, PSAT=300
⚠️ HX + UTILITY STEAM 仅适用于 <400°C 加热场景! 官方案例验证:
- C5.INP: UTILITY STEAM, TSAT=392(ENGLISH单位,≈200°C)
- P4G.INP: UTILITY STEAM, PSAT=300(ENGLISH单位,≈psig)
- C8.INP: UTILITY STEAM, PSAT=1101.3
- 高温加热(>400°C,如加热炉590°C)→ 改用 FLASH ISOTHERMAL
- HX必须有两侧:两侧FEED(HOT+COLD) 或 一侧FEED+UTILITY,不能只有一侧FEED无UTILITY
COMPRESSOR(压缩机)
COMPRESSOR UID=NAME
FEED FEED-STREAM
PRODUCT V=PRODUCT-STREAM
OPERATION CALCULATION=ASME, COPT=SING, PRES=8500, EFF=82
OPERATION选项:
- CALCULATION=ASME 或 GPSA(官方案例A1/A3G/A4G均用GPSA)
- COPT=SING — 单级压缩
- PRES=8500 — 出口压力(kPa)
- PRATIO=2.5 — 压缩比(与PRES二选一)
- EFF=82 — 绝热效率(%)
- MEFF=90 — 机械效率(%),推荐指定
PRODUCT语法:
- 必须使用 V=streamname 或 M=streamname
- V= 指定气相产品
VALVE(阀门)
VALVE UID=NAME
FEED FEED-STREAM
PRODUCT M=PRODUCT-STREAM
OPERATION PRESSURE=1150
关键要求:
- PRODUCT必须带相位限定符:M=streamname
- 不支持不带限定符的 PRODUCT streamname
- VALVE出口流股必须指定TEMPERATURE或液相分数
PUMP(泵)
PUMP UID=NAME
FEED FEED-STREAM
PRODUCT M=PRODUCT-STREAM
OPERATION PRESSURE=2500, EFF=75
关键要求:
- PRODUCT必须带 M=streamname
- 效率通过OPERATION中的 EFF= 指定,不是单独的EFFICIENCY关键字
- 不支持 EFFICIENCY=75 独立一行
FLASH(闪蒸罐/加热器/冷却器)完整语法
> 语法来源: PRO/II 10.2 Keyword Manual (Chapter 11.1, page 284+)
⚠️ FLASH ISOTHERMAL 可以替代加热炉/冷却器! 当HX+UTILITY不适用时(如高温加热>400°C),用FLASH ISOTHERMAL指定出口温度和压力即可。
FLASH UID=uid, {NAME=text, KPRINT}
FEED sid, {sid,...}
PRODUCT V=sid, or L=sid, {W=sid, S=sid}
or V=sid, L=sid, {W=sid, S=sid}
or M=sid, {W=sid, S=sid}
OPERATION PHASE=V or L or L1 or L2 (or W)
加热炉替代方案(FLASH ISOTHERMAL):
! 替代HX+UTILITY STEAM用于高温加热(如590°C进料加热炉)
FLASH UID=HTR01, NAME=FEED HEATER
FEED FEED1
PRODUCT M=HOTFEED
OPERATION ISOTHERMAL, TEMPERATURE=590, PRESSURE=200
Performance Specifications (必填其一):
Isothermal (等温闪蒸)
ISOTHERMAL TEMP(utemp)=value, PRESSURE(upres)=value or DP(upres)=0.0
Adiabatic or Phase Separator (绝热闪蒸)
ADIABATIC TEMP(utemp)=value, {PEST(upres)=value},
or PRESSURE(upres)=value, {TEST(utemp)=value},
or DP(upres)=0.0, {TEST(utemp)=value},
DUTY(uduty)=0.0
Dew Point (露点)
DEW TEMP(utemp)=value, {PEST(upres)=value}
or PRESSURE(upres)=value, {TEST(utemp)=value}
or DP(upres)=0.0, {TEST(utemp)=value}
Hydrocarbon Dew Point (烃露点)
DEWHC TEMP(utemp)=value, {PEST(upres)=value}
or PRESSURE(upres)=value, {TEST(utemp)=value}
or DP(upres)=0.0, {TEST(utemp)=value}
Water Dew Point (水露点)
DEWWATER TEMP(utemp)=value, {PEST(upres)=value}
or PRESSURE(upres)=value, {TEST(utemp)=value}
or DP(upres)=0.0, {TEST(utemp)=value}
Bubble point (泡点)
BUBBLE TEMP(utemp)=value, {PEST(upres)=value}
or PRESSURE(upres)=value, {TEST(utemp)=value}
or DP(upres)=0.0, {TEST(utemp)=value}
Isentropic (等熵)
ISENTROPIC TEMP(utemp)=value, {PEST(utemp)=value}
or PRESSURE(upres)=value, {TEST(utemp)=value}
or DP(upres)=0.0, {TEST(utemp)=value}
Upper Dew Point (上露点)
UPPERDEWPOINT TEMP(utemp)=value, {PEST(upres)=value}
Vapor Fraction (气相分率)
FRAC TEMP(utemp)=value, {PEST(upres)=value},
or PRESSURE(upres)=value, {TEST(utemp)=value},
or VFRAC(ufrac)=value
Specified Conditions (指定条件)
TPSPEC TEMP(utemp)=value, {PEST(upres)=value}
or PRESSURE(upres)=value, {TEST(utemp)=value}
or DP(upres)=0.0, {TEST(utemp)=value}
and
SPEC STREAM=sid, <property 1>, WET or DRY,
{<operator>, <reference>, <property 2>},
VALUE=value, {ATOL=value or RTOL=value}
Entrainment (夹带)
ENTRAINMENT FROM=phase, TO=phase,
FRACTION=value or PERCENT=value or
RATE(M or WT or AV, urate)=value or
HOTVOL(LV or GV, vol units)=value, NAME=eid
ENTPROD FROM=phase, TO=phase,
FRACTION(M or WT or AV)=value or
PERCENT(M or WT or AV)=value or
RATE(M or WT or AV, or GV, urate)=value or
HOTVOL(LV or GV, vol units)=value, NAME=eid
Valid entries for phase: V or L or S or W.
Alternate Definition of Parameters (可选)
DEFINE <param> AS <unit type>=uid, <param>, {<op>, <ref>}
or
DEFINE <param> AS STREAM=sid, <param>, {<op>, <ref>}
Thermodynamic Set Selection (可选)
METHOD SET=setid
COLUMN(精馏/吸收/汽提塔)完整语法
> 语法来源: PRO/II 10.2 Keyword Manual (Chapter 12.1-12.10, page 391+)
最小必选结构
COLUMN or SIDESTRIPPER or SIDERECTIFIER UID=uid, {NAME=text}
PARAMETER TRAY=value,
{IO=30} or {SURE=20} or {LLEX=30} or
{CHEMDIST=40} or {RATEFRAC=30} or {ENHANCEDIO=12},
{DAMP=1.0}, {SIMSTOP=15}, {FREEWATER}
FEED sid, trayno, {phase}/ sid2, trayno2, {phase2}/...,
{NOTSEPARATE}, {SEPARATE}, {SUPERCEDE=ON or OFF}
**⚠️ 多股进料必须用 `/` 分隔,不能用逗号!**
正确: `FEED S1, 5 / S2, 10`
错误: `FEED S1, 5, S2, 10` → 报 "Misplaced or invalid character"
PRODUCT OVHD(M or LV or WT, urate)=sid, value,
BTMS(M or LV or WT, urate)=sid, value,
{LDRAW(M or LV or WT, urate)=sid, trayno, value/...},
{VDRAW(M or LV or WT or GV, urate)=sid, trayno, value/...},
{WATER(M or LV or WT, urate)=sid, 1, value}
**⚠️ OVHD和BTMS必须在同一个PRODUCT语句中!不能分成两行!**
正确: `PRODUCT OVHD(M)=S1, 1000, BTMS(M)=S2, 5000`
错误: `PRODUCT OVHD(M)=S1, 1000` + `PRODUCT BTMS(M)=S2, 5000` → 报"Keyword 'BTMS' REQUIRED"和"Duplicate occurrence"
(2026-06-12验证: azeo_a3-splitter.inp, EXAM2.INP, A2.INP均确认OVHD/BTMS在同一行)
**可以只给一侧流量,另一侧由物料平衡自动计算:**
`PRODUCT OVHD(M)=S1, 1000, BTMS(M)=S2` → BTMS流量自动算
CONDENSER(冷凝器)完整语法
> 手册原文:"Omit this statement for columns with no condenser."
官方支持的 6 种冷凝器类型:
| TYPE= | 说明 | 附加参数 | 官方案例验证 |
|---|---|---|---|
PART |
部分冷凝器(汽液两相塔顶) | PRESSURE=, TEST=(可选) |
A2(T1,T5), A4, A8(ARG), C2, G8(再生塔) |
TOTAL |
全冷凝器 | PRESSURE=, TESTIMATE=(可选) |
未出现在Applib案例中 |
BUBB |
泡点冷凝器(全凝) | PRESSURE=, TEST=(可选) |
A2(T2,T3,T4), C1-C4, C6, A8(HP) |
TFIX |
固定过冷温度 | TEMPERATURE=, PRESSURE= |
A5(DEC4), A7(T-1), C5, C8 |
MIXED |
混合冷凝(部分出料) | PRESSURE=, TESTIMATE=(可选) |
未出现在Applib案例中 |
DTBB |
泡点以下 DT 度 | DT= |
未出现在Applib案例中 |
⚠️ PART vs PARTIAL:官方案例统一使用 TYPE=PART(A2, A4, A8, C2, G8),不建议使用 PARTIAL。
⚠️ 无冷凝器时:直接省略 CONDENSER 行(吸收塔/汽提塔)
CONDENSER TYPE=PART or TOTAL or BUBB or TFIX or MIXED or DTBB,
PRESSURE(upres)=value,
DUTY(uduty)=value,
VAPOR=sid, LIQ=sid,
HXOUT=sid, TLIQ=sid
REBOILER(再沸器)完整语法
REBOILER TYPE=KETTLE or THERMOSYPHON or NONE,
PRESSURE(upres)=value,
DUTY(uduty)=value,
OUT=sid
规则:THERMOSYPHON 仅 IO/EnhancedIO/SURE 算法支持。吸收塔(无再沸器)直接省略。
TYPE 选项:
- KETTLE - 釜式再沸器
- THERMOSYPHON - 热虹吸再沸器
- NONE - 无再沸器(吸收塔)
🔴 关键规则:使用 DUTY name=REBOILER 时必须声明 REBOILER TYPE=KETTLE!(2026-06-12 UOP PDH验证)
- 没有
REBOILER TYPE=...时,PRO/II将所有DUTY当作侧线加热器/冷却器(side-heater/cooler) - "REBOILER"是保留名称,不能用于侧线加热器 → 报错:
The heater name REBOILER, may not be used as side-heater/cooler name. Also specify the REBOILER type. - 修正:添加
REBOILER TYPE=KETTLE语句,或改用非保留名(如DUTY 2,150,,2,参照P1.INP)
| 场景 | DUTY语句 | REBOILER TYPE | 结果 |
|---|---|---|---|
| 有再沸器 | DUTY 2,25,,REBOILER |
REBOILER TYPE=KETTLE |
✅ 正确 |
| 有再沸器 | DUTY 2,25,,REBOILER |
省略 | 🔴 报错!REBOILER是保留名 |
| 无再沸器声明 | DUTY 2,25,,2 |
省略 | ✅ 侧线加热器,P1.INP做法 |
| 无再沸器声明 | DUTY 2,25,,SIDEHC2 |
省略 | ✅ 侧线加热器,A2/A4做法 |
⚠️ 同理,DUTY name=CONDENSER 必须与 CONDENSER TYPE=... 配对使用。 不指定CONDENSER TYPE时不能用name="CONDENSER"。
DUTY(热负荷)完整语法
DUTY(uduty) idno, segno, value {, name}/....
DUTY(V or L, uduty) idno, segno, value {, name}/.... (for RATEFRAC)
idno: 整数编号segno: 塔板号(就是TRAY号),不是段号! 编号规则非常简单:- 冷凝器:segno=1(顶板)
- 再沸器:segno=TRAY(底板 = PARAMETER TRAY的值)
- 中段回流(PA):segno=PA返回的塔板号
- ⚠️ 无论冷凝器类型如何(PART/BUBB/TFIX),再沸器segno始终=TRAY!
- 验证来源(2026-06-12 官方案例全面验证):
- A2 T1: TRAY=10, COND TYPE=PART → DUTY 1,1(cond), DUTY 2,10(reb)
- A2 T2: TRAY=17, COND TYPE=BUBB → DUTY 1,1(cond), DUTY 2,17(reb)
- A4: TRAY=16, COND TYPE=PART → DUTY 1,1(cond), DUTY 2,16(reb)
- A8 HP: TRAY=44, COND TYPE=BUBB → DUTY 1,1(cond), DUTY 2,44(reb)
- A8 ARG: TRAY=3, COND TYPE=PART → DUTY 1,1(cond), DUTY 2,3(reb)
- C2: TRAY=18, COND TYPE=BUBB → DUTY 1,1(cond), DUTY 2,18(reb)
- G7G再生塔: TRAY=12, COND TYPE=PART → DUTY 1,1(cond), DUTY 2,12(reb)
- ~~旧规则"TRAY+2"和"PARTIAL=TRAY, BUBB=TRAY+1"均错误,已修正~~
value: 热负荷(百万能量单位/时间),正值=加热,负值=冷却。留空=由程序计算name: DUTY名称字符串,被VARY DNAME=引用!⚠️ 不是idno序号!- 推荐命名:
CONDENSER(冷凝器)、REBOILER(再沸器)、SIDEHC1/SIDEHC2(中段) - 官方案例:A9/B2/C8/G8/G10/U2 用
REBOILER;A2/A4/A5/A7/C1-C6 用SIDEHC2 - 也可用数字字符串如
1、2(C4/C5/G2/P1-P6/R2-R8),但可读性差 - 🔴 错误示例:
DUTY 2,25,,REB+VARY DNAME=2→ INVALID HEATER NAME "2"! - ✅ 正确示例:
DUTY 2,25,,REBOILER+VARY DNAME=REBOILER DUTY与HEAT同义(HEAT 为旧版保留关键字)
⚠️ segno 编号规则(2026-06-12 官方案例全面验证修正):
| 关键字 | 编号体系 | TRAY=10 时的编号 |
|---|---|---|
DUTY segno |
塔板号 | 1=冷凝器(顶板), 2~9=中间塔板, 10=再沸器(底板) |
PRESSURE / TEMPERATURE |
塔板编号 | 1, 2, 3, ..., 10 |
FEED 塔板位置 |
塔板编号 | 1~10 |
LDRAW / VDRAW |
塔板编号 | 1~10 |
简单规则:DUTY的segno就是塔板号,再沸器segno=TRAY(底板号),与冷凝器类型无关!
PRESSURE vs PSPEC(塔压定义)
两种方式互斥,任选其一:
方式一(逐板): PRESSURE(KPA) 1,4450/ 5,4470/ N,4500
方式二(顶压+压降): PSPEC PTOP(KPA)=4450, DPCOL(KPA)=50
或 PSPEC PTOP(KPA)=4450, DPTRAY(KPA)=3.33
关键:
- PSPEC 使用 PTOP= + DPCOL=/DPTRAY= 格式,不是 PSPEC 1,4450, N,4500!
- PRESSURE 使用塔板编号(1 ~ TRAY),不是 segno!
- 对 TRAY=5,PRESSURE 范围是 1,val/5,val(不能用 6 或 7,会报 "Invalid tray number")
ESTIMATE(初始估算生成器)完整语法
> 手册原文 §12.1 page 413, 420-421。仅支持以下关键字,不可混入其他。
ESTIMATE MODEL=SIMPLE or CONVENTIONAL or REFINE or CHEM
{CESTIMATE(L or L1 or L2 or V or IL or IV) trayno, x1, x2,.../...}
{ CTEMP(utemp)=value, TTEMP(utemp)=value,
BTEMP(utemp)=value, RTEMP(utemp)=value }
RRATIO(LD or L1 or L2 or LF)=3.0
温度估算关键字(四选,按塔结构选取):
| 关键字 | 含义 | 何时使用 |
|---|---|---|
CTEMP |
冷凝器温度 | 塔有冷凝器时 |
TTEMP |
塔顶塔板温度 | 塔无冷凝器时(= Tray 2 if has condenser, Tray 1 if not) |
BTEMP |
塔底温度 | 总是(有再沸器时=倒数第二板) |
RTEMP |
再沸器温度 | 塔有再沸器时 |
MODEL 选项:
- SIMPLE - 简单估算
- CONVENTIONAL - 常规方法-REFINE- 精细估算
- CHEM - 化学蒸馏估算`
CESTIMATE 选项(CHEMDIST 和 SURE 算法):
CESTIMATE(L or L1 or L2 or V) trayno, x1, x2,.../...
温度估算关键字(四选,按塔结构选取):
| 关键字 | 含义 | 何时使用 |
|---|---|---|
CTEMP |
冷凝器温度 | 塔有冷凝器时 |
TTEMP |
塔顶塔板温度 | 塔无冷凝器时(= Tray 2 if has condenser, Tray 1 if not) |
BTEMP |
塔底温度 | 总是(有再沸器时=倒数第二板) |
RTEMP |
再沸器温度 | 塔有再沸器时 |
产品流量初估值(在 PRODUCT 语句中,不在 ESTIMATE 中):
⚠️ OVHD和BTMS必须在同一个PRODUCT语句中! 官方案例无一例外均为单行写法:
PRODUCT OVHD(M)=S1, 1000, BTMS(M)=S2, 5000, SUPERSEDE=ON
分两行写会导致 "Keyword 'BTMS' REQUIRED" 和 "Duplicate occurrence of statement 'PRODUCT'" 错误。
可以只给一侧流量,另一侧由物料平衡自动计算:
PRODUCT OVHD(M)=S1, 1000, BTMS(M)=S2, SUPERSEDE=ON
value是产品摩尔流量估计值(BASIS=MOLE时),至少一端必须提供- 手册原文: "This rate is required if it is not given on the [other] keyword."
ESTIMATE 不支持的关键字(已验证被 PRO/II 10.2 拒绝):
- ~~TEMP~~ → 用 TTEMP(无冷凝器)或 CTEMP(有冷凝器)
- ~~RATE(M)~~ → 产品流量初估在 PRODUCT 语句中
- ~~RATE(WT)~~ → 同上
PA (Pump-Around) 完整语法
PA FROM=trayno1, TO=trayno2, PHASE=L or V,
{NAME=idchar*12,}
RATE(urate)=value, TEMP(utemp)=value,
DUTY(uduty)=value,
RETURN=sid, DRAW=sid
参数说明:
- FROM, TO - 泵循环的起始和终止塔板号
- PHASE - 泵循环物料的相态(L=液相, V=气相)
- RATE - 泵循环流量
- TEMP - 泵循环返回温度
- DUTY - 泵循环热负荷
- RETURN - 返回流股名
- DRAW - 抽出流股名
SPEC(规格)完整语法
SPEC COLUMN=uid or SIDESTRIPPER=uid, <property 1>,
{<operator>, <reference>, <property 2>},
VALUE=value, {ATOL=value or RTOL=value}
⚠️ PRO/II 10.2 关键词模式 SPEC 限制(2026-06-11 验证):
| 特性 | 是否支持 | 说明 |
|---|---|---|
VALUE= 关键字 |
✅ 必须 | 数值前必须有 VALUE=,不能直接写数字 |
COMP 属性 |
❌ 不支持 | 关键词模式不识别 COMP 关键字 |
GE / LE 操作符 |
❌ 不支持 | 关键词模式不识别不等式约束 |
REFLUX |
✅ 支持 | 回流比 |
RRAT |
✅ 支持 | 回流比(同 REFLUX) |
DUTY |
✅ 支持 | 热负荷 |
MDIA |
✅ 支持 | 组分摩尔分数(区别于 COMP) |
正确 SPEC 示例(PRO/II 10.2 关键词模式):
SPEC COLUMN=T101, REFLUX, VALUE=2.0
SPEC COLUMN=T101, RRAT, VALUE=1.5
SPEC COLUMN=T101, DUTY, VALUE=5.0
不支持的 SPEC 示例:
SPEC COLUMN=T101, COMP,1,OVHD,VALUE=0.95,GE ← COMP 不被识别
SPEC COLUMN=T101, COMP,2,BTMS,0.05,LE ← COMP 不被识别, 缺 VALUE=
VARY ({CHANGE}) 完整语法
> ⚠️ 2026-06-12 UOP PDH模型验证:VARY DNAME= 必须引用DUTY语句中的name字符串,不是序号!
VARY({CHANGE}) DNAME=duty_name, ...
VARY({CHANGE}) DNAME=duty_name1, duty_name2, ... ! 多个duty用逗号分隔
VARY DRAW=sid,...
VARY FEED=sid,...
VARY FTRAY(tray)
VARY DNAME 引用规则(2026-06-12 官方50+案例验证):
VARY DNAME= 后面跟的是DUTY语句中定义的name字符串,不是idno序号!
| DUTY定义 | 正确VARY | 错误VARY | 说明 |
|---|---|---|---|
DUTY 1,1,,CONDENSER |
VARY DNAME=CONDENSER |
~~VARY DNAME=1~~ |
name="CONDENSER" |
DUTY 2,25,,REBOILER |
VARY DNAME=REBOILER |
~~VARY DNAME=2~~ |
name="REBOILER" |
DUTY 2,10,,2 |
VARY DNAME=2 |
— | name="2"(数字字符串) |
DUTY 2,16,,SIDEHC2 |
VARY DNAME=SIDEHC2 |
— | name="SIDEHC2" |
🔴 错误后果:INVALID HEATER NAME "X" is included in VARY statement.
官方案例DUTY命名惯例(推荐遵循):
| 命名 | 用途 | 官方案例 |
|---|---|---|
CONDENSER |
冷凝器DUTY | A2, A4, A5, A7, A8, A9, B2, C1-C8, G8, P1-P6, R2-R8 |
REBOILER |
再沸器DUTY | A9, B2, C8, G8, G10, R2A, U2 |
SIDEHC2 |
非冷凝器DUTY(再沸器/中间加热) | A2, A4, A5, A7, C1-C4, VCM |
SIDEHC1 |
第一中间DUTY | A8, G8, VCM |
2 |
数字字符串(第二种DUTY) | C4, C5, G2, P1-P6, R2-R8 |
1 |
数字字符串(唯一DUTY) | G5, G7G, R4R, R8 |
⚠️ 强烈建议使用 CONDENSER 和 REBOILER 作为DUTY名,不要用数字字符串,可读性更好。
一行多DUTY引用(B2.inp验证):
VARY DNAME=REBOILER,CONDENSER ! 一行引用两个DUTY
COLUMN SPEC/VARY配对规则(2产品塔)
> 2026-06-12 官方50+案例验证:2产品塔(SUPERSEDE=ON)需要 2个SPEC + 2个VARY
自由度分析:
- 2产品塔(OVHD + BTMS)+ SUPERSEDE=ON → 产品流量为变量
- 2个DUTY(CONDENSER + REBOILER)→ 2个可调变量
- 需要2个SPEC约束2个自由度
标准配对模式(官方案例验证):
| 模式 | SPEC 1 | SPEC 2 | VARY 1 | VARY 2 | 案例 |
|---|---|---|---|---|---|
| A | RRATIO | 产品纯度 | DNAME=CONDENSER | DNAME=REBOILER | C5 |
| B | RRATIO | 产品流量 | DNAME=CONDENSER | DNAME=REBOILER | A5 |
| C | 产品纯度 | RRATIO | DNAME=CONDENSER | DNAME=REBOILER | C4, A9 |
| D | 温度 | 产品纯度 | DNAME=CONDENSER | DNAME=REBOILER | A8 |
标准模板:
COLUMN UID=C1, NAME=DEETHANIZER
PARAMETER TRAY=25, IO=200, DAMP=0.5
FEED FEED1, 12, TNOTSEPARATE, NOTSEPARATE
PRODUCT OVHD(M)=OV1, 200, BTMS(M)=BT1, 650, SUPERSEDE=ON
CONDENSER TYPE=PART, PRESSURE=1700
REBOILER TYPE=KETTLE
DUTY 1,1,,CONDENSER
DUTY 2,25,,REBOILER
PSPEC PTOP=1700, DPCOL=50
ESTIMATE MODEL=CONVENTIONAL, CTEMP=-20, BTEMP=75, RRATIO=3.0
TEMPERATURE(C) 1,-20/ 8,0/ 16,30/ 25,75
SPEC ID=S1, COLUMN=C1, RRATIO, VALUE=3.0
SPEC ID=S2, STREAM=OV1, RATE(M), TOTAL, WET, VALUE=200
VARY DNAME=CONDENSER
VARY DNAME=REBOILER
DEFINE(参数定义)完整语法
DEFINE <param> AS <unit type>=uid, <param>, {<op>, <ref>}
or
DEFINE <param> AS STREAM=sid, <param>, {<op>, <ref>}
TEMPERATURE(逐板温度估算)
逐板温度用独立的 TEMPERATURE 关键字,不在 ESTIMATE 中:
TEMPERATURE(C) 1,-55/ 5,-50/ 10,-40/ N,-20 ← 逐板温度估算
DUTY(冷凝器/再沸器/中间换热器热负荷)
DUTY idno, segno, value, name / idno, segno, value, name / ...
idno: 整数编号segno: 塔板号(1=冷凝器, N=再沸器)value: 热负荷(百万能量单位/时间),正值=加热,负值=冷却,留空=由程序计算name: DUTY名称,被VARY DNAME=引用! 推荐用CONDENSER/REBOILERDUTY与HEAT同义(HEAT 为旧版保留关键字)
SIDE(侧线产品)
侧线抽出是 PRODUCT 语句的一部分,不是独立关键字。
语法(PRO/II 10.2 验证):
PRODUCT SIDE(L)=sid, segno, value
PRODUCT SIDE(V)=sid, segno, value
| 参数 | 含义 |
|---|---|
SIDE(L) |
液相侧线抽出(最常用) |
SIDE(V) |
气相侧线抽出 |
sid |
侧线产品流股名(最长 8 字符) |
segno |
抽出塔板号(1=冷凝器, N=再沸器) |
value |
流量初值(摩尔流量,BASIS=MOLE 时) |
- 一个 COLUMN 可有多条
PRODUCT SIDE语句 value(流量初值)必须提供,否则报语法错误- 侧线抽出影响物料平衡,极大影响收敛,初值要合理
⚠️ LDRAW 侧线语法(在PRODUCT语句内部):
LDRAW 是另一种侧线抽出方式,在PRODUCT语句内部使用:
PRODUCT OVHD(M)=NAPHTHA, 300, LDRAW(M)=KERO, 14, 150, LDRAW(M)=DIESEL, 27, 250, BTMS(M)=BOT, 300, SUPERSEDE=ON
⚠️ LDRAW + SUPERSEDE=ON 冲突规则(2026-06-19 VDU验证):
- SUPERSEDE=ON 让SPEC覆盖OVHD/BTMS的流量初值
- 但LDRAW的流量初值不能被SPEC覆盖!SUPERSEDE只对OVHD/BTMS有效
- 如果要对LDRAW流量做SPEC约束,需要额外VARY变量(如DUTY侧线加热器SIDEHC)
- 推荐做法:LDRAW固定抽出率(不约束),OVHD/BTMS用SPEC+VARY控制
LDRAW 也可以单独作为PRODUCT子语句(官方案例R3R验证):
PRODUCT OVHD(M)=9, 2879, WATER=7, 1, 1105, BTMS(M)=20, SUPERSEDE=ON
LDRAW(M)=15, 8, 1047/17, 12, 575/19, 16, 715
注意:LDRAW是COLUMN的子语句,不在PRODUCT内部时作为独立行,格式=LDRAW(unit)=sid, trayno, value/trayno2, sid2, value2
常见错误:
| 错误写法 | 正确写法 |
|---------|---------|
| SIDE KERO,12,150 | PRODUCT SIDE(L)=KERO,12,150 |
| PRODUCT SIDE(L)=KERO,150 | PRODUCT SIDE(L)=KERO,12,150(缺少塔板号)|
| PRODUCT SIDE=KERO,12,150 | PRODUCT SIDE(L)=... 或 (V)=...(必须指定相态)|
推荐分行写(更清晰):
PRODUCT OVHD(M)=NAPHTHA, 300
PRODUCT SIDE(L)=KERO, 12, 150
PRODUCT SIDE(L)=DIESEL, 25, 250
PRODUCT BTMS(M)=BOT, 300
完整常压分馏塔示例(含侧线 + 中段回流)
COLUMN UID=C1, NAME=ATM_DIST
PARAMETER TRAY=40
FEED FEED,20
PRODUCT OVHD(M)=NAPHTHA, 300
PRODUCT SIDE(L)=KERO, 14, 150
PRODUCT SIDE(L)=DIESEL, 27, 250
PRODUCT BTMS(M)=BOT, 300
CONDENSER TYPE=BUBB, PRESSURE(KPA)=110
REBOILER TYPE=KETTLE
PRESSURE(KPA) 1,110/ 20,120/ 40,130
ESTIMATE MODEL=SIMPLE, CTEMP=110, BTEMP=350, RRATIO=2.5
TEMPERATURE(C) 1,110/ 10,180/ 20,260/ 30,320/ 40,355
HEAT 1,1,-5.0
HEAT 2,7,-8.0
HEAT 1,1,-5.0:冷凝器(segno=1)取热 5 MW(负值=取热)HEAT 2,7,-8.0:第 7 段(segno=7 = 第5层塔板,TRAY=5时)中段取热 8 MW- segno 编号:1=冷凝器, 2~6=5层塔板, 7=再沸器
PRODUCT SIDE(L)=KERO,14:SIDE 使用 segno 编号,14 = 第12层塔板
完整吸收塔示例(无冷凝器无再沸器)
COLUMN UID=ABS01, NAME=ABSORBER
PARAMETER TRAY=15
FEED GAS-IN,15/ LIQUID-IN,1
PRODUCT OVHD(M)=GAS-OUT, 8000
PRODUCT BTMS(M)=LIQUID-OUT, 600
PRESSURE(KPA) 1,4450/ 15,4500
ESTIMATE MODEL=SIMPLE, TTEMP=-55, BTEMP=-20
TEMPERATURE(C) 1,-55/ 5,-50/ 10,-40/ 15,-20
完整汽提塔示例(无冷凝器+釜式再沸器)
模式A:固定DUTY值(0 SPEC + 0 VARY)
COLUMN UID=STR01, NAME=REGEN
PARAMETER TRAY=8
FEED FEED-IN,1
PRODUCT OVHD(V)=VAPOR-OUT, 300
PRODUCT BTMS(M)=BTMS-OUT, 500
REBOILER TYPE=KETTLE
PRESSURE(KPA) 1,110/ 8,120
DUTY 1,8,4.0
ESTIMATE MODEL=SIMPLE, TTEMP=70, BTEMP=95
TEMPERATURE(C) 1,70/ 4,85/ 8,95
模式B:SPEC/VARY控制塔底组成(1 SPEC + 1 VARY)— 2026-06-21 Lurgi Rectisol v9验证
COLUMN UID=REGEN
PARAMETER TRAY=8, IO=300, DAMP=0.5
FEED 11,1
PRODUCT OVHD(V)=12,500, BTMS(M)=13,14000
REBOILER TYPE=KETTLE
PSPEC PTOP=200, DPCOL=20
DUTY 1,8,,REBOILER
ESTIMATE MODEL=SIMPLE, TTEMP=50, BTEMP=83
TEMPERATURE(C) 1,50/ 3,60/ 5,70/ 8,83
SPEC ID=S1, STREAM=13, FRACTION, COMP=2, WET, VALUE=0.005
VARY DNAME=REBOILER
汽提塔关键规则(2026-06-21验证):
1. 无冷凝器:省略CONDENSER语句(不要写CONDENSER TYPE=NONE)
2. FEED在tray 1(塔顶液相进料):提供塔顶液相源,避免NO FEED or HEATER at tray 1
3. REBOILER TYPE=KETTLE:提供上升蒸汽(汽提动力)
4. DUTY命名:DUTY 1,N,,REBOILER(value留空,name=REBOILER)→ 允许VARY DNAME=REBOILER
5. OVHD(V):气相产品(被汽提的轻组分)
6. BTMS(M):液相产品(再生后的重组分)
7. ESTIMATE用TTEMP(非CTEMP):无冷凝器时用TTEMP指定塔顶温度
8. PSPEC代替PRESSURE:PSPEC PTOP=xxx, DPCOL=xx比逐板PRESSURE更稳定
COLUMN 收敛问题排查
> ⚠️ 验证结论(2026-06-11): PRO/II 10.2 的 COLUMN 模块 语法正确,可以运行(RC=11),但 收敛困难(RC=14)。之前以为的"许可问题"已被排除 — 正确配置环境后(proii.ini + SIMSCICFI + Licensing 路径),COLUMN 模块正常工作。
环境配置要求(关键!)
COLUMN 测试必须使用正确的环境配置,否则 PROIN.exe 会崩溃(RC=3221225781):
# 必须的路径
SIMSCI_CFI = r'C:\Program Files\Common Files\SIMSCI\SIMSCICFI53\VC120x64'
LICENSING = r'C:\Program Files (x86)\Common Files\SimSci\Licensing10\VC120x64'
PROII_BIN = r'E:\Program Files\SIMSCI\PROII102\BIN'
CNF = %APPDATA%\SIMSCI\PROII102\proii.ini # 不是 PROII.CNF!
正确的 COLUMN 语法(已通过 PROIN RC=11 验证)
COLUMN UID=T101,NAME=TESTCOL
PARAMETER IO=100,DAMP=0.5,TRAY=5 ← 算法 + 迭代次数 + 阻尼
FEED FEED,3 ← 进料流股 + 塔板号
PRODUCT OVHD=OVHD,40,BTMS=BTMS,60 ← 塔顶/塔底产品 + 流率
CONDENSER TYPE=BUBB ← 冷凝器类型
REBOILER TYPE=KETTLE ← 再沸器类型
PRESSURE(KPA) 1,105/5,110 ← 逐板压力(塔板编号 1~N)
HEAT 1,1,-5/2,7,5 ← 冷凝器(segno=1)+再沸器(segno=TRAY+2=7)热负荷
ESTIMATE MODEL=SIMPLE,CTEMP=60,BTEMP=150,RRATIO=2.0
TEMPERATURE(C) 1,60/2,80/3,100/4,130/5,150
关键规则:
1. PARAMETER 语句必须指定算法:IO=、SURE=、CHEMDIST=、ENHANCEDIO=、RATEFRAC=、LLEX=
2. 必须提供 HEAT 语句:否则报 "VAPOR FEED or a HEATER is REQUIRED on the BOTTOM tray"
3. PRESSURE 用塔板编号(1 ~ TRAY),HEAT 用 segno 编号(1=冷凝器, TRAY+2=再沸器)
4. PRODUCT 语法:OVHD=sid,rate,BTMS=sid,rate
5. 热负荷单位是百万能量/时间单位(与 DIMENSION DUTY 联动)
6. ESTIMATE 提供初值,但不替代操作规格
segno / 塔板编号对照速查
| TRAY= | 冷凝器 segno | 塔板 segno | 再沸器 segno | PRESSURE 范围 |
|---|---|---|---|---|
| 2 | 1 | 2,3 | 4 | 1,val/2,val |
| 3 | 1 | 2,3,4 | 5 | 1,val/3,val |
| 5 | 1 | 2,3,4,5,6 | 7 | 1,val/5,val |
| 10 | 1 | 2~11 | 12 | 1,val/10,val |
| 40 | 1 | 2~41 | 42 | 1,val/40,val |
COLUMN 限制
- 不能处理单组分进料:进料中至少需要 2 个组分,否则报 "Only ONE component is in the total feed"
收敛行为分析
IO 算法对 NC5+NC8 IDEAL 系统的收敛表现:
E(ENTH+SPEC): 2.14e2 → 7.05e0 (在稳定下降)
E(ENTH+SPEC): 7.83e-2 → 7.19e-2 → 7.18e-2(震荡停滞)
ALPHA: 逐渐减小至 ~1e-4,最终因 ALPHA 太小而终止
收敛失败原因:不是语法/许可问题,而是:
1. HEAT 值不匹配(冷凝器/再沸器热负荷与实际分离热不匹配)
2. 塔板数太少时,ESTIMATE MODEL=SIMPLE 提供的初值不足
3. IDEAL 热力学对烃类不够准确,建议改为 PR/SRK
4. 自由度超界(PRODUCT流量+HEAT+SPEC 总计超过 N-1)
收敛技巧:
- 增加迭代次数:IO=500 或 SURE=200
- 调整 DAMP:默认 1.0,收敛慢时降至 0.3-0.5
- 增大 SIMSTOP:默认 15,增大到 50
- ESTIMATE 用 CONVENTIONAL 代替 SIMPLE(提供更好的初值)
- 先确认 segno 编号正确(再沸器 = TRAY,不是 TRAY+2,详见 proii-modeling-guide 技能)
- TRAY >= 5 时才考虑使用 COLUMN(2-3 块板初值不足)
COLUMN 收敛排查路径(不要直接退回 FLASH):
> ⚠️ 工艺描述中有塔就必须用 COLUMN,FLASH 串联只是提取初值的辅助手段。
1. 检查自由度:PRODUCT + HEAT + SPEC 总数 ≤ TRAY-1
2. 检查 ESTIMATE:优先 MODEL=CONVENTIONAL, RRATIO=2.0,省略 CTEMP/BTEMP
3. 检查组分选择:VDU 用 NC10+ 重组分
4. 检查压力单位:用 PRESSURE(KPA) 明确指定
5. 检查进料温度:VDU 进料 200°C,塔底温度不要 >350°C(否则 "DRIED UP")
6. 用渐进扩展法:3组分5层 → 10层 → 20层 → 40层
7. 以上都试过仍不收敛:先用 FLASH 跑通流程提取初值,再回 COLUMN 重试
FLASH 串联仅在以下场景使用:
- COLUMN 收敛前提取初值(辅助手段,最终目标仍是 COLUMN)
- 纯方案比选阶段快速估算(需明确标注为简化模型)
- 非精馏场景的加热/冷却(FLASH ISOTHERMAL 替代加热炉)
WATER SUPERSATURATION 错误
- 触发条件:使用 PR 热力学 + 含水组分,在某些温度/压力条件下水蒸气的饱和度计算溢出
- 解决方案:
1. 避开 PR,改用 SRK 或 IDEAL(不含水时)
2. 如果必须用水 + PR,确保操作条件远离饱和曲线
3. 用WATER PROPERTY=IF97替代默认水性质模型
CONTROLLER(控制器)
CONTROLLER UID=NAME
SPEC STREAM=STREAM-NAME, RATE(WT,KG/H),TOTAL,WET, VALUE=2000
VARY STREAM=ADJUST-STREAM, RATE(WT,KG/H)
CPARAMETER IPRINT, SOLVE, ITER=30
MIXER(混合器)
MIXER UID=NAME
FEED STREAM1,STREAM2
PRODUCT M=PRODUCT-STREAM
SPLITTER(分流器)
SPLITTER UID=NAME
FEED FEED-STREAM
PRODUCT M=PROD1, M=PROD2
OPERATION OPTION=FILL
SPEC STREAM=PROD1, RATE(KGM/H),TOTAL,WET, VALUE=100
⚠️ 重要规则:
- OPERATION OPTION=FILL 必须指定,否则报"Missing OPTION"错误
- FRACTION 不是有效关键字!报"Statement 'FRACTION' is not recognized"
- SPLITTER按总流量分配产品,不支持组分选择性分离
- PSA等需要组分分离的场景,需用FLASH串联或专门单元近似
SPLITTER常见错误:
| 错误写法 | 正确写法 | 说明 |
|---------|---------|------|
| PRODUCT 1=A, 2=B | PRODUCT M=A, M=B | PRODUCT不能使用序号 |
| FRACTION 1=0.85, 2=0.15 | OPERATION OPTION=FILL + SPEC STREAM=A, RATE(...), VALUE=... | FRACTION关键字不被识别 |
| 省略OPERATION OPTION | OPERATION OPTION=FILL(必须) | 报"Missing OPTION" |
闭环模型收敛策略(2026-06-20 Rectisol验证)
问题诊断流程
- 开环验证:先搭建开环模型(断开循环),获得收敛的循环流股数据
- 数据回填:将开环模型收敛数据回填到闭环模型初始估计
- 排放机制:必须添加排放分流器去除累积组分(如H2O)
- 迭代优化:根据物料衡算结果,逐步调整排放率和补充流率
ISOTHERMAL vs ADIABATIC在闭环中的行为差异
| 闪蒸类型 | 开环系统 | 闭环系统 | 推荐场景 |
|---|---|---|---|
| ISOTHERMAL | 收敛快,温度指定 | 推荐! 温度可控,避免发散 | 闭环系统、温度敏感工艺 |
| ADIABATIC | 可用,但需初值估计 | 危险! 温度由焓平衡决定,初始估计偏差导致温度过低→更多气体溶解→更多液相→更低温度→恶性循环发散 | 开环系统、快速估算 |
Rectisol案例:
- ADIABATIC版闭环:MEF1流率从708暴涨至28,844 kg-mol/hr
- 根因:ADIABATIC闪蒸温度过低(-52~-55°C),大量气体溶解在甲醇中
- 解决:改为ISOTHERMAL,指定物理合理温度(FLS01=-40°C, FLS02=0°C, FLS03=30°C)
物料衡算偏差处理策略
症状:全局偏差>1%,或单组分偏差>5%
根因与解决:
1. 组分累积(如H2O在甲醇循环中累积)
- 解决:添加SPLITTER排放分流器
- 计算排放率:排放流率 = 进料带入组分流率 / 排放流股中该组分的摩尔分数
- 示例:WPURGE = 124.32 / 0.4677 ≈ 266 kg-mol/h
-
组分损失(如甲醇被SYOUT带走)
- 解决:添加补充流股(如MEOHMAKE)
- 计算补充率:补充流率 = 所有出口流股中该组分的流量之和 -
循环流率不匹配
- 解决:更新循环流股初始估计值(基于开环模型收敛数据)
开环→闭环模型转换流程
步骤:
1. 搭建开环模型:断开循环流股(如MEF1→...→MEF1NEW)
2. 运行开环模型至收敛
3. 记录循环流股(如MEF1NEW)的:流率、温度、压力、相态、组分
4. 搭建闭环模型:连接循环流股
5. 在STREAM DATA中定义循环流股初始估计:使用开环模型收敛数据
6. 运行闭环模型
7. 如物料衡算偏差>1%,添加排放分流器并优化
Rectisol案例:
- 开环模型:rectisol_v4_open.inp(MEF1→...→MEF1NEW)
- 收敛数据:MEF1NEW = 708.805 kg-mol/h, -60°C, 4500 kPa, LIQUID
- 闭环模型:rectisol_v4_final3.inp(MEF1初始估计使用开环数据)
- 结果:3次迭代收敛,全局偏差0.15 mol%
常见错误汇总
| 错误写法 | 正确写法 | 说明 |
|---|---|---|
! 注释内容 或 ! 单独一行 |
不使用注释行,或用 NOTES TEXT=... |
🔴 PRO/II 10.2不支持!注释! 导致"Statement must begin with a keyword"或"Statement '!' is not recognized"。官方案例均无注释行(2026-06-12 UOP PDH验证) |
VARY DNAME=2 但DUTY名是REBOILER |
VARY DNAME=REBOILER(引用DUTY的name字符串) |
🔴 INVALID HEATER NAME! VARY DNAME必须引用DUTY语句中的name字段,不是idno序号。官方案例验证:DUTY 2,25,,REBOILER → VARY DNAME=REBOILER(2026-06-12 UOP PDH验证) |
| 2产品塔SUPERSEDE=ON只有1个SPEC+1个VARY | 需要2个SPEC+2个VARY | 列有2个自由度(CONDENSER+REBOILER),需要2个SPEC约束。官方案例均为2 SPEC + 2 VARY(2026-06-12验证) |
DUTY 2,25,,REB(非标准命名) |
DUTY 2,25,,REBOILER |
官方案例统一使用REBOILER(A9, B2, C8, G8, G10, U2),不推荐缩写(2026-06-12验证) |
DUTY 2,25,,REBOILER 但缺少 REBOILER TYPE=KETTLE |
必须添加 REBOILER TYPE=KETTLE |
🔴 "REBOILER"是保留名! 没有REBOILER TYPE声明时,DUTY被视为侧线加热器,"REBOILER"不能用作侧线加热器名。报错:The heater name REBOILER, may not be used as side-heater/cooler name(2026-06-12 UOP PDH验证) |
同理:DUTY 1,1,,CONDENSER 但缺少 CONDENSER TYPE=... |
必须添加 CONDENSER TYPE=PART/BUBB/TFIX |
"CONDENSER"也是保留名,必须与CONDENSER TYPE配对使用(2026-06-12验证) |
省略 UNIT OPERATIONS 段头 |
必须先写 UNIT OPERATIONS 再定义单元操作 |
最严重:直接导致所有单元操作关键字被误解析为流股数据 |
PETROLEUM(KG/M3,C) id,name,SG,TREF,NBP |
PETRO id,name,MW,SG,NBP 或用 CUTPOINTS TBPCUTS |
参数顺序和关键字都错误,导致 "Value not between 299 and 2E4" |
ASSAY ID=CRUDE01,TYPE=TBP,UNIT=C,NPOINT=11 |
在 STREAM DATA 段用 ASSAY=LV + TBP/API/LIGHT 子语句 |
COMPONENT DATA 段不支持此语法 |
TBP DATA=0,80/5,120/... 作为独立语句 |
TBP STREAM=sid,PRES(MMHG)=760,& DATA=...(子语句缩进) |
TBP DATA 不是独立关键字 |
API AVERAGE=35 |
API STREAM=sid, AVG=35(子语句) |
API AVERAGE 不是有效语法 |
PETRO UID=... + CUT POINT=... |
用 COLUMN + LDRAW 替代 |
PETRO 单元操作关键词模式不支持,仅 GUI 可用 |
PROP STREAM= |
PROPERTY STREAM= |
关键字不全 |
RATE(KG)= |
RATE(WT)= |
单位限定符错误 |
RATE(W)= |
RATE(WT)= |
单位限定符错误 |
HEATX UID= |
HX UID= |
关键字错误 |
OPER HOT DUTY= |
OPER DUTY= |
HOT前缀不支持 |
OPER COLD CTEMP= |
OPER CTEMP= |
COLD前缀不支持 |
PRODUCT STREAM |
PRODUCT M=STREAM |
缺相位限定符 |
EFFICIENCY=75 |
OPERATION PRES=2500, EFF=75 |
合并到OPERATION |
LIBID 1,A/2,B, BANK= |
分两行 LIBID 1,A, BANK= 和 LIBID 2,B, BANK= |
或使用 / 分隔符但需验证 |
H2O=1.0 独立行 |
COMPOSITION(M)=1,1 在PROPERTY行 |
组成不能独立一行 |
| 阀门出口无温度 | PROPERTY须包含TEMPERATURE= | PHASE=M的阀门出口必须指定温度估算值 |
流股无组成 PROPERTY STREAM=D, TEMP=50, PRES=100, PHASE=L |
添加 COMPOSITION(M)=..., NORMALIZE |
PRO/II 10.2 每条流股必须有组成,否则报 "INVALID COMPOSITIONS ≤ 0" |
COMPOSITION(M)=..., ESTIMATE |
COMPOSITION(M)=..., NORMALIZE |
PRO/II 10.2 不识别COMPOSITION后的ESTIMATE关键字,会报"Missing SLASH" |
CONDENSER TYPE=NONE |
省略 CONDENSER 行 | PRO/II 10.2 不识别 NONE 选项 |
PSPEC 1,4450, N,4500 |
PSPEC PTOP=4450, DPCOL=50 或 PRESSURE 1,4450/ N,4500 |
PSPEC 格式是 PTOP=+DPCOL=/DPTRAY=,非逐板值 |
ESTIMATE 1,T=-55/ N,T=-20 |
ESTIMATE MODEL=SIMPLE, TTEMP=-55, BTEMP=95 + PRODUCT ... value |
详见 ESTIMATE/TTEMP/PRODUCT |
TRAY 1, TEMP=-55 |
TEMPERATURE(C) 1,-55/ N,-20 |
逐板温度用 TEMPERATURE 关键字 |
| 循环流股用 ~~ESTIMATE~~ | 用 COMPOSITION(M)=..., NORMALIZE |
ESTIMATE 是 COLUMN 内部关键字,不能用于 STREAM DATA |
FEED S1, 5, S2, 10(多股进料用逗号) |
FEED S1, 5 / S2, 10 |
COLUMN多股进料必须用/分隔,逗号只用于同一进料的stream,tray,phase(2026-06-12验证) |
CONDENSER TYPE=PARTIAL |
CONDENSER TYPE=PART |
官方案例统一使用TYPE=PART(A2, A4, A8, C2, G8验证) |
DUTY 1,1,,CONDENSER |
DUTY 1,1,-2,CONDENSER |
DUTY语法:idno,segno,value,name — value可留空(由程序算)或指定 |
| ~~再沸器DUTY segno=TRAY+2~~ 或 ~~取决于冷凝器类型~~ | 再沸器DUTY segno=TRAY | 无论冷凝器类型(PART/BUBB/TFIX),再沸器segno=TRAY! 官方案例全面验证(2026-06-12修正) |
| 循环流股未在STREAM DATA定义 | 在STREAM DATA中添加初值估计 | LEAN_MEOH等循环流股必须提供初值,否则模拟无法启动 |
| 正向流股出现在STREAM DATA | 仅循环/外部进料在STREAM DATA | 由单元操作产出的正向流股(如HX产出)不应在STREAM DATA重复定义 |
PRODUCT OVHD(M)=S1, 1000 + 换行 + PRODUCT BTMS(M)=S2, 5000 |
PRODUCT OVHD(M)=S1, 1000, BTMS(M)=S2, 5000 |
OVHD和BTMS必须在同一PRODUCT行! 分两行报"Keyword 'BTMS' REQUIRED"和"Duplicate occurrence"(2026-06-12验证) |
| RXDATA放在THERMO和STREAM之间 | RXDATA放在STREAM DATA之后、UNIT OPERATIONS之前 | 🔴 ABORT! PRO/II严格检查节顺序:General→Component→Thermo→Regression→Stream→Reaction→Procedure→UnitOps→Recycle。RXDATA必须在STREAM DATA之后!(2026-06-12 UOP PDH验证) |
CONREACTOR缺少RXCALCULATION MODEL=STOIC |
添加RXCALCULATION MODEL=STOIC行 |
官方案例A5.INP的CONREACTOR均包含此行,不可省略(2026-06-12验证) |
| HX+UTILITY STEAM用于高温加热(>400°C) | 改用FLASH ISOTHERMAL | 蒸汽无法加热到590°C,PRO/II HX+UTILITY STEAM仅适用于<400°C场景。高温加热炉用FLASH UID=..., OPERATION ISOTHERMAL, TEMPERATURE=590, PRESSURE=...(2026-06-12验证) |
| HX只有一侧FEED且无UTILITY | 至少需要一侧FEED+UTILITY,或两侧FEED,或用FLASH代替 | PRO/II HX要求两侧都有定义(HOT+COLD或一侧+UTILITY),单侧无UTILITY不可行(2026-06-12验证) |
| COMPRESSOR使用MEFF参数 | 官方案例无MEFF | A1/A3G/A4G官方案例均无MEFF参数,使用OPERATION CALCULATION=GPSA/ASME, COPT=SING, PRES=..., EFF=...(2026-06-12验证) |
| 塔产品流量与物料衡算不匹配 | 产品流量应接近物料衡算值 | 🔴 最常见收敛失败原因! OVHD/BTMS流量与进料组成严重不匹配时,塔无法收敛。必须先估算进料组成,再设定产品流量(2026-06-12 UOP PDH验证) |
| C3分离塔塔板数不足 | 至少150层理论板 | C3H6/C3H8相对挥发度≈1.12,99%+纯度需Fenske Nmin≈93,实际需150+板(P1.INP官方案例:TRAY=149,2026-06-12验证) |
| 2产品塔用RRATIO+纯度SPEC比双纯度SPEC更稳定 | 优先用双纯度SPEC(两侧产品纯度) | P1.INP验证:双纯度SPEC(OVHD C3H8≤0.4wt% + BTMS C3H6≤4%LV)比RRATIO+纯度更容易收敛,不约束回流比让求解器自由调整(2026-06-12验证) |
| 3相分离器V01无水时指定W= | 无水进料时去掉W=产品 | FEED中无H2O时,FLASH不应指定W=WATER1,改为仅V=和L=(2026-06-12验证) |
COMP ID=H2 / ID=CO / ... 在COMPONENT DATA |
LIBID 1,H2/2,CO/..., BANK=CURRENT |
🔴 ABORT! PRO/II 10.2关键词模式不识别COMP ID=语法,必须用LIBID。报"Data in the input file is out of order"(2026-06-12 Shell气化验证) |
HEATER UID=E1 作为单元操作 |
FLASH UID=E1, OPERATION ISOTHERMAL, TEMPERATURE=..., DP=... |
🔴 ABORT! PRO/II 10.2关键词模式不支持HEATER关键字,加热/冷却操作统一用FLASH ISOTHERMAL替代(2026-06-12 Shell气化验证) |
流股名超过8字符(如SHIFT-STM=9字符) |
改为≤8字符名(如SHFTSTM) |
PRO/II流股名最长8字符,超长导致截断或解析错误(2026-06-12 Shell气化验证) |
DIMENSION METRIC 不完整 |
DIMENSION METRIC, MDUTY=ON, BASIS=MOLE, PRES=KPA, TEMP=C, DUTY=KW, & STDTEMP=0, STDPRES=101.325 |
缺少完整参数可能导致后续单位计算错误(2026-06-12 Shell气化验证) |
| 缺少General段关键字 | 添加 PRINT/TOLERANCE/SEQUENCE/CALCULATION |
官方案例均包含完整General段,省略可能导致兼容性问题(2026-06-12 Shell气化验证) |
FLASH块 TEMPERATURE / PRESSURE 独立行 |
OPERATION ISOTHERMAL, TEMPERATURE=40, PRESSURE=3700 |
FLASH的温度/压力必须在OPERATION行中指定,不能作为独立关键字行(2026-06-12 Shell气化验证) |
MIXER FEED S1/QWATER |
FEED S1, QWATER |
MIXER多股进料用逗号分隔,/是组分/塔板分隔符不是进料分隔符(2026-06-12 Shell气化验证) |
| COMPOSITION值为百分比但未NORMALIZE | 添加 , NORMALIZE |
COMPOSITION(M)=1,28/2,60/...(和=100)是百分比格式,必须加NORMALIZE让PRO/II归一化;若写分数格式则和必须=1.0(2026-06-12 Shell气化验证) |
TITLE NAME=... |
TITLE PROJECT=..., PROBLEM=... |
🔴 ABORT! TITLE语句中NAME=关键字不被PRO/II 10.2识别,报"Keyword 'NAME' is not recognized"后ABORT。TITLE仅支持PROJECT=、PROBLEM=、USER=三个关键字(2026-06-12 Shell气化v2验证) |
STREAM=S1, TEMPERATURE=... 缺少PROPERTY关键字 |
PROPERTY STREAM=S1, TEMPERATURE=..., PHASE=..., RATE(M)=..., COMPOSITION(M)=... |
🔴 错误! PRO/II 10.2流股定义必须以PROPERTY STREAM=开头,不能只用STREAM=(2026-06-12 Shell气化v2验证) |
| 流股缺少PHASE和RATE | 必须指定PHASE=V/L/M和RATE(M)=值或RATE(WT)=值 |
缺少PHASE导致PRO/II无法判断进料相态,缺少RATE导致流量默认为零。所有进料流股必须同时指定PHASE和RATE(2026-06-12 Shell气化v2验证) |
RXSET LOCAL=WGS01 |
RXSET ID=WGS01 |
🔴 错误! RXDATA中定义反应集必须用RXSET ID=,不能用RXSET LOCAL=。LOCAL仅用于COLUMN内部反应精馏(2026-06-12 Shell气化v2验证) |
HORX -41100 缺少关键字 |
HORX HEAT=-41100, REFCOMP=2, REFTEMP=25 |
🔴 错误! HORX必须使用HEAT=关键字指定反应热值,REFCOMP=指定参考组分,REFTEMP=指定参考温度。裸数字不被识别(2026-06-12 Shell气化v2验证) |
| CONREACTOR内联RXSET定义 | 使用RXCALCULATION MODEL=STOIC+RXSTOIC RXSET=外部集名+REACTION+BASE COMPONENT=+CONVERSION 值 |
🔴 错误! CONREACTOR内部不能直接写RXSET/REACTION/STOICHIOMETRY。反应定义必须在RXDATA段,CONREACTOR通过RXSTOIC RXSET=引用名调用(2026-06-12 Shell气化v2验证,参考A5.INP) |
| 煤气化模型缺少O2组分 | 必须在COMPONENT DATA中添加O2组分,并在S2流股中正确引用 | 🔴 模型错误! Shell/BGE等气化炉进料含O2,若不定义O2组分则无法正确模拟气化反应。O2组分编号必须与S2流股COMPOSITION中的引用一致(2026-06-12 Shell气化v2验证) |
| GIBBS ELEMENTS REACTANTS遗漏O2 | ELEMENTS REACTANTS=必须包含所有参与平衡的活性组分(含O2),排除惰性组分(AR、ASH) |
⚠️ 模型精度! 若O2不在ELEMENTS REACTANTS列表中,GIBBS反应器不会让O2参与平衡计算,导致气化反应无法进行(2026-06-12 Shell气化v2验证) |
| ASH不在CURRENT库中 | 使用NONLIBRARY 10, ASH, 60, 2.4, 3000定义,或简化模型移除ASH |
⚠️ 运行错误! ASH不是PRO/II标准库组分,LIBID 10,ASH, BANK=CURRENT会导致"Component not found in bank"错误(2026-06-12 Shell气化v2验证) |
TITLE/PROBLEM值中含/字符 |
去掉/,如2000T/D→2000TPD |
🔴 ABORT! PRO/II将/解析为字段分隔符,2000T/D被截断为2000T,后面的D变成无效字符,报"Misplaced or invalid character"后ABORT,且TITLE语句整体不被识别(2026-06-12 Shell气化v2验证) |
| NAME值超过8字符 | 缩短NAME,如INTERSTAGE→INTSTG |
NAME关键字值虽然某些版本允许超长,但为安全起见应≤8字符,避免截断和不可预见问题(2026-06-12 Shell气化v2验证) |
TOLERANCE FLASH=..., COLUMN=... |
TOLERANCE DEFAULT=V94 |
🔴 ERROR! TOLERANCE不支持FLASH=和COLUMN=作为关键字参数,报"Keyword 'COLUMN' is not recognized"。合法关键字:DEFAULT, STREAM, COMPONENT, EQUILIBRIUM, KVALUE, ENTHALPY, DUTY, MISCELLANEOUS, MBAL, UAMBAL(2026-06-12 Shell气化v3验证,117个官方案例确认) |
| COMPOSITION(WT)用分数(总和=1.0而非100) | WT必须用百分比(0-100),总和=100.0;M必须用分数(0-1),总和=1.0 | 🔴 "COMPOSITION DOES NOT EQUAL RATE"! WT=百分比,M=分数。PRO/II 10.2不支持COMPOSITION行中的NORMALIZE关键字(2026-06-11 CDU验证) |
SIDE关键字(不在PRODUCT语句中) |
PRODUCT SIDE(L)=KERO,12,150 或 LDRAW(M)=KERO,14,150 |
🔴 "Keyword 'SIDE' is not recognized"! 侧线产品必须在PRODUCT语句中使用SIDE(L)/SIDE(V)子语句,或用LDRAW子语句(2026-06-19 VDU验证) |
| LDRAW+SUPERSEDE=ON+SPEC冲突 | LDRAW固定抽出率,OVHD/BTMS用SPEC | SUPERSEDE=ON只对OVHD/BTMS有效,不能对LDRAW使用SPEC约束。需要额外VARY(DUTY SIDEHC)来约束侧线流量(2026-06-19 VDU验证) |
| VDU FLASH压力单位错误 | PRESSURE(KPA)=10(不是PRESSURE=10→10 KG/CM2≈10bar) |
DIMENSION METRIC下PRESSURE=20被解释为20 KG/CM2≈20bar,不是20 kPa。VDU真空条件必须用PRESSURE(KPA)=10明确指定单位(2026-06-19 VDU验证) |
| 塔底温度初值太高(350°C+) | 降低温度初值到200-280°C | "Tray LIQUID has DRIED UP" — 塔底温度太高导致液相完全蒸发。VDU进料温度200°C左右,温度剖面平缓(2026-06-19 VDU验证) |
| NC40不在SIMSCI库中 | NC30(最重可用正构烷烃)或NONLIBRARY | SIMSCI库中NC4-NC30可用,NC40不在库中。如需极重组分用NONLIBRARY或PETRO定义(2026-06-19验证) |
| SMR反应器绝热出口-4.56°C | 用OPERATION ISOTHERMAL, TEMPERATURE=800 |
🔴 物理不合理! SMR强吸热(ΔH=+206kJ/mol),绝热假设导致出口温度极低。实际SMR在800°C炉膛加热操作,必须用ISOTHERMAL而非ADIABATIC(2026-06-19 SMR验证) |
| SPLITTER使用FRACTION关键字 | 用OPERATION OPTION=FILL+SPEC STREAM=...,RATE(...),VALUE=... |
🔴 FRACTION不是有效关键字! SPLITTER不支持FRACTION,报"Statement 'FRACTION' is not recognized"。必须用OPERATION OPTION=FILL + SPEC指定产品流量(2026-06-19 SMR验证) |
| SPLITTER缺少OPTION | 必须添加OPERATION OPTION=FILL |
🔴 Missing OPTION! SPLITTER必须指定OPERATION OPTION(FILL等),否则报"Missing OPTION"错误(2026-06-19 SMR验证) |
| CO2用FLASH脱除无效 | 用COLUMN(吸收塔)或添加水洗流股 | ⚠️ 模型精度! CO2在3bar/38°C不凝析,FLASH无法分离CO2。需MDEA吸收塔COLUMN或水洗吸收(2026-06-19 SMR验证) |
| SPLITTER不能组分分离 | SPLITTER按总流量分配,不改善纯度 | ⚠️ PSA近似! SPLITTER只能按总流量分配产品,不支持组分选择性分离。PSA需用FLASH串联或专门组分分离单元近似(2026-06-19 SMR验证) |
| PROBLEM值含空格导致截断WARNING | 简化PROBLEM值,避免空格和过长的描述 | PRO/II对PROBLEM=值的显示长度有限制(约14-16字符),过长的值会触发"String is truncated to '...' WARNING。虽然WARNING不致命,但建议PROBLEM值简洁,含空格时更易被截断(2026-06-12 Shell气化v3验证) |
| 单元间END语句导致只求解第一个单元 | 移除所有单元之间的END语句,只在文件最末尾保留一个END |
🔴 严重错误! PRO/II中END终止整个UNIT OPERATIONS段,不是终止单个单元。在单元之间放END会导致PROCALC只计算第一个单元,后续所有单元被忽略。CALCULATION SEQUENCE只列出1个单元。所有单元必须在同一个UNIT OPERATIONS段内连续定义,段末仅一个END(2026-06-20 氨合成v3/Claus v6/甲醇v2验证) |
| EQUREACTOR报"Equilibrium Data MISSING" | 改用CONREACTOR+CONVERSION关键字 |
🔴 错误! EQUREACTOR需要EQUILIBRIUM平衡常数数据,不支持直接指定CONVERSION。需要指定转化率的反应器必须用CONREACTOR(转化率反应器),语法:OPERATION ADIABATIC/ISOTHERMAL+RXCALCULATION MODEL=STOIC+RXSTOIC RXSET=集名+REACTION Rn+BASE COMPONENT=组号+CONVERSION 值(2026-06-20 氨合成v2验证) |
| HORX单位混淆(kJ/mol vs kJ/kg-mol) | METRIC+DUTY=KW下HORX单位为kJ/kg-mol,需将文献值的kJ/mol乘以1000 | 🔴 严重错误! PRO/II在DIMENSION METRIC, DUTY=KW下,HORX HEAT的单位是kJ/kg-mol(即kJ/kmol),不是kJ/mol。例如甲醇合成反应热ΔH=-90.6 kJ/mol,HORX应写-90600(不是-90.6)。差1000倍会导致反应器能量平衡严重失真、不收敛(2026-06-20 甲醇v2验证) |
| 元素硫组分名称S2/S8 NOT FOUND | 使用SULFUR(SIMSCI库中元素硫的名称) |
🔴 错误! SIMSCI库中不存在S2或S8组分名称。元素硫的正确名称为"SULFUR",通过LIBID 7,SULFUR, BANK=CURRENT定义。若模型含硫磺,还需添加WATER DECANT=ON, PROPERTY=IF97, TRANSPORT=SIMSCI到THERMODYNAMIC DATA段(2026-06-20 Claus v6验证) |
| NORMALIZE关键字被解析为组成数据 | 移除, NORMALIZE(当组成已恰好为1.0时),或用续行符&拆分COMPOSITION语句 |
🔴 错误! 在COMPOSITION语句末尾的, NORMALIZE可能被PRO/II解析为组成数据的一部分,导致"The sum of COMPOSITION DOES NOT EQUAL the specified RATE"错误。如果组成已归一化(总和=1.0),应直接移除NORMALIZE。用&续行符拆分长COMPOSITION语句可避免此问题(2026-06-20 Claus v1验证) |
| Claus反应器NEGATIVE component RATES | R1(燃烧)以O2为base component(100%转化),R2(Claus)以SO2为base component(80%转化) | 🔴 收敛失败! 若以H2S为base设定60%转化率,所需O2可能超过进料中的O2量,导致NEGATIVE RATES。正确方案:R1(2H2S+3O2→2SO2+2H2O)以O2为base,CONVERSION=1.0(O2完全消耗);R2(2H2S+SO2→3S+2H2O)以SO2为base,CONVERSION=0.80。这样进料O2量自动决定R1的H2S消耗量(2026-06-20 Claus v5→v6验证) |
| ADIABATIC反应器比ISOTHERMAL难收敛 | 先用ISOTHERMAL验证模型正确性,再切换为ADIABATIC | ⚠️ 收敛性! ADIABATIC模式需要同时求解物料平衡和能量平衡,收敛难度显著高于ISOTHERMAL。当反应器不收敛时,先切换为OPERATION ISOTHERMAL, TEMPERATURE=出料温度验证化学计量和转化率是否正确。确认后再切换为ADIABATIC(2026-06-20 甲醇v2验证) |
| 闭环循环中H2O/MeOH等溶剂累积 | 添加SPLITTER排放分流器(PURGE),用SPEC STREAM=WPURGE, RATE(M), TOTAL, WET, VALUE=流量 |
⚠️ 循环收敛! 闭环循环中溶剂(H2O/MeOH)会不断累积导致循环不收敛。在溶剂返回路径上添加SPLITTER,将一部分溶剂作为WPURGE排放。Rectisol v4_spl2模型用此方法48次迭代收敛,全局偏差-0.02 mol%(2026-06-20 Rectisol v4_spl2验证) |
| CONREACTOR同时使用PRESSURE和DP | 只用一个:PRESSURE=出料压力 或 DP=压降,不能同时出现 |
🔴 错误! "No more than 1 of keywords 'PRESSURE' AND 'DP' ALLOWED on 'OPERATION' statement"。CONREACTOR的OPERATION行不能同时指定PRESSURE和DP。建议用PRESSURE=出料压力(不含DP),更直观(2026-06-20 乙烯裂解/FT/重整验证) |
| SIMSCI库中烃类组分名 | 使用化学式(C6H14, C6H12, C7H14, C6H6, C7H8),不是常见名(NC6, CYCLOHEXANE, BENZENE等) | 🔴 NOT FOUND! SIMSCI库中环烷烃和芳烃不接受常见英文名(NC6/CYCLOHEXANE/METHYLCYCLOHEXANE/BENZENE/TOLUENE均NOT FOUND)。必须使用化学式:C6H14(n-己烷)、C6H12(环己烷)、C7H14(甲基环己烷)、C6H6(苯)、C7H8(甲苯)。短链烃H2/CH4/C2H4/C2H6/C3H6/C3H8等使用化学式即可(2026-06-20 催化重整验证) |
| METHYLCYCLOHEXANE名称超过16字符被截断 | 使用C7H14(5字符),避免截断 | ⚠️ WARNING! 组件ID最长15-16字符,METHYLCYCLOHEXANE(16字符)被截断为METHYLCYCLOHEXAN,导致LIBID行解析异常,可能级联影响其他组件查找。所有组分名应≤15字符(2026-06-20 催化重整验证) |
| C4H8缺少传输性质数据 | 用C3H6(丙烯)替代C4H8(丁烯) | 🔴 10 ERRORS! C4H8在SIMSCI库中缺少Vapor Viscosity/Surface Tension/Thermal Conductivity数据,即使移除WATER DECANT=ON, TRANSPORT=SIMSCI仍报错(DEFAULT也启用传输计算)。烷基化模型改用C3H6+C4H10→C7H16(2026-06-20 烷基化验证) |
| CH3OH不被SIMSCI识别 | 用"MEOH"而非"CH3OH" | 🔴 NOT FOUND! CH3OH不在SIMSCI组分库中。正确名称为"MEOH"(甲醇)。C2H6O(乙醇/DME)可被识别但SIMSCI water solubility method不支持,会使用估计参数(MESSAGE级别,不影响计算)(2026-06-20 DME合成验证) |
| CONREACTOR多反应负流率 | 确保base component总量不超过进料,反应按顺序消耗 | ⚠️ WARNING! 多个反应使用同一base component时,各反应转化率基于原始进料量计算。若总转化率超过100%或某反应物(O2等)不足,PROCALC报"NEGATIVE component RATES"。需确保各反应物消耗量≤进料量(2026-06-20 环氧乙烷验证) |
| 化学计量数必须精确平衡 | 仔细验证C/H/O原子守恒,允许误差<0.1% | 🔴 ERROR! STOICHIOMETRY percent error超过0.1%即报错。常见错误:加氢反应H2系数错误(如C20H42+H2→2C8H18+C3H8+CH4左边44H右边48H,应改为+3H2)。建议写出完整反应方程式后逐原子验证(2026-06-20 延迟焦化/加氢裂化验证) |
| LIBID行超过80字符被截断 | 用续行符&拆分长LIBID行 |
🔴 ERROR! PRO/II关键词文件每行有约80字符限制。LIBID行含8+组分时(如LIBID 1,C3H8/2,C5H12/.../8,C16H34, BANK=CURRENT)超过80字符会被静默截断,导致BANK=SI而非BANK=SIMSCI,PROCESS,进而所有组件NOT FOUND。用&续行拆分:LIBID 1,C3H8/2,C5H12/3,C6H14/4,C7H16/5,C8H18/ & 换行 6,C10H22/7,C12H26/8,C16H34, BANK=CURRENT(2026-06-20 CDU/VDU/ShellGas验证) |
| 反应物不足导致NEGATIVE RATES | 确保base component选择量小的反应物 | 🔴 ERROR! 当以量大的组分(如O2)为base component设高转化率时,可能消耗超过量小的反应物(如CH4)导致负流率。应以量小的组分(如CH4)为base component。例如Shell气化:CH4=90 kg-mol/hr, O2=1455 kg-mol/hr,以O2为base 95%转化需要2764 kg-mol/hr CH4远超进料(2026-06-20 Shell气化验证) |
塔收敛策略(2026-06-12 P1/G2官方案例验证)
> 核心来源:P1.INP(C3分离塔149板)、G2.INP(脱乙烷塔20板)、C3.INP(MEK-水-甲苯21板)
收敛失败根因诊断
步骤1:检查物料衡算 — 最常见的收敛失败原因
产品流量(OVHD/BTMS)必须与进料组成一致!做法:
1. 从上游单元操作追踪进料组成和流量
2. 估算轻/重关键组分在OVHD和BTMS中的分配
3. 设定与物料衡算一致的产品流量初始值
示例(UOP PDH模型):
进料HCUNSAT ≈ 790 kmol/h(C3H8≈503, C3H6≈272, C2-≈8, C4+≈9)
错误:OVHD=200(C2-只有8 kmol/h,不可能有200 kmol/h OVHD!)
修正:OVHD=10, BTMS=780
步骤2:检查塔板数是否足够
| 分离类型 | 相对挥发度α | 最少理论板Nmin | 推荐实际板数 | 官方案例 |
|---|---|---|---|---|
| C2-/C3+(脱乙烷) | 3-5 | 5-8 | 20-30 | G2: TRAY=20 |
| C3H6/C3H8(碳三分离) | 1.10-1.15 | 90-100 | 140-200 | P1: TRAY=149 |
| C3/C4(脱丙烷) | 2-3 | 10-15 | 30-50 | R2A: TRAY=66 |
| 窄沸程分离 | <1.2 | >50 | >100 | C3: TRAY=21 + CHEMDIST |
步骤3:检查SPEC类型
| SPEC策略 | 适用场景 | 官方案例 |
|---|---|---|
| 双纯度SPEC(两侧产品纯度) | 首选! 最稳健,让求解器自由调整RRATIO和产品分配 | P1: BTMS C3H6≤4% + OVHD C3H8≤0.4wt% |
| RRATIO + 纯度SPEC | 次选,约束回流比可能过紧 | A5, C5 |
| RRATIO + 产品流量SPEC | 简单分离可用,产品流量需准确 | G2: RRATIO=0.4 + 比率SPEC |
| 双产品流量SPEC | 不推荐,过度约束 | — |
P1官方案例C3分离塔完整语法(黄金参考)
COLUMN UID=C3SP
PARAMETER TRAY=149,IO=40
FEED FD,110,TNOTSEPARATE, NOTSEPARATE
PRODUCT OVHD(M)=TOPS,542, BTMS(M)=BOTS, SUPERSEDE=ON
CONDENSER TYPE=BUBB
DUTY 1,1,,CONDENSER
DUTY 2,149,,2
PRINT PROPTABLE=PART
ESTIMATE MODEL=CONVENTIONAL, RRATIO=15
PRESSURE 1,220/2,225/149,250
SPEC ID=COL1SPEC1, STREAM=BOTS,FRACTION(LV), COMP=2,WET, VALUE=0.04
SPEC ID=COL1SPEC2, STREAM=TOPS,FRACTION(WT), COMP=3,WET, VALUE=0.004
VARY DNAME=CONDENSER
VARY DNAME=2
关键学习:
- IO=40 足够收敛(不是500!)
- 无DAMP — 默认值即可
- 无温度初值 — 仅指定RRATIO
- FEED在tray 110/149(73.6%位置)— 丙烯富进料靠下进料
- 用PRESSURE语句代替PSPEC — 指定3个点的压力分布
- 双纯度SPEC — BTMS中丙烯≤4%LV + OVHD中丙烷≤0.4wt%
- BUBB冷凝器 — 全凝器,OVHD为液相产品
DAMP/DAMPING参数使用规则
| 参数 | 官方案例使用 | 建议 |
|---|---|---|
| 不指定DAMP | P1, G2等大多数案例 | 默认首选 |
| DAMP=0.3-0.5 | R6A(0.3), R6(0.5) | 收敛困难时使用 |
| DAMPING=0.7-0.9 | C3(0.8), G8(0.4-0.7), R3R-R5R(0.7-0.8), R4R(0.9) | CHEMDIST/复杂塔 |
| IO值 | P1=40, G2=default, R6=25 | 简单塔40-50足够,复杂塔可增大 |
DAMP vs DAMPING:
- DAMP = Inside-Out算法阻尼因子(0-1,小值=强阻尼=更稳定但慢)
- DAMPING = 全局阻尼因子(0-1,接近1=弱阻尼)
- 官方案例中:大多数塔不设DAMP;复杂塔(CHEMDIST、多侧线)用DAMPING
进料位置选择
| 进料特征 | 进料位置 | 原因 |
|---|---|---|
| 轻组分富进料(LK>50%) | 偏下部(60-75%位置) | 需要更多精馏段提纯轻组分 |
| 重组分富进料(HK>50%) | 偏上部(25-40%位置) | 需要更多提馏段脱除轻组分 |
| 接近共沸组成 | 中部(45-55%位置) | 两侧都需要足够板数 |
P1验证:C3H6富进料(73% C3H6)→ feed tray 110/149 = 73.6%位置
附录:Fortran语法基础(PRO/II Keyword底层参考)
PRO/II 10.2 的keyword解析器用Fortran编写,理解Fortran固定格式有助于理解PRO/II INP文件的解析规则。
Fortran 77 固定格式(PRO/II INP文件解析基础)
| 列 | 区域 | 说明 |
|---|---|---|
| 1 | 注释区 | C/c/* → 整行注释;空格=语句行 |
| 2-5 | 标号区 | 语句标号(1-5位数字),可省略 |
| 6 | 续行区 | 非0非空格字符 → 续行(最多19个续行) |
| 7-72 | 语句区 | 语句内容 |
| 73-80 | 卡片序号 | 被忽略 |
关键规则:
- 注释行:第1列=C/c/*(Fortran77);!(Fortran90+,PRO/II 10.2不支持!)
- 续行:第6列任意非0非空格字符(常用1、2...或&)
- 字符串中的!不当作注释(但PRO/II不支持!)
- 每行最长72列(超长会被截断)
PRO/II INP文件与Fortran fixed-format的对应关系
| PRO/II规则 | Fortran固定格式对应 |
|---|---|
第1列* → 注释(SKILL.md中错误声明) |
Fortran77标准:第1列C/c/*=注释 |
!不支持(2026-06-12验证) |
!是Fortran90+语法,PRO/II 10.2基于Fortran77 |
| 最大132字符 | Fortran90自由格式132列;Fortran77固定格式72列 |
&续行(SKILL.md中声明) |
Fortran90自由格式用&;Fortran77用第6列字符 |
⚠️ 重要发现:PRO/II 10.2 INP文件格式混合了Fortran77和Fortran90特征:
- 不支持!注释 → 遵循Fortran77规则
- 但支持132字符行长 → 可能是Fortran90特征或PRO/II扩展
- 建议使用Fortran77固定格式规则编写INP文件(最安全) |
Fortran关键语法(理解PRO/II内部实现)
C Fortran77注释行(第1列C)
PROGRAM MAIN
IMPLICIT NONE
INTEGER :: I
REAL :: X
X = 1.0
IF (X .GT. 0) THEN
PRINT *, 'Positive'
END IF
END PROGRAM MAIN
PRO/II Keyword文件可能的Fortran特征:
- ENTRY语句:多个入口点(解释为何PRO/II keyword可以多种调用方式)
- COMMON块:全局变量共享(解释PRO/II中某些参数全局有效)
- BLOCK DATA:数据初始化(解释PRO/II的默认物性参数来源)
- INCLUDE:文件包含(解释PRO/II如何加载不同物性方法)
对PRO/II建模的实用意义
- INP文件注释:使用
*在第1列(Fortran77风格),而非! - 长行处理:分行时用第6列字符(Fortran77续行),而非
& - 字符串:Fortran77中字符串用单引号
'...'或双引号"..." - 格式:遵循Fortran77固定格式(72列限制)最安全
> 注意:2026-06-12 UOP PDH验证发现PRO/II 10.2不支持任何注释行(*/C/!均报错)。
> 官方案例(60+个)均无注释行。
> 结论:INP文件最好完全不使用注释行。
官方案例验证的完整语法模式(2026-06-12 Applib全面学习)
> 来源: E:\Program Files\SIMSCI\PROII102\User\Applib\ 下全部60+官方案例INP文件
> 涵盖: A1-A8, B1-B2, C1-C8, G1-G11, P1-P7, R1-R8, S1-S2, T1, U1-U2, FCEL1, Casebook系列
FEED分离选项详解
所有官方案例的FEED格式:
FEED stream, tray, TNOTSEPARATE, NOTSEPARATE ! 单股进料(最常见)
FEED stream1, tray1, TNOTSEPARATE / stream2, tray2, TNOTSEPARATE, NOTSEPARATE ! 两股进料
| 选项 | 含义 | 使用场景 |
|---|---|---|
TNOTSEPARATE |
热进料的汽液相不分离,作为一个混合相进料 | 最常用,几乎所有进料都加此选项 |
NOTSEPARATE |
全局不分离标志(最后一个进料后) | 与TNOTSEPARATE配合使用 |
TSEPARATE |
热进料的汽液相分离后分别进料 | 两相进料、闪蒸进料 |
SEPARATE |
全局分离标志 | 炼油塔、复杂进料 |
复杂进料示例(P3.INP — 乙烯急冷塔,8股进料):
FEED 1,14,TSEPARATE/S2,16,TSEPARATE/2,4,TNOTSEPARATE/&
6,10,TNOTSEPARATE/W1,1,TNOTSEPARATE/W2,2,TNOTSEPARATE/&
W3,3,TNOTSEPARATE/W4,4,TNOTSEPARATE, SEPARATE
SIDESTRIPPER 语法
> 官方案例: R3R.INP, R4R.INP — 原油蒸馏侧线汽提塔
SIDESTRIPPER UID=uid, {NAME=text}
PARAMETER TRAY=n, {IO}
FEED draw_stream, 1, TNOTSEPARATE / strip_steam, 2, TNOTSEPARATE, NOTSEPARATE
PRODUCT OVHD(M)=overhead_sid, BTMS(M)=bottoms_sid, rate, SUPERSEDE=ON
PSPEC PTOP=val
ESTIMATE MODEL=SIMPLE
{SPEC ID=id, STREAM=sid, D86(95,F), VALUE=val}
{VARY FEED=sid or DRAW=sid}
R3R.INP示例(煤油汽提塔):
SIDESTRIPPER UID=SS01, NAME=KERO STRIP
PARAMETER TRAY=2,IO
FEED 15,1,TNOTSEPARATE/5,2,TNOTSEPARATE, NOTSEPARATE
PRODUCT OVHD(M)=14, BTMS(M)=10,1047, SUPERSEDE=ON
PSPEC PTOP=11.8
ESTIMATE MODEL=SIMPLE
SPEC ID=SCOL1SPEC1, STREAM=10, D86(95,F), VALUE=520
VARY FEED=15
关键:
- SIDESTRIPPER的FEED第一个是从主塔LDRAW抽出的流股,第二个是汽提蒸汽
- VARY可以用FEED=sid调节进料流量,或DRAW=sid调节侧线抽出
PA (Pump-Around) 与 DUTY 关联
> 官方案例: R3R.INP, R5R.INP, G2.INP
PA必须与DUTY关联,DUTY的segno就是PA返回的塔板号:
DUTY 1,1,,CONDENSER ! 冷凝器
DUTY 2,18,,2 ! 再沸器 (TRAY=18)
DUTY 3,13,-39.9991,3 ! PA1 返回塔板13
DUTY 4,9,-49.9994,4 ! PA2 返回塔板9
DUTY 5,2,-49.9994,5 ! PA3 返回塔板2
PA NAME=1, FROM=14, TO=13, PHASE=L, DNAME=3, TEMP=450
PA NAME=2, FROM=10, TO=9, PHASE=L, DNAME=4, TEMP=310
PA NAME=3, FROM=3, TO=2, PHASE=L, DNAME=5, TEMP=175
PA关键字段:
- FROM: 抽取塔板号
- TO: 返回塔板号(与DUTY segno相同)
- PHASE: L(液相) 或 V(气相)
- DNAME: 关联的DUTY idno编号
- TEMP: 返回温度
- RATE(LV): PA流量(可选,与DUTY value二选一)
G2.INP单PA示例:
PA NAME=1, FROM=20, TO=20, PHASE=L, DNAME=2, LFRAC(M)=0.65
VARY引用DUTY的方式
⚠️ 关键规则:VARY DNAME= 引用DUTY语句中的name字符串,不是idno序号!
VARY DNAME=CONDENSER ! 按名称引用(冷凝器)— 最常用
VARY DNAME=REBOILER ! 按名称引用(再沸器)— 最常用
VARY DNAME=SIDEHC2 ! 按名称引用(再沸器/中间加热)
VARY DNAME=2 ! 引用name="2"的DUTY(数字字符串,可读性差)
VARY DNAME=REBOILER,CONDENSER ! 一行引用多个DUTY(B2.inp验证)
VARY DRAW=stream ! 调节侧线抽出流量
VARY FEED=stream ! 调节进料流量
VARY FTRAY(tray) ! 调节进料位置
DUTY name 与 VARY DNAME 对应关系(2026-06-12 官方50+案例验证):
| DUTY语句 | name值 | 正确VARY DNAME | 错误VARY DNAME |
|---|---|---|---|
DUTY 1,1,,CONDENSER |
CONDENSER | VARY DNAME=CONDENSER |
~~VARY DNAME=1~~ |
DUTY 2,25,,REBOILER |
REBOILER | VARY DNAME=REBOILER |
~~VARY DNAME=2~~ |
DUTY 2,10,,SIDEHC2 |
SIDEHC2 | VARY DNAME=SIDEHC2 |
~~VARY DNAME=2~~ |
DUTY 2,10,,2 |
2 | VARY DNAME=2 |
— |
SPEC语法(官方案例验证的完整格式)
! 回流比规格
SPEC ID=S1, RRATIO, VALUE=2.5
! 产品纯度规格
SPEC ID=S2, STREAM=sid, FRACTION(LV), COMP=2, WET, VALUE=0.04
SPEC ID=S3, STREAM=sid, FRACTION, COMP=5, WET, VALUE=0.995
! 流量比值规格(DIVIDE用法)
SPEC ID=S4, STREAM=str1, RATE(KGM/H), COMP=1, WET, DIVIDE, STREAM=str2, RATE(KGM/H), COMP=1, WET, VALUE=0.999
! 温度规格
SPEC ID=S5, TRAY=1, TEMPERATURE(F), VALUE=120
! 炼油规格(D86/RVP/EP)
SPEC ID=S6, STREAM=sid, D86(95,F), VALUE=520
SPEC ID=S7, STREAM=sid, D86(EP,F), VALUE=450
SPEC ID=S8, STREAM=sid, RVP, VALUE=12
! 蒸汽比规格
SPEC ID=S9, TRAY=12, RATE(LBM/H), PHASE=V, WET, DIVIDE, STREAM=sid, RATE(LBM/H), TOTAL, WET, VALUE=0.5
ESTIMATE模式选择指南
| MODEL | 适用场景 | 官方案例 |
|---|---|---|
CONVENTIONAL |
常规精馏/吸收塔 | A2, A4, A5, C1-C5, C8, G2, G7G |
SIMPLE |
汽提塔/SIDESTRIPPER | R3R(SS01-SS03), R4R |
CHEM |
化学蒸馏/反应精馏 | A7, B2, C3, C6 |
REFINE |
炼油塔 | R3R(COL1), R5R |
ESTIMATE参数选项:
ESTIMATE MODEL=CONVENTIONAL, RRATIO=3.0 ! 回流比
ESTIMATE MODEL=CONVENTIONAL, REFLUX(L)=2500 ! 回流量
ESTIMATE MODEL=CONVENTIONAL, CTEMP=80, BTEMP=120, RRATIO=0.5 ! 冷凝器/塔底温度+回流比
ESTIMATE MODEL=SIMPLE, TTEMP=70, BTEMP=95 ! 顶板/底板温度
ESTIMATE MODEL=CHEM, RRATIO(L)=4, CTEMP=160, BTEMP=200 ! 化学蒸馏
ESTIMATE MODEL=CONVENTIONAL ! 吸收塔(无参数)
DIMENSION 变体(官方案例中使用的所有格式)
DIMENSION ENGLISH, MDUTY=ON, BASIS=MOLE ! A系列, C系列(最常见)
DIMENSION ENGLISH, MDUTY=ON, BASIS=MOLE, PRES=PSIG ! P1
DIMENSION METRIC, MDUTY=ON, BASIS=MOLE ! G1-G9, Rectisol
DIMENSION METRIC, MDUTY=ON, BASIS=MOLE, PRES=TORR ! A2
DIMENSION SI, MDUTY=ON, BASIS=MOLE, TEMP=C ! A7
DIMENSION METRIC, MDUTY=ON, BASIS=MOLE, TEMP=K, PRES=ATM ! A8
DIMENSION ENGLISH, MDUTY=ON, BASIS=MOLE, LIQVOL=BBL, XDENSITY=API ! R系列炼油
METHOD子系统选项
! 标准用法
METHOD SYSTEM=SRK, SET=SET01, DEFAULT
! 带子系统
METHOD KVAL(VLE)=SRK, KVAL(LLE)=NRTL, ENTHALPY(L)=LK, SET=SET02, DEFAULT
! 子系统独立设置
KVAL(VLE) POYNTING=OFF, FILL=IDEAL, BANK=NONE
KVAL(VLE) FILL=UNIF ! 用UNIFAC填充缺失BIP
! 直接输入交互参数
NRTL 1,10,0,316.145,0,602.96,0.5341 ! i,j,k,a_ij,k',a_ji,alpha
SRK 1,3,-0.00694,0,0,0 ! i,j,kij,0,0,0
VANLAAR 1,2,-1.16,-0.463 ! i,j,A12,A21
! 水性质
WATER PROPERTY=SATURATED ! 大部分G系列
WATER PROPERTY=IF97, TRANSPORT=IF97 ! A4, A5, A8
! 炼油专用传输性质
METHOD SYSTEM=GS, SET=GS01, DEFAULT
TRANSPORT=PETR
VISCOSITY(L)=API
VISCOSITY(V)=PETR
CONDUCTIVITY(L)=PETR
CONDUCTIVITY(V)=PETR
SURFTENSION=PETR
! AMINE系统
METHOD SYSTEM=AMIN, SET=AMINE, DEFAULT ! G8 胺吸收
热力学方法选择指南
| 方法 | 适用场景 | 官方案例 |
|---|---|---|
PR |
通用VLE,烃类分离 | P1, P3, T1, A4, R8 |
SRK |
酸性气体(CO2/H2S) | G1-G5, G7G, R7 |
SRKM |
SRK-Mathias-Copeman,极性体系 | A6A, A6B, C3, C6 |
GS |
炼油/石油蒸馏 | R1-R5, P2G |
BK10 |
炼油TBP蒸馏 | R1, R4R, U1 |
NRTL |
极性/电解质体系 | C1-C6, C8, A2, A7, B1 |
AMIN |
胺吸收脱硫 | G8 |
PSRK |
预测型SRK(UNIFAC) | Rectisol |
UNIF |
极性体系(无BIP时) | P6 |
IDEAL |
理想体系 | S1 |
STREAM DATA高级选项
REFSTREAM(参考流股):
PROPERTY STREAM=7, TEMPERATURE=295, PRESSURE=474, REFSTREAM=5 ! 复用流股5的组成
PROPERTY STREAM=1R, REFSTREAM=1 ! 完全复制流股1
NAME(流股别名):
NAME 1,FEED/2,OVERHEAD/3,BOTTOMS/CRUDE,CRUDE FEED/NAPH,NAPHTHA
SOLID(固体流股):
SOLID STREAM=CELLULOSE, COMPOSITION(WT,LB/H)=6,20000
LFRACTION(液相分率):
PROPERTY STREAM=S2, PRESSURE=700, PHASE=M, LFRACTION=0.7, RATE(M)=100, COMPOSITION(M)=...
ASSAY子语句完整语法(官方案例验证)
PROPERTY STREAM=CRUDE, TEMPERATURE=450, PRESSURE=14, PHASE=M, &
RATE(LV)=4999.99, ASSAY=LV
TBP STREAM=CRUDE, DATA=3,97/5,149/10,208/20,330/.../100,1600, &
TEMP=F, PRES(MMHG)=760
D86 STREAM=CRUDE, DATA=0,175/5,177/10,179/.../100,537, &
TEMP=F, PRES(MMHG)=759.998
D2887 STREAM=CRUDE, DATA=5.74,135/19.55,210/.../87.94,990, TEMP=F
API STREAM=CRUDE, AVERAGE=45.37, &
DATA=8.33,80.01/16.89,62.9/34.8,50.6/...
LIGHTEND STREAM=CRUDE, COMPOSITION(M)=1,0.1/2,1.4/3,0.65/4,3.15/5,5.1, &
PERCENT(WT)=10.4, NORMALIZE
MW STREAM=CRUDE, AVG=162.9, &
DATA=18.92,99.5/33.4,135/48.4,184.7/69.8,334.8/100,789
SPGR STREAM=CRUDE, AVERAGE=0.9833
| 子语句 | 含义 | 关键参数 |
|---|---|---|
TBP |
真沸点蒸馏曲线 | DATA=lv%,temp/..., TEMP=F/C, PRES(MMHG)= |
D86 |
ASTM D86蒸馏曲线 | 同TBP格式 |
D2887 |
ASTM D2887蒸馏曲线 | 同TBP格式 |
API |
API重度 | AVERAGE=, DATA=lv%,api/... |
LIGHTEND |
轻端组成 | COMPOSITION(M)=, PERCENT(WT/LV)=, NORMALIZE |
MW |
分子量分布 | AVG=, DATA=lv%,mw/... |
SPGR |
比重 | AVERAGE= |
完整炼油塔示例(R3R.INP简化版)
COLUMN UID=COL1, NAME=CRUDE TOWER
PARAMETER TRAY=20, IO
FEED CRUDE, 17, TNOTSEPARATE, NOTSEPARATE
PRODUCT OVHD(M)=9, 2879, WATER=7, 1, 1105, BTMS(M)=20, SUPERSEDE=ON
LDRAW(M)=15, 8, 1047/17, 12, 575/19, 16, 715
CONDENSER TYPE=TFIX, TEMP=110
DUTY 1,1,,CONDENSER
DUTY 2,18,,2
DUTY 3,13,-39.9991,3
DUTY 4,9,-49.9994,4
DUTY 5,2,-49.9994,5
PA NAME=1, FROM=14, TO=13, PHASE=L, DNAME=3, TEMP=450
PA NAME=2, FROM=10, TO=9, PHASE=L, DNAME=4, TEMP=310
PA NAME=3, FROM=3, TO=2, PHASE=L, DNAME=5, TEMP=175
PSPEC PTOP=11.8
ESTIMATE MODEL=REFINE
SPEC ID=S1, STREAM=9, D86(95,F), VALUE=340
VARY DUTY=1, 2
RECYCLE DATA
RECYCLE DATA
ACCELERATION TYPE=WEGSTEIN, START=5, WEGLOWER=-0.3, WEGUPPER=1.5
LOOP NUMBER=1, START=P1, END=FT1 ! 显式指定循环起止单元
END
反应器语法(官方案例验证)
CONREACTOR(转化率反应器):
CONREACTOR UID=RX1, NAME=HDS REACTOR
FEED FEED1, FEED2 ! 多股进料用逗号(不是/)
PRODUCT M=PRODUCT1
OPERATION ADIABATIC, PRESSURE=500
RXCALCULATION MODEL=STOIC
RXSTOIC RXSET=RX1
REACTION R1
BASE COMPONENT=3
CONVERSION 0.95
EQUREACTOR(平衡反应器 — A6A/B 合成氨):
EQUREACTOR UID=R1, NAME=AMMONIA RX
FEED FEED1
PRODUCT V=VAPOR1, L=LIQUID1
OPERATION ADIABATIC, PHASE=V, DP=5
RXCALCULATION PARTIALPRESSURE, MODEL=STOIC
RXSTOIC RXSET=RX1
REACTION SHIFT
BASE COMPONENT=2
APPROACH DT=30
GIBBS(吉布斯反应器 — Casebook_Ammonia):
GIBBS UID=R1, NAME=GIBBS RX
FEED FEED1, FEED2
PRODUCT V=VAPOR1
OPERATION PHASE=M, DP=5
ELEMENTS REACTANTS=1/2/3/...
CONVERSION APPROACH=0.95
CSTR(动力学反应器 — P7):
CSTR UID=R1, NAME=PROPYLENE CHLORINATION
FEED FEED1
PRODUCT M=PROD1
OPERATION PHASE=L, VOLUME=5000, PRESSURE=150, TEMPERATURE=50
RXCALCULATION VAPOR=CONCENTRATION
RXSTOIC RXSET=RX1
REACTION R1
KINETICS COMPONENT=2, PEXP(R,LB,FT3,PSIA,HR)=A, ACTIVATION=Ea
KORDER 1,1/2,1
反应精馏(RXTRAY — A7, P6, Casebook_MTBE):
COLUMN UID=T1, NAME=MTBE COLUMN
PARAMETER TRAY=30, CHEMDIST=35
...
VLLECHECK CHECK=OFF
RXTRAY REFERENCE=ALJX, LOCAL=L_ALJX, KPROCEDURE=ALJD, TRAY=8, 13
RXSET LOCAL=L_ALJX
REACTION ID=ALJ0, COPTION=KINETICS
KINETICS PEXP(C,KG,M3,KPA,HR)
RXDATA块
RXDATA
RXSET ID=RX1
REACTION ID=R1
STOICHIOMETRY 1,-1/2,-3/3,1/4,1 ! comp,coeff(负=反应物,正=产物)
HORX HEAT=-45.108, REFCOMP=2, REFTEMP=800 ! 反应热
EQUILIBRIUM(R,LB,FT3,PSIG) A=-32.975, B=22930.4 ! 平衡常数
LLE(液液萃取)塔特殊语法
! PARAMETER指定LLEX算法
PARAMETER TRAY=4, LLEX=10
! PRODUCT指定L1/L2相
PRODUCT OVHD(L1,M)=7, 2, BTMS(M)=5, 162.7, SUPERSEDE=ON
PRODUCT OVHD(L1,M)=2, 25, L2DRAW(M)=3, 1, 6, BTMS(M)=4, SUPERSEDE=ON
! VLLECHECK
VLLECHECK TRAYS=21, CHECK=ON, SET=SET02
! METHOD指定LLE和VLE不同方法
METHOD KVAL(LLE)=NRTL, KVAL(VLE)=NRTL, L1KEY=2, L2KEY=3, SET=SET02
简写 vs 完整格式对照
官方案例中存在两种格式(P3G.INP为简写,P3.INP为完整),建议始终使用完整格式:
| 简写 | 完整格式 |
|---|---|
COMP |
COMPONENT DATA |
THERMO |
THERMODYNAMIC DATA |
PROP |
PROPERTY |
PARA |
PARAMETER |
PROD |
PRODUCT |
PRES |
PRESSURE |
TEMP |
TEMPERATURE |
VAPO |
VAPOR |
COND TYPE=PART |
CONDENSER TYPE=PART |
SPEC TEMP, TRAY=14, VALUE=420 |
SPEC ID=S1, TRAY=14, TEMPERATURE(F), VALUE=420 |
VALVE出口流股强制要求
重要: 阀门出口流股(PHASE=M)必须提供 TEMPERATURE 或 LIQUID FRACTION 初始估算值。PRO/II 10.2 不会自动进行闪蒸计算来确定阀门出口状态。
正确: PROPERTY STREAM=RFLIQ, TEMPERATURE=45, PRESSURE=345, PHASE=M, &
RATE(WT)=46878, COMPOSITION(M)=2,1
错误: PROPERTY STREAM=RFLIQ, PRESSURE=345, PHASE=M, &
RATE(WT)=46878, COMPOSITION(M)=2,1
错误信息: *** ERROR *** RFLIQ REQUIRES TEMPERATURE and/or LIQUID FRACTION. Feed flash
HX约束选择指南
优先使用温度约束而非相分数约束,以提高收敛成功率:
| 优先级 | 约束 | 说明 |
|---|---|---|
| 推荐 | OPER HTEMP=40 |
热侧出口温度(°C),适合蒸发器/冷凝器 |
| 推荐 | OPER CTEMP=126 |
冷侧出口温度(°C),适合蒸汽发生器 |
| 备选 | OPER HLFRAC=1 |
热侧全冷凝(可能导致不收敛) |
| 备选 | OPER CLFRAC=1 |
冷侧全汽化(可能导致不收敛) |
| 备选 | OPER DUTY=1000 |
固定热负荷(kW),需准确能量平衡 |
注意: HLFRAC/CLFRAC 在某些PRO/II版本中可能导致收敛困难,建议对复叠循环等复杂流程使用HTEMP/CTEMP。
特殊组分库
- R245FA: 需要
BANK=DIPPRL2018:DIPPR库,LIBID N,R245FA,,RHP, BANK=DIPPRL2018:DIPPR - 某些PRO/II安装可能缺少DIPPR库,导致运行时假死(无输出文件,仅生成.prz)
- 替代方案:使用CURRENT库中的NH3、R134a等
- NH3:
LIBID N,NH3, BANK=CURRENT— 所有安装均可用(临界温度132.5°C) - H2O:
LIBID N,H2O, BANK=CURRENT— 配合WATER PROPERTY=IF97
调试技巧
- PRO/II运行后在
%TEMP%/P2_*/目录下查找输出文件 .sr1文件包含源码列表和错误信息.ot1文件包含热力学报告.html文件包含热力学序列化报告- Import返回1=有轻微警告,返回4=有错误,但可能仍能运行
- RunCalcs返回0=计算收敛
- 诊断许可证问题: 如果PRO/II只生成.prz文件但不生成文本输出(.sr1/.pr1)且进程假死,检查许可证状态
INP文件头强制格式
关键:所有PRO/II 10.2 INP文件必须使用以下完整头格式,缺失任一部分都会导致Import=5(语法错误):
TITLE PROJECT=NAME, PROBLEM=NAME, USER=NAME
PRINT INPUT=ALL, STREAM=COMPONENT, RATE=M, MBALANCE=ON
TOLERANCE DEFAULT=V94
DIMENSION METRIC, MDUTY=ON, BASIS=MOLE, PRES=KPA, TEMP=C, DUTY=KW, &
STDTEMP=0, STDPRES=101.325
SEQUENCE SIMSCI
CALCULATION RECYCLE=TEAR, TVPBASIS=37.7778, RVPBASIS=APIN
常见错误:
- ~~DIMENSION METRIC~~ → 缺少完整参数,必须包含所有附加参数
- ~~STREAM=ALL~~ → 应使用 STREAM=COMPONENT
- 缺少 ASSAY 行 → 必须在COMPONENT DATA中添加
COMPONENT DATA强制ASSAY行
每个INP文件必须在COMPONENT DATA段的LIBID行之后添加:
ASSAY FIT=ALTERNATE, CONVERSION=API94, CURVEFIT=CURRENT, &
FORMATION=VER91, KVRECONCILE=TAILS
命名限制
| 类型 | 最大长度 | 示例 |
|---|---|---|
| 流股名 | 8字符 | SYIN, MEF1, SYCLD |
| 单元操作名 | 6字符 | CLD01, FLS01, PMP01 |
| 组分ID | 支持多位数 | LIBID 10,MeOH |
Rectisol(低温甲醇洗)建模指南
适用组分(CURRENT库)
1:H2, 2:CO, 3:CO2, 4:H2S, 5:COS, 6:N2, 7:CH4, 8:AR, 9:H2O, 10:MeOH
热力学方法
- 推荐:
METHOD SYSTEM=SRKM, SET=SET01, DEFAULT— SRK-Mathias-Copeman,专为酸性气体+甲醇极性体系设计 - 备选:
METHOD SYSTEM=PR, SET=SET01, DEFAULT(不要加 WATER PROPERTY=IF97,否则 COS/MeOH 会报警) - 禁用: PR+WATER PROPERTY=IF97 — 会触发 "COS/MeOH not supported by SIMSCI water solubility method" 警告
流股组成策略(避免组成和不等于1.0)
- 仅对外部进料指定完整组成,确保求和精确=1.0
- 所有中间/产品流股必须指定组成(PRO/II 10.2 要求每条流股都有组成,否则默认全零=无效)
- HX/VALVE/PUMP 产品流股:复制进料组成(这些单元不改变组成)
- FLASH/COLUMN 产品流股:提供物理合理的估算组成 +
, NORMALIZE
流程配置
- 合成气预冷(HX: SYIN→SYCLD, 40→-20°C)
- 主吸收塔(COLUMN, 15层): 塔顶贫甲醇(-55°C) + 塔底合成气(-20°C)逆流接触
- 一级减压阀 + 闪蒸罐(H2回收,~1500 kPa)
- 二级减压阀 + 闪蒸罐(CO2闪蒸,~500 kPa)
- 富甲醇预热(HX: 蒸汽加热 → 80°C)
- 甲醇再生塔(COLUMN+再沸器, 8层): 汽提CO2+H2S,塔底得再生贫甲醇
- 贫甲醇泵 + 两级冷却 → 循环回吸收塔
关键操作参数
- 主吸收塔:45 bar,顶部-55°C,底部-20°C
- 循环甲醇:-60°C,19,294 kg/h(2000t/d甲醇产能)
- 净化气指标:CO2 < 20 ppmv,H2S < 0.1 ppmv
- 甲醇纯度:>99.5 wt%
PETRO 包(原油蒸馏 — Assay进料 + Cut Point切割)
> 语法来源:PRO/II 10.2 PETRO Package Manual
> 适用场景:常减压蒸馏塔,进料用蒸馏曲线(Assay)定义,产品按沸程(Cut Point)切割输出
>
> ⚠️ 关键限制(2026-06-11 验证):PRO/II 10.2 的关键词模式(CLI/INP文件)不支持 PETRO UID=... ENDPETRO 单元操作!该功能仅在 PROVISION GUI 中可用。通过完整搜索 1201 页 Keyword Manual 确认,PETRO 关键字仅出现在组分定义中(PETRO id,name,MW,SG,NBP),没有作为单元操作出现。
概述
PETRO 包是 PRO/II 专门用于原油蒸馏建模的模块:
- 进料:用 ASSAY 蒸馏曲线(TBP/ASTM)定义原油,无需清晰组分
- 产品:用 CUT POINT 按沸程(温度)或碳数切割
- 优势:自动生成假组分(Pseudo-components),准确模拟原油蒸馏
⚠️ PETRO 包(原油蒸馏)— 关键词模式不支持!
> 重要发现:PETRO 单元操作(CUT POINT, RECOVERY 等)仅在 PROVISION GUI 中可用,
> 关键词模式(INP 文件)不支持 PETRO 单元操作。
> 原油蒸馏建模应使用 COLUMN + ASSAY=LV 方式。
文件结构(COLUMN + ASSAY 方式,已验证)
TITLE
COMPONENT DATA
LIBID ... (轻端组分 C2-C5, H2O)
CUTPOINTS TBPCUTS(C)=start,end1,n1/end2,n2/...
ASSAY CURVEFIT=..., CONVERSION=..., FIT=..., FORMATION=...
THERMODYNAMIC DATA
METHODS SYSTEM=GS, TRANS=PETRO, VISC(L)=API
STREAM DATA
PROP STREAM=..., ASSAY=LV
TBP STREAM=sid, PRES(MMHG)=760, DATA=...
API STREAM=sid, AVG=val
LIGHT STREAM=sid, PERCENT(V)=val, COMP(V)=..., NORMALIZE
UNIT OPERATIONS
COLUMN UID=..., NAME=...
PARAM TRAY=N, DAMP=val
PROD OVHD=..., LDRAW=..., BTMS=...
PA FROM=..., TO=..., PHASE=L, TEMP=val
ESTI MODEL=REFINERY
SPEC ...
ENDCOL
SIDESTRIPPER UID=...
END
ASSAY 蒸馏曲线数据(在 STREAM DATA 段定义,不是 COMPONENT DATA 段)
⚠️ 以下语法在关键词模式中无效:
- ~~ASSAY ID=CRUDE01, TYPE=TBP, UNIT=C, NPOINT=11~~ — PRO/II 不识别
- ~~ASSAY ID=..., NPOINT=... + 独立数据行~~ — PRO/II 不识别
正确语法(来自 PRO/II 自带示例 pdtsr3r.inp):
PROP STREAM=CRUDE, TEMP=380, PRES=200, PHASE=M, RATE(WT)=500000, ASSAY=LV
TBP STREAM=CRUDE, PRES(MMHG)=760, &
DATA=2,50/5,120/10,180/20,260/30,350/40,430/ &
50,490/60,540/70,590/80,640/90,700/100,780
API STREAM=CRUDE, AVG=32
LIGHT STREAM=CRUDE, PERCENT(LV)=3, &
COMP(V)=2,0.1/3,0.3/4,0.3/5,0.8/6,0.5/7,1.0, NORMALIZE
70, 410/ 80, 460/ 90, 520
| 参数 | 含义 |
|---|---|
ID= |
Assay 标识符(最长8字符),在流股中引用 |
TYPE= |
蒸馏曲线类型:TBP(真沸点)或 ASTM(ASTM D86) |
UNIT= |
温度单位:C(摄氏度)或 F(华氏度) |
NPOINT= |
数据点个数 |
| 数据行 | 体积分数, 温度 对,用 / 分隔 |
注意:
- NPOINT 必须等于实际数据点个数
- 温度单位必须与 UNIT= 一致
- 蒸馏曲线必须单调上升(温度升高,馏出量增加)
Assay 拟合设置(必须)
ASSAY FIT=ALTERNATE, CONVERSION=API94, CURVEFIT=CURRENT, &
FORMATION=VER91, KVRECONCILE=TAILS
流股中引用 Assay(STREAM DATA 段)
PROPERTY STREAM=CRUDE_FEED, TEMPERATURE=380, PRESSURE=120, PHASE=M, &
RATE(WT)=100000, &
ASSAY=LV, NORMALIZE
关键:
- ASSAY=LV:以 Liquid Volume 为基准(关键词模式正确语法,见 Keyword Manual p1178)
- ASSAY=WT:以 Weight 为基准
- 不能写成 ASSAY=CRUDE01(会把 ID 当作关键字名,不被识别)
- 不能再指定 COMPOSITION(Assay 进料无需清晰组分)
- NORMALIZE:归一化进料量
- Assay ID 通过 COMPONENT DATA 中的 ASSAY ID=... 定义,流股通过 ASSAY=LV 关联
PETRO 单元操作(UNIT OPERATIONS 段)
PETRO UID=P1, NAME=ATMOSPHERIC_PETRO
FEED CRUDE_FEED
PRESSURE(KPA)=120
CUT POINT=NAPHTHA, TMAX=175, UNIT=C
CUT POINT=KERO, TMIN=175, TMAX=250, UNIT=C
CUT POINT=DIESEL, TMIN=250, TMAX=350, UNIT=C
CUT POINT=RESID, TMIN=350, UNIT=C
RECOVERY NAPHTHA, 0.95
RECOVERY KERO, 0.95
RECOVERY DIESEL, 0.95
ENDPETRO
| 关键字 | 语法 | 说明 |
|---|---|---|
FEED |
FEED stream_name |
进料流股名(必须已用 ASSAY= 定义) |
PRESSURE |
PRESSURE(KPA)=val |
操作压力 |
CUT POINT |
CUT POINT=sid, TMAX=val, UNIT=C |
定义产品切割点(按温度) |
CUT POINT |
CUT POINT=sid, TMIN=val, TMAX=val, UNIT=C |
定义产品切割范围 |
RECOVERY |
RECOVERY sid, fraction |
产品回收率(0~1,可选) |
CUT POINT 语法详解:
CUT POINT=sid, {TMAX=val | TMIN=val}, UNIT={C|F}
| 参数 | 含义 |
|---|---|
sid |
产品流股名(最长8字符),PRO/II 自动创建该流股 |
TMAX= |
切割上限温度(°C 或 °F),该产品的 TBP 切割上限 |
TMIN= |
切割下限温度(可选),该产品的 TBP 切割下限 |
UNIT= |
温度单位:C 或 F,必须与 ASSAY 定义一致 |
常见错误:
| 错误写法 | 正确写法 | 说明 |
|---|---|---|
CUT PNT=... |
CUT POINT=... |
关键字拼写错误 |
CUT POINT=NAPHTHA, 175 |
CUT POINT=NAPHTHA, TMAX=175, UNIT=C |
缺少关键字参数名 |
CUT POINT=NAPHTHA, TMAX=175 |
CUT POINT=NAPHTHA, TMAX=175, UNIT=C |
缺少 UNIT= |
只有一个 CUT POINT(塔底产品) |
必须定义所有产品切割点 | 否则物料不平衡 |
完整示例(常压蒸馏塔 — Assay进料 + Cut Point输出)
> ⚠️ 以下示例仅用于理解 PETRO 语法,无法在 PRO/II 10.2 关键词模式(CLI)中运行。 PETRO 单元操作仅支持 PROVISION GUI。
TITLE PROJECT=ATMDIST, PROBLEM=PETRO01, USER=USER
PRINT INPUT=ALL, STREAM=COMPONENT, RATE=M, MBALANCE=ON
TOLERANCE DEFAULT=V94
DIMENSION METRIC, MDUTY=ON, BASIS=MOLE, PRES=KPA, TEMP=C, DUTY=KW, &
STDTEMP=0, STDPRES=101.325
SEQUENCE SIMSCI
CALCULATION RECYCLE=TEAR, TVPBASIS=37.7778, RVPBASIS=APIN
COMPONENT DATA
CURRENT SEARCH=SIMSCI,PROCESS
ASSAY ID=CRUDE01, TYPE=TBP, UNIT=C, NPOINT=11
0, 80/ 5, 120/ 10, 150/ 20, 200/
30, 250/ 40, 290/ 50, 330/ 60, 370/
70, 410/ 80, 460/ 90, 520
ASSAY FIT=ALTERNATE, CONVERSION=API94, CURVEFIT=CURRENT, &
FORMATION=VER91, KVRECONCILE=TAILS
THERMODYNAMIC DATA
METHOD SYSTEM=PR, SET=SET01, DEFAULT
WATER PROPERTY=IF97, TRANSPORT=IF97
STREAM DATA
PROPERTY STREAM=CRUDE_FEED, TEMPERATURE=380, PRESSURE=120, PHASE=M, &
RATE(WT)=100000, &
ASSAY=LV, NORMALIZE
UNIT OPERATIONS
PETRO UID=P1, NAME=ATM_DIST_PETRO ← 关键词模式不支持!
FEED CRUDE_FEED
PRESSURE(KPA)=120
CUT POINT=NAPHTHA, TMAX=175, UNIT=C
CUT POINT=KERO, TMIN=175, TMAX=250, UNIT=C
CUT POINT=DIESEL, TMIN=250, TMAX=350, UNIT=C
CUT POINT=RESID, TMIN=350, UNIT=C
RECOVERY NAPHTHA, 0.95
RECOVERY KERO, 0.95
RECOVERY DIESEL, 0.95
ENDPETRO
END
与 COLUMN 模型的对比
| 特性 | COLUMN 模型 | PETRO 模型 |
|---|---|---|
| 进料 | 清晰组分(LIBID + COMPOSITION) | Assay 蒸馏曲线(无需清晰组分) |
| 产品定义 | SIDE 侧线抽出(指定塔板号) | CUT POINT(按沸程切割,无需塔板号) |
| 塔板详细计算 | 支持(逐板计算) | 简化(不计算逐板) |
| 适用场景 | 清晰组分精馏(炼化、化工) | 原油蒸馏(常减压装置) |
| 收敛难度 | 较高(需初值) | 较低(自动处理) |
常见错误汇总(PETRO)
| 错误 | 正确 | 说明 |
|---|---|---|
在 Assay 流股中指定 COMPOSITION |
去掉 COMPOSITION,只用 ASSAY= |
Assay 进料无需清晰组分 |
CUT POINT 缺少 UNIT= |
加上 UNIT=C 或 UNIT=F |
温度单位必须指定 |
只有一个 CUT POINT |
定义所有产品切割点(包括塔底渣油) | 否则物料不平衡 |
ASSAY 数据点个数 ≠ NPOINT= |
修改 NPOINT= 使其相等 |
必须严格一致 |
忘记写 UNIT OPERATIONS 段头 |
在 STREAM DATA 后加 UNIT OPERATIONS |
所有单元操作前必须写 |
Chapter 14: Reactors (反应器)
EQUREACTOR (平衡反应器)
EQUREACTOR UID=uid, {NAME=text}
FEED sid, {sid, ...}
PRODUCT V=sid or L=sid, {W=sid, S=sid}
OPERATION ISOTHERMAL, {TEMPERATURE(utemp)=value}
OPERATION ADIABATIC, {DUTY=value}
REACTION id=reaction_id, {CONVERSION=frac}
DEFINE <param> AS <unit_type>=uid, <param>, {<op>, <ref>}
操作模式:
- ISOTHERMAL: 等温操作,指定温度
- ADIABATIC: 绝热操作,可指定热负荷
示例:
EQUREACTOR UID=R101, NAME='Methanol Synthesis'
FEED FEED1
PRODUCT V=V101, L=L101
OPERATION ISOTHERMAL, TEMPERATURE(DEGC)=250.0
REACTION R1, CONVERSION=0.85
CONREACTOR (转化率反应器)
> 关键区别:需要指定转化率(Conversion)时用CONREACTOR;需要平衡常数(Approach DT)时用EQUREACTOR。
> HORX单位:METRIC+DUTY=KW下,HORX HEAT单位为kJ/kg-mol(=kJ/kmol),不是kJ/mol。文献值kJ/mol需×1000。
> 收敛建议:先ISOTHERMAL验证化学计量,再切ADIABATIC。
语法A(简写 — 单反应,无外部RXSET):
CONREACTOR UID=uid, {NAME=text}
FEED sid, {sid, ...}
PRODUCT V=sid or L=sid, {W=sid, S=sid}
OPERATION ISOTHERMAL, {TEMPERATURE(utemp)=value}
OPERATION ADIABATIC, {DUTY=value}
CONVERSION component=name, FRACTION=frac
DEFINE <param> AS <unit_type>=uid, <param>, {<op>, <ref>}
语法B(标准 — RXDATA外部定义+RXSTOIC引用,推荐):
CONREACTOR UID=uid, {NAME=text}
FEED sid
PRODUCT V=sid
OPERATION ADIABATIC, PHASE=V, DP=5
RXCALCULATION MODEL=STOIC
RXSTOIC RXSET=外部集名
REACTION R1
BASE COMPONENT=组号
CONVERSION 0.15
> 语法B需在RXDATA段预定义RXSET。BASE COMPONENT指定限制转化的组分。
> 2026-06-20 氨合成v3/Claus v6/甲醇v2 三模型验证通过。
GIBBS (吉布斯反应器)
GIBBS UID=uid, {NAME=text}
FEED sid, {sid, ...}
PRODUCT V=sid or L=sid, {W=sid, S=sid}
OPERATION PHASE=M or V or L or VL or LL or VLL
PARAMETER MAXTRIALS=50, TOLERANCE=0.0001
DEFINE <param> AS <unit_type>=uid, <param>, {<op>, <ref>}
操作模式:
- PHASE=M: 混合相 (默认)
- PHASE=V: 气相
- PHASE=L: 液相
PLUGFLOW (活塞流反应器)
PLUGFLOW UID=uid, {NAME=text}
FEED sid, {sid, ...}
PRODUCT V=sid or L=sid, {W=sid, S=sid}
OPERATION LENGTH(uleng)=value, DIAMETER(ufleng)=value
KINETICS id=kinetic_id, RATE=value
DEFINE <param> AS <unit_type>=uid, <param>, {<op>, <ref>}
CSTR (连续搅拌釜反应器)
CSTR UID=uid, {NAME=text}
FEED sid, {sid, ...}
PRODUCT V=sid or L=sid, {W=sid, S=sid}
OPERATION PHASE=L or V or BOIL
PARAMETER BTRIAL=3, DERIV=0.01
KINETICS id=kinetic_id, RATE=value
DEFINE <param> AS <unit_type>=uid, <param>, {<op>, <ref>}
Chapter 16: Utility Units (公用事业单元)
STCALC (蒸汽计算)
STCALC UID=uid, {NAME=text}
FEED {sid, 1.0/...}
OPERATION STOP=ZERO, DUTY=0.0
操作模式: Feed Blending | Stream Splitting | Stream Synthesis
HCURVE (换热器曲线)
HCURVE UID=uid, {NAME=text} {PLOT}
HX=uid, HOT or COLD, {PRESSURE(upres)=value,value}, ISOB=value
HXRIG=uid, SHELL or TUBE, {PRESSURE(upres)=value,value}, ISOB=value
UPSTREAM (上游单元)
UPSTREAM UID=uid, {NAME=text}
FEED sid, {sid,...}
PRODUCT V=sid or L=sid or W=sid or M=sid
OPERATION SELECTOR, STREAM=sid
OPERATION GOR, {RFPL(upres)=value}, {RFTL(utemp)=value}
操作模式: SELECTOR | GOR | DROPOUT | RELVOLUME | CVD
Chapter 17: Controllers (控制器)
CONTROLLER (控制器定义)
CONTROLLER UID=uid, {NAME=text}
SPEC COLUMN=uid or SIDESTRIPPER=uid, <property>, value
SPEC STREAM=sid, <property>, value
MANIPULATE STREAM=sid, <parameter>
MANIPULATE UNIT=uid, <parameter>
DESIGN SPEC (设计规定)
DESIGN SPEC UID=uid, {NAME=text}
SPEC STREAM=sid, <property>, value
MANIPULATE FEED=sid, RATE(value)
TOLERANCE=value
MAXITER=number
SENSITIVITY (灵敏度分析)
SENSITIVITY UID=uid, {NAME=text}
VARY <parameter>, MIN=value, MAX=value, INCR=value
TABULATE STREAM=sid, <property>
LOOP (收敛回路)
LOOP NO=idno, START=uid, END=uid, TRIAL=50
CONVERGENCE METHOD=method
PARAMETER / CHANGE / RESULT
PARAMETER {ID=id*12}, STREAM=sid*12, <parameter>, VALUE=value
CHANGE {ID=id*12}, STREAM=sid*12, <parameter>, VALUE=value
RESULT {ID=id*12}, STREAM=sid*12, <parameter>, {operator, <reference>}
Chapter 18, 20, 21: 高级功能
HXNET (换热器网络)
HXNET UID=uid, {NAME=text}
STREAM hot_sid, COLD=Y or N
MINAPP(utemp)=value
OPERATION METHOD=LP or MILP
OPTIMIZE (优化)
OPTIMIZE UID=uid, {NAME=text}
OBJECTIVE MAXIMIZE or MINIMIZE, <variable>
VARIABLE <param>, MIN=value, MAX=value
CONSTRAINT STREAM=sid, <param>, OPERATOR=LE/GE/EQ, value
CASESTUDY (案例研究)
CASESTUDY UID=uid, {NAME=text}
PARAMETER STREAM=sid, <parameter>, VALUE=val1, val2, ...
RESULT STREAM=sid, <parameter>
Chapter 15: Solids(固体单元)
> 语法来源: PRO/II 10.2 Keyword Manual (Chapter 15, page 773+)
15.1 CRUSHER(破碎机)
CRUSHER UID=uid, {NAME=text}
FEED sid, {sid,...}
PRODUCT M=sid, S=sid
OPERATION METHOD=method_id
PARAMETER P80=value, F80=value
| 参数 | 含义 |
|---|---|
P80 |
80% 产品通过的筛孔尺寸 |
F80 |
80% 进料通过的筛孔尺寸 |
METHOD |
破碎计算模型 |
15.2 SCREEN(筛分机)
SCREEN UID=uid, {NAME=text}
FEED sid, {sid,...}
PRODUCT M=sid1, M=sid2, {S=sid3}
OPERATION CUT=size, RECOVERY=frac
PARAMETER METHOD=method_id
| 参数 | 含义 |
|---|---|
CUT= |
筛分切割尺寸 |
RECOVERY= |
回收率(0~1) |
15.3 DRYER(干燥机)
DRYER UID=uid, {NAME=text}
FEED sid, {sid,...}
PRODUCT M=sid, S=sid
OPERATION TEMP(utemp)=value, {DUTY(uduty)=value}
PARAMETER METHOD=method_id, {DTYPE=type}
| 参数 | 含义 |
|---|---|
TEMP= |
干燥温度 |
DUTY= |
热负荷(可选) |
METHOD |
干燥模型 |
DTYPE |
干燥机类型 |
15.4 FILTER(过滤器)
FILTER UID=uid, {NAME=text}
FEED sid, {sid,...}
PRODUCT FILTRATE=sid, CAKE=sid
OPERATION ANGLE(RAD or DEG or GRAD)=value
PARAMETER METHOD=method_id, {AREA(uarea)=value}
| 参数 | 含义 |
|---|---|
ANGLE= |
过滤器倾角 |
AREA= |
过滤面积 |
FILTRATE= |
滤液出口流股 |
CAKE= |
滤饼出口流股 |
15.5 CRYSTALLIZER(结晶器)
CRYSTALLIZER UID=uid, {NAME=text}
FEED sid, {sid,...}
PRODUCT M=sid, S=sid
OPERATION SOLUTE=i, SOLVENT=j
PARAMETER METHOD=method_id, {YIELD=frac}
| 参数 | 含义 |
|---|---|
SOLUTE= |
溶质组分 ID |
SOLVENT= |
溶剂组分 ID |
YIELD= |
结晶收率 |
15.6 DISSOLVER(溶解器)
DISSOLVER UID=uid, {NAME=text}
FEED sid, {sid,...}
PRODUCT M=sid, S=sid
OPERATION SOLUTE=i, SOLVENT=j
PARAMETER METHOD=method_id, {TEMP(utemp)=value}
15.7 SOLID-TRANSPORT(固体输送)
SOLID-TRANSPORT UID=uid, {NAME=text}
FEED sid, {sid,...}
PRODUCT M=sid, S=sid
OPERATION DP(upres)=value, {VELOCITY(uvel)=value}
| 参数 | 含义 |
|---|---|
DP= |
压力降 |
VELOCITY= |
输送速度 |
15.8 固体单元通用规则
- 所有固体单元必须指定
FEED和PRODUCT - 固体产品流股用
S=指定(Solids) - 液体产品流股用
M=或L=指定 - 热力学方法需用
METHOD=指定
附录: 单位系统速查
温度单位 (utemp)
DEGC: 摄氏度 |DEGF: 华氏度 |K: 开尔文
压力单位 (upres)
BAR: 巴 |PSIA: 磅/平方英寸(绝压) |KPA: 千帕
流率单位
KG/HR: 千克/小时 |KMOL/HR: 千摩尔/小时 |M3/HR: 立方米/小时
文件更新: 2026-06-12
本次更新 (2026-06-12):
- 重大修正:DUTY再沸器segno=TRAY(不是TRAY+2或TRAY+1),无论冷凝器类型如何。所有官方案例验证。
- 重大修正:CONDENSER TYPE=PART是正确的(不是PARTIAL),所有官方案例使用PART
- 重大修正:PRODUCT OVHD/BTMS必须在同一行(不支持分行写),所有官方案例验证
- 重大修正:RXDATA必须在STREAM DATA之后(不是THERMO之后),否则ABORT(2026-06-12 UOP PDH验证)
- 重大修正:CONREACTOR必须包含RXCALCULATION MODEL=STOIC行(A5.INP验证)
- 重大修正:COMPRESSOR不应使用MEFF参数(官方案例无此参数)
- 新增:INP文件节完整顺序(含RXDATA/REGRESSION/PROCEDURE/RECYCLE位置)
- 新增:FLASH ISOTHERMAL替代高温加热炉方案(>400°C不能用HX+UTILITY STEAM)
- 新增:HX+UTILITY完整语法和限制(必须有两侧定义,UTILITY STEAM仅适用<400°C)
- 新增:SIDESTRIPPER完整语法(R3R.INP验证)
- 新增:PA(Pump-Around)与DUTY关联语法(R3R/R5R/G2验证)
- 新增:FEED分离选项详解(TNOTSEPARATE/TSEPARATE/NOTSEPARATE/SEPARATE)
- 新增:SPEC完整格式(回流比/纯度/流量比/温度/D86/RVP/蒸汽比)
- 新增:ESTIMATE模式选择指南(CONVENTIONAL/SIMPLE/CHEM/REFINE)
- 新增:DIMENSION所有官方案例变体
- 新增:METHOD子系统选项(KVAL/ENTHALPY/DENSITY/TRANSPORT/AMINE/PETR)
- 新增:热力学方法选择指南(10种方法+适用场景+官方案例)
- 新增:STREAM DATA高级选项(REFSTREAM/NAME/SOLID/LFRACTION)
- 新增:ASSAY子语句完整语法(TBP/D86/D2887/API/LIGHTEND/MW/SPGR)
- 新增:完整炼油塔示例(R3R.INP简化版,含PA+DUTY+LDRAW+WATER)
- 新增:反应器语法(CONREACTOR/EQUREACTOR/GIBBS/CSTR/RXTRAY/RXDATA)
- 新增:LLE塔特殊语法(LLEX/L1/L2/VLLECHECK)
- 新增:VARY引用DUTY的三种方式
- 新增:简写vs完整格式对照表
- 新增:常见错误5项(RXDATA顺序/CONREACTOR缺RXCALCULATION/HX高温限制/HX单侧限制/COMPRESSOR MEFF)
- 2026-06-20更新:新增9项常见错误(单元间END语句/EQUREACTOR需EQUILIBRIUM/HORX单位×1000/SULFUR组分名/NORMALIZE解析错误/Claus反应base选择/ADIABATIC难收敛/闭环溶剂累积/Rectisol闭环收敛)
- 2026-06-20更新:CONREACTOR语法新增语法B(RXSTOIC标准引用方式),添加HORX单位和ISOTHERMAL→ADIABATIC收敛建议
- 2026-06-20验证:氨合成v3(6单元,0%偏差)/Claus v6(7单元,0%偏差)/甲醇v2(11单元,循环27次收敛,0%偏差)/Rectisol v4_spl2(9单元,循环48次收敛,-0.02%偏差)
- 2026-06-20新增:3项常见错误(CONREACTOR PRESSURE+DP冲突/SIMSCI烃类组分名用化学式/组分名≤15字符)
- 2026-06-20验证:乙烯裂解v1(6单元,0%偏差)/费托合成v1(4单元,0%偏差)/催化重整v1(3单元,0%偏差)
- 2026-06-20新增:4项常见错误(C4H8缺传输性质/CH3OH用MEOH/CONREACTOR多反应负流率/化学计量数精确平衡)
- 2026-06-20验证:延迟焦化v1(6单元,0%偏差)/加氢裂化v1(7单元,0%偏差)/液化气分馏v1(4单元,0%偏差)/烷基化v1(5单元,0%偏差)/环氧乙烷v1(5单元,0%偏差)/水气变换v1(6单元,0%偏差)/DME合成v1(4单元,0%偏差)/天然气液化v1(5单元,0%偏差)
- 2026-08-12新增:多稳态撕裂收敛陷阱诊断路线(吸收式脱乙烷验证)/开环固定点验证法/FLASH焓基准陷阱需CoolProp外校/PROCALC返回码11-12含义/bash直调PROII EXE管线/部分冷凝器单产品语法
闭环撕裂收敛多稳态陷阱(2026-08-12 吸收式脱乙烷验证)
症状
两塔联立 + 双 SPEC 约束(如塔底 C2=0.5% + 塔底 C6=98% + 塔顶 C6≤2%)的闭环模型,
WEGSTEIN 撕裂迭代从任意初值(包括精确回填的高循环态初值)均塌缩到低循环态伪稳态。
- 表现:循环油流率从期望的 ~156 kmol/h 塌缩到 ~4 kmol/h("贫油枯竭")
- 后果:吸收塔顶温度飙高(110°C+)、C3/C6 大量逃逸,但日志仍显示 "SOLVED"(收敛到错误分支)
诊断路线(决定性方法)
- 精确回填初值:将此前开环收敛的循环流股组成/流率严格回填为 STREAM 初值
- 若仍塌缩 → 排除初值问题,锁定为数值收敛器局限 - 开环固定点验证(v17 法):断开回收(删 SPLITTER/COOL 回接),按比例回填循环流股
- 即验证 X=f(X) 不动点:回填值 = 下游产出的再生循环油(比例缩放)
- 两次独立运行结果一致(相对误差 <0.001%)→ 证明该循环量是真实自洽设计点
- 结论:PRO/II 撕裂收敛器无法从低分支吸引子脱困 ≠ 物理不可行 - 工程处理策略:采用"固定循环量 + 分液器排出盈余"稳态实现(SPLITTER 分流多余油量外排)
WEGSTEIN 撕裂迭代日志解读
Loop 1 NOT SOLVED after N trials×多次后Loop 1 SOLVED after M trials→ 收敛了,但可能收敛到错误分支,必须核对关键流股数值- SPLITTER
FEED FLOW is insufficient+Applied the FILL option→ 每轮必现的正常警告,非错误
FLASH 单元焓基准陷阱(2026-08-12 验证)
症状
FLASH 单元模拟贫油冷却器(把 174°C 贫油冷却到 40°C),输出焓差与物理显热严重不符
(如 0.043 M·kcal/h vs 物理预期 ~1.14 M·kcal/h),相差一个数量级以上。
原因与对策
- 原因:FLASH 焓输出可能采用不一致的焓基准(组分汽化焓/参考态差异)
- 对策:一律用 CoolProp 独立核算真实热负荷(质量加权焓差),不采信 FLASH 焓差
- 泵功率按 ΔP×V/η 独立核算,不依赖 PRO/II 输出
PROCALC 返回码含义(2026-08-12 验证)
| 返回码 | 含义 | 判断依据 |
|---|---|---|
| 0 | 完全成功 | 日志 "NO ERRORS" |
| 11/12 | 完成但带警告(正常!) | 日志 "PROBLEM SOLUTION REACHED" + "NO ERRORS"(WARNINGS 可忽略,如 SPLITTER FILL) |
| 其他非零 | 需查日志具体错误 | 看 vXX_procalc.log 的 ERROR/ABORT |
判断收敛以日志为准,不是返回码。
bash 直调 PRO/II EXE 管线(2026-08-12 验证)
- git-bash 中
cmd /c与 PowerShell 调 cmd 均被安全策略拦截(输出 "Microsoft Windows [版本...]" 后空转) - 正确做法:bash 中
export PATH含SIMSCICFI53/Licensing10/PROII102后逐个调用
PROIN.EXE /CNF=...→PROCALC.EXE /CNF=...→PROOUT.EXE /CNF=... /CNF=参数中的反斜杠需双写转义
部分冷凝器单产品语法(2026-08-12 验证)
CONDENSER TYPE=PART+ 单行PRODUCT OVHD(M)=..., BTMS(M)=..., SUPERSEDE=ON- 不支持 OVHD(V)+OVHD(L) 双塔顶产品语法(部分冷凝器只有单产品)