文档

MPC控制器

计算MPC控制律

图书馆

MPC模金宝app型库

描述

MPC控制器块接收当前测量输出信号(),参考信号(裁判),和可选的测量干扰信号(医学博士)。块计算最优操纵变量(mv)用校车接送学生下列方法之一:

  • 解决二次问题使用默认KWIK解算器或一个定制的QP解算器。有关更多信息,请参见QP解算器

  • 解决的非线性优化问题经济政策委员会控制器(模拟)。

使用模拟和代码生成的块,您必须指定一个货币政策委员会对象,它定义了一个模型预测控制器。这个控制器必须已经为工厂设计的,它控制。

因为MPC控制器块使用MATLAB函数块,它需要编译每次你改变货币政策委员会对象和块。此外,由于MATLAB®不允许编译代码驻留在MATLAB产品文件夹中,您必须使用一个non-MATLAB文件夹在你的模型吗金宝app®当你使用MPC块模型。

对话框

MPC控制器块有以下参数分组:

参数

MPC控制器

你必须提供一个货币政策委员会对象,定义了一个隐式或经济MPC控制器。

指定一个隐式的MPC控制器,使用下列方法之一:

  • 输入的名称货币政策委员会对象MPC控制器编辑框。这个对象必须出现在MATLAB工作区。

    如果你想修改控制器设置在图形环境,打开MPC设计师应用程序通过点击设计。例如,您可以:

    • 导入一个新的预测模型。

    • 变化的视野、约束和权重。

    • 评估MPC性能线性植物。

    • MATLAB工作区导出更新控制器。

    看看控制器适用于非线性植物,闭环仿真软件模拟运行。金宝app

  • 如果你没有一个现有的货币政策委员会在MATLAB工作区对象,离开MPC控制器字段是空的。与MPC控制器块连接到工厂,点击设计打开MPC设计师。使用这个应用程序,在指定的操作点线性化模型模型,并设计控制金宝app器。有关更多信息,请参见在仿真软件设计MPC控制器金宝app线性化模型模型使用M金宝appPC设计师

    使用这种设计方法,你必须有金宝app仿真软件控制设计™软件。

指定一个经济MPC控制器,输入的名称货币政策委员会对象MPC控制器编辑框。这个控制器必须的Optimizer.CustomCostFcnOptimizer.CustomConstraintFcn属性设置为真正的。这个对象必须出现在MATLAB工作区。在创造经济MPC控制器的更多信息,见经济政策委员会

如果你指定一个控制器MPC控制器字段,您可以通过点击运行时的稳定性和鲁棒性设计问题审查。此选项仅支持传统隐MPC金宝app控制器。有关更多信息,请参见评估模型预测控制器的稳定性和鲁棒性问题

初始控制器状态

指定初始控制器状态。如果这个参数是留空,使用名义值块中定义的Model.Nominal财产的货币政策委员会对象。覆盖默认创建一个mpcstate对象在你的工作区,并输入它的名字。

所需的港口

测量输出状态估计

如果您的控制器使用默认状态估计,这个尺寸是标记。这个尺寸测量装置的输出信号连接。MPC控制器使用测量装置输出来提高其状态估计。

启用自定义状态估计的一般部分,检查使用自定义估计状态而不是测量输出。检查该选项更改这个尺寸的标签x (k | k)。连接提供估计的信号控制器的状态(植物、干扰和噪声模型状态)。另一种评估时使用自定义状态估计技术被认为是优于内置的估计或状态完全可测。

参考

裁判尺寸不能改变从一个即时控制下。每个元素必须是一个实数。

裁判是1 -ny信号,ny是输出的数量,没有参考信号预览。控制器适用于当前的引用值预测地平线。

使用信号预览,指定裁判作为一个N——- - - - - -ny信号,N是时间步的数量你指定参考价值。在这里, 1 < N p ,p是预测地平线。预览通常可以提高性能,因为控制器可以预测未来的参考信号变化。第一行的裁判指定了ny参考的第一步预测地平线(在下次控制区间k= 1)等等N步骤。如果N<p时,最后一行指定常量引用值p- - - - - -N步骤。

例如,假设ny= 2p= 6。在给定的即时控制,信号连接裁判尺寸是:

[2 5 6←←k = 1 2 k = 2 2 7←k = 3 2 8)←k = 4

信号通知控制器:

  • 引用值预测地平线的第一步k= 125

  • 第一个参考价值仍在2,但是第二逐渐增加。

  • 第二个参考价值8在第四步的开始k= 4在预测地平线。

  • 两个值保持不变28步骤5 - 6的分别预测地平线。

mpcpreview展示了如何使用参考预览在特定情况下。为计算基准信号的使用细节,明白了优化问题

要求输出港

被操纵的变量

mv外港定义提供了一个信号 n u 1 被操纵的变量控制。在每个控制即时,控制器更新mv外港使用下列方法之一:

  • 解决二次问题使用默认KWIK解算器或一个定制的QP解算器。有关更多信息,请参见QP解算器

  • 解决经济MPC控制器的非线性优化问题。有关更多信息,请参见经济政策委员会

如果控制器检测到一个不可行的优化问题或遇到数值困难解决一个坏脾气的优化问题,mv仍然在其最近的成功解决方案;控制器输出冻结。

否则,如果优化问题是可行的和解决者达到指定的最大数量的迭代没有找到一个最优解,mv:

  • 如果仍然在其最近的成功解决方案Optimizer.UseSuboptimalSolution控制器的属性

  • 是次优的解决方案达成最终的迭代后如果Optimizer.UseSuboptimalSolution控制器的属性真正的。有关更多信息,请参见次优的QP解决方案

额外的港口(通用部分)

测量的干扰

添加一个尺寸(医学博士你连接一个测量干扰信号)。测量扰动的数量定义为您的控制器, n d 1 ,必须匹配连接的尺寸干扰信号。

测量扰动的数量不能改变从一个即时控制下,和每个干扰值必须是一个实数。

医学博士是1 -n医学博士信号,没有测量干扰预览。控制器适用于当前的扰动值预测地平线。

使用扰动预览,指定医学博士作为一个N——- - - - - -n医学博士信号,N是时间步的数量的测量干扰是已知的。在这里, 1 < N p + 1 ,p是预测地平线。预览通常可以提高性能,因为控制器可以预测未来的干扰。第一行的医学博士指定了n医学博士电流扰动值(k= 1),与其他行指定干扰后续控制间隔。如果N<p+ 1,控制器适用于剩余的最后一行p- - - - - -N+ 1步骤。

例如,假设n医学博士= 2p= 6。在给定的即时控制,信号连接医学博士尺寸是:

[2 5←k = 0 2 6 7←←k = 1 2 k = 2 2 8]←k = 3

这个信号通知控制器:

  • 当前的医学博士值是25k= 0

  • 第一个医学博士仍在2,但是第二逐渐增加。

  • 第二个医学博士就变成了8在第三步的开始k= 3在预测地平线。

  • 两个值保持不变28步骤4 - 6的分别预测地平线。

mpcpreview展示了如何使用医学博士预览在特定情况下。

计算的细节,请参阅MPC建模QP矩阵

外部操纵变量

添加一个尺寸(ext.mv)你连接一个向量包含实际的信号nu被操纵的变量(MV)中使用的植物。使用这个选项,当MV应用于植物之间的时间tk - 1tk是不同的最佳MV在最后计算控制区间,例如由于信号饱和或一个覆盖条件。启用时,块正确使用这个信号控制器状态估计tk

控制器状态估计假设MV是分段常数。在时间tk,ext.mv值必须是有效的MV倍之间tk - 1tk。例如,如果MV实际上是在这个区间不同,你可能提供价值评估定时间tk

下面的例子,从模型mpc_bumpless,包括一个开关,可以覆盖控制器输出信号由运营商提供的。同时,控制器输出饱和。反馈的实际MV中使用的植物(标记为u (t)在这个例子中)改善控制器状态估计的准确性。

如果不活跃或外部MV选项ext.mv轮廓尺寸无关,控制器假定MV输出用于工厂没有修改。

请注意

使用这个选项会导致一个代数循环仿真软件模型中,由于直接的引线金宝appext.mv尺寸的mv外港。防止此类代数循环,插入一个内存块或单位延迟块。

额外的输出港(通用部分)

最优成本

添加一个输出港(成本)提供最优二次规划目标函数值在当前时间(非负标量)。如果控制器是表现良好,没有违反约束,值应该是小。然而,如果优化问题是不可行的值是没有意义的。(见qp.status。)

最优控制序列

添加一个输出港(mv.seq),提供了计算最优MV整个序列预测地平线k = 0k = p - 1。如果nuMVs的数量和吗p的长度是预测地平线,这个信号是一个p通过nu矩阵。第一行代表k = 0和重复的块的MV外港。

下面的框图(从理解控制行为通过检查最优控制序列)展示了如何使用这个选项。图中显示了如何收集诊断数据,并将其发送到对Workspace2块,形成的变量,useq在工作区中,。运行示例如何最优序列随时间的演化。

优化状态

添加一个输出港(qp.status),允许您监控QP解算器的状态。

如果QP问题成功解决在给定控制区间,qp.status输出返回QP解算器迭代计算中使用的数量。这个值是有限的,正整数,计算所需的时间成正比。因此,一个较大的值意味着一块相对缓慢的执行时间间隔。

QP解算器能不能找到一个最佳的解决方案有以下原因:

  • qp.status= 0- QP解算器无法找到一个解决方案在迭代中指定的最大数量货币政策委员会对象。在这种情况下,如果Optimizer.UseSuboptimalSolutionMPC控制器的属性块举行mv输出最近的成功解决方案。否则,它使用发现在最后的解算器迭代次优的解决方案。

  • qp.status= -1- - - QP解算器检测到一个不可行的QP问题。看到监控优化状态检测控制器故障为一个例子,一个大型的、持续的干扰驱动机汇在其指定的界限。在这种情况下,阻止举行mv输出最近的成功解决方案。

  • qp.status= -2- QP解算器遇到了数值困难解决严重坏心肠的QP问题。在这种情况下,阻止举行mv输出最近的成功解决方案。

在实时应用程序中,您可以使用qp.status设置警报或采取其他特殊行动。

下图显示了如何使用监控的状态指示器MPC控制器块。有关更多信息,请参见监控优化状态检测控制器故障

估计工厂、干扰和噪声模型

添加一个输出港(est.state)接收控制器状态估计,x (k | k),在每个控制即时。这些包括植物、干扰和噪声模型。

状态估计(通用部分)

使用自定义估计状态而不是测量输出

取代x (k | k)尺寸自定义状态估计中描述所需的港口

约束(在线功能部分)

输入和输出的限制

添加港口(umin,umax,ymin,ymax),您可以连接到运行时约束信号。

uminumax是向量nu元素。yminymax是向量ny元素。

如果这个参数没有被选中,块使用常数存储在其约束值货币政策委员会对象。

港口是无关联的,如果这些相关变量被当作无限信号。相应的变量货币政策委员会对象也必须无限。

连接港口,以下规则适用:

  • 所有连接的信号必须是有限的。金宝app仿真软件不支持无限的信号。金宝app

  • 如果一个变量是无约束的控制器对象,连接的值将被忽略。

请注意

你不能指定在运行时使用一个矩阵信号时变约束。

自定义约束

增加港口E,F,G,年代块,可以连接到以下运行时自定义约束矩阵信号:

  • E——被控变量约束矩阵的大小nc——- - - - - -nu,在那里nc是自定义约束的数量吗

  • F——控制输出约束矩阵的大小nc——- - - - - -ny

  • G——自定义约束矩阵大小1×-nc

  • 年代——测量扰动约束矩阵,与大小nc——- - - - - -nv,在那里nv是测量扰动的数量。年代只有在添加货币政策委员会对象有测量的干扰。

这些约束取代先前设定的使用自定义约束setconstraint

如果您定义E,F,G,或年代货币政策委员会对象,你必须将一个信号连接到相应的尺寸,和信号必须有相同的维度的数组中指定的控制器。如果没有控制器对象中定义一个数组,使用零矩阵与正确的大小。

自定义约束的形式Eu+Fy+年代v< =G,地点:

  • u是一个向量的操纵变量值。

  • y是一个向量的预测输出值。

  • v是一个矢量的测量植物扰动输入值。

有关更多信息,请参见限制输入和输出的线性组合

权重(在线功能部分)

控制器用于实时应用程序应该“旋钮”您可以使用它来优化其性能与真正的工厂运作。这组可选的港口服务于这个目的。

如下所示的图显示了三个MPC控制器优化港口。在这个模拟背景下,港口使用预先存储的信号(调谐ywt,duwt,ECRwt变量的从工作空间块)。在实践中,您将连接旋钮或类似的手工调整。

请注意

你不能指定时变权重在运行时使用一个矩阵信号。

植物输出权重

添加一个尺寸(y.wt)一个矢量信号ny元素。每个元素指定一个非负调优重量为每个控制输出变量(OV)。这个信号覆盖MPCobj.Weights.OV财产的货币政策委员会对象,它建立的相对重要性OV参考跟踪。

例如,如果前面的控制器定义了三种机汇,信号连接y.wt尺寸应该是向量和三个要素。如果第二个元素是相对较大的,控制器将相对较高优先级机汇(2)跟踪r (2)参考信号。设置一个y.wt信号为零关闭参考跟踪机汇。

如果你不连接的信号y.wt轮廓尺寸,块使用OV权重MPC中指定对象,和这些值保持不变。

权重被操纵的变量

添加一个尺寸(u.wt),其输入是一个矢量信号定义nu非负权重,nu是操纵变量的数量(MVs)。输入覆盖MPCobj.Weights.MV财产的货币政策委员会对象,它建立的相对重要性MV目标跟踪。

例如,如果您的控制器定义了四个MVs第二u.wt元素是相对较大的,控制器会尽量保持第二个MV接近其目标,指定MPCobj.MV .Target (2)

如果你不连接的信号u.wt轮廓尺寸,块使用Weights.MV权重属性中指定货币政策委员会对象,这些值保持不变。

权重对被控变量的变化

添加一个尺寸(du.wt),定义一个向量信号nu非负权重,nu是操纵变量的数量(MVs)。输入覆盖MPCobj.Weights.MVrate财产的货币政策委员会对象,该对象建立MV的相对重要性的变化。

例如,如果您的控制器定义了四个MVs第二du.wt元素是相对较大的,控制器将使用第二个MV相对较小的变化。这样的移动抑制使控制器不那么咄咄逼人。然而,过多的抑制使它缓慢。

如果你不连接的信号du.wt轮廓尺寸,块使用Weights.MVrate属性中指定货币政策委员会对象,这些值保持不变。

体重对整体约束软化

添加一个尺寸(ECR.wt),一个标量负的信号覆盖货币政策委员会控制器的MPCobj.Weights.ECR财产。这个尺寸没有影响,除非你的控制器对象定义的软约束关联ECR值非零。

如果有软约束,增加了ECR.wt价值使得这些约束相对困难。控制器然后地方优先减少预测最坏的大小约束违反。

你可能无法避免违反约束一个输出变量。因此,增加ECR.wt价值往往会适得其反。这样的增加使控制器更少关注其他目标,不帮助减少约束违反。您通常需要调整ECR.wt达到适当的平衡与其他控制目标。

MV目标(在线功能部分)

目标被操纵的变量

如果你想要一个或多个控制变量(MV)跟踪目标值改变随着时间的推移,使用这个选项添加一个mv.target轮廓尺寸。该端口连接到一个目标信号与维度nu,在那里nu是MVs的数量。

这是有效的,相应的MV (s)必须有非零处罚权重(在缺省情况下,这些权重为零)。

默认条件部分

指定默认的块状样本时间和信号维度进行模拟,削减或线性化。在这些情况下,mv输出信号仍为零。您必须指定默认条件值兼容仿真软件模型设计。金宝app

请注意

这些默认条件仅适用于如果MPC控制器字段是空的。如果你指定一个控制器从MATLAB工作区,样品时间和信号大小从指定的控制器。

样品时间

指定默认的控制器样品时间。

植物输入信号大小

指定的默认信号维度下面的输入信号类型:

  • 被操纵的变量

  • 无边无际的干扰

  • 测量的干扰

    请注意

    您可以指定尺寸只有测量的干扰信号,在一般的部分,额外的港口节,测量的干扰选项被选中。

植物输出信号大小

指定的默认信号维度以下输出信号类型:

  • 测量输出

  • 无边无际的输出

其他的部分

块数据类型

被操纵的变量的块数据类型指定为以下之一:

  • ——双精度浮点数(默认)

  • ——单精度浮点

    如果你是单精度目标、实现块指定输出数据类型

双精度的一个例子,单精度仿真和代码生成MPC控制器,明白了使用仿真软件编码器模拟和代码生成金宝app

查看端口数据类型在一个模型,在模型编辑器中,选择金宝app显示>信号和港口端口数据类型

继承采样时间

使用的样品时间父母子系统作为块样品时间。这样做可以有条件地执行这个块函数调用子系统触发子系统块。例如,看到的使用MPC控制器块内部函数调用和触发子系统

请注意

你必须执行函数调用子系统触发子系统块的采样率控制器。否则,你可以看到意想不到的结果。

查看样本块的时候,在模型编辑器中,选择金宝app显示>样品时间。选择颜色,注释,或所有。有关更多信息,请参见查看样品的时间信息(金宝app模型)。

使用外部信号来启用或禁用优化

添加一个尺寸(开关)输入指定的控制器进行优化计算。如果输入信号为零,控制器正常行为。如果输入信号是0,MPC控制器块关闭控制器优化计算。这一行动减少计算工作时不需要控制器的输出,比如当系统操作手动或另一个控制器接管。然而,控制器继续更新其内部状态估计以通常的方式。因此,只要准备好简历优化计算开关信号返回零。当控制器优化掉,MPC控制器块传递当前的ext.mv信号控制器的输出。如果ext.mv尺寸不启用,控制器输出值举行优化时禁用。

这个主题有帮助吗?