|
最近项目组有位新人需要通过自己的程序访问Aspen Plus,所以请教到我。考虑到应该有不少人也会遇到这类问题,所以把我综合使用自编程序与Aspen Plus互联的个人经验分享一下。
在我看来,自编程序与Aspen Plus互联可分为三种情况:
(一) 通过Aspen Plus的自动控制(ActiveX)接口。
(1)互联的方法:
这是三种互联方式中最为初级的方式,Aspen Plus用户手册提供了详尽的方式,在《使用ASPEN PLUS的ActiveX自动控制服务器》章节中提供了详细的示例代码;也有不少人发表了相关的论文,如孔祥冰的《Aspen Plus服务器在软件集成中的应用》就通过实际Aspen Plus流程和代码的形式演示了大体操作方式。
Aspen Plus官网以及大部分论文都是以Visual Basic 6.0语言的形式进行演示的。实际上,大部分编程语言都可以实现以上功能。如可以在Excel中通过VBA宏代码实现访问和控制Aspen Plus流程,在MatLab中同样可以访问和控制Aspen Plus流程。浙大有人搞了一个MatLab访问Aspen Plus的工具箱,还发表了一篇论文,虽然这个工具箱没有广为流传,实际上也就是这个原理。
(2)使用范围和局限性:
我见识过招聘会上不少自吹自擂说自己成功后台调用Aspen Plus的毕业生,他们绝大多数都是通过这种方式。很粗陋,直接照着示例代码抄一遍就能实现,没什么真本事。
这种方式是真的有用处的,只是大部分人不知道怎么用。在我的项目经历里,有两处是印象深刻的:一种是通过自己的程序控制一个或者多个Aspen Plus流程,进行最优化求解;另一种是直接从已经运算好的Aspen Plus bkp文件中读取精馏塔水力学数据(粘度、表面张力等),再用自己编写的模型计算漏液、雾沫夹带、液泛等数据。
缺点嘛,更多的还是使用Aspen Plus表皮的东西,比如Aspen Plus算好的流程或者数据;还有一个缺点,那就是可能调用过程速度不理想,稳定性也不是十分的理想。当然,Aspen Plus能开放接口已经很不错了,我还是深表钦佩的。
(二) 通过Aspen Plus的热力学接口。
(1) 互联的方法:
这里所谓的热力学接口其实是一种名为CAPE-OPEN的国际标准化接口,具体可参考www.colan.org,当然,你一时半会也看不懂。因为Aspen Plus将整个模拟软件大体分为设备模块、热力学、模拟器几大部分,它允许你直接访问热力学部分。
这个热力学部分允许访问是不得了的,你可以直接传入温度、压力、组成请求闪蒸,或者直接得到这种情况下的热量、粘度、密度等等数据。这样,比如你在MatLab、Fluid、Excel中正在进行某个方程的计算,但是这个方程需要组分准确的物性数据,就不用自己去查找了,直接扔给Aspen Plus就给你计算出来了。是不是觉得很牛逼,借助Aspen Plus丰富的物性模型和数据库,应该比你自己算的准确的多。
Aspen Plus用户手册并没有提供这种方法的实现代码,因为这属于CAPE-OPEN标准的范畴而不是Aspen Plus的范畴。除此之外,Hysys也支持访问热力学部分的功能,而且比Aspen Plus还优秀。
这个接口大体实现代码如下:
Aspen Plus热力学分 -> GetOverallProperty(“焓”,“摩尔基准”,结果);
当然,实际操作比这复杂的多。
(2) 适用范围和局限性。
适合有自己的数学模型,但是计算中需要用到组分的基础物性或者混合物物性。比如Fluid流体力学计算中就需要混合物的物性。
但是,这个接口标准理解起来和实现起来还是非常非常复杂的,如果一个本科毕业生能够完美的实现这部分功能,找工作的时候说自己的后台调过Aspen Plus还是比较有技术含量的。
同时,Aspen Plus虽然支持热力学接口,但是刚开始的连接速度实在是太慢太慢了,哎呀,慢的让人难受,希望Aspen 公司能够改进一下。
(三) 通过Aspen Plus的设备模块接口。
(1)互联的方法:
假如你雄心壮志学完化工原理想开发一个精馏塔模块,或者自己所从事的项目需要一个计算模型,这个模型又需要用到Aspen Plus的物性数据,除了(二)这种从外界调用Aspen Plus热力学的方法,还可以直接镶嵌到Aspen Plus的内部去。
Aspen Plus用户手册提供了相关示例代码,分为两种方式(1)用Fortran代码的形式,我相信你看的头几遍都是一脸懵逼,因为Aspen Plus Fortran代码形式的接口实在是太乱太乱了,如果你硬着头皮还是可以看懂的;(2)另一种又是CAPE-OPEN接口,Aspen Plus并没有详细描述,还好网上有家叫AmsterChem的公司提供了一个已经用C++和VB做好的实例,如果你的编程功底足够,且对接口标准有了不错的理解,直接在人家版本的基础上改进就行了。
这种方式的互联也是很有技术含量的。之前有个好友在参与项目中需要开发一个计算模块,这个计算模块有他们自己的数学关联式和模型,但是需要用到组分的基础数据和混合物数据,就是开发成独立的模块镶嵌到Aspen Plus中实现的。
(3) 适用范围和局限性。
局限性嘛,需要对编程和接口标准有深入的理解,入门比较困难。
以上可能是访问Aspen Plus互联的三种方式了,希望对于需要的人有所帮助。本人水平有限,难免有纰漏之处,敬请指正。
|
评分
-
查看全部评分
|