开源的流程模拟软件
Devin
一直在跨界学习,遗憾都没能精进。
​关注他
无所谓的小号、法式滚筒YEboss 等 147 人赞同了该文章
前言最近很多朋友的Aspen都过期了。借此机会,介绍一下两款开源的流程模拟软件,DWSIM和COCO。虽然无法跟商业化的Aspen相比,但作为免费的、社区自发编写和维护的,其实非常了不起。流程模拟软件的体系复杂,模块丰富,代码量非常大,是不同专业的人合力编写、维护的,所以要去构建一个流程模拟软件是非常艰巨的任务。如果你自己写过一些模块,应该能体会,要把不同的模块串成一个软件的难度。我曾听过参与Aspen的部分模块专家的演讲,他提到很多算法的点子都其实很停留在他们读书时,因为体系庞大难以更新维护。所以开源软件,能做到基本架构出流程模拟软件,是实属不易的。 化工流程模拟软件化工的模拟计算软件最常用的是三类,流程模拟软件、物理场模拟软件(传热、力学等物理场计算的软件)、工程计算软件。流程模拟软件是很多人化工从业人员最容易接触到的一类。化工流程模拟软件,是用来模拟化工过程的软件,常常用在化工设计和操作优化中。很多朋友也用来查询物性数据、模拟一些多相体系的热力学了性质。但化工流程模拟软件不限于化工,我曾经发现一些搞制冷,热工、火电、核工的朋友也用。跟自己建模相比,流程模拟软件最大优势是简单方便,然后有丰富的物性、热力学数据。也是因为这样的原因,主流的流程模拟软件都是商业化的,有专门的公司在维护。一些大型化学、化工企业,往往也有内部的流程模拟程序或者软件,但没有商业化和公开。所以下面仅列出了主流、商业化的流程模拟软件: - 美国SimSci-Esscor公司的PRO/II
- 美国AspenTech公司的Aspen Plus,Aspen Hysys
- 英国PSE公司的gPROMS
- 美国Chemstations公司ChemCAD
- 美国WinSim Inc. 公司的Design II
- 加拿大Virtual Materials Group的VMGSim
- 美国Honeywell公司的Unisim(在反垄断前,跟Hysys原来好像是一家,所以旧版本好像很像)
- 附带一个全球的其他化工相关的软件列表:全球的其他化工相关软件(商业、开源都有)
可以清楚地看到,流程模拟软件领域美国一家独大,然后英国和加拿大各有一家企业。一些老牌化工大国,可能企业内部有自己的程序,但也没有形成商业化的流程模拟软件。在我国,只有青岛科技大学曾经自己开发过流程模拟软件,评论中网友说是没有开发、测试完。因为开发和维护的成本,商业流程模拟软件往往非常贵。所以国内,很多化工从业人员使用的往往是盗版的流程模拟软件。在越来越重视版权的时代,流程模拟软件的获取成本也越来越高。近期很多人的Aspen过期,其实就带来了很多麻烦。 上面提到的流程模拟软件可以按照程序架构分为两类,模块化结构和方程结构。模块化结构的核心算法是序贯模块算法。序贯模块法的思想来自于单元操作集成,就是把不同的单元操作通过上下游的流股集成在一起。因为是不同的单元操作的拼接而成,所以模块化结构是自下而上的结构(bottom-up structure)。方程结构的流程模拟软件,将不同的单元操作的方程集合在了一起,虽然表面看依然是不同的模块的拼接,但是后台看到的是方程的集合整体,是自上而下的结构。所以序贯模块法的流程模拟软件程序设计时,是分不同的单元操作模块去独立的设计算法,非常符合工程师直觉。该算法的优势是算法比较健壮(鲁棒性)、可靠;容易编程和维护;改变流程结构方便,可以容易地添加删除模块。这里重点讲一下序贯模块算法的缺点: - 结构刚性,只能从进口计算出口;只适合模拟计算,但不适合设计和优化。进行模拟计算时,进口工况已知,但出口不知。序贯模块法可以自然地从进口开始算起。进行设计和优化时,往往知道的是出口情况,不知进口情况。因为序贯模块法的结构是刚性的,只能从入口到出口。所以需要提供一个初始值,但有的时候初始值离目标值太远,存在的收敛性、不能满足约束等问题。但方程结构的,可以自由地把改变变量的属性,输入变量和输出变量可以自由地变换。
- 处理回流、复杂拓扑结构的网络有问题。在处理流股的回流问题时,需要切断流股,需要对预切断的流股进行初始化,初始值会带来收敛性的问题。当网络的连接方式特别复杂,即拓扑结构复杂,也会带来运算上的问题。
第一代流程模拟软件,都是模块化结构,含Aspen Plus,Aspen Hysys,PRO/II,ChemCAD,Unisim(很多第一代流程模拟软件,现在也提供了一些基于方程结构的接口,像Aspen的自定义模块等)。第二代流程模拟软件,是方程结构导向的,代表是英国的gPROMS和加拿大的VMGSim,它们的优化性能、计算的速度和收敛性都有所改善。*Aspen有的模块是方程结构的,比如Custom Modeler。这里要介绍的开源流程模拟软件都是基于序贯模块法设计的。 开源化工流程模拟软件注意:因为是开源软件,所以软件的计算结果仅供参考,请注意应用时可能会带来的风险。 益于网络时代,在Github等平台上,很多同好可以协作开发软件。这里要介绍的就是商业流程模拟软件的替代选择,开源的流程模拟软件。开源的流程模拟软件是免费的,可以自行下载安装。如果你有余力进行开发,也可以加入开发者团队,写作完成日常开发和维护;也可以捐款给开发者团队。希望我国能早日有自主知识产权的工程专业软件!!! 这里要介绍的开源软件都是遵循CAPE-OPEN规范编写的。 CAPE-OPEN,(Computer-Aided Process Engineering)是一个制定计算机辅助过程工程标准的非盈利组织,主要是欧洲一些学者、化工企业、化工软件商组成。他们制定了一套通用的流程模拟软件的规范,方便不同的流程模拟软件跨平台使用,比如跟Matlab或者其他流程模拟软件。遵循它们规范的程序或软件,都实现了相应的接口。值得一提,主流的商业流程模拟软件软件,也都参与了CAPE-OPEN的项目。这里主要介绍DWSIM和COCO,两者都是遵循CAPE-OPEN规范的软件,所以它们的热力学和单元操作模块可以被主流的流程模拟软件调用,像Aspen、gPROMS等。 DWSIM作为一个开源软件来说,DWSIM的功能是比较全的,基本满足了日常的需求。与下文要介绍的COCO相比,热力学模型更多更全,因为可以从第三方公开数据库导入物性数据,扩展了适用范围。单元操作版块的功能也比COCO更全。他的开发者是来自巴西Daniel Medeiros,有丰富的工程咨询经验。 DWSIM特性: - 遵循CAPE-OPEN规范
- 支持多变量优化、敏感性分析
- 支持通过Python自定义单元操作。可以用来扩展成模拟动态过程。
- 支持从第三方来导入物性数据,下文提到了一些公开的物性数据库。
- 支持多核 CPU和GPU并行计算 (CUDA/OpenCL)。这对于模拟的流程体系庞大,或者要进行复杂的优化来说,是非常棒的功能。
DWSIM图形用户界面软件框架 - 热力学模型: CoolProp, Peng-Robinson, Soave-Redlich-Kwong, Lee-Kesler, Lee-Kesler-Plöcker, UNIFAC, Modified UNIFAC (Dortmund), UNIQUAC, NRTL, Extended UNIQUAC, Chao-Seader, Grayson-Streed, Raoult's Law, IAPWS-IF97 Steam Tables, IAPWS-08 Seawater, Black-Oil and Sour Water;
- 单元操作:混合器,分流器,分离器,泵,压缩机,管道,阀门,膨胀器,换热器,孔板,反应器,塔器,固体分离器,过滤器等。
- 实用工具: 相图,水合物计算,压力安全阀计算,纯组分物性查询,临界点查询,容器计算等。
- 工具:数据回归,自定义化合物等。
- 过程分析: 多变量有约束优化、敏感性分析。
- 可以加插件。
软件下载: 教程视频(部分需要科学上网): 其他教程: COCOCAPE-OPEN to CAPE-OPEN的缩写,即遵循CAPE-OPEN规范的开源软件。COCO可以用于稳态过程模拟,支持常见的热力学模型,自带430种化工常见物质。开发者主要是荷兰、德国、英国的学者组成,有很强的化学、化工背景。开发者有Jasper van Baten(首席开发者,欧洲化工顶尖大学,荷兰代尔夫特理工博士),Richard Baur,Harry Kooijman,Ross Taylor,Frank Eckert,William M. Barrett Jr。 DWSIM特性: - 轻量级,简洁
- 遵循CAPE-OPEN规范,可以被其他流程模拟软件调用
COCO的图形用户界面软件框架 COCO由四个部分构成,即COFE,TEA,COUSCOUS,CORN。(作者取的名字很可爱lol) - COFE(Flowsheet Environment),是图形用户界面模块,用来显示模拟的化工过程的流程图,基于序贯模块算法。
- TEA(Thermodynamics for Engineering Applications),是热力学模块,算法来源于开发团队中两个成员的开源软件ChemSep(一款开源的柱分离模拟软件) ,涵盖430种常用的物质。
- COUSCOUS(Unit-operations Simple package) ,是单元操作模块,含分离器、混合器、换热器、泵、反应器等模块。
- CORN(Reaction Numerics package),自定义反应模块。用户可以自定义反应动力学,含一些基本的反应器,平推流、全混流等。
此外还有一些可以添加的插件和模块,从而实现更多的功能,像水模块、微软电子表格输入模块。
COCO的单元操作模块
COCO的记录文件
|