Model Predictive Control Toolbox
设计和仿真模型预测控制器
Model Predictive Control Toolbox™ 提供一系列函数、App 和 Simulink® 模块,支持您利用线性和非线性模型预测控制 (MPC) 来设计和仿真控制器。您可以使用该工具箱指定被控对象和扰动模型、时域、约束和权重。通过运行闭环仿真,您可以评估控制器性能。
通过在运行时改变控制器权重和约束,您可以调整控制器的行为。该工具箱提供了可部署的优化求解器,同时还允许您使用自定义求解器。要控制非线性被控对象,您可以实现自适应、增益调度和非线性 MPC 控制器。对于采样速率较快的应用,您可以使用该工具箱从常规控制器生成显式模型预测控制器,或者实现近似解。
对于快速原型和嵌入式系统实现(包括优化求解器的部署),此工具箱支持 C 代码和 IEC 61131-3 结构化文本生成。
开始:
免费技术论文
使用 Simulink 实现自适应巡航控制器
MPC 设计器
通过定义内部被控对象模型并调整时域、权重和约束,以交互方式设计 MPC 控制器。使用仿真场景验证控制器性能。比较多个 MPC 控制器的响应。
在 Simulink 中设计 MPC
该工具箱提供 MPC Controller 等一系列模块,用于在 Simulink 中进行 MPC 控制器建模和仿真。对 Simulink 模型进行配平和线性化,以计算 MPC 控制器的内部线性时不变被控对象模型,并使用 Simulink Control Design™ 获取被控对象输入和输出的标称值。
在 MATLAB 中设计 MPC
使用命令行函数设计 MPC 控制器。定义内部被控对象模型;调整权重、约束和其他控制器参数。仿真闭环系统响应以评估控制器性能。
预置模块
以 Adaptive Cruise Control System、Lane Keeping Assist System 和 Path Following Control System 模块为起点,设计 ADAS 应用并按需自定义。从预置模块生成代码用于车载部署。
参考应用示例
使用参考应用示例,了解为自动驾驶系统设计和部署 MPC 控制器的工作流程。此外,参考应用示例还可展示如何以不同的保真度对系统的各个部分建模。
线性 MPC
设计线性 MPC 控制器,方法可以是将内部被控对象模型指定为使用 Control System Toolbox™ 创建的线性时不变 (LTI) 系统,也可以是使用 Simulink Control Design 将 Simulink 模型线性化。您还可以使用 System Identification Toolbox™ 导入基于测得的输入-输出数据创建的模型。
自适应 MPC
使用命令行函数和 Adaptive MPC Controller 模块设计和仿真自适应 MPC 控制器。在运行时更新被控对象模型,并将其作为输入提供给控制器。使用具备渐近稳定性保障的内置线性时变 (LTV) 卡尔曼滤波器估计自适应模型预测控制器的状态。
增益调度 MPC
使用 Multiple MPC Controllers 模块在各种工况下控制非线性被控对象。为每个工况点设计 MPC 控制器,并在运行时切换控制器。
设计检查
使用内置的诊断功能,检测 MPC 控制器的潜在稳定性和鲁棒性问题。在控制器设计期间,可以使用此诊断结果调整控制器权重和约束,避免运行时故障。
运行时参数调整
调整 MPC 控制器的权重和约束,在运行时优化性能,无需重新设计或重新实现控制器。在 MATLAB® 和 Simulink 中执行运行时控制器调整
运行时性能监控
访问优化状态信号,发现优化无法收敛的罕见情况。然后使用此信息指导备份控制策略决策。
显式 MPC
从隐式 MPC 设计生成显式 MPC 控制器以加快执行速度。简化生成的显式 MPC 控制器,减少内存占用。
最优规划
将非线性 MPC 控制器用于需要非线性模型以及非线性代价或约束的最优规划应用。
反馈控制
在非线性代价和约束下,仿真非线性被控对象的闭环控制。默认情况下,非线性 MPC 控制器使用 Optimization Toolbox™ 求解非线性编程问题。您也可以指定自定义非线性求解器。
经济 MPC
设计经济 MPC 控制器,在任意非线性约束下为任意代价函数优化控制器。您可以使用线性或非线性预测模型、自定义非线性代价函数和自定义非线性约束。
使用 MATLAB 和 Simulink 生成代码
在 Simulink 中设计 MPC 控制器,并使用 Simulink Coder™ 生成 C 代码,或使用 Simulink PLC Coder™ 生成 IEC 61131-3 结构化文本。使用 MATLAB Coder™ 在 MATLAB 中生成 C 代码,并部署代码以进行实时控制。还可以使用 MATLAB Compiler™ 将 MPC 控制器打包,以作为独立应用程序共享。
内置求解器
基于内置的活动集和内点二次规划 (QP) 求解器生成代码,以在嵌入式处理器上高效实现。对于非线性问题,使用 Optimization Toolbox 中的序列二次规划 (SQP) 求解器进行仿真并生成代码。您可以将生成的代码部署到任意数量的处理器。
自定义求解器
使用 Embotech FORCES PRO QP 和非线性规划 (NLP) 求解器仿真线性和非线性 MPC 控制器并生成代码。也可以使用自定义 QP 和 NLP 求解器进行仿真并生成代码。
与 FORCES PRO 集成
使用 Embotech AG 开发的 FORCES PRO 求解器,仿真 MPC 控制器并生成代码
内点 QP 求解器
有效计算大规模 MPC 问题的最优控制动作
非线性 MPC 代码生成
为使用默认 fmincon 求解器和 SQP 算法的非线性 MPC 控制器生成代码
关于这些特性和相应函数的详细信息,请参阅发行说明。