主要内容

MPC控制器

模拟模型预测控制器

  • 图书馆:
  • 模型预测控制工具箱

  • MPC控制器块

描述

MPC控制器块接收电流测量的输出信号()、参考信号(裁判)和可选的测量干扰信号(医学博士)。该块计算最佳操作变量(mv)通过使用默认的kwik求解器或自定义qp求解器来解决二次编程问题。有关更多信息,请参阅QP求解器

要在模拟和代码生成中使用代码块,必须指定MPC.对象,定义模型预测控制器。该控制器必须为其控制的工厂设计。

因为MPC控制器块使用MATLAB函数块,每次更改MPC对象和块时都需要编译。另外,因为matlab®不允许被编译的代码驻留在任何MATLAB产品文件夹中,必须使用非MATLAB文件夹来在SIMULINK上工作万博1manbetx®使用MPC块时的模型。

港口

输入

展开全部

所需输入

测量输出,指定为矢量信号。该块使用测量的工厂输出来改善其状态估计。如果您的控制器使用默认状态估计,则必须将测量的工厂输出连接到输入端口。如果控制器使用自定义状态估计,则必须将估计的植物状态连接到x [k | k]输入端口。

依赖关系

要启用此端口,请清除使用自定义状态估计而不是使用内置的卡尔曼滤波器参数。

自定义状态估计,指定为矢量信号。该块使用连接状态估计而不是使用内置估计器估计状态。如果您的控制器使用自定义状态估计,则必须将当前状态估计连接到x [k | k]输入端口。如果您的控制器使用默认状态估计,则必须将测量的输出连接到输入端口。

尽管在MPC优化中不使用噪声模型状态(如果有的话),但自定义状态向量必须包含在中定义的所有状态mpcstate控制器的对象包括被控对象、扰动和噪声模型的状态。

当替代估计技术被视为优于内置估计器或当状态完全可测量时,使用自定义状态估计。

依赖关系

要启用此端口,请选择使用自定义状态估计而不是使用内置的卡尔曼滤波器参数。

植物输出参考值,指定为行向量信号或矩阵信号。

在预测地平线上使用相同的参考值,连接裁判与行矢量信号Ny元素,在哪里Ny是输出变量的数量。每个元素指定输出变量的引用。

改变对预测地平线(预览)的引用K.+1时间K.+P., 连接裁判与矩阵信号Ny列和最多P.行。这里,K.是当前的时间和P.是预测的地平线。每行包含一个预测地平线步骤的引用。如果您指定少于P.行,最终参考用于预测地平线的剩余步骤。

额外的投入

如果控制器预测模型具有测量干扰,则必须启用此端口并连接到行向量或矩阵信号。

要在整个预测视界使用相同的测量扰动值,请连接医学博士与行矢量信号N医学博士元素,在哪里N医学博士为被操纵变量的个数。每个元素都指定了测量扰动的值。

随时间改变在预测视界(预览)上的扰动K.时间K.+P., 连接医学博士与矩阵信号N医学博士列和最多P.+ 1行。这里,K.是当前的时间和P.是预测的地平线。每行包含一个预测地平线步骤的干扰。如果您指定少于P.+1行,最终干扰用于预测地平线的剩余步骤。

依赖关系

要启用此端口,请选择测量的干扰参数。

在先前控制间隔的工厂中使用的控制信号,指定为长度的向量信号Nmv, 在哪里Nmv为被操纵变量的个数。使用此输入端口以提高状态估计准确性:

  • 你知道你的控制器并不总是在控制工厂。

  • 实际应用到设备的MV信号可能与控制器产生的值存在潜在的差异,例如在控制信号饱和中。

控制器状态估计假定MV是分段常数。因此,在时间T.K., 这Ext.mv.值必须包含时间之间的有效mvT.K-1T.K..例如,如果MV在此间隔内实际改变,则可以提供当时评估的时间平均值T.K.

笔记

  • 连接Ext.mv.在先前的控制间隔中实际应用于工厂的MV信号。通常,这些MV信号是控制器生成的值,但情况并非总是如此。例如,如果您的控制器处于离线状态并以跟踪模式运行(即,控制器输出不是驾驶工厂),则将实际控制信号送到Ext.mv.当控制器在线切换后,可以帮助实现无闷吸的转移。

  • 当控制器驱动工厂时,插入a记忆块或者单位延迟块以先前的控制间隔向施加到工厂的MV信号。这也避免了直接促进Ext.mv.inport到mv出口,因此防止了Simulink模型中的代数循环。万博1manbetx

有关使用外部操纵变量输入端口进行无颠簸传输的示例,请参阅在线交换控制器和无丧失丧命转移的离线

依赖关系

要启用此端口,请选择外部操纵变量参数。

若要关闭控制器优化计算,请连接转变到一个非零信号。

禁用优化计算在不需要控制器输出时减少了计算工作,例如当系统手动操作或另一个控制器接管时,何时何时运行。但是,控制器继续以通常的方式更新其内部状态估计。因此,它可以随时恢复优化计算转变信号返回为零。当控制器优化关闭时,块通过电流Ext.mv.信号到控制器输出。如果是Ext.mv.如果未启用导入,控制器输出将保持在优化被禁用时的值。

有关使用外部操纵变量输入端口进行无颠簸传输的示例,请参阅在线交换控制器和无丧失丧命转移的离线

依赖关系

要启用此端口,请选择使用外部信号启用或禁用优化参数。

要指定操纵变量目标,请启用此输入端口,并连接行向量或矩阵信号。要使定义的可操作可转换其指定的目标值,您还必须指定该变量的非零调整权重。

在整个预测范围内使用相同的操纵变量目标,连接mv.target与行矢量信号Nmv元素,在哪里Nmv为被操纵变量的个数。每个元素指定被操纵变量的目标。

从时间内改变预测地平线(预览)的目标K.时间K.+P.-1,连接mv.target与矩阵信号Nmv列和最多P.行。这里,K.是当前的时间和P.是预测的地平线。每行包含一个预测地平线步骤的目标。如果您指定少于P.行,最终目标用于预测视界的其余步骤。

依赖关系

要启用此端口,请选择操纵变量的目标参数。

在线限制

要指定运行时最小输出变量约束,请启用此输入端口。如果禁用此端口,则该块使用指定的下限outputvariables.min.财产的MPC.控制器对象。如果输出变量没有在控制器对象中指定的较低绑定,则在运行时块忽略相应的连接信号。

从时间改变预测地平线上的界限K.+1时间K.+P., 连接ymin与矩阵信号Ny列和最多P.行。这里,Ny是植物产出的数量,K.是当前的时间,还有P.是预测的地平线。每行包含一个预测地平线步骤的界限。如果您指定少于P.行,最后一行中的边界适用于预测视界的其余部分。如果只有一个输出变量,而一个向量信号不大于P.条目已连接,然后在预测地平线上使用这些条目。

一世第Th列ymin信号对应于一世产量输出,并取代outputVariables(i).max财产的财产MPC.运行时的对象。替换行为取决于两个变量的尺寸。

标量子outputvariables(i).min在里面MPC.对象(一个常量绑定一世用于所有预测步骤的工厂产量)

ymin尺寸 替代行为
标量子ymin(单个输出,常量绑定) ymin替换所定义的常量绑定outputvariables(i).min
柱矢量ymin(单输出,时变界限) ymin替换所定义的常量绑定outputvariables(i).min有一个时变的界限。
行矢量ymin(多个输出,常量边界) 一世Th元素ymin替换所定义的常量绑定outputvariables(i).min
矩阵ymin(多个输出,时变界限) 一世th列ymin替换所定义的常量绑定outputvariables(i).min有一个时变的界限。

向量outputvariables(i).min在里面MPC.对象的时变边界一世不同预测步骤下不同值的工厂产量)

ymin尺寸 替代行为
标量子ymin(单个输出,常量绑定) ymin替换第一个有限项outputvariables.min.剩下的项outputvariables.min.以相同的位移量向上或向下移动,以保持原始轮廓outputvariables.min.向量。
柱矢量ymin(单输出,时变界限) ymin替换所定义的时变绑定outputvariables(i).min,并且丢弃原始绑定配置文件。
行矢量ymin(多个输出,常量边界) 一世Th元素ymin替换第一个有限项outputvariables(i).min剩下的项outputvariables(i).min以相同的位移量向上或向下移动,以保持原始轮廓outputvariables(i).min向量。
矩阵ymin(多个输出,时变界限)。 一世th列ymin替换所定义的时变绑定outputvariables(i).min,并且丢弃原始绑定配置文件。

依赖关系

要启用此端口,请选择较低的ov限制参数。

要指定运行时最大输出变量约束,请启用此输入端口。如果该端口被禁用,则块将使用OutputVariables。马克斯财产的MPC.控制器对象。如果输出变量没有在控制器对象中指定的上限,则在运行时块忽略相应的连接信号。

从时间改变预测地平线上的界限K.+1时间K.+P., 连接ymax与矩阵信号Ny列和最多P.行。这里,Ny是植物产出的数量,K.是当前的时间,还有P.是预测的地平线。每行包含一个预测地平线步骤的界限。如果您指定少于P.行,最后一行中的边界适用于预测视界的其余部分。如果只有一个输出变量,而一个向量信号不大于P.条目已连接,然后在预测地平线上使用这些条目。

一世第Th列ymax信号对应于一世产量输出,并取代outputVariables(i).max财产的财产MPC.运行时的对象。替换行为取决于两个变量的尺寸。

标量子outputVariables(i).max在里面MPC.对象(一个常量绑定一世用于所有预测步骤的工厂产量)

ymax尺寸 替代行为
标量子ymax(单个输出,常量绑定) ymax替换所定义的常量绑定outputVariables(i).max
柱矢量ymax(单输出,时变界限) ymax替换所定义的常量绑定outputVariables(i).max有一个时变的界限。
行矢量ymax(多个输出,常量边界) 一世Th元素ymax替换所定义的常量绑定outputVariables(i).max
矩阵ymax(多个输出,时变界限) 一世th列ymax替换所定义的常量绑定outputVariables(i).max有一个时变的界限。

向量outputVariables(i).max在里面MPC.对象的时变边界一世不同预测步骤下不同值的工厂产量)

ymax尺寸 替代行为
标量子ymax(单个输出,常量绑定) ymax替换第一个有限项OutputVariables。马克斯剩下的项OutputVariables。马克斯以相同的位移量向上或向下移动,以保持原始轮廓OutputVariables。马克斯向量。
柱矢量ymax(单输出,时变界限) ymax替换所定义的时变绑定outputVariables(i).max,并且丢弃原始绑定配置文件。
行矢量ymax(多个输出,常量边界) 一世Th元素ymax替换第一个有限项outputVariables(i).max剩下的项outputVariables(i).max以相同的位移量向上或向下移动,以保持原始轮廓outputVariables(i).max向量。
矩阵ymax(多个输出,时变界限)。 一世th列ymax替换所定义的时变绑定outputVariables(i).max,并且丢弃原始绑定配置文件。

依赖关系

要启用此端口,请选择上ov限制参数。

要指定运行时最小操纵变量约束,请启用此输入端口。如果禁用此端口,则该块使用指定的下限ManipulatedVariables。最小值财产的MPC.控制器对象。如果一个被操纵的变量没有在控制器对象中指定的下界,那么在运行时块将忽略相应的连接信号。

从时间改变预测地平线上的界限K.时间K.+P.-1,连接umin与矩阵信号Nmv列和最多P.行。这里,Nmv是操纵变量的数量,K.是当前的时间,还有P.是预测的地平线。每行包含一个预测地平线步骤的界限。如果您指定少于P.行,最后一行中的边界适用于预测视界的其余部分。如果只有一个被操纵变量,而一个向量信号不大于P.条目已连接,然后在预测地平线上使用这些条目。

一世第Th列umin信号对应于一世TH操纵变量,并取代ManipulatedVariables(我)。马克斯财产的财产MPC.运行时的对象。替换行为取决于两个变量的尺寸。

标量子Manipulatedvariables(i).min在里面MPC.对象(一个常量绑定一世TH操纵变量适用于所有预测步骤)

umin尺寸 替代行为
标量子umin(单个输出,常量绑定) umin替换所定义的常量绑定Manipulatedvariables(i).min
柱矢量umin(单输出,时变界限) umin替换所定义的常量绑定Manipulatedvariables(i).min有一个时变的界限。
行矢量umin(多个输出,常量边界) 一世Th元素umin替换所定义的常量绑定Manipulatedvariables(i).min
矩阵umin(多个输出,时变界限) 一世th列umin替换所定义的常量绑定Manipulatedvariables(i).min有一个时变的界限。

向量Manipulatedvariables(i).min在里面MPC.对象的时变边界一世在不同的预测步骤中具有不同值的操纵变量)

umin尺寸 替代行为
标量子umin(单个输出,常量绑定) umin替换第一个有限项ManipulatedVariables。最小值剩下的项ManipulatedVariables。最小值以相同的位移量向上或向下移动,以保持原始轮廓ManipulatedVariables。最小值向量。
柱矢量umin(单输出,时变界限) umin替换所定义的时变绑定Manipulatedvariables(i).min,并且丢弃原始绑定配置文件。
行矢量umin(多个输出,常量边界) 一世分量umin替换第一个有限项Manipulatedvariables(i).min剩下的项Manipulatedvariables(i).min以相同的位移量向上或向下移动,以保持原始轮廓Manipulatedvariables(i).min向量。
矩阵umin(多个输出,时变界限)。 一世th列umin替换所定义的时变绑定Manipulatedvariables(i).min,并且丢弃原始绑定配置文件。

依赖关系

要启用此端口,请选择较低的MV限制参数。

要指定运行时最大操纵变量约束,请启用此输入端口。如果该端口被禁用,则块将使用manipuldvariables.max.财产的MPC.控制器对象。如果一个被操纵的变量没有在控制器对象中指定的上限,那么在运行时块将忽略相应的连接信号。

从时间改变预测地平线上的界限K.时间K.+P.-1,连接umax.与矩阵信号Nmv列和最多P.行。这里,Nmv是操纵变量的数量,K.是当前的时间,还有P.是预测的地平线。每行包含一个预测地平线步骤的界限。如果您指定少于P.行,最后一行中的边界适用于预测视界的其余部分。如果只有一个被操纵变量,而一个向量信号不大于P.条目已连接,然后在预测地平线上使用这些条目。

一世第Th列umax.信号对应于一世TH操纵变量,并取代ManipulatedVariables(我)。马克斯财产的财产MPC.运行时的对象。替换行为取决于两个变量的尺寸。

标量子ManipulatedVariables(我)。马克斯在里面MPC.对象(一个常量绑定一世TH操纵变量适用于所有预测步骤)

umax.尺寸 替代行为
标量子umax.(单个输出,常量绑定) umax.替换所定义的常量绑定ManipulatedVariables(我)。马克斯
柱矢量umax.(单输出,时变界限) umax.替换所定义的常量绑定ManipulatedVariables(我)。马克斯有一个时变的界限。
行矢量umax.(多个输出,常量边界) 一世Th元素umax.替换所定义的常量绑定ManipulatedVariables(我)。马克斯
矩阵umax.(多个输出,时变界限) 一世th列umax.替换所定义的常量绑定ManipulatedVariables(我)。马克斯有一个时变的界限。

向量ManipulatedVariables(我)。马克斯在里面MPC.对象的时变边界一世在不同的预测步骤中具有不同值的操纵变量)

umax.尺寸 替代行为
标量子umax.(单个输出,常量绑定) umax.替换第一个有限项manipuldvariables.max.剩下的项manipuldvariables.max.以相同的位移量向上或向下移动,以保持原始轮廓manipuldvariables.max.向量。
柱矢量umax.(单输出,时变界限) umax.替换所定义的时变绑定ManipulatedVariables(我)。马克斯,并且丢弃原始绑定配置文件。
行矢量umax.(多个输出,常量边界) 一世Th元素umax.替换第一个有限项ManipulatedVariables(我)。马克斯剩下的项ManipulatedVariables(我)。马克斯以相同的位移量向上或向下移动,以保持原始轮廓ManipulatedVariables(我)。马克斯向量。
矩阵umax.(多个输出,时变界限)。 一世th列umax.替换所定义的时变绑定ManipulatedVariables(我)。马克斯,并且丢弃原始绑定配置文件。

依赖关系

要启用此端口,请选择上部MV限制参数。

操纵变量约束矩阵,指定为NC-经过-Nmv矩阵信号,NC是混合输入/输出约束的数量和Nmv为被操纵变量的个数。

如果你定义E.在里面MPC.对象,则必须将信号连接到E.输入端口。否则,使用正确的尺寸连接零矩阵。

要指定运行时混合输入/输出约束,请使用E.输入端口以及FG,S.港口。这些约束替换先前使用的混合输入/输出约束setconstraint.有关混合输入/输出约束的更多信息,请参阅限制输入和输出的线性组合

混合输入/输出约束的数量在运行时无法更改。所以,NC必须匹配的行数E.您使用的矩阵setconstraint

依赖关系

要启用此端口,请选择自定义约束参数。

受控输出约束矩阵,指定为一个NC-经过-Ny矩阵信号,NC是混合输入/输出约束的数量和Ny是植物产出的数量。如果你定义F在里面MPC.对象,则必须将信号连接到F输入端口相同行数。否则,使用正确的尺寸连接零矩阵。

要指定运行时混合输入/输出约束,请使用F输入端口以及E.G,S.港口。这些约束替换先前使用的混合输入/输出约束setconstraint.有关混合输入/输出约束的更多信息,请参阅限制输入和输出的线性组合

混合输入/输出约束的数量在运行时无法更改。所以,NC必须匹配的行数F您使用的矩阵setconstraint

依赖关系

要启用此端口,请选择自定义约束参数。

自定义约束向量,指定为长度的行向量信号NC, 在哪里NC是混合输入/输出约束的数量。如果你定义G在里面MPC.对象,则必须将信号连接到G输入端口相同行数。否则,使用正确的尺寸连接零矩阵。

要指定运行时混合输入/输出约束,请使用G输入端口以及E.F,S.港口。这些约束替换先前使用的混合输入/输出约束setconstraint.有关混合输入/输出约束的更多信息,请参阅限制输入和输出的线性组合

混合输入/输出约束的数量在运行时无法更改。所以,NC必须匹配的行数G您使用的矩阵setconstraint

依赖关系

要启用此端口,请选择自定义约束参数。

测量的扰动约束矩阵,指定为NC-经过-NN矩阵信号,NC是混合输入/输出约束的数量,和NV.为被测扰动的个数。如果你定义S.在里面MPC.对象,则必须将信号连接到S.输入端口相同行数。否则,使用正确的尺寸连接零矩阵。

要指定运行时混合输入/输出约束,请使用S.输入端口以及E.F,G港口。这些约束替换先前使用的混合输入/输出约束setconstraint.有关混合输入/输出约束的更多信息,请参阅限制输入和输出的线性组合

混合输入/输出约束的数量在运行时无法更改。所以,NC必须匹配的行数G您使用的矩阵setconstraint

依赖关系

要启用此端口,请选择自定义约束参数。仅当此端口仅添加此端口MPC.物体具有测量的扰动。

在线调整重量

要指定运行时输出变量调整权重,请启用此输入端口。如果该端口被禁用,则块将使用权重。输出Variables属性。这些调整权重惩罚了输出引用的偏差。

如果MPC控制器对象在预测视界上使用恒定输出调整权重,则只能在运行时指定恒定的输出调谐权重。同样,如果MPC控制器对象使用输出调整权重,则可以在运行时仅在运行时仅指定时变输出调谐权重

在预测地平线上使用常量调谐权重,连接y.wt.与行矢量信号Ny元素,在哪里Ny为输出数。每个元素为输出变量指定一个非负的调优权重。有关指定调谐权重的更多信息,请参阅调整权重

从时间从预测地平线上改变调谐重量K.+1时间K.+P., 连接y.wt.与矩阵信号Ny列和最多P.行。这里,K.是当前的时间和P.是预测的地平线。每行包含一个预测地平线步骤的调谐权重。如果您指定少于P.行,最终行中的调谐重量适用于预测地平线的其余部分。有关预测地平线上不同权重的更多信息,请参阅时变权和约束

依赖关系

要启用此端口,请选择ov重量参数。

要指定运行时操作变量调整权重,请启用此输入端口。如果该端口被禁用,则块将使用权重。ManipulatedVariables属性。这些调整权重惩罚了MV目标的偏差。

如果MPC控制器对象在预测视界上使用常量操纵变量调整权重,则只能在运行时指定仅在运行时在运行时指定常量操纵可变调谐权重。同样,如果MPC控制器对象使用可操作的可变调整权重,则可以在运行时仅在运行时仅指定时变的操作变量调整权重

要在预测范围内使用相同的调优权重,请连接u.wt与行矢量信号Nmv元素,在哪里Nmv为被操纵变量的个数。每个元素指定被操纵变量的非负调整权重。有关指定调谐权重的更多信息,请参阅调整权重

从时间从预测地平线上改变调谐重量K.时间K.+P.-1,连接u.wt与矩阵信号Nmv列和最多P.行。这里,K.是当前的时间和P.是预测的地平线。每行包含一个预测地平线步骤的调谐权重。如果您指定少于P.行,最终行中的调谐重量适用于预测地平线的其余部分。有关预测地平线上不同权重的更多信息,请参阅时变权和约束

依赖关系

要启用此端口,请选择MV重量参数。

要指定运行时操纵的可变速率调优权重,请启用此输入端口。如果该端口被禁用,则块将使用权重.ManipuldVariablesRate.属性。这些调优权重会对控制移动中的较大更改进行惩罚。

如果MPC控制器对象在预测视界上使用常量操纵的可变速率调整权重,则可以在运行时指定仅在运行时指定常量操作的可变调谐速率权重。类似地,如果MPC控制器对象使用在预测视界上变化的操纵可变速率调整权重,则只能在运行时指定时间变化的操纵变量调整权重

要在预测范围内使用相同的调优权重,请连接du.wt.与行矢量信号Nmv元素,在哪里Nmv为被操纵变量的个数。每个元素指定用于操纵变量率的非负调整权重。有关指定调谐权重的更多信息,请参阅调整权重

从时间从预测地平线上改变调谐重量K.时间K.+P.-1,连接du.wt.与矩阵信号Nmv列和最多P.行。这里,K.是当前的时间和P.是预测的地平线。每行包含一个预测地平线步骤的调谐权重。如果您指定少于P.行,最终行中的调谐重量适用于预测地平线的其余部分。有关预测地平线上不同权重的更多信息,请参阅时变权和约束

依赖关系

要启用此端口,请选择mvrate重量参数。

要指定运行时松弛可变调谐重量,请启用此输入端口并连接标量信号。如果禁用此端口,则该块使用指定的调谐重量权重..属性。

除非您的Controller对象定义相关的ECR值是非零的软约束,否则Slack变量调整权重无效。如果有软限制,则增加ecr.wt价值使得这些约束相对困难。然后,控制器将优先考虑最小化预测的最坏情况约束违背的大小。

依赖关系

要启用此端口,请选择ECR重量参数。

在线视野

预测视界,指定为正整数信号。预测地平信号值必须小于或等于最大预测地平线参数。

在运行时,值P.覆盖控制器对象中指定的默认预测范围。有关更多信息,请参阅在运行时调整视野

依赖关系

要启用此端口,请选择在运行时调整预测地平线和控制地平线参数。

控制水平,指定为下列之一:

  • 正整数信号小于或等于预测地平线。

  • 指定阻塞间隔长度的正整数的矢量信号。有关更多信息,请参阅被控变量阻塞

在运行时,值m覆盖控制器对象中指定的默认控制范围。有关更多信息,请参阅在运行时调整视野

依赖关系

要启用此端口,请选择在运行时调整预测地平线和控制地平线参数。

输出

展开全部

要求输出

最佳操作变量控制动作,输出作为长度的柱矢量信号Nmv, 在哪里Nmv为被操纵变量的个数。

如果求解器会聚到局部最佳解决方案(qp.status.是积极的),然后呢mv包含最佳解决方案。

如果求解器失败(qp.status.是消极的),然后mv仍然是最近成功的解决方案;也就是说,控制器输出冻结。

如果求解器达到最大迭代次数而未找到最优解(qp.status.是零)和优化.Usesuboptimalsolution.属性为:

  • 真正的, 然后mv包含次优解

  • 错误的, 然后mv然后mv仍然是最近成功的解决方案

额外的输出

目标函数代价,输出为非负标量信号。成本量化了控制人员实现其目标的程度。成本值是使用缩放的MPC成本函数计算的,其中每一项都是无偏移和无量纲的。

成本值只有在qp.status.输出是非负的。

依赖关系

要启用此端口,请选择最佳成本参数。

优化状态,输出为整数信号。

如果控制器解决了给定控制区间的QP问题,则qp.status.输出返回计算中使用的QP求解器迭代的数量。该值是有限的正整数,并且与计算所需的时间成比例。因此,对于该时间间隔,大值意味着相对较慢的块执行。

由于以下原因,QP求解器无法找到最佳解决方案:

  • qp.status.=0.—QP求解器不能在最大迭代次数内找到一个解MPC.对象。在这种情况下,如果优化器.Usesuboptimalsolution.控制器的财产是错误的,块保持其mv最近成功解决方案的输出。否则,它使用最后一个求解器迭代期间找到的次优溶液。

  • qp.status.=-1- QP求解器检测到一个不可行的QP问题。看监控优化状态以检测控制器故障例如,一个大的、持续的扰动使输出变量超出了其指定的界限。在这种情况下,块保持它的mv最近成功解决方案的输出。

  • qp.status.=2- QP求解器遇到了解决严重病态QP问题的数值困难。在这种情况下,块保持它的mv最近成功解决方案的输出。

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

依赖关系

要启用此端口,请选择优化状态参数。

每个控制瞬间的估计控制器状态,作为向量信号返回。估计的状态包括植物,干扰和噪声模型状态。如果使用自定义状态估计,则该输出信号具有相同的值x [k | k]输入信号。

依赖关系

要启用此端口,请选择估计控制器状态参数。

最佳序列

最佳操作变量序列,用矩阵信号返回P.+1行和Nmv列,其中P.是预测的地平线和Nmv为被操纵变量的个数。

首先P.mv.seq.包含当前时间的计算的最佳操纵变量值K.时间K.+P.-1。第一排mv.seq.包含当前操作的变量值(输出mv)。由于控制器不会在时间计算最佳控制K.+P.,最后两排mv.seq.是相同的。

依赖关系

要启用此端口,请选择最佳控制序列参数。

最优预测模型状态序列,作为矩阵信号返回P.+1行和NX列,其中P.是预测的地平线和NX是州的数量。

首先P.X.Seq.从当前时间包含计算出的最佳状态值K.时间K.+P.-1。第一排X.Seq.包含当前估计的状态值。由于控制器不会在时间计算最佳状态K.+P.,最后两排X.Seq.是相同的。

依赖关系

要启用此端口,请选择最佳状态序列参数。

最佳输出变量序列,用矩阵信号返回P.+1行和Ny列,其中P.是预测的地平线和Ny是输出变量的数量。

首先P.Y.Seq.包含从当前时间计算的最佳输出值K.时间K.+P.-1。第一排Y.Seq.基于当前估计的状态和当前测量的干扰来计算(第一行输入医学博士)。由于控制器不会在时间计算最佳输出值K.+P.,最后两排Y.Seq.是相同的。

依赖关系

要启用此端口,请选择最佳输出序列参数。

参数

展开全部

指定A.MPC.通过输入and的名称来定义隐式MPC控制器的对象MPC.来自MATLAB工作区的对象。

程序使用

块参数:mpcobj
类型:字符串,特征向量
默认:

指定初始控制器状态。如果您将此参数留空,则块使用定义的标称值Model.Nominal.财产的财产MPC.对象。若要覆盖默认值,请创建mpcstate在工作区中的对象,并在字段中输入其名称。

使用此参数使控制器状态反映真实的植物环境在您的模拟开始,就您所知。这个初始状态可以不同于定义的名义状态MPC.对象。

如果启用了自定义状态估计,则块忽略初始控制器状态参数。

程序使用

块参数:x0
类型:字符串,特征向量
默认:

控件以交互方式修改指定的控制器MPC控制器参数,打开MPC设计师通过点击查看设计.例如,您可以:

  • 导入新的预测模型。

  • 更改视野,约束和权重。

  • 用线性装置评估MPC性能。

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

如果你有现成的MPC.在MATLAB工作区中的对象,使用该对象指定该对象的名称MPC控制器参数。

如果你没有现有的MPC.在matlab工作区中的对象,离开MPC控制器参数空。与之MPC控制器闭塞连接到工厂,打开MPC设计师通过点击设计.使用应用程序,在指定的操作点线性化Simulink模型,并万博1manbetx设计你的控制器。要使用这种设计方法,您必须拥有万博1manbetxSimulink Control Design™软件。有关更多信息,请参阅在Simulink中设计MPC控制器万博1manbetx使用MPC设计器线性万博1manbetx化Simulink模型

使用使用的控制器指定控制器MPC控制器参数时,您可以通过单击来检查设计的运行时稳定性和健壮性问题审查.有关更多信息,请参阅审查模型预测控制器,用于稳定性和鲁棒性问题

常规选项卡

如果你的控制器已经测量到扰动,你必须选择这个参数来添加医学博士输出端口到块。

程序使用

块参数:md_inport
类型:字符串,特征向量
价值观:“关闭”“上”
默认:“上”

选择此参数以添加Ext.mv.输入端口到块。

程序使用

块参数:mv_inport.
类型:字符串,特征向量
价值观:“关闭”“上”
默认:“关闭”

选择此参数以添加mv.target输入端口到块。

程序使用

块参数:uref_inport.
类型:字符串,特征向量
价值观:“关闭”“上”
默认:“关闭”

选择此参数以添加成本输出端口到块。

程序使用

块参数:return_cost.
类型:字符串,特征向量
价值观:“关闭”“上”
默认:“关闭”

选择此参数以添加qp.status.输出端口到块。

程序使用

块参数:return_qpstatus
类型:字符串,特征向量
价值观:“关闭”“上”
默认:“关闭”

选择此参数以添加est.state.输出端口到块。

程序使用

块参数:return_state
类型:字符串,特征向量
价值观:“关闭”“上”
默认:“关闭”

选择此参数以添加mv.seq.输出端口到块。

程序使用

块参数:return_mvseq.
类型:字符串,特征向量
价值观:“关闭”“上”
默认:“关闭”

选择此参数以添加X.Seq.输出端口到块。

程序使用

块参数:return_xseq.
类型:字符串,特征向量
价值观:“关闭”“上”
默认:“关闭”

选择此参数以添加Y.Seq.输出端口到块。

程序使用

块参数:return_ovseq.
类型:字符串,特征向量
价值观:“关闭”“上”
默认:“关闭”

选择此参数以删除输入端口并添加x [k | k]输入端口。

程序使用

块参数:endy_inport.
类型:字符串,特征向量
价值观:“关闭”“上”
默认:“关闭”
在线功能选项卡

选择此参数以添加ymin输入端口到块。

程序使用

块参数:ymin_inport.
类型:字符串,特征向量
价值观:“关闭”“上”
默认:“关闭”

选择此参数以添加ymax输入端口到块。

程序使用

块参数:ymax_inport.
类型:字符串,特征向量
价值观:“关闭”“上”
默认:“关闭”

选择此参数以添加umin输入端口到块。

程序使用

块参数:umin_inport
类型:字符串,特征向量
价值观:“关闭”“上”
默认:“关闭”

选择此参数以添加umax.输入端口到块。

程序使用

块参数:umax_inport
类型:字符串,特征向量
价值观:“关闭”“上”
默认:“关闭”

选择此参数以添加E.FG,S.输入端口到块。

程序使用

块参数:cc_inport
类型:字符串,特征向量
价值观:“关闭”“上”
默认:“关闭”

选择此参数以添加y.wt.输入端口到块。

程序使用

块参数:ywt_inport.
类型:字符串,特征向量
价值观:“关闭”“上”
默认:“关闭”

选择此参数以添加u.wt输入端口到块。

程序使用

块参数:UWT_INPORT.
类型:字符串,特征向量
价值观:“关闭”“上”
默认:“关闭”

选择此参数以添加du.wt.输入端口到块。

程序使用

块参数:duwt_inport
类型:字符串,特征向量
价值观:“关闭”“上”
默认:“关闭”

选择此参数以添加ecr.wt输入端口到块。

程序使用

块参数:rhoeps_inport.
类型:字符串,特征向量
价值观:“关闭”“上”
默认:“关闭”

选择此参数以添加P.m输入端口到块。

程序使用

块参数:PM_INPORT.
类型:字符串,特征向量
价值观:“关闭”“上”
默认:“关闭”

选择此参数以添加P.m输入端口到块。

依赖关系

要启用此参数,请选择在运行时调整预测地平线和控制地平线参数。

程序使用

块参数:MaximumP
类型:字符串,特征向量
默认:“10”
默认条件选项卡

属性执行模拟、微调或线性化的默认块采样时间MPC设计师应用程序。您必须指定与Simulink模型设计兼容的采样时间。万博1manbetx

依赖关系

此参数仅适用于MPC控制器参数是空的,你打开MPC设计师使用设计按钮。

程序使用

块参数:n_ts.
类型:字符串,特征向量
默认:“1”

使用仿真,修剪或线性化的默认预测视野MPC设计师应用程序。您必须指定与Simulink模型设计兼容的预测视野。万博1manbetx

依赖关系

此参数仅适用于MPC控制器参数是空的,你打开MPC设计师使用设计按钮。

程序使用

块参数:N_P.
类型:字符串,特征向量
默认:“10”

使用该模拟,修剪或线性化的默认操作变量数MPC设计师应用程序。您必须指定与Simulink模型设计兼容的值。万博1manbetx

依赖关系

此参数仅适用于MPC控制器参数是空的,你打开MPC设计师使用设计按钮。

程序使用

块参数:n_mv.
类型:字符串,特征向量
默认:“1”

使用该模拟,修剪或线性化的默认测量干扰次数MPC设计师应用程序。您必须指定与Simulink模型设计兼容的值。万博1manbetx

依赖关系

  • 此参数仅适用于MPC控制器参数是空的,你打开MPC设计师使用设计按钮。

  • 要使用该参数,必须选择测量干扰参数。

程序使用

块参数:n_md.
类型:字符串,特征向量
默认:“1”

使用该模拟,修剪或线性化的默认默认的未测量干扰次数MPC设计师应用程序。您必须指定与Simulink模型设计兼容的值。万博1manbetx

依赖关系

此参数仅适用于MPC控制器参数是空的,你打开MPC设计师使用设计按钮。

程序使用

块参数:n_ud.
类型:字符串,特征向量
默认:“0”

使用仿真,修剪或线性化的默认测量输出次数MPC设计师应用程序。您必须指定与Simulink模型设计兼容的值。万博1manbetx

依赖关系

此参数仅适用于MPC控制器参数是空的,你打开MPC设计师使用设计按钮。

程序使用

块参数:n_mo.
类型:字符串,特征向量
默认:“1”

使用该模拟,修剪或线性化的默认输出默认的未测量输出次数MPC设计师应用程序。您必须指定与Simulink模型设计兼容的值。万博1manbetx

依赖关系

此参数仅适用于MPC控制器参数是空的,你打开MPC设计师使用设计按钮。

程序使用

块参数:n_uo.
类型:字符串,特征向量
默认:“0”
其他选项卡

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

  • 双倍的—双精度浮点数

  • - 单精度浮点

    如果在单精度目标上实现块,请指定输出数据类型

  • 数据类型表达式- 一种评估它的表达式双倍的要么.有关更多信息,请参阅控制信号数据类型(万博1manbetxSimulink)

程序使用

块参数:BlockDataType
类型:字符串,特征向量
价值观:“双倍的”“单身”数据类型表达式
默认:“双倍的”

选择此参数以将父子系统的示例时间继承为块采样时间。这样做允许您在内部有条件地执行此块功能呼叫子系统(万博1manbetxSimulink)要么触发子系统(万博1manbetxSimulink)块。例如,看到使用MPC控制器块内部功能呼叫和触发子系统

笔记

你必须执行功能呼叫子系统要么触发子系统以控制器的采样率阻塞。否则,您将看到意想不到的结果。

如果清除此参数,则块的采样时间将从控制器对象继承。

要查看块的示例时间,请在Simulink模型窗口中万博1manbetx调试标签,下面信息覆盖,选择颜色要么文本.有关更多信息,请参阅查看样本时间信息(万博1manbetxSimulink)

程序使用

块参数:SampleTimeInherited
类型:字符串,特征向量
价值观:“关闭”“上”
默认:“关闭”

选择此参数以添加转变输入端口到块。

程序使用

块参数:switch_inport
类型:字符串,特征向量
价值观:“关闭”“上”
默认:“关闭”

兼容性的考虑

展开全部

R2018B的行为更改

扩展功能

C / C ++代码生成
使用Simulink®Coder™生成C和c++代码。万博1manbetx

PLC代码生成
使用Simulink®PLC Coder™生成结构化文本代码。万博1manbetx

之前介绍过的R2006a