jiangpeng 发表于 2014-4-10 22:25:46

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

Aspen Plus是一种通用的化工过程模拟、优化和设计软件,但它提供的通用过程单元模型并不能满足用户的所有需求,如反应器,并不能把所有的反应及反应本质模拟出来。但是Aspen Plus提供了用户扩展接口,用户可以根据自己的需要将自定义的过程单元模型添加到该软件中并使用。Aspen Plus提供了基于Fortran用户模型的开发方式,即可以编写Fortran用户子程序,编译后产生一个动态连接库,从而实现用户模型和Aspen Plus的结合。用户模型是一黑箱模型,内部程序可是根据需要自己定义,输入物流可以在Stream中先定义,将流股信息(如温度、压力、组成及流量等)按照Aspen Plus的内部规定传递到模型中,参与模型的内部计算;然后将模型计算的结果通过输出物流信息传递出来,用户可以根据自己的需要来定义,但必须要遵守Aspen Plus的内部规定。由于外部Fortran子程序不能被解释,需要一个Fortran编译器。不同版本的AspenPlus软件需要不同版本的Fortran编译器,如Aspen Plus V7.2,只需要Visual Fortran 6.5版本即可;在Aspen Plus Simulation Engine上编译,编译成功后生成用户模型的目标模块文件(*.obj)或共享库(*.dll)。产生的目标模块文件(*.obj)若能正常链接和求解,运行AspenPlus的电脑上必须安装Intel Fortran Compiler和Microsoft Visual Studio .NET 2003(或2000)这类的大程序,这样就占据了大量的电脑空间。当产生共享库(*.dll)后,和Aspen Plus文件放在一个文件夹,并在装载和求解用户模型的DLOPT文件中指定路经,就可以直接运行内嵌用户模型的Aspen Plus文件了。实现用户模型的嵌入,产生共享库(*.dll)的步骤如下:1)      用Fortran写一个用户模型(外部子程序),生成*.f文件2)      使用aspcomp命令编译用户模型,即aspcomp*.f,生成*.obj文件;(在此之前,必须选select compiler for aspen propertis)3)      使用asplink把用户模型链接到共享库中,即asplink *.dll,生成*.dll文件;4)      为Aspen Plus系统提供链接共享库的路径,即用记事本编译OPT文件,并保存为*.opt文件。同时还要在AspenPlus的文件里Run-Run Settings-Engine Files-Linker域中指定OPT文件。这样就完成了求解用户模型时AspenPlus运行所需要指定的特定共享库。OPT文件的编编译程序如下:! This is an example OPT file for Windows:no_localD\PATH\*.dll   ! Use theshared libraries in the D\PATH其中“D\PATH”是DLL文件所在的路径。完成这一步之后,还需要在AspenPlus的文件里Run-Run Settings-Engine Files-Linker域中指定OPT文件。这样就完成了求解用户模型时AspenPlus运行所需要指定的特定共享库。注意:当路径发生变化时,OPT文件里的路径要重新编辑。

jiaohw910 发表于 2014-4-10 22:25:46

谢谢讲解,最近在学习fortran

dragon747005 发表于 2014-4-10 22:25:46

希望有更多的大牛给大家分享Fortran使用经验

chenhaijunsjy 发表于 2014-4-10 22:25:46


还是不错的,谢谢!

zhangzhang 发表于 2014-4-10 22:25:46

C\Program Data\Aspen Tech\Aspen plus V8.0\EUS."F was not found这是咋回事啊希望您能解答一下,不胜感激啊 困扰了好长时间了{:1106_364:}

尤雅梦飞 发表于 2014-4-10 22:25:46

请问楼主怎么查aspen版本匹配的fortran编译器版本呀~aspen8.6release note里也没找到~ 我用V8.6和intel fortran12.x/2011和microsoft visual studio 2010连接OK了但是运行时连接不了,是版本不对么~

ZL琳 发表于 2014-4-10 22:25:46

我想问一下,怎么可以同时外接两个子程序啊
页: [1]
查看完整版本: 基于Fortran的AspenPlus单元过程用户模型的开发基础知识