1、106第十一章 Fortran 模块目的:介绍 Aspen Plus 中 Fortran 模块的用法。(1)Fortran 模块 用户可以写 Aspen Plus 执行 Fortran 模块 Aspen Plus 能够解释简单的 Fortran,并且不需要编译 若编译较复杂 Fortran 代码,在运行 Aspen Plus 引擎的机器上必须有 Fortran 编译器 必须通过直接检查由 Fortran 模块修改的变量值来查看一个 Fortran 模块的执行结果 位于/Data/Flowsheeting Options/Fortran 下 在 Aspen Plus 新版本中 Fortran 模
2、块已改为 Caculator 模块,位于 Data/Flowsheeting Options/Calculator 下,内容基本不变。(2)Fortran 模块举例用 Fortran 模块设置 Heater 模块压降。换热器压降与换热器体积流量的平方成正比。 访问那一个流程变量? 物流 REAC-OUT 的体积流量 经过模块 COOL 的压降 什么时候执行 Fortran 模块?在 COOL 模块之前 要读取那一个变量,写入那一个变量? 读取体积流量 写入压降Fortran BlockP = -10-9*V2V P R P 107(3)Fortran 模块的用法 前馈控制(根据上游物流计算的值
3、设置流程输入) 调用外部子程序 从外部文件输入或输出到外部文件 写到控制面板、历史文件或报告文件上 定制报告(4)Fortran 模块应用步骤a)访问在 Fortran 内使用的流程变量 必须标识所有读取或写入的流程变量(Fortran Input Define 页)b)编写 Fortran 为达到预期结果,要编写非执行(COMMON、EQUIVALENCE 等)Fortran (Fortran Input Declarations 页)和可执行 Fortran(Fortran Input Fortran 页)c)规定 Fortran 模块在执行顺序中的位置(Fortran Input Seq
4、uence 页) 直接规定,或 用读写变量规定 (5)注意a)只有输入到流程中的参量才可改写b)书写内嵌 Fortran 规则如下: Fortran 代码必须从第七列以后开始写 注释行必须在第一列中用“C”或“;” 第二列是空的c)变量名不能以 IZ 或 ZZ 开头d)在 Fortran Input Sequence 页上,规定 Fortran 模块在哪执行的首选方法是列出读写变量e)当使用 Fortran WRITE 语句时,可以用预先定义的单元号 NTERM 向控制面板写入。例如,write(NTERM,*) Feed Flowrate = ,flow(6)练习目的:用 Fortran 模
5、块维持反应器进料甲烷与水的比。在甲烷转化装置中,甲烷和水反应生成氢气,生成一氧化碳副产品。发生的反应如下:CH4+H2O = 3H2+CO转化器进料含有纯甲烷和水,在进转化器之前混合加热。甲烷转化率为 99.5%,进料中甲烷对水的摩尔比为 1:4。创建如下面所示图中的流程。建立灵敏度模块,并绘制图表,显示反应器热负荷随进料的甲烷流率变化情况,甲烷流率从 100 变到 500 lbmol/hr。注意:对于每一个灵敏度分析工况,进料中甲烷和水的比必须维持恒定(提示:通过108Fortran 模块完成)采用 Peng-Robinson 物性方法。完成后另存为文件名:Fortran.BKP。 X 4
6、O T 具体过程如下:画出流程图,如下所示。其中 MIX 采用/Heat Exchangers/Heater 模块,REFORMER 采用/Reactors/RStoic 模块。Temp = 150 FPress = 900 psiTemp = 70 FPress = 15 psiTemp = 1100 FPress = 850 psiTemp = 1100 FPress = 850 psiCH4 (转化率) = 0.995109输入组分 CH4、H 2O、H 2、CO。采用 PENG-ROB 物性方法。110查看二元交互参数。指定 CH4 物流。温度 150 F,压力 900 psi,CH4
7、 流率初值为 100 lbmol/hr。111指定 H2O 物流。温度 70 F,压力 15 psi,H2O 流率初值为 400 lbmol/hr。指定 MIX 模块。温度 1100 F,压力 850 psi。112指定 REFORMER 模块。温度 1450 F,压力 20 psi。设定 REFORMER 模块中的 Reactions 选项。点击 New.添加新反应。点击 New.按扭添加新反应113定义反应 CH4+H2O = 3H2+CO(注意反应物的计量系数为负值)和 CH4 的转化率0.995。定义完成后如下所示。114115进入/Data/Flowsheeting Options/
8、Fortran 选项。点击 New.添加新的 Fortran 模块。输入 Fortran 模块的 ID。点击 New.按扭添加新 Fortran 模块116点击 New.定义一个新的 Fortran 变量。输入变量名字 CH4,代表 CH4 物流中 CH4 的流率。点击 New.按扭定义新 Fortran 变量117定义 CH4 变量。选 Streams(物流)类、Mole-Flow 类型、CH4 物流、CH4 组分。定义完成后如下所示。点击 New.定义第二个 Fortran 变量。点击 New.按扭定义第二个 Fortran 变量118输入变量名字 H2O。定义 H2O 变量。选 Stre
9、ams(物流)类、Mole-Flow 类型、 H2O 物流、H2O 组分。119定义完成后如下。指定 Fortran 选项。输入 H2O = 4 * CH4,注意从第 7 列以后输入(Fortran 语言规定) 。第七列以后120定义 Sequence 选项。选 Use read/write variables(使用读/写变量) ,Read variables 和Write variables 分别为 CH4 和 H2O。进入/Data/Model Analysis Tools/Sensitivity 选项。点击 New.定义新的灵敏度分析。点击 New.按扭定义新的灵敏度分析121输入刚定义
10、的灵敏度分析的 ID。点击 New.添加新的变量。点击 New.按扭定义新的变量122输入变量名字 CH4,代表 CH4 物流中 CH4 的流率。定义 CH4 变量。选 Streams(物流)类、Mole-Flow 类型、CH4 物流、CH4 组分。123同样定义 H2O 变量。选 Streams(物流)类、Mole-Flow 类型、H2O 物流、H2O 组分。定义 DUTY 变量。选 Blocks(模块)类、Block-Var 类型、QCALC 变量。124至此,定义了三个变量 CH4、H2O 和 DUTY,完成后如下。设定 Vary 选项。选 Mole-Flow 类型、CH4 物流、CH4
11、 组分,CH4 变化范围 100-500(lbmol/hr) ,步长 100(lbmol/hr) 。125设定 Tabulate(列表)选项。选 H2O 和 DUTY 制表。打开控制面板,运行如下。126查看灵敏度分析的结果如下。可以看出 CH4 流率从 100 变至 500 lbmol/hr,H2O 和DUTY 的变化情况。下面将上面得到的结果作图。选中 CH4 流率一列,点击下拉菜单 Plot/X-Axis Variable。127128选中 DUTY 一列,点击下拉菜单 Plot/Y-Axis Variable。点击下拉菜单 Plot/Display Plot。129作出 DUTYCH4 图如下。它反应了加热器的热负荷 DUTY 随 CH4 流率的变化情况。