主要内容

非线性MPC

货币政策委员会在传统线性、非线性MPC计算控制行动在每个控制间隔使用基于模型的预测和约束优化的组合。关键的不同之处在于:

  • 可以非线性预测模型,包括时变参数。

  • 等式和不等式约束的非线性。

  • 标量函数最小化成本可以是nonquadratic(线性或非线性)决策变量的函数。

使用非线性MPC,您可以:

  • 模拟闭环控制下的非线性植物非线性成本和约束。

  • 计划最优轨迹通过求解一个开环约束非线性优化问题。

默认情况下,非线性MPC控制器解决非线性规划问题的使用fmincon函数与SQP算法,需要优化工具箱™软件。如果你没有优化工具箱软件,您可以指定您自己的自定义非线性规划求解。有关配置的更多信息fmincon解算器并指定一个自定义的能手,明白了为非线性MPC配置优化解算器。关于使用的更多信息FORCESPRONLP与非线性解算器MPC控制器,明白了实现MPC控制器使用Embotech FORCESPRO解决者

请注意

MPC设计师应用程序不支持非线性MPC金宝app控制器的设计。

通用非线性MPC

实现通用非线性MPC,创建一个nlmpc对象,并指定:

你可以模拟通用非线性MPC控制器:

多级非线性MPC

多级MPC问题是MPC问题阶段的成本和约束功能。具体地说,一个多级MPC控制器预测地平线的长度pp+ 1阶段,第一阶段对应于当前时间和最后一个(终端)阶段对应于最后一个预测步骤。

多级MPC控制器,每个阶段都有自己的决策变量和参数,以及自己的非线性成本和约束。更重要的是,成本和约束函数在一个特定的阶段是决策变量和参数的函数只在那个阶段。除了更容易写雅可比矩阵功能,这个功能允许一个更高效的数据结构,从而显著减少计算时间比使用通用NLMPC控制器解决同样的问题。事实上,松弛变量阶段允许更多的设计灵活性,和禁用操纵变量的使用利率作为决策变量收益率制定一个更精简的问题。

出于这些原因,如果你的非线性MPC问题成本和约束函数不涉及cross-stage条款,如果您不需要执行被动,在你的设计中使用多级非线性MPC控制器。

实现多级非线性MPC控制器,首先创建一个nlmpcMultistage对象,然后指定:

  • 态函数定义你的预测模型。对于离散时间模型,确定Model.IsContinuousTime被设置为

  • 成本和约束函数所需的阶段。您必须指定至少一个阶段的成本函数。

  • 硬上界和下界,操纵变量和操作变量,如果需要的话。

在设计控制器时,考虑以下几点。

  • 不支持匿名函数金宝appnlmpcMultistage对象。

  • 指定雅克比当他们是可用的是最佳实践,否则解决者必须在每一步计算其数值。您可以使用generateJacobianFunction自动生成一个MATLAB®计算雅克比的函数。

  • 不同于一般的非线性MPC、植物输出、重量、ECR的价值观,和规模因素在一个不存在nlmpcMultistage对象。你可以直接实施成本和约束功能。

  • 控制层也省略了nlmpcMultistage对象。实现块移动时,集杀鼠灵RateMax在所需的零预测步骤。

你可以模拟多级非线性MPC控制器:

从非线性多级代码生成控制器在MATLAB支持(使用金宝appmpcmoveCodeGeneration)和仿真软件金宝app。

例如如何创建和使用多级MPC控制器,明白了创建和模拟多级非线性MPC控制器,模拟多级非线性MPC控制器使用初始猜测,卡车和拖车使用多级非线性MPC自动停车

另请参阅

功能

对象

相关的例子

更多关于