ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

WorkBuddy Skill机制解析:Aspen HYSYS与Comsol仿真自动化实战

WorkBuddy Skill机制解析:Aspen HYSYS与Comsol仿真自动化实战

不是标题党,也不是简单发个更新日志,WorkBuddy 这个工程仿真自动化平台里的 Skill 机制,确实是解决流程模拟自动化的好东西。这次 Aspen HYSYS 自动化 Skill 从早期版本一路迭代到 1.11.0,其实背后藏着一整套关于“怎么让专业仿真工程师把时间花在设计上,而不是花在点按钮上”的思路。正好,Comsol 自动化 Skill 也在同步推进,两个放一起看,能比较清楚地看到 WorkBuddy 的通用能力边界:它不绑定具体行业软件,而是把所有专业软件的操作层抽象出来,变成一个可以被大模型调用、可以被规则约束、可以被版本管理的工程自动化层。

这篇东西不是官方文档翻译,是我自己从部署、试跑、踩坑到真正用起来的全过程记录。内容包括 1.11.0 版本的实际改动、HYSYS 自动化的核心实现思路、Comsol Skill 的典型玩法,以及一些不落到代码里根本发现不了的细节。适合做流程模拟、设备设计、多物理场仿真的工程师,也适合正在调研“AI 自动化仿真”的团队参考。

1. 这次更新到底做了什么:先看清 WorkBuddy 的定位

1.1 WorkBuddy 是什么,Skill 又是什么

很多第一次接触的人会把 WorkBuddy 理解成“一个软件”,其实更准确地说,它是一个运行 AI 工作流的工作台。它的核心不是自己的仿真引擎,而是一套与专业软件对接的中间层,这个中间层在 WorkBuddy 里被叫做 Skill。

打个比方,传统仿真流程里,你和软件的交互方式是:作图、填参数、按运行、看曲线、改参数。这些操作对软件来说是离散的菜单和按钮,对工程师来说是肌肉记忆,对 AI 助手来说则是纯粹的“无人区”——它不掌握软件内部的逻辑,也不理解流程模拟的潜规则。Skill 干的事情,就是在这片无人区里修路:把软件的能力封装成可以让大模型理解和调用的工具集合,再配上约束规则、参数模板和结果解析逻辑。

这次更新的 Async HYSYS 自动化 Skill 1.11.0,就是针对 Aspen HYSYS 的自动化能力集。它不是一个孤立的脚本,而是一套可安装在 WorkBuddy 里的技能包,里面预置了各种与 HYSYS 交互的路径:从打开案例、切换物性包、调整塔参数,到运行模拟、读取收敛结果、批量导出报表,全部覆盖。Comsol 自动化 Skill 也走的是同样的路线,只是面向的是多物理场求解器。

1.2 1.11.0 版本到底更新了什么

1.11.0 不是一个小版本号,它解决的是实际使用中非常痛的几个问题。第一是异步任务管理机制,以前和 HYSYS 交互时,凡是跑大型模拟,界面就容易卡死,或者脚本超时中断。1.11.0 引入了任务级的状态跟踪,模拟运行中的中间状态可以被 Skill 层记录和轮询,大模型不需要傻等,而是可以通过查询任务状态来决定下一步动作。这种异步设计对工程场景太重要了,流程模拟一个 case 跑几分钟很正常,同步阻塞模型根本没法用。

第二是案例文件管理的完善。新版 Skill 对不同路径、不同 HYSYS 版本打开案例时产生的兼容性问题处理得更好。旧版本里同样一个.hsc文件,在不同电脑上打开可能结果不一致,问题经常出在路径缓存和版本附加组件上。1.11.0 里对案例加载做了显式的路径规范和版本探测,还会在日志里输出打开过程中遇到的非致命警告,这对排查“同一案例两边结果不一样”这类问题非常有帮助。

第三是物性包和流体包的自动化操作被强化了。HYSYS 里最容易出幺蛾子的就是流体包设置,尤其是油品自定义组分、反应动力学、状态方程切换这种复杂操作,自动化的难点不在调用某个 API,而在上下文的连续性。1.11.0 对这部分做了专门的封装,大模型在描述意图时,可以更自然地把“把 PR 方程改成 SRK”“在组分列表里追加一个 Hypothetical Component”这类诉求直接映射到正确的 API 调用,显著降低了自然语言到软件操作的翻译成本。

1.3 为什么翻新 HYSYS 的同时还要做 Comsol 自动化

流程模拟和多物理场仿真在企业里往往是同一个团队负责。HYSYS 解决的是稳态和动态流程的问题,比如炼油厂常减压装置、天然气处理厂脱酸单元;Comsol 解决的则是设备内部场分布的问题,比如一个反应器里的温度场、一个换热器管板的应力分布、或者激光焊接过程的热-力耦合。两者组合起来,才能真正回答“装置能不能达标、设备会不会失效”这两个问题。

WorkBuddy 的 Comsol 自动化 Skill 定位不是替代工程师建模,而是把“批量修改、批量求解、批量提取结果”这个重复劳动最多的环节接管过来。比如研究激光焊接不同功率参数下的熔池形貌,你需要在同一几何模型上改参数、重新划分网格、求解、导温度场数据。人工操作一次 20 分钟,优化 50 组参数就是 16 小时。用 Skill 自动化后,人可以只盯着结果曲线,中途不需要碰软件。

所以这次同步更新两个 Skill 并不是巧合,它反映的是 WorkBuddy 的基本思路:自动化不是为某一个软件做一次性脚本,而是把工程仿真软件的操作共性抽象出来,形成一套可持续演化的能力体系。1.11.0 在这个方向上又往前迈了一步。

2. 工程仿真自动化的核心难点:Aspen HYSYS 和 Comsol 各自的“硬骨头”

2.1 流程模拟自动化的心智模型

做仿真自动化的第一步不是写代码,而是把工程师的操作心智翻译成软件接口能理解的操作序列。以 HYSYS 为例,工程师头脑里的操作是“把塔顶压力从 800 kPa 改成 850 kPa,看冷凝器负荷变化”,但 HYSYS 底层的自动化接口并不认识“塔顶压力”这种宏观概念,它知道的是 Flowsheet 里的模块对象、连接对象、状态对象,以及一堆以冒号分隔的路径字符串。

这个翻译过程的难点在上下文。同样叫“塔”,有可能是蒸馏塔,有可能是吸收塔,还有可能是带有侧线汽提的复杂塔。如果不先解析流程结构,直接按名字匹配,很容易把参数写到错误的模块上。Skill 做的一件重要的事情,就是在模型对象和自然语言之间建立一层稳定映射:先把 Flowsheet 遍历一遍,建立设备名录,再让大模型基于名录进行后续操作指令生成。这样既保持了灵活性,又把误操作的概率降下去了。

还有个容易被忽略的点是模拟软件的运行状态。HYSYS 在运行中是有状态的,某个模块可能没收敛,某个循环流股可能处于猜测值状态,这时候你盲目改参数,后续结果肯能就是垃圾进垃圾出。一个合格的自动化 Skill 必须包含状态感知能力,在每次操作前确认当前流程是否可运行,而不是默认所有 case 都是干净的。1.11.0 在日志里明确增加了收敛状态探测,这一步做得很对。

2.2 Aspen HYSYS 自动化的三个层次

从实操角度,HYSYS 自动化可以拆成三个层次,搞清楚这三个层次,才能理解 Skill 的设计取舍。

底层是 COM API 交互层,就是通过 HYSYS 公开的 Automation Interface,用代码打开软件、连接 Case、读改写对象属性。这个层次是一切自动化的地基,但光有它不够,因为 API 对象非常多、路径非常深,直接写脚本的人多数时间在翻 API 文档,而不是在写业务逻辑。

中间层是流程语义层,以“单元操作”为单位封装操作。比如一个精馏塔对象,它的进料流股、产品流股、塔板数、进料位置、回流比、再沸器压力这些都是有业务含义的字段。Skill 在这一层把塔的完整状态打包成一个可以被大模型读取和修改的结构体,而不是散落的几百个属性。这样处理之后,大模型才能以较短的对话上下文完成较复杂的多步操作,否则上下文很快就会被海量属性刷爆,导致对话质量直线下降。

最上层是业务逻辑层,就是“我要做一个灵敏度分析”“我要对比五种吸附剂的再生能耗”“我要把当前 case 从 BM 换到 DMF 溶剂重新跑”。这些诉求不是单步操作,而是由很多步骤组成的流程。Skill 在 1.11.0 里重点优化的,就是把这种多步业务诉求拆解成原子操作执行队列,并在执行过程中随时检查中间结果的合理性。比如做灵敏度分析时,每改一组参数就跑一次模拟并记录结果,最后自动汇总成曲线表。

2.3 Comsol 自动化的核心难点:几何、网格与多物理场的连续干预

Comsol 自动化的难度和 HYSYS 完全不是一回事。HYSYS 本质是方程求解器,内部是物流网络的联立方程,你改的是顶层参数,求解器自己迭代;Comsol 则是偏微分方程求解器,你不仅要改参数,还要保证几何建模、物理场定义、边界条件、网格剖分、求解器配置这一整条链路是自洽的。

最拦路的是几何部分。Comsol 的几何可以是用自带 CAD 工具建模,也可以是从外部导入。自动化的前提是几何必须参数化,比如用参数控制板厚、倒角半径、焊缝宽度。如果建模时图省事,把关键尺寸写成死数字,那自动化就无从谈起。Comsol 自动化 Skill 的一个隐藏要求,就是教使用者在建模阶段用参数化方式思考,这个理念和 HYSYS 里用流股对象而不是散装数字是同理的。

网格环节更微妙。网格剖分不是全自动可靠的,同一几何模型,物理场不同,最佳网格策略可能截然不同。比如激光焊接分析,熔池附近需要极度细化,远离焊缝区域的网格可以很粗。Skill 在处理这类问题时,不能只是机械地改网格参数,而是要理解分析目标,在自动化流程里按区域设置尺寸表达式而不是全局统一尺寸。这一点往往需要结合具体工艺场景做规则配置,WorkBuddy 的 Skill 机制允许使用者自定义这些规则,灵活性就在这里。

多物理场耦合是 Comsol 自动化里上下文负担最重的部分。一个涉及热-结构耦合的分析,要同时维护热分析的材料参数组、结构分析的边界条件组,以及两者之间耦合界面的传递设置。用自然语言描述多物理场的意图时,大模型容易把边界条件张冠李戴,把热通量加到结构边界上。Comsol 自动化 Skill 里专门设计了物理场绑定校验机制,在每次求解前自动检查各物理场的域选择是否合理,不合理的直接报错拒跑,避免产生一堆看似算完但实际没有物理意义的伪结果。

3. 实操过程与核心环节实现:WorkBuddy 环境下的 HYSYS 自动化 Skill 实战

3.1 前置条件与部署细节

先交代一下运行环境。我用的是 Windows 11 专业版工作站,CPU 是 13 代 i7,内存 64 GB,Aspen HYSYS 版本是 12.1,Comsol 是最新的 6.2,WorkBuddy 本体安装在 D 盘(原因后面讲)。Skill 的安装比想象中容易,在 WorkBuddy 工作台里点“安装技能包”,分别选择 HYSYS 自动化和 Comsol 自动化,会自动做依赖检测。

依赖检测这个环节建议认真看日志。第一次安装我翻车了,报错原因是本机没有注册 HYSYS 的 COM 组件。这个常见问题一般出在软件安装时没勾选“Automation Server”组件,或者 HYSYS 装完没有用管理员身份执行一次注册脚本。重新运行 HYSYS Setup 修复一次之后,Skill 才成功识别到软件路径。

还有一个很容易忽略的配置是“软件路径映射”。WorkBuddy 默认会从注册表读取 HYSYS 安装路径,但如果同时装了多个版本,它选到的可能是旧版本。我第一次跑时它悄悄打开了 11.0,导致案例格式不兼容。配置界面里手动指定C:\Program Files\AspenTech\Aspen HYSYS 12.1后问题解决。

关于“系统缓存目录”我想多说一句。WorkBuddy 默认缓存目录在 C 盘用户目录下,但工程仿真案例文件往往很大,缓存和临时文件很容易把系统盘塞满。建议在工作台设置里把缓存目录迁移到 D 盘独立文件夹,并且把 HYSYS 的临时案例目录也指过去,这样可以明显减少 C 盘 I/O 压力。这也是我在标题里提到的“可改到 D 盘”这类问题的实际来源。

3.2 典型工作流拆解:用自然语言跑通一个吸收稳定系统案例

我用一个实际案例测试 1.11.0 的完整能力:某天然气处理装置吸收塔进料量优化。操作目标是在保证干气质量的前提下评估吸收剂循环量对回收率的影响。整个过程我在 WorkBuddy 对话框里用自然语言描述意图,Skill 负责翻译、执行和校验。

完整流程分六步。

第一步是加载案例。我在对话框里输入“打开案例文件 D:\cases\absorption_base.hsc,并展示主要物流的组成和流量”。Skill 先探测了 HYSYS 版本和案例兼容性,然后执行打开,并把流程里的主要物流名称、温度、压力、流量自动汇总成一张表格返回。这一步很关键,因为它让大模型对当前流程建立了全局认知,避免后续操作时盲人摸象。

第二步是定位操作对象。我继续输入“找到吸收塔 T-1001,告诉我它的操作参数”。Skill 调用流程遍历接口,返回了塔的塔板数、进料位置、回流比、塔顶和塔底压力、冷凝器类型等完整参数。这一步本质上就是我前面讲的“流程语义层”在实际发挥作用,它呈现出来的是一个经过结构化整理的设备对象,不是一团乱糟糟的属性列表。

第三步是修改参数。我提出“把吸收剂循环量从 80 m3/h 改为 100 m3/h,并暂停自动更新”。这里我用了一个词“暂停自动更新”,其实 HYSYS 某些模型开了自动计算后,改一个参数会立刻触发全局重算,在大模型的指令序列里这会非常吃性能。Skill 在 1.11.0 里明确支持控制计算模式,允许批量修改参数后手动触发一次求解,这个控制力在参数优化场景里特别重要。

第四步是运行模拟并等待收敛。我输入“运行模拟,等待收敛后返回收敛状态和时间”。Skill 发起运行指令后,启动异步任务跟踪,每隔几秒轮询模拟状态。整个 case 从修改参数到收敛用时约 47 秒,Skill 返回了收敛成功标识,并把各物流的关键参数快照存了下来。这里异步机制的价值就很明显:传统同步方式中,这个调用会一直霸占上下文,期间大模型什么也干不了。

第五步是提取结果。我输入“对比改动前后吸收塔塔顶气中重烃含量变化”。Skill 自动找到改动前的快照和改动后的新结果,按物流名匹配并计算差值,生成了一个对比表格,其中 C3+ 含量从 0.85% 降到 0.62%,趋势合理。

第六步是生成记录。我让 Skill“把此次模拟的参数、结果、操作日志整理成一份 Markdown 报告,保存到 D:\reports 目录”。它自动完成了报告生成,包括操作时间戳、参数修改前后对照、收敛状态记录,这一整套审计追踪能力是工程自动化落地时特别看重的,没有它,后续技术审查说不清楚。

3.3 结果提取与批量优化:不满足于单次跑通

单次跑通只是开始,自动化真正的价值在批量。接着我做了吸收剂循环量的灵敏度分析,范围从 70 到 130 m3/h,步长 10,共 7 组。手动做这件事需要改参数-运行-记录-恢复,重复七遍,而且每一遍都要小心别记错数据;用 Skill 就是一句话的事。

批量过程里我观察到 1.11.0 一个非常好的细节:它每次改参数前都会记录当前完整操作状态,跑完一组后不是简单刷新,而是主动恢复基线再改下一组。这个“撤销-修改-运行”的机制保证了每组实验的初始条件完全一致,结果之间才能公平对比。不少自己做脚本自动化的人容易忽略这一步,导致灵敏度曲线出现锯齿状跳变,还以为是物理现象,实际上就是实验条件没控制好。

最后得到的曲线显示吸收剂循环量在 110 m3/h 附近出现边际收益递减拐点,这与工程经验吻合。Skill 自动把曲线数据和每次运行的收敛状态一起导出为 CSV 和图片,方便直接贴进报告。

3.4 Comsol 自动化 Skill 的另一种玩法:激光焊接单元活化实例

如果说 HYSYS 自动化偏重“流程计算的参数批量修改”,Comsol 自动化则更偏重“多物理场分析的全链路驱动”。我用一个激光焊接热分析 case 验证了 Comsol Skill 的能力边界。

背景是板厚 3 mm 的不锈钢对接焊,需要考察不同激光功率下的温度场和残余应力。激光焊接分析的难点在于移动热源加载,以及熔池区域网格需要随热源移动做局部加密。传统做法是事先在几何上画出焊缝区域,设置较细的网格,再用移动热源逐个时间步加载。这里面每一步都是手工操作,而且时间步一多,操作量线性上涨。

用 Comsol Skill 时,我把几何文件导入后,用自然语言描述了物理场景:“激光功率 1500 W,焊接速度 10 mm/s,光斑直径 2 mm,考虑热-结构耦合,焊缝区域网格最大尺寸 0.2 mm,远离焊缝区域最大尺寸 2 mm。”Skill 自动把这句话转换成了 Comsol 的建模序列,包括几何选择、区域指定、材料属性赋定、网格尺寸表达式设定、求解器配置和瞬态求解。

求解时我还特意试了“单元活化”这个功能,也就是激光走过的区域材料才被激活参与计算,未走过的区域保持惰性。这个功能对模拟焊接过程非常重要,它可以避免热影响区过早出现、导致温度场失真。Skill 对这类高级功能的支持不是靠预置脚本硬写,而是通过引导大模型理解物理场的行为逻辑,再映射到 Comsol 对应的特征节点上。这一步能不能做好,取决于 Skill 内置的领域知识库是否足够深,当前版本我实测是可用的。

耗时方面,整个瞬态分析在 64 GB 内存机器上跑了约 25 分钟,期间 WorkBuddy 界面完全不受影响,我可以同时处理别的文档。结果求完后,Skill 自动提取了熔池最高温度、焊缝中心的冷却速率,以及工件表面残余应力分布,生成了数据摘要。这部分内容如果人工操作,不算建模时间,光调求解器和后处理就得半天,自动化的收益非常实在。

4. 常见问题与排查技巧实录:把踩过的坑整理成速查表

4.1 HYSYS 自动化 Skill 的坑

先讲一个最常见也最安静的坑:案例没保存就直接跑。HYSYS 的 COM 接口里,如果你在界面上打开了一个未保存的案例,后台 Automation Server 实际操纵的内存对象可能和界面看到的不是同一份数据。具体表现是界面显示已经改好的参数,Skill 读出来却是旧值。排查很费时间,后来养成的习惯是每次连接到新 case 之前,先通过 Skill 强制保存并建立唯一会话标识,在这个标识下做所有操作。

还有案例文件路径里的中文和空格。HYSYS 的 COM 层对路径的编码处理非常挑剔,路径里有中文或尾随空格时,加载会时好时坏。不同电脑上表现还不一样,升级 1.11.0 后这个问题缓解了不少,但我依然建议工程案例统一放在纯英文无空格路径下。D 盘新建目录时,我用cases_abs这种命名,完全避开风险。

关于收敛问题,HYSYS 自动化最容易被误解的一点是:模拟“跑完”不等于“收敛了”。某些塔模型在最大迭代次数耗尽后会强制输出一个非收敛结果,界面上显示的状态是 “Failed” 但结果表格里依然有数字。如果自动化脚本只检查“运行完成”就提取结果,这些数字就会被当成有效结果带入后续计算。我在 1.11.0 里重点验证了收敛状态探测逻辑,它会把 “Failed” 状态明确返回给大模型。建议所有做二次开发的朋友,无论用不用 WorkBuddy,都要在结果提取前检查收敛状态,这是流程模拟自动化的底线。

还有一个容易翻车的是“同时修改多个参数”的顺序。HYSYS 的某些对象对参数修改顺序有隐含依赖,比如先改塔板压力分布,再改进料位置,和反过来操作,中间过程数据可能不一致,甚至导致模块重置。Skill 处理这类问题的方法是维护一个安全的参数修改顺序表,按依赖关系自动排序。我自己如果手写脚本,也建议在代码里维护同样的顺序表,而不是按自然语言的描述顺序盲目执行。

4.2 Comsol 自动化 Skill 的坑

Comsol 自动化的第一个坑是许可证细节。Comsol 网络版许可证在多进程并发时会锁定,如果你恰好在 WorkBuddy 里开了两个并行任务同时调用 Comsol,第二个任务会直接卡在许可证等待上。我实测的表现是任务状态一直显示运行中,但 CPU 占用为零,非常迷惑。解决方法是 WorkBuddy 的任务并发数配置里,把 Comsol 相关任务并发设为 1,让排队机制去处理,而不是靠许可证自己抢。

第二个坑是网格重置导致的历史状态丢失。Comsol 里修改了几何参数之后,之前的网格和解算结果都会失效,这是正常的。但自动化脚本如果没处理好这个失效事件,后处理阶段可能会尝试从已经失效的结果集里提取数据,报错提示又不直观。Skill 在 1.11.0 版本里对结果有效性增加了标记,每次求解前先检查当前结果集是否与几何版本一致,不一致就先重算再提取,这个设计在批量参数扫描场景下能少死很多次。

第三个坑与激光焊接案例相关:移动热源在极细网格下时间步过小,导致瞬态求解速度急剧下降。第一次跑 case 时我设了 0.2 mm 的焊缝网格,时间步 0.05 秒,结果预估求解时间超过 6 小时,直接放弃。后来通过 Skill 同时控制了网格比例和时间步,把焊缝网格设为 0.5 mm 并配合自适应时间步,求解时间降到了 25 分钟。这件事说明,Comsol 自动化不能只做“下发参数”,还得具备求解器调优的建议能力,否则自动化只会让你更快地得到“等很久但无聊的结果”。

4.3 版本更新后的实测变化与一些心得

1.11.0 从安装到实测,我最明显的体感是任务状态回调变稳了。旧版本里偶尔会遇到大模型以为任务跑完了,开始准备做后处理,但 HYSYS 还在计算中,现在因为显式状态跟踪,这类错位明显减少。模式匹配的准确度也有提升,同一个“用 SRK 替换 PR”的指令,旧版本可能要在回复里补一句“请打开流体包页面找到液包管理器”,新版本直接能定位到物性包对象并切换,顺带重新初始化了流股闪蒸计算。

异步机制在 Comsol 上感受更深。跨软件复杂协作场景里,WorkBuddy 的任务队列能同时挂着 HYSYS 灵敏度扫描和 Comsol 焊接温度场,两者一个偏流程计算、一个偏场分布,互不干扰。过去我需要在两个软件之间来回切换,人工同步两份结果,现在完全不需要了。不过我也得说句公道话:这些方便都建立在 Skill 的维护质量之上,Skill 本质上是把工程领域的隐形知识显性化,更新不到位的话,使用体验会打折扣。

最后给准备上手的朋友三条建议。第一,先拿你自己的历史案例做一遍回归测试,把 WorkBuddy 和 HYSYS/Comsol 的接口跑通后再上真实任务,不要第一次就在高温高压装置上试错。第二,保持软件的固定版本组合,不要轻易升级 HYSYS 或 Comsol,因为自动化层依赖的接口可能随版本微调,固定版本有利于稳定复现。第三,用好日志功能,排查问题时把 WorkBuddy 的调试日志、Skill 的操作日志、HYSYS 和 Comsol 各自的日志一起看,多数报错会在其中一方留下线索。

我自己接下来的做法是继续扩大测试范围,把动态模拟和批次优化流程也纳入自动化测试集,同时探索更多 Comsol 物理场类型的 Skill 组合。如果你也在做流程模拟自动化,或者正在纠结是否引入 AI 工作流,建议先从单一软件的小范围自动化开始,跑通一条完整链路后再横向扩展。真实收益远大于建立一个孤立的工具链条,更重要的是,你会开始用“自动化优先”的思路重新审视以往的设计流程,这种思维方式的转变可能比工具本身更值钱。

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进