ASPEN XML / STREAM CONTRACT V1.2

流股数据
读取与写入

Aspen XML 决定项目流股、组分、数值和单位;CAD 物料表模板只固定线框、槽位和文字样式。这里说明如何从 XML Results File 读取并写入固定模板。

输入必须是什么

只接受根节点为 Plant 的 Aspen XML Results File。必须存在 ComponentsMain/COMPID/Value 和至少一个 StreamMaterial;项目配置 XML、块定义 XML或没有结果流股的 XML 不能制表。

Plant
  ComponentsMain / COMPID / Value
  StreamMaterial @name
    TEMP_OUT @unit / Value
    PRES_OUT @unit / Value
    MASSFLMX @unit / Value
    MASSFLOW @unit / Value
    MASSFRAC / Value

单位怎么读

量纲字段逐项读取当前 XML 元素的 @unit,不在全局接口中固定成某套单位,也不暗中换算。每个值保存为 {"value": number|null, "unit": string|null}

  • 温度取 TEMP_OUT@unit,压力取 PRES_OUT@unit
  • 总质量流量取 MASSFLMX@unit,组分质量流量取 MASSFLOW@unit
  • 相分率、质量分率和摩尔分率使用语义单位 fraction,数值保持 0..1。
  • 缺字段、空值或 *null,绝不补零。
  • 同一行出现不同单位时输出 units_by_stream;写入 CAD 单位列前必须先统一换算。

组分如何对应

COMPID 的顺序是唯一索引。MASSFLOW[n]MASSFRAC[n]MOLEFRAC[n] 都对应第 n 个组分;任何向量长度与组分数不一致时立即停止,不能截断或补零。

是否按模板固定写入

线框和槽位固定,数据数量动态。源 CAD 表固定 20 列、60 行:字段列和单位列各 1 列,每张表最多容纳 18 条流股;两段组分区域各最多容纳 16 个组分。

列 1       字段名称
列 2       单位
列 3..20   流股值(18 条/表)

行 1       PFD 流股编号
行 2..26   固定属性
行 27..42  组分质量流量(16 个)
行 43      质量分率标题
行 44..59  组分质量分率(16 个)
行 60      体积流量

XML 只有 13 条流股就使用 13 个流股槽,其余留空;有 19 条则分成 18+1 两页。有 17 个组分则分成 16+1 两个组分页。流股页与组分页取笛卡尔积生成续表。

生成命令与输出

python cad_aspen_agent/scripts/xml_to_stream_table.py   --xml <Aspen Results.xml>   --project-id <project_id>   --out-dir projects/<project_id>   [--pfd-map stream_map.json]
  • stream_results.json:完整项目级流股、拓扑、数值、单位和组分。
  • stream_table.json:固定 CAD 行列槽、每行单位、每列流号和分页计划。
  • stream_table.csv:人工审阅文件。