11Fortran模块.docx
《11Fortran模块.docx》由会员分享,可在线阅读,更多相关《11Fortran模块.docx(25页珍藏版)》请在冰豆网上搜索。
11Fortran模块
第十一章Fortran模块
目的:
介绍AspenPlus中Fortran模块的用法。
(1)Fortran模块
●用户可以写AspenPlus执行Fortran模块
●AspenPlus能够解释简单的Fortran,并且不需要编译
●若编译较复杂Fortran代码,在运行AspenPlus引擎的机器上必须有Fortran编译器
●必须通过直接检查由Fortran模块修改的变量值来查看一个Fortran模块的执行结果
●位于/Data/FlowsheetingOptions/Fortran下
●在AspenPlus新版本中Fortran模块已改为Caculator模块,位于Data/FlowsheetingOptions/Calculator下,内容基本不变。
(2)Fortran模块举例
用Fortran模块设置Heater模块压降。
换热器压降与换热器体积流量的平方成正比。
●访问那一个流程变量?
Ø物流REAC-OUT的体积流量
Ø经过模块COOL的压降
●什么时候执行Fortran模块?
在COOL模块之前
●要读取那一个变量,写入那一个变量?
Ø读取体积流量
Ø写入压降
(3)Fortran模块的用法
●前馈控制(根据上游物流计算的值设置流程输入)
●调用外部子程序
●从外部文件输入或输出到外部文件
●写到控制面板、历史文件或报告文件上
●定制报告
(4)Fortran模块应用步骤
a)访问在Fortran内使用的流程变量
必须标识所有读取或写入的流程变量(FortranInputDefine页)
b)编写Fortran
为达到预期结果,要编写非执行(COMMON、EQUIVALENCE等)Fortran(FortranInputDeclarations页)和可执行Fortran(FortranInputFortran页)
c)规定Fortran模块在执行顺序中的位置(FortranInputSequence页)
直接规定,或
用读写变量规定
(5)注意
a)只有输入到流程中的参量才可改写
b)书写内嵌Fortran规则如下:
Fortran代码必须从第七列以后开始写
注释行必须在第一列中用“C”或“;”
第二列是空的
c)变量名不能以IZ或ZZ开头
d)在FortranInputSequence页上,规定Fortran模块在哪执行的首选方法是列出读写变量
e)当使用FortranWRITE语句时,可以用预先定义的单元号NTERM向控制面板写入。
例如,write(NTERM,*)‘FeedFlowrate=‘,flow
(6)练习
目的:
用Fortran模块维持反应器进料甲烷与水的比。
在甲烷转化装置中,甲烷和水反应生成氢气,生成一氧化碳副产品。
发生的反应如下:
CH4+H2O=3H2+CO
转化器进料含有纯甲烷和水,在进转化器之前混合加热。
甲烷转化率为99.5%,进料中甲烷对水的摩尔比为1:
4。
创建如下面所示图中的流程。
建立灵敏度模块,并绘制图表,显示反应器热负荷随进料的甲烷流率变化情况,甲烷流率从100变到500lbmol/hr。
注意:
对于每一个灵敏度分析工况,进料中甲烷和水的比必须维持恒定(提示:
通过Fortran模块完成)
采用Peng-Robinson物性方法。
完成后另存为文件名:
Fortran.BKP。
Temp=150F
Press=900psi
具体过程如下:
画出流程图,如下所示。
其中MIX采用/HeatExchangers/Heater模块,REFORMER采用/Reactors/RStoic模块。
输入组分CH4、H2O、H2、CO。
采用PENG-ROB物性方法。
查看二元交互参数。
指定CH4物流。
温度150F,压力900psi,CH4流率初值为100lbmol/hr。
指定H2O物流。
温度70F,压力15psi,H2O流率初值为400lbmol/hr。
指定MIX模块。
温度1100F,压力850psi。
指定REFORMER模块。
温度1450F,压力20psi。
设定REFORMER模块中的Reactions选项。
点击New...添加新反应。
点击New...按扭添加新反应
定义反应CH4+H2O=3H2+CO(注意反应物的计量系数为负值)和CH4的转化率0.995。
定义完成后如下所示。
进入/Data/FlowsheetingOptions/Fortran选项。
点击New...添加新的Fortran模块。
点击New...按扭添加新Fortran模块
输入Fortran模块的ID。
点击New...定义一个新的Fortran变量。
点击New...按扭定义新Fortran变量
输入变量名字CH4,代表CH4物流中CH4的流率。
定义CH4变量。
选Streams(物流)类、Mole-Flow类型、CH4物流、CH4组分。
定义完成后如下所示。
点击New...定义第二个Fortran变量。
点击New...按扭定义第二个Fortran变量
输入变量名字H2O。
定义H2O变量。
选Streams(物流)类、Mole-Flow类型、H2O物流、H2O组分。
定义完成后如下。
指定Fortran选项。
输入H2O=4*CH4,注意从第7列以后输入(Fortran语言规定)。
第七列以后
定义Sequence选项。
选Useread/writevariables(使用读/写变量),Readvariables和Writevariables分别为CH4和H2O。
进入/Data/ModelAnalysisTools/Sensitivity选项。
点击New...定义新的灵敏度分析。
点击New...按扭定义新的灵敏度分析
输入刚定义的灵敏度分析的ID。
点击New...添加新的变量。
点击New...按扭定义新的变量
输入变量名字CH4,代表CH4物流中CH4的流率。
定义CH4变量。
选Streams(物流)类、Mole-Flow类型、CH4物流、CH4组分。
同样定义H2O变量。
选Streams(物流)类、Mole-Flow类型、H2O物流、H2O组分。
定义DUTY变量。
选Blocks(模块)类、Block-Var类型、QCALC变量。
至此,定义了三个变量CH4、H2O和DUTY,完成后如下。
设定Vary选项。
选Mole-Flow类型、CH4物流、CH4组分,CH4变化范围100-500(lbmol/hr),步长100(lbmol/hr)。
设定Tabulate(列表)选项。
选H2O和DUTY制表。
打开控制面板,运行如下。
查看灵敏度分析的结果如下。
可以看出CH4流率从100变至500lbmol/hr,H2O和DUTY的变化情况。
下面将上面得到的结果作图。
选中CH4流率一列,点击下拉菜单Plot/X-AxisVariable。
选中DUTY一列,点击下拉菜单Plot/Y-AxisVariable。
点击下拉菜单Plot/DisplayPlot。
作出DUTY~CH4图如下。
它反应了加热器的热负荷DUTY随CH4流率的变化情况。