以梦为马,不负韶华

搜索
查看: 8761|回复: 0
收起左侧

基于Fortran的AspenPlus单元过程用户模型的开发基础知识

[复制链接]
发表于 2009-11-28 09:28:52 显示全部楼层 |阅读模式
基于Fortran的AspenPlus单元过程用户模型的开发基础知识

http://hi.baidu.com/kysky_zhuang/blog


Aspen Plus是一种通用的化工过程模拟、优化和设计软件,但它提供的通用过程单元模型并不能满足用户的所有需求,如反应器,并不能把所有的反应及反应本质模拟出来。但是Aspen Plus提供了用户扩展接口,用户可以根据自己的需要将自定义的过程单元模型添加到该软件中并使用。Aspen Plus提供了基于Fortran用户模型的开发方式,即可以编写Fortran用户子程序,编译后产生一个动态连接库,从而实现用户模型和Aspen Plus的结合。

用户模型是一黑箱模型,内部程序可是根据需要自己定义,输入物流可以在Stream中先定义,将流股信息(如温度、压力、组成及流量等)按照Aspen Plus的内部规定传递到模型中,参与模型的内部计算;然后将模型计算的结果通过输出物流信息传递出来,用户可以根据自己的需要来定义,但必须要遵守Aspen Plus的内部规定。

由于外部Fortran子程序不能被解释,需要一个Fortran编译器。不同版本的Aspen Plus软件需要不同版本的Fortran编译器,如Aspen Plus 11.1只需要Visual Fortran 6.0版本即可;Aspen Plus 2006就需要Intel Fortran 9.0版本,且必须在Microsoft Visual Studio.net环境下,在Aspen Plus Simulation Engine上编译,编译成功后生成用户模型的目标模块文件(*.obj)或共享库(*.dll)。

产生的目标模块文件(*.obj)若能正常链接和求解,运行Aspen Plus的电脑上必须安装Intel Fortran Compiler和Microsoft Visual Studio .NET 2003(或2000)这类的大程序,这样就占据了大量的电脑空间。当产生共享库(*.dll)后,和Aspen Plus文件放在一个文件夹,并在装载和求解用户模型的DLOPT文件中指定路经,就可以直接运行内嵌用户模型的Aspen Plus文件了。

实现用户模型的嵌入,产生共享库(*.dll)的步骤如下:

1)      用Fortran写一个用户模型(外部子程序),生成*.f文件;

2)      使用aspcomp命令编译用户模型,即aspcomp *.f,生成*.obj文件;

3)      使用asplink把用户模型链接到共享库中,即asplink *.dll,生成*.dll文件;

4)      为Aspen Plus系统提供链接共享库的路径,即用记事本编译DLOPT文件,并保存为*.opt文件。同时还要在AspenPlus的文件里Run-Run Settings-Engine Files-Linker域中指定DLOPT文件。

这样就完成了求解用户模型时AspenPlus运行所需要指定的特定共享库。

DLOPT文件的编编译程序如下:

! This is an example DLOPT file for Windows

:no_local   ! Do not include object module files from run directory

D\PATH\*.dll     ! Use the shared libraries in the D\PATH

!directory when resolving user model symbols

其中“D\PATH”是DLL文件所在的路径。完成这一步之后,还需要在AspenPlus的文件里Run-Run Settings-Engine Files-Linker域中指定DLOPT文件,如图1所示。这样就完成了求解用户模型时AspenPlus运行所需要指定的特定共享库。

注意:当路径发生变化时,DLOPT文件里的路径要重新编辑。

评分

参与人数 4韶华币 +23 收起 理由
luckyzone0 + 5 谢谢帮助
chenhaijunsjy + 3 积极发表议题
队长传我球 + 5 好资料,非常感谢
Horse + 10

查看全部评分

本帖被以下云收藏推荐:

发表于 2009-11-28 09:31:10 显示全部楼层
很不错的东西,,,自己开发的话难度很大,,
发表于 2009-11-28 11:18:37 显示全部楼层
本帖最后由 kkndness 于 2009-11-28 11:24 编辑

难度应该不太大的,会fortran会VB就差不多了。用fortran做模型,有VB定义界面。但是关键就是对于建立的模型的准确度和适用度如何,还有求解的效率了。
发表于 2009-12-11 10:46:28 显示全部楼层
1# zzuwngshilei


请教一下,你用Fortran开发时候,之前有没有用过excel呀,有个aspen的资料,是关于做一个超滤膜渗透的,资料上显示,这个又可以用excel做,也可以用Fortran编程做,不知道你对aspen 中excel开发过程了解多少,我正在用这方面的,有机会向你学习一下。。
发表于 2010-12-15 16:29:26 显示全部楼层
唉,难呀,不好弄
发表于 2011-3-7 14:05:43 显示全部楼层
激活账号{:1_205:}
发表于 2011-3-11 21:03:11 显示全部楼层
{:1106_393:}
发表于 2012-9-1 17:09:11 显示全部楼层
楼主,aspen v7.3需要用哪个编译器啊?
发表于 2012-11-19 13:44:29 显示全部楼层
一直想学习 感觉好深奥
发表于 2013-1-3 00:40:08 显示全部楼层
貌似很难的样子{:1106_367:}
回复 支持 反对

使用道具 举报

发表于 2009-11-28 09:28:52 显示全部楼层
这个东西真的看的头大呀
回复 支持 反对

使用道具 举报

发表于 2009-11-28 09:28:52 显示全部楼层
有没有更详细的资料?
回复 支持 反对

使用道具 举报

发表于 2009-11-28 09:28:52 显示全部楼层
fortran不难,就是跟aspen接口的比较难弄
回复 支持 反对

使用道具 举报

发表于 2009-11-28 09:28:52 显示全部楼层
楼主,问一下,编译fortran子程序时,aspenplus用的编译器必须是和其版本配套的吗?
回复 支持 反对

使用道具 举报

发表于 2009-11-28 09:28:52 显示全部楼层
最近在学这方面的内容,多谢楼主
回复 支持 反对

使用道具 举报

发表于 2009-11-28 09:28:52 显示全部楼层
我用的是7.1和8.4,但安装的程序里面都找不到aspen plus simulation engine window。不知咋办。求解。非常感谢
回复 支持 反对

使用道具 举报

发表于 2009-11-28 09:28:52 显示全部楼层
赞!不过好深奥~
回复 支持 反对

使用道具 举报

不想打字就选择快捷回复吧
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|以梦为马,不负韶华

GMT+8, 2025-4-10 22:32

Powered by 以梦为马,不负韶华

© 2024-2099 Meng.Horse

快速回复 返回顶部 返回列表