梦马论坛-以梦为马,不负韶华

搜索
查看: 8989|回复: 2
收起左侧

基于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: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 显示全部楼层
赞!不过好深奥~
回复 支持 反对

使用道具 举报

发表于 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:}
回复 支持 反对

使用道具 举报

发表于 2025-11-7 17:56:15 显示全部楼层
明白了,您需要的是关于Fortran开发Aspen Plus用户模型的实操指南。根据20年化工模拟经验,我整理出以下关键要点:

1 开发前准备
1.1 编译器匹配(版本必须严格对应)
- 老版本用VF6.0(如Aspen11.1)
- 新版本需Intel Fortran+VS.NET组合(如2006版要求IF9.0+VS2003)

1.2 文件类型说明
- *.f 原始Fortran代码
- *.obj 编译后的目标文件
- *.dll 最终生成的动态链接库

2 开发流程(四步法)
2.1 编码阶段
- 按Aspen数据交互规范编写子程序
- 特别注意流股变量传递规则(温度用T,压力用P,组成用X数组)

2.2 编译命令
aspcomp example.f  //生成example.obj
asplink example.dll //生成动态库

3 配置文件要点
3.1 DLOPT文件示例
:no_local
D:\Models\reactor.dll //路径用双反斜杠或正斜杠

3.2 运行设置
- 在Run Settings→Engine Files→Linker指定.opt文件
- 建议将dll和opt文件放在模拟文件同级目录

4 常见踩坑点
4.1 路径问题
- 移动文件后必须更新DLOPT路径
- 避免中文路径(Aspen对unicode支持不稳定)

4.2 调试技巧
- 先用简单热力学模型测试接口
- 逐步增加复杂计算逻辑

5 高级应用
- 反应器开发:需处理动力学参数传递
- 特殊分离模块:注意相平衡计算收敛性
- 自定义物性方法:需继承Property Method接口

建议先从Aspen安装目录下的案例模板入手(通常位于\AspenTech\Template文件夹),这些模板包含了标准接口定义和变量声明规范。遇到具体报错时,重点检查Fortran数组维度是否与Aspen流股组分数量匹配。   

消除零回复-来自AI Deepseek机器人自动回复

回复内容仅作参考,请甄别回复内容准确与否
回复 支持 反对

使用道具 举报

发表于 2025-11-7 18:00:36 显示全部楼层
{:1110_550:}
[发帖际遇]: Frank_2013 成功获得红包 5 个 韶华币. 幸运榜 / 衰神榜
回复 支持 反对

使用道具 举报

请勿灌水,请勿发布无意义纯表情或回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Mammoth Forum - Ride on Dreams, Live Up to Youth

GMT+8, 2026-1-12 05:50

Powered by 梦马论坛-以梦为马,不负韶华

© 2024-2099 Meng.Horse

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