跳转到正文

do-mpc

Sergio Lucia and Felix Fiedler / Chair of Process Automation Systems (PAS), TU Dortmund

do-mpc 是一个 Python 工具箱,用于非线性和鲁棒模型预测控制、移动时域估计及仿真,并支持微分代数模型和不确定性。

条目更新 ·

概览

do-mpc 提供用于构建和求解非线性控制与估计问题的工具。其核心方法是模型预测控制(MPC)和移动时域估计(MHE),其中包括针对不确定性问题的鲁棒控制方法。对于过程控制工作,它是一个开发工具箱,而非针对特定装置的现成控制器:用户需要围绕自己的系统模型以及控制或估计问题开展工作。

文档所述的架构将仿真、估计和控制划分为可组合、可扩展的组件。支持的问题表述包括微分代数方程;有限元上的正交配置法则提供了一种时间离散化方法。在工作流程层面,输入是用户定义的动态系统模型和问题表述;相应结果包括控制解、状态或参数估计以及仿真结果。来源摘录未说明确切的输入模式、输出格式或组件接口,因此实现细节应以链接的文档为准。

功能包括非线性 MPC 和经济型 MPC、鲁棒多阶段 MPC,以及对状态和参数进行移动时域估计。这些能力使 do-mpc 适用于评估基于模型的过程控制策略,以及集成的仿真—估计—控制工作流程。不过,所提供的证据不包含性能基准、针对特定装置的验证或已展示的部署成果。尽管 README 说明支持 Python 3.x 和多种操作系统,但并未提供经过测试的兼容性矩阵。因此,应根据官方文档核实安装要求,并使用有代表性的评估模型检查其适用性。

主要功能

  • 构建并求解非线性和经济型模型预测控制问题。
  • 针对涉及不确定性的控制问题支持鲁棒多阶段 MPC。
  • 支持以微分代数方程表示的动态模型。
  • 使用有限元上的正交配置法进行时间离散化。
  • 对系统状态和参数进行移动时域估计。
  • 仿真、估计和控制组件彼此独立,并设计为可组合和扩展。

使用场景

  • 建议的评估:针对有代表性的动态过程模型,比较非线性 MPC 和经济型 MPC 的问题表述。
  • 建议的评估:在考虑用于装置应用之前,在选定的不确定性情景下评估鲁棒多阶段 MPC。
  • 建议的评估:将移动时域状态或参数估计与仿真和控制结合起来,研究集成的基于模型的工作流程。

使用方式

  1. 阅读官方 README,确定非线性 MPC、鲁棒多阶段 MPC 或 MHE 是否适合你计划评估的问题。
  2. 按照安装说明操作。请根据文档核实你的环境所需条件,不要将 README 中宽泛的 Python 3.x 说明视为经过测试的兼容性保证。
  3. 查阅文档,了解如何表示动态模型以及配置相关组件。对于微分代数模型,请查看文档中关于问题表述和时间离散化的指导。
  4. 规划一项有代表性的评估,并选用任务所需的仿真、估计和控制组件。应将不确定性情景和评估标准作为独立于工具箱文档所述能力的内容来定义。
  5. 在考虑针对特定应用进行部署之前,检查由此产生的控制或估计行为。有关已发表工作的引用方式,请参阅 README 中的引用指南;有关代码使用义务,请查阅仓库许可文件。

相关资源

PySINDy

开源工具

PySINDy 是一个 Python 软件包,可使用稀疏系统辨识从测量数据推断动力学方程,并可选用优化方法进行受约束回归和贝叶斯回归。

开源Python

过程控制 · 数字孪生

GEKKO

开源工具

GEKKO 是一个用于微分代数系统的 Python 建模与优化工具包,支持过程模拟、参数估计、混合整数优化和非线性预测控制。

开源Python

工艺优化 · 过程控制

SysIdentPy

开源工具

SysIdentPy 是一个 Python 工具包,用于通过 NARMAX 系列模型识别非线性动态系统,涵盖结构选择、参数估计、仿真和预测。

开源Python

过程控制 · 预测性维护

相关指南

工作流

评估化学工程中的 AI 工作流

规划评估方案,将过程建模、反应优化和控制区分开来。在考虑用于实际运行之前,先定义输入、运行限制、考虑时间因素的验证方式和审批关卡。