一、简介

DWSIM诞生于2004年,其代码最初源自Excel VBA宏实现的PR EOS和Flash算法。同年晚些时候,开发者Daniel Wagner Oliveira de Medeiros基于可运行的绘图界面示例,创建了工艺流程图绘制设计器。经数年代码积累后,DWSIM正式面世!
如今,该软件已兼容主流操作平台,被全球数以百计的学生、教师及独立咨询师广泛使用。DWSIM已被众多科学研究论文和文章所使用和引用,这证明了其计算方法与模型的能力与可靠性。2013年年中,CO-LaN管理委员会将2012年度CAPE-OPEN奖项授予Daniel Wagner,以表彰其在以开源方式发布的流程建模环境(DWSIM)中首次实现CAPE-OPEN接口。

在这里插入图片描述

DWSIM最初是由VB.NET编写的,后续版本逐步增加C#代码,因此其代码主要由VB.NET和C#编写,其开源协议为GPL-3.0。相较于前两个开源软件,该软件最大的特点是成熟,已经被广泛使用和引用。

Offical Website: http://dwsim.inforside.com.br
Source Code: http://github.com/DanWBR/dwsim
Support: https://sourceforge.net/p/dwsim/discussion/

二、DWSIM特点

DWSIM支持稳态/动态流程建模、热力学性质计算、单元操作模拟等核心功能,兼容Windows、Linux、macOS多系统。它最吸引人的地方在于:

  • 双界面适配:Classic UI适配Windows系统,稳定可靠;Cross-Platform UI基于Eto.Forms,在Linux、macOS上呈现原生体验,不用再为系统兼容头疼。
  • 功能全面:从基础的物流计算、单元操作建模,到高级的灵敏度分析、流程优化、Python脚本自动化,甚至动态模拟与PID控制,功能覆盖化工模拟全场景。
  • 开源免费+社区支持:源代码公开可定制,无版权费用;官方提供详细文档、教程和论坛支持,全球开发者共同维护更新。
  • 兼容性拉满:支持CAPE-OPEN标准,可对接外部物性包和单元操作;能导出XML/JSON文件,还能通过Excel插件直接调用热力学计算功能。

三、核心功能

1. 流程建模:稳态+动态双模式覆盖

无论是基础的稳态流程设计(比如混合、分离、反应流程),还是复杂的动态模拟(比如设备启停、负荷波动、PID控制),DWSIM都能轻松应对。

  • 稳态模拟:支持物流、能量流连接,自动完成物料衡算和能量衡算,可视化流程图(PFD)拖拽式操作,新手也能快速上手。
  • 动态模拟:可添加PID控制器、液位计、压力表等设备,模拟瞬态过程(如储罐液位控制、反应器温度波动),还能设置事件触发和调度方案。

2. 热力学计算:精准又全面

模拟的核心是物性数据,DWSIM内置了1500+化合物数据库,支持多种热力学模型:

  • 状态方程(EOS):Peng-Robinson、Soave-Redlich-Kwong、PRSV2等,适配非极性/极性体系、高压/低压场景。
  • 活度系数模型:NRTL、UNIQUAC、Modified UNIFAC等,适合精馏、萃取等分离过程。
  • 专项模型:IAPWS蒸汽表、海水模型、黑油模型、CoolProp物性库,覆盖特殊体系模拟需求。
  • 石油馏分表征:支持从蒸馏曲线或 bulk 性质生成假组分,满足石油化工流程模拟。

3. 单元操作与反应器:覆盖全流程需求

内置数十种单元操作模型,无需额外插件:

  • 基础设备:混合器、分离器、换热器、泵、阀门、管道等。
  • 分离设备:shortcut精馏塔、严格精馏塔、吸收塔、萃取塔等。
  • 反应器:转化反应器、平衡反应器、Gibbs反应器、PFR、CSTR等,支持均相/多相反应、催化反应。
  • 特色设备:自定义单元操作(通过脚本编写)、Excel单元操作(基于表格建模)、固体分离器等。

4. 高级工具:让模拟更高效、更深入

  • 灵敏度分析:研究单个/多个变量对目标参数的影响(如温度对反应转化率的影响),自动生成数据报表和图表。
  • 流程优化:多变量优化(最大化产率、最小化能耗),支持约束条件设置。
  • 脚本自动化:通过IronPython/Python.NET编写脚本,实现批量模拟、自定义计算逻辑、流程控制,大幅提升工作效率。
  • 结果导出:可生成PDF/ODS/XML格式报告,也能直接同步到Excel进行后续分析。

5. 定制化能力:满足特殊场景需求

如果基础功能无法覆盖你的需求,DWSIM的定制化能力会让你惊喜:

  • 物性计算重载:通过脚本修改默认物性计算逻辑(如自定义粘度混合规则)。
  • 单元操作定制:编写Python脚本Override设备计算流程,适配特殊设备模型。
  • 自动化对接:通过COM/.NET接口,可与Excel、MATLAB等软件联动,实现批量模拟和数据处理。

四、DWSIM的求解器

FlowsheetSolver.vb是DWSIM流程模拟软件的核心求解器实现,核心功能是管理流程中物料流、能量流、单元操作的计算逻辑,支持同步/异步/并行计算、循环流收敛加速,是稳态与动态流程模拟的核心执行模块。

其求解方法也可以归结为序贯法(Sequential Method),即按流程中对象的依赖顺序,依次计算每个对象的状态,直到所有对象的状态都收敛。物料流、能量流、单元操作的地位都是平等的,物料流、能量流虽然为流对象,但在求解时也被视为独立的对象,与单元操作并行计算。

1 对象计算核心方法

  • 支持物料流(MaterialStream)、能量流(EnergyStream)、单元操作(UnitOp)的单独计算,通过CalculateObjectCalculateMaterialStream实现。
  • 处理对象间的输入输出连接联动,修改一个对象后自动触发下游关联对象的重新计算。

2 计算队列与流程控制

  • 通过ProcessCalculationQueue管理计算队列,处理对象计算顺序、用户取消请求(CancellationToken)。
  • 集成异常捕获机制,记录计算错误信息,支持“求解中断时停止”或“继续执行”的灵活配置。

3 循环流收敛与加速

  • 识别流程中的循环流(Recycle),通过Broyden加速方法减少迭代次数,提升循环系统的收敛速度。
  • 自动判断循环流收敛状态(温度、压力、质量流量误差满足阈值),收敛后退出迭代。

4 动态系统

  • 支持动态模式(DynamicMode),在动态模拟中,循环流(Recycle)被视为冗余,无需额外计算,代码如下:
'in dynamic mode, recycles are redundant

这意味着该求解器在时间方向上是逐步显示求解的。

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐