摘要:Neuromancer把物理模型、数据驱动建模、参数化优化与预测控制放入统一可微问题图,让PINN从方程求解延伸到受约束的工业闭环决策。
GitHub 项目: pnnl/neuromancer
侦察快照: 2026-08-03,BSD,Python/PyTorch,本轮记录约 1.36k Star。
导语
物理信息神经网络让工程界看到一种可能:把微分方程写进损失函数,用神经网络求解正问题、反问题和参数识别。但工业系统很少停在“求出一个场”。设备还要识别状态、预测未来、满足温度和压力限制、优化能耗,并在每个控制周期给出可执行动作。
PNNL 开源的 Neuromancer 将这些任务放进统一的可微编程框架。项目名称来自 Neural Modules with Adaptive Nonlinear Constraints and Efficient Regularizations,核心覆盖参数化约束优化、物理信息系统辨识和参数化模型预测控制。它把“学习建模、学习优化、学习控制”组织成一组可组合模块,并支持神经 ODE、Koopman 算子、SINDy、PINN、可微凸优化层和 Differentiable Predictive Control。
在本轮候选中,DeepXDE 更适合快速复现 PDE 和 PINN 基准,Neuromancer则更贴近工业过程控制、能源系统和数字孪生闭环,因此更值得单独做一篇技术观察。
一、统一抽象:变量、节点、约束、目标和系统
Neuromancer 的核心是一套问题描述方法,网络结构只是其中一个组件。
开发者先把神经网络、机理方程、状态更新或优化模块封装为 Node。每个 Node 声明输入键和输出键,多个节点按照数据依赖组成有向无环计算图。变量可以进一步构造目标和约束,例如最小化能耗、限制温度区间、约束执行器变化率。
Problem 类顺序执行节点,将每一步输出合并到共享字典,再由 PenaltyLoss 汇总目标和约束项。源码还可以根据节点、变量和损失项生成问题图,帮助开发者检查数据流。
这种结构对工业数字孪生很合适。一个系统可以同时包含:
- 由数据训练的状态估计器;
- 基于热力学或动力学的机理节点;
- 学习得到的残差模型;
- 设备和工艺约束;
- 能耗、产量、质量或跟踪误差目标;
- 预测控制策略。
各模块共享可微计算图,梯度可以穿过模型、约束和控制策略,实现端到端训练。相比把预测模型、优化器和控制器分散在多个脚本中,这种方式更便于表达混合系统。
二、L2M、L2O和L2C覆盖数字孪生的三个核心任务
Neuromancer 将能力概括为 Learning to Model、Learning to Optimize 和 Learning to Control。
1. Learning to Model:学习系统动力学
工业设备的完整机理模型往往昂贵或不完整。Neuromancer支持神经 ODE、Koopman、SINDy 和物理信息模型,用历史时序数据识别状态转移。白盒方程可以直接加入,未知部分由神经网络补偿,形成灰盒模型。
例如,建筑热系统可以保留热阻—热容网络,学习外界扰动和未建模热源;泵和压缩机可以保留质量、能量平衡,学习效率曲线和磨损影响。这样的混合模型比纯黑盒网络更容易解释,也更适合小样本场景。
2. Learning to Optimize:学习参数化优化问题的解
许多工业优化问题会反复求解,结构相同,参数不断变化。传统优化器每次从头迭代,Neuromancer尝试训练一个映射,输入问题参数,直接输出近似最优解。
典型场景包括产线排程中的连续子问题、能源分配、设备设定值优化和结构参数快速筛选。训练阶段成本较高,部署后推理速度可以明显低于在线迭代求解。
3. Learning to Control:学习满足目标和约束的控制策略
Differentiable Predictive Control 将预测模型、控制策略、时间展开和约束放在同一计算图中。策略在训练阶段观察未来预测误差、能耗和约束惩罚,通过梯度更新。部署时只需一次前向推理即可给出动作,适合对延迟敏感的控制任务。
项目示例覆盖建筑温控、抽水蓄能、电网响应和非线性系统稳定。它们与流程工业、楼宇能源、储能和装备控制具有较强关联。
三、DPC提供了一条“离线训练、在线快速执行”的路线
传统模型预测控制在每个控制周期求解有限时域优化问题,能够显式处理预测和约束,但在线计算可能成为瓶颈。DPC 通过离线训练策略网络近似这类优化映射,在线阶段直接输出控制量。
对工业现场而言,这条路线有三点吸引力。
第一,推理延迟稳定。神经网络前向计算更容易部署到边缘服务器或工业计算节点。第二,策略可同时吸收历史数据和机理模型,适合存在难建模扰动的系统。第三,多个参数化工况可以在训练中覆盖,在线无需为每个工况重新设计控制器。
但 DPC 与传统 MPC 之间不应简单替代。传统 MPC 的在线优化过程可根据当前状态重新寻找可行解,成熟求解器还可提供可行性和最优性信息。DPC 的输出受训练分布影响,遇到未覆盖工况时可能违反约束。
更稳妥的工业架构是分层运行:DPC负责常规工况下的快速控制,确定性安全层执行限幅、联锁和变化率约束;状态接近边界或模型置信度下降时,切换到传统 MPC、规则控制或安全停车策略。
四、约束进入训练图,并不等同于获得形式化安全保证
Neuromancer允许用符号接口定义不等式和等式约束,并通过惩罚损失、投影或可微优化层参与训练。这比训练结束后再检查约束更先进,因为网络在学习过程中就能感知可行域。
然而,惩罚项通常只鼓励约束满足。权重不足时会出现违规,权重过大又可能导致训练困难。投影层和凸优化层可以增强可行性,但对非凸动力学、整数决策和复杂安全约束仍有局限。
工业落地需要区分三种“约束”:
- 训练约束:用于塑造策略,可能存在近似误差;
- 运行约束:由限幅、联锁、保护逻辑和安全控制器强制执行;
- 认证约束:通过形式化分析、试验、标准和责任流程证明。
Neuromancer主要增强第一层,也可帮助构建第二层中的优化模块。涉及人员安全、设备极限和环保排放的约束,仍需独立保护系统和工程验证。
五、它比单纯PINN更接近工业数字孪生闭环
PINN 常用于求解 PDE 或识别未知参数,结果可能是温度场、速度场或材料参数。工业数字孪生还要持续接收传感器数据、更新状态、预测未来并调整设定值。
Neuromancer提供的节点和系统抽象能够组织一条完整链路:
1 | 实时传感器 |
在流程工业中,可以用于反应器温度、能耗和产率协同优化;在楼宇中,可以结合天气预测、电价和舒适度控制 HVAC;在储能系统中,可以综合功率跟踪、效率、温度和寿命约束;在装备运维中,可以把健康状态估计加入控制策略,避免设备长期运行在高损耗区间。
这种“模型—优化—控制”一体化,比单独训练一个预测模型更容易形成业务价值。预测误差只有进入决策并降低能耗、提高产量或减少波动后,才会转化为工业收益。
六、建议从一个受约束热系统开展本地测试
可以选择双水箱、加热炉或建筑单区温控系统作为验证对象。系统包含温度状态、加热功率、外界扰动和上下限约束。
先建立三种基线:PID、传统 MPC 和 Neuromancer DPC。DPC 使用机理模型或神经 ODE 预测温度,在训练中最小化设定值误差和能耗,同时限制温度、功率和功率变化率。
测试应覆盖正常工况、外界温度突变、传感器噪声、执行器延迟、模型参数漂移和训练范围之外的负荷。评价指标包括跟踪误差、能耗、约束违规次数、最大违规幅度、在线计算时延、故障恢复时间和切换安全策略次数。
还应进行模型失配试验。故意改变热容量、传热系数或设备效率,观察 DPC 性能何时下降,并建立置信度和回退阈值。工业系统更关心性能退化是否可被发现,而非标准数据集上的平均分。
七、工程化落地仍面临五个问题
第一是数据质量。系统辨识依赖时间同步、传感器标定和足够激励,长期稳定运行的数据往往缺少覆盖边界工况的样本。
第二是分布漂移。设备老化、原料变化、季节和工况切换都会改变动力学,模型需要监测、再训练和版本管理。
第三是稳定性与可行性。神经控制器需要配合 Lyapunov 分析、鲁棒性测试、约束投影或独立安全控制层。
第四是部署与运维。训练框架基于 PyTorch 和 Lightning,现场系统还需要模型压缩、确定性时延、边缘部署、日志和回滚机制。
第五是组织边界。工艺工程师、控制工程师、数据科学家和安全负责人需要共同定义目标、约束和验收标准。单一算法团队很难独立完成闭环交付。
项目本身的提交活跃度低于 Chili3D、OpenRadioss 等仓库,但方法覆盖较完整,示例丰富。引入前应锁定版本、运行核心示例,并评估 PyTorch、Lightning 和相关依赖的兼容性。
结语
Neuromancer值得关注的地方,在于它把物理模型、数据驱动模型、参数优化和预测控制放进统一的可微问题图。它让 PINN 从“求解方程”向“参与闭环决策”延伸,也为混合数字孪生提供了清晰的软件抽象。
工业应用的稳妥路线,是让 Neuromancer承担状态学习、快速优化和常规控制,由确定性控制器、联锁和传统优化方法守住安全边界。经过数据治理、失配测试和回退设计后,这类框架有机会在能源、流程、楼宇和装备控制中形成可量化价值。
参考资料
- 项目主页:https://github.com/pnnl/neuromancer
- 项目 README:https://github.com/pnnl/neuromancer/blob/master/README.md
- Problem 计算图源码:https://github.com/pnnl/neuromancer/blob/master/src/neuromancer/problem.py
- 用户指南:https://github.com/pnnl/neuromancer/blob/master/USER_GUIDE.md
- 示例目录:https://github.com/pnnl/neuromancer/tree/master/examples