Horse 发表于 2010-1-9 14:30:27

基于Fortran的AspenPlus单元过程用户模型的简单例子

Inlet:Composition:H2\N2\CO2,1\1\1kmol/hr
T:25℃,P:1atm(A)
要求:
Outlet1:Composition:H2\N2\CO2,0.2\0.5\0.6kmol/hr
T:25℃,P:2atm(A)
Outlet2:Composition:H2\N2\CO2,0.8\0.5\0.4kmol/hr
T:25℃,P:1atm(A)

1.      建立aspen plus流程
全局规定、定义组成、选择物性方法等不再赘述。Block选择user model中的user。




2.
编写Fortran程序
很多用户模型的例子都在目录D:\Program Files\AspenTech\Aspen Plus 11.1\Engine\user下。Fortran用户模型的开发涉及到AspenPlus内部单元模块、物流等和系统之间的参数传递,这可以通过扩展接口程序来实现,接口程序都有自己特殊的定义方式,如user model中的user和user2通过不同的用户模型子程序和参数来实现参数的调用。
编写Fortran用户模型的规定:子程序名不得超过6个字符;所有的实型变量必须声明为双精度;不得修改公用块(如dms_ncomp.cmn)的任何变量…
就本例子,user模型的程序接口选择目录下的USRUSR.f,主程序简单地写了进口物流的信息如何进入模型进行计算,计算后的结果如何传递到出口物流中,如下图。





子程序名为model,保存文件名sep.f。
接口中各参数的意义和物流信息可以参考文档《User Models》的第六章和附录部分。
3.       完成程序编写后,在simulation engine上用aspcomp命令编译,一步步修正程序中的语法错误…直至通过,产生一sep.obj文件。



4.      在block的用户单元操作中,model中输入子程序名,Values中输入程序中定义的a/b/c三参数的值。


5.      运行结束后察看结果


6.      另外,也可以对user进行灵敏度分析等
   定义变量




察看结果

上述只是简单地介绍了单元用户模型的用法,还有更深入的使用如aspen plus公用块和子程序。
当然,aspen plus只是软件工具,模拟结果的正确与否和精确度还是依赖自己建立的模型。希望本文能给大家使用user model能有启发作用。

dzh 发表于 2010-1-11 09:49:37

谢谢小马哥!我也做过这个例子,不过仅此而且,再往下深入就很难了,所以我决定先建立真正的数据模型,然后再加入需要的aspen 公用快和子程序,这是个大体思路,接下来路还很长。。。

小柯 发表于 2010-2-25 11:26:29

谁抄袭我的DD,还不引用出处那~~~侵权那~~~

saber 发表于 2010-4-7 11:49:56

找了许久,最后还是在马后炮上找到了,谢谢马哥

happystory 发表于 2010-4-14 11:20:07

回复 3# 小柯

柯姐也到这边来逛了。呵呵

普通会员 发表于 2010-4-19 11:46:12

好东西,感谢分享,学习了

wanglianshan 发表于 2010-9-26 22:24:18

好东西啊   ,赶紧学习,

bigchenrui 发表于 2012-1-19 11:30:38

多谢楼主提供这么好的资料,积累知识!

Pat小熊 发表于 2012-12-7 09:48:29

嵌入自编程序模块到aspen plus和hysys太难了{:1106_384:}

PANPENG73 发表于 2012-12-7 11:10:33

没嵌过,貌似可以试试

天人水 发表于 2012-12-7 11:18:45

aspen的高级应用啊!

060703045 发表于 2012-12-11 15:28:26

马哥威武,多谢了!

唐钰小宝阿奴儿 发表于 2010-1-9 14:30:27

您好 看了您的例题 觉得您真的太棒了 是这方面的前辈 请问可以提供一点儿中文的这方面的资料吗

璇雅 发表于 2013-7-18 17:36:38

这个水平很高啊,学习学习

创新依旧 发表于 2010-1-9 14:30:27

路过学习一下,谢谢马哥分享~

jiaohw910 发表于 2010-1-9 14:30:27

这个对于fortran有一定的要求啊

唐钰小宝阿奴儿 发表于 2010-1-9 14:30:27

有没有源程序。

chenhaijunsjy 发表于 2010-1-9 14:30:27


很好的东西。谢谢了楼主

尤雅梦飞 发表于 2010-1-9 14:30:27

请问这个是在usrusr.f基础上添加主程序还是修改呀?我想试试我的编译器和平台是不是连上了······

尤雅梦飞 发表于 2010-1-9 14:30:27


*** SEVERE ERROR
      ERROR DURING DYNAMIC LINK OF USER ROUTINE(S) OR IN-LINE FORTRAN
      PLEASE CHECK FILE _5341uet.ld FOR LINKER MESSAGES.

是不是编译器没连好的原因啊···
页: [1] 2
查看完整版本: 基于Fortran的AspenPlus单元过程用户模型的简单例子