MPC控制器
模拟模型预测控制器
- 库:
模型预测控制工具箱
描述
的MPC控制器块接收当前测量输出信号(莫
),参考信号(裁判
),以及可选的实测扰动信号(医学博士
).该块计算最优操作变量(mv
)通过使用默认的KWIK求解器或自定义QP求解器来解决二次规划问题。有关更多信息,请参见QP解决者.
若要在模拟和代码生成中使用该块,必须指定货币政策委员会
对象,它定义了一个模型预测控制器。这个控制器必须已经为它所控制的工厂设计过。
因为MPC控制器块使用MATLAB函数每次你改变MPC对象和块时,它都需要编译。同时,因为MATLAB®不允许编译的代码驻留在任何MATLAB产品文件夹中,您必须使用非MATLAB文件夹才能在Simulink上工作金宝app®模型,当你使用MPC块。
港口
输入
莫
-测量输出
向量
测量输出,指定为矢量信号。该区块使用测量的设备输出来改进其状态估计。如果控制器使用默认状态估计,则必须将测量的设备输出连接到莫输入端口。如果控制器使用自定义状态估计,则必须将估计的设备状态连接到x (k | k)输入端口。
依赖关系
若要启用此端口,请清除使用自定义状态估计,而不是使用内置的卡尔曼滤波器参数。
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行,最终扰动用于预测视界的剩余步骤。
依赖关系
要启用此端口,请选择测量的干扰参数。
ext.mv
-在之前的控制区间,工厂使用的控制信号
向量
在以前的控制区间内使用的控制信号,指定为长度的矢量信号Nmv,在那里Nmv是被操纵变量的数量。使用此输入端口可在以下情况下提高状态估计精度:
你知道你的控制员并不总是在控制整个工厂。
应用到装置的实际MV信号可能与控制器产生的值存在潜在差异,例如控制信号饱和度。
控制器状态估计假设mv是分段常数。因此,在时间tk,ext.mv值必须包含时间之间的有效mvtk - 1而且tk.例如,如果mv在这个区间内实际上是变化的,那么您可以提供在某一时刻评估的时间平均值tk.
请注意
连接ext.mv到前一个控制区间内实际应用于植物的MV信号。通常,这些MV信号是由控制器产生的值,尽管情况并非总是如此。例如,如果您的控制器离线并在跟踪模式下运行(即控制器输出没有驱动工厂),则将实际控制信号馈送到ext.mv可以帮助实现无颠簸传输时,控制器切换回在线。
控制器驱动设备时,插入a内存块或单位延迟块,以反馈在前一个控制间隔应用到装置的MV信号。这也避免了直接馈通从ext.mv导入到mv输出端口,因此防止了Simulink模型中的代数循环。金宝app
有关使用外部操纵变量输入端口进行无颠簸传输的示例,请参见开关控制器在线和离线无颠簸传输.
依赖关系
要启用此端口,请选择外部操纵变量参数。
开关
—启用或禁用优化
标量
要关闭控制器优化计算,请连接开关到非零信号。
当不需要控制器输出时,例如当系统手动操作或另一个控制器接管时,禁用优化计算可以减少计算工作量。然而,控制器继续以通常的方式更新其内部状态估计。因此,它可以随时恢复优化计算开关信号归零。当控制器优化关闭时,块通过当前ext.mv信号到控制器输出。如果ext.mv如果未启用import,则控制器输出将保持在禁用优化时的值。
有关使用外部操纵变量输入端口进行无颠簸传输的示例,请参见开关控制器在线和离线无颠簸传输.
依赖关系
要启用此端口,请选择使用外部信号来启用或禁用优化参数。
mv.target
-操纵可变目标
向量
要指定被操纵的可变目标,启用此输入端口,并连接一个矢量信号。要使给定的操纵变量跟踪其指定的目标值,还必须为该操纵变量指定非零的调优权重。
提供的mv.target运行时的值应用于整个预测范围。
依赖关系
要启用此端口,请选择被操纵变量的目标参数。
ymin
-最小输出变量约束
向量|矩阵
若要指定运行时最小输出变量约束,请启用此输入端口。方法中指定的下界OutputVariables。最小值
其属性货币政策委员会
控制器对象。如果输出变量没有在控制器对象中指定下限,则在运行时块忽略相应的连接信号。
从时间上改变预测视界的边界k+1到时间k+p,连接ymin到一个矩阵信号用Ny列和至p行。在这里,Ny是工厂产出的数量,k是当前时间,和p是预测视界。每行包含一个预测水平步的边界。如果你指定小于p行,最后一行的边界适用于预测范围的其余部分。如果只有一个输出变量,和一个矢量信号用不超过p条目是连接的,然后在整个预测范围内使用这些条目。
的我
的第Th列ymin信号对应于我
该厂产量,并取代OutputVariables(我)。马克斯
的属性货币政策委员会
对象。替换行为取决于两个变量的维度。
标量OutputVariables(我)。最小值
在货币政策委员会
对象的常量边界我
植物产量应用于所有预测步骤)
ymin维 | 替换行为 |
---|---|
标量ymin(单输出,常数界) | ymin中定义的常量边界OutputVariables(我)。最小值 |
列向量ymin(单输出,时变界) | ymin中定义的常量边界OutputVariables(我)。最小值 有一个时变的边界。 |
行向量ymin(多输出,常量边界) | 的我 的第Th元素ymin中定义的常量边界OutputVariables(我)。最小值 |
矩阵ymin(多输出,时变边界) | 的我 的第Th列ymin中定义的常量边界OutputVariables(我)。最小值 有一个时变的边界。 |
向量OutputVariables(我)。最小值
在货币政策委员会
对象的时变边界我
不同预测步骤下不同值的植株产量)
ymin维 | 替换行为 |
---|---|
标量ymin(单输出,常数界) | ymin替换第一个有限项OutputVariables。最小值 剩下的元素OutputVariables。最小值 以相同的位移量向上或向下移动,以保留原始轮廓所定义的轮廓OutputVariables。最小值 向量。 |
列向量ymin(单输出,时变界) | ymin中定义的时变边界OutputVariables(我)。最小值 ,原始绑定配置文件将被丢弃。 |
行向量ymin(多输出,常量边界) | 的我 的第Th元素ymin替换第一个有限项OutputVariables(我)。最小值 剩下的元素OutputVariables(我)。最小值 以相同的位移量向上或向下移动,以保留原始轮廓所定义的轮廓OutputVariables(我)。最小值 向量。 |
矩阵ymin(多输出,时变边界)。 | 的我 的第Th列ymin中定义的时变边界OutputVariables(我)。最小值 ,原始绑定配置文件将被丢弃。 |
依赖关系
要启用此端口,请选择OV下限参数。
ymax
—最大输出变量约束
向量|矩阵
若要指定运行时最大输出变量约束,请启用此输入端口。方法中指定的上界OutputVariables。马克斯
其属性货币政策委员会
控制器对象。如果输出变量在控制器对象中没有指定上限,则在运行时块忽略相应的连接信号。
从时间上改变预测视界的边界k+1到时间k+p,连接ymax到一个矩阵信号用Ny列和至p行。在这里,Ny是工厂产出的数量,k是当前时间,和p是预测视界。每行包含一个预测水平步的边界。如果你指定小于p行,最后一行的边界适用于预测范围的其余部分。如果只有一个输出变量,和一个矢量信号用不超过p条目是连接的,然后在整个预测范围内使用这些条目。
的我
的第Th列ymax信号对应于我
该厂产量,并取代OutputVariables(我)。马克斯
的属性货币政策委员会
对象。替换行为取决于两个变量的维度。
标量OutputVariables(我)。马克斯
在货币政策委员会
对象的常量边界我
植物产量应用于所有预测步骤)
ymax维 | 替换行为 |
---|---|
标量ymax(单输出,常数界) | ymax中定义的常量边界OutputVariables(我)。马克斯 |
列向量ymax(单输出,时变界) | ymax中定义的常量边界OutputVariables(我)。马克斯 有一个时变的边界。 |
行向量ymax(多输出,常量边界) | 的我 的第Th元素ymax中定义的常量边界OutputVariables(我)。马克斯 |
矩阵ymax(多输出,时变边界) | 的我 的第Th列ymax中定义的常量边界OutputVariables(我)。马克斯 有一个时变的边界。 |
向量OutputVariables(我)。马克斯
在货币政策委员会
对象的时变边界我
不同预测步骤下不同值的植株产量)
ymax维 | 替换行为 |
---|---|
标量ymax(单输出,常数界) | ymax替换第一个有限项OutputVariables。马克斯 剩下的元素OutputVariables。马克斯 以相同的位移量向上或向下移动,以保留原始轮廓所定义的轮廓OutputVariables。马克斯 向量。 |
列向量ymax(单输出,时变界) | ymax中定义的时变边界OutputVariables(我)。马克斯 ,原始绑定配置文件将被丢弃。 |
行向量ymax(多输出,常量边界) | 的我 的第Th元素ymax替换第一个有限项OutputVariables(我)。马克斯 剩下的元素OutputVariables(我)。马克斯 以相同的位移量向上或向下移动,以保留原始轮廓所定义的轮廓OutputVariables(我)。马克斯 向量。 |
矩阵ymax(多输出,时变边界)。 | 的我 的第Th列ymax中定义的时变边界OutputVariables(我)。马克斯 ,原始绑定配置文件将被丢弃。 |
依赖关系
要启用此端口,请选择OV上限参数。
umin
-最小操作变量约束
向量|矩阵
若要指定运行时最小操作变量约束,请启用此输入端口。方法中指定的下界ManipulatedVariables。最小值
其属性货币政策委员会
控制器对象。如果一个被操纵的变量没有在控制器对象中指定下界,那么在运行时块忽略相应的连接信号。
从时间上改变预测视界的边界k时间k+p1,连接umin到一个矩阵信号用Nmv列和至p行。在这里,Nmv是被操纵变量的数量,k是当前时间,和p是预测视界。每行包含一个预测水平步的边界。如果你指定小于p行,最后一行的边界适用于预测范围的其余部分。如果只有一个被操纵的变量,和一个矢量信号没有超过p条目是连接的,然后在整个预测范围内使用这些条目。
的我
的第Th列umin信号对应于我
Th操作变量,并替换ManipulatedVariables(我)。马克斯
的属性货币政策委员会
对象。替换行为取决于两个变量的维度。
标量ManipulatedVariables(我)。最小值
在货币政策委员会
对象的常量边界我
应用于所有预测步骤的被操纵变量)
umin维 | 替换行为 |
---|---|
标量umin(单输出,常数界) | umin中定义的常量边界ManipulatedVariables(我)。最小值 |
列向量umin(单输出,时变界) | umin中定义的常量边界ManipulatedVariables(我)。最小值 有一个时变的边界。 |
行向量umin(多输出,常量边界) | 的我 的第Th元素umin中定义的常量边界ManipulatedVariables(我)。最小值 |
矩阵umin(多输出,时变边界) | 的我 的第Th列umin中定义的常量边界ManipulatedVariables(我)。最小值 有一个时变的边界。 |
向量ManipulatedVariables(我)。最小值
在货币政策委员会
对象的时变边界我
在不同的预测步骤中有不同值的操纵变量)
umin维 | 替换行为 |
---|---|
标量umin(单输出,常数界) | umin替换第一个有限项ManipulatedVariables。最小值 剩下的元素ManipulatedVariables。最小值 以相同的位移量向上或向下移动,以保留原始轮廓所定义的轮廓ManipulatedVariables。最小值 向量。 |
列向量umin(单输出,时变界) | umin中定义的时变边界ManipulatedVariables(我)。最小值 ,原始绑定配置文件将被丢弃。 |
行向量umin(多输出,常量边界) | 的我 的第Th分量umin替换第一个有限项ManipulatedVariables(我)。最小值 剩下的元素ManipulatedVariables(我)。最小值 以相同的位移量向上或向下移动,以保留原始轮廓所定义的轮廓ManipulatedVariables(我)。最小值 向量。 |
矩阵umin(多输出,时变边界)。 | 的我 的第Th列umin中定义的时变边界ManipulatedVariables(我)。最小值 ,原始绑定配置文件将被丢弃。 |
依赖关系
要启用此端口,请选择下MV极限参数。
umax
-最大操作变量约束
向量|矩阵
若要指定运行时最大操作变量约束,请启用此输入端口。方法中指定的上界ManipulatedVariables。马克斯
其属性货币政策委员会
控制器对象。如果一个被操纵的变量没有在控制器对象中指定的上限,那么在运行时块忽略相应的连接信号。
从时间上改变预测视界的边界k时间k+p1,连接umax到一个矩阵信号用Nmv列和至p行。在这里,Nmv是被操纵变量的数量,k是当前时间,和p是预测视界。每行包含一个预测水平步的边界。如果你指定小于p行,最后一行的边界适用于预测范围的其余部分。如果只有一个被操纵的变量,和一个矢量信号没有超过p条目是连接的,然后在整个预测范围内使用这些条目。
的我
的第Th列umax信号对应于我
Th操作变量,并替换ManipulatedVariables(我)。马克斯
的属性货币政策委员会
对象。替换行为取决于两个变量的维度。
标量ManipulatedVariables(我)。马克斯
在货币政策委员会
对象的常量边界我
应用于所有预测步骤的被操纵变量)
umax维 | 替换行为 |
---|---|
标量umax(单输出,常数界) | umax中定义的常量边界ManipulatedVariables(我)。马克斯 |
列向量umax(单输出,时变界) | umax中定义的常量边界ManipulatedVariables(我)。马克斯 有一个时变的边界。 |
行向量umax(多输出,常量边界) | 的我 的第Th元素umax中定义的常量边界ManipulatedVariables(我)。马克斯 |
矩阵umax(多输出,时变边界) | 的我 的第Th列umax中定义的常量边界ManipulatedVariables(我)。马克斯 有一个时变的边界。 |
向量ManipulatedVariables(我)。马克斯
在货币政策委员会
对象的时变边界我
在不同的预测步骤中有不同值的操纵变量)
umax维 | 替换行为 |
---|---|
标量umax(单输出,常数界) | umax替换第一个有限项ManipulatedVariables。马克斯 剩下的元素ManipulatedVariables。马克斯 以相同的位移量向上或向下移动,以保留原始轮廓所定义的轮廓ManipulatedVariables。马克斯 向量。 |
列向量umax(单输出,时变界) | umax中定义的时变边界ManipulatedVariables(我)。马克斯 ,原始绑定配置文件将被丢弃。 |
行向量umax(多输出,常量边界) | 的我 的第Th元素umax替换第一个有限项ManipulatedVariables(我)。马克斯 剩下的元素ManipulatedVariables(我)。马克斯 以相同的位移量向上或向下移动,以保留原始轮廓所定义的轮廓ManipulatedVariables(我)。马克斯 向量。 |
矩阵umax(多输出,时变边界)。 | 的我 的第Th列umax中定义的时变边界ManipulatedVariables(我)。马克斯 ,原始绑定配置文件将被丢弃。 |
依赖关系
要启用此端口,请选择上MV极限参数。
E
-操纵变量约束矩阵
矩阵
操纵变量约束矩阵,指定为Nc——- - - - - -Nmv矩阵信号,其中Nc是混合输入/输出的数量限制和Nmv是被操纵变量的数量。
如果你定义E
在货币政策委员会
对象时,必须将信号连接到E输入端口。否则,连接一个零矩阵与正确的大小。
要指定运行时混合输入/输出约束,请使用E的输入端口F,G,年代港口。这些约束取代了之前设置的混合输入/输出约束setconstraint
.有关混合输入/输出约束的更多信息,请参见线性输入和输出组合的约束.
混合输入/输出约束的数量在运行时不能改变。因此,Nc中的行数必须匹配E
使用指定的矩阵setconstraint
.
依赖关系
要启用此端口,请选择自定义约束参数。
F
-受控输出约束矩阵
矩阵
受控输出约束矩阵,指定为Nc——- - - - - -Ny矩阵信号,其中Nc是混合输入/输出的数量限制和Ny是工厂产出的数量。如果你定义F
在货币政策委员会
对象时,必须将信号连接到F输入端口具有相同的行数。否则,连接一个零矩阵与正确的大小。
要指定运行时混合输入/输出约束,请使用F的输入端口E,G,年代港口。这些约束取代了之前设置的混合输入/输出约束setconstraint
.有关混合输入/输出约束的更多信息,请参见线性输入和输出组合的约束.
混合输入/输出约束的数量在运行时不能改变。因此,Nc中的行数必须匹配F
使用指定的矩阵setconstraint
.
依赖关系
要启用此端口,请选择自定义约束参数。
G
-自定义约束向量
行向量
自定义约束向量,指定为长度的行向量信号Nc,在那里Nc是混合输入/输出约束的数量。如果你定义G
在货币政策委员会
对象时,必须将信号连接到G输入端口具有相同的行数。否则,连接一个零矩阵与正确的大小。
要指定运行时混合输入/输出约束,请使用G的输入端口E,F,年代港口。这些约束取代了之前设置的混合输入/输出约束setconstraint
.有关混合输入/输出约束的更多信息,请参见线性输入和输出组合的约束.
混合输入/输出约束的数量在运行时不能改变。因此,Nc中的行数必须匹配G
使用指定的矩阵setconstraint
.
依赖关系
要启用此端口,请选择自定义约束参数。
年代
-实测扰动约束矩阵
矩阵
测量的扰动约束矩阵,指定为Nc——- - - - - -nN矩阵信号,其中Nc是混合输入/输出的数量限制,和Nv是测量扰动的数量。如果你定义年代
在货币政策委员会
对象时,必须将信号连接到年代输入端口具有相同的行数。否则,连接一个零矩阵与正确的大小。
要指定运行时混合输入/输出约束,请使用年代的输入端口E,F,G港口。这些约束取代了之前设置的混合输入/输出约束setconstraint
.有关混合输入/输出约束的更多信息,请参见线性输入和输出组合的约束.
混合输入/输出约束的数量在运行时不能改变。因此,Nc中的行数必须匹配G
使用指定的矩阵setconstraint
.
依赖关系
要启用此端口,请选择自定义约束参数。仅当货币政策委员会
对象已测量扰动。
y.wt
-输出可变调优权重
行向量|矩阵
若要指定运行时输出变量调优权重,请启用此输入端口。方法中指定的调优权重权重。输出Variables
属性。这些调优权重会惩罚输出引用的偏差。
如果MPC控制器对象在预测范围内使用恒定的输出调优权重,则只能在运行时指定恒定的输出调优权重。类似地,如果MPC控制器对象使用在预测范围内变化的输出调优权重,则只能在运行时指定随时间变化的输出调优权重
要在预测范围内使用恒定的调优权重,请连接y.wt到一个行向量信号Ny元素,Ny是输出的数量。每个元素为输出变量指定一个非负的调优权重。有关指定调优权重的详细信息,请参见调整权重.
在预测范围内随时间变化调整权重k+1到时间k+p,连接y.wt到一个矩阵信号用Ny列和至p行。在这里,k当前时间和p是预测视界。每行包含一个预测水平步的调优权重。如果你指定小于p行,最后一行中的调优权重应用于预测范围的其余部分。有关在预测范围内变化权重的更多信息,请参见使用MPC设计器设置时变权重和约束.
依赖关系
要启用此端口,请选择OV权重参数。
u.wt
-操纵可变调优权重
行向量|矩阵
若要指定运行时操作的变量调优权重,请启用此输入端口。方法中指定的调优权重权重。ManipulatedVariables
属性。这些调谐权重惩罚偏离MV目标。
如果MPC控制器对象在预测范围内使用常量操作变量调优权重,则只能在运行时指定常量操作变量调优权重。类似地,如果MPC控制器对象使用在预测范围内变化的操纵变量调优权重,则只能在运行时指定随时间变化的操纵变量调优权重
要在预测范围内使用相同的调优权重,请连接u.wt到一个行向量信号Nmv元素,Nmv是被操纵变量的数量。每个元素为一个被操纵的变量指定一个非负的调优权重。有关指定调优权重的详细信息,请参见调整权重.
在预测范围内随时间变化调整权重k时间k+p1,连接u.wt到一个矩阵信号用Nmv列和至p行。在这里,k当前时间和p是预测视界。每行包含一个预测水平步的调优权重。如果你指定小于p行,最后一行中的调优权重应用于预测范围的其余部分。有关在预测范围内变化权重的更多信息,请参见使用MPC设计器设置时变权重和约束.
依赖关系
要启用此端口,请选择MV权重参数。
du.wt
-操纵可变率调整权重
行向量|矩阵
若要指定运行时操纵的可变速率调优权重,请启用此输入端口。方法中指定的调优权重权重。ManipulatedVariablesRate
属性。这些调优权重会惩罚控制动作中的大变化。
如果MPC控制器对象在预测范围内使用恒定的操纵变量率调优权重,则只能在运行时指定恒定的操纵变量率调优权重。类似地,如果MPC控制器对象使用在预测范围内变化的操纵变量率调优权重,则只能在运行时指定随时间变化的操纵变量率调优权重
要在预测范围内使用相同的调优权重,请连接du.wt到一个行向量信号Nmv元素,Nmv是被操纵变量的数量。每个元素都为被操纵的变量率指定一个非负的调优权重。有关指定调优权重的详细信息,请参见调整权重.
在预测范围内随时间变化调整权重k时间k+p1,连接du.wt到一个矩阵信号用Nmv列和至p行。在这里,k当前时间和p是预测视界。每行包含一个预测水平步的调优权重。如果你指定小于p行,最后一行中的调优权重应用于预测范围的其余部分。有关在预测范围内变化权重的更多信息,请参见使用MPC设计器设置时变权重和约束.
依赖关系
要启用此端口,请选择MVRate权重参数。
ecr.wt
-松弛可变调重
标量
若要指定运行时松弛变量调优权重,请启用此输入端口并连接标量信号。方法中指定的调优权重权重。ECR
属性。
松弛变量调优权重没有作用,除非您的控制器对象定义了关联ECR值非零的软约束。如果存在软约束,则增加ecr.wt价值使得这些约束相对更难。然后,控制器将更高的优先级放在最小化预测的最坏情况约束违反的量级上。
依赖关系
要启用此端口,请选择ECR重量参数。
p
-预测范围
正整数
预测水平,指定为正整数信号。预测视界信号值必须小于或等于最大预测层参数。
的值在运行时p
重写控制器对象中指定的默认预测范围。有关更多信息,请参见在运行时调整视野.
依赖关系
要启用此端口,请选择在运行时调整预测水平和控制水平参数。
输出
mv
-最优的操纵变量控制动作
列向量
最优操纵变量控制动作,输出为长度列向量信号Nmv,在那里Nmv是被操纵变量的数量。
如果求解器收敛到局部最优解(qp.status是肯定的),那么mv包含最优解。
如果解算器失败(qp.status是负的),那么mv保持其最近成功的解决方案;即控制器输出冻结。
如果求解器达到最大迭代次数而没有找到最优解(qp.status是零)和优化。UseSuboptimalSolution
控制器属性为:
真正的
,然后mv包含次优解假
,然后mv然后mv仍然是最近最成功的解决方案
成本
-目标功能成本
负的标量
目标函数代价,输出为非负标量信号。成本量化了控制器实现其目标的程度。成本值使用缩放的MPC成本函数计算,其中每一项都是无偏移和无量纲的。
成本值只有在qp.status输出是非负的。
依赖关系
要启用此端口,请选择最优成本参数。
qp.status
-优化状态
整数
优化状态,输出为整数信号。
如果控制器在给定的控制区间内解决了QP问题,则qp.statusoutput返回计算中使用的QP求解器迭代次数。这个值是一个有限的正整数,与计算所需的时间成正比。因此,较大的值意味着在此时间间隔内块执行相对较慢。
由于以下原因,QP求解器可能无法找到最优解:
qp.status=
0
方法中指定的最大迭代次数内,QP求解器无法找到解决方案货币政策委员会
对象。在本例中,如果优化器。UseSuboptimalSolution
属性假
,块保持它的mv在最近成功的解决方案中输出。否则,它将使用在最后一次求解器迭代中找到的次优解。qp.status=
-1
- QP求解器检测到一个不可行的QP问题。看到监控优化状态,检测控制器故障例如,一个大的,持续的扰动驱动输出变量超出其指定的界限。在这种情况下,块保存它的mv在最近成功的解决方案中输出。qp.status=
-2
QP求解器在求解一个严重病态QP问题时遇到了数值困难。在这种情况下,块保存它的mv在最近成功的解决方案中输出。
在实时应用程序中,您可以使用qp.status设置闹钟或采取其他特殊行动。
依赖关系
要启用此端口,请选择优化状态参数。
est.state
-估计控制器状态
向量
估计控制器在每个控制时刻的状态,作为矢量信号返回。估计状态包括植物模型状态、扰动模型状态和噪声模型状态。如果使用自定义状态估计,则此输出信号具有与x (k | k)输入信号。
依赖关系
要启用此端口,请选择估计控制器状态参数。
mv.seq
-优化操纵变量序列
矩阵
最优操纵变量序列,以矩阵信号返回p+1行和Nmv列,p预测的范围和Nmv是被操纵变量的数量。
第一个p行mv.seq包含从当前时间计算出的最优操作变量值k时间k+p1。的第一行mv.seq包含当前被操作的变量值(输出mv).由于控制器不计算最优控制时刻移动k+p,最后两排mv.seq都是相同的。
依赖关系
要启用此端口,请选择最优控制顺序参数。
x.seq
-最优预测模型状态序列
矩阵
最优预测模型状态序列,以矩阵信号的形式返回p+1行和Nx列,p预测的范围和Nx是状态数。
的第一行x.seq包含来自内置状态估计器或自定义状态估计块输入的当前估计状态值x (k | k).下一个p行x.seq包含从时间计算的最佳状态值k+1到时间k+p.
依赖关系
要启用此端口,请选择最优状态序列参数。
y.seq
-最优输出变量序列
矩阵
最优输出变量序列,返回为带有矩阵信号的信号p+1行和Ny列,p预测的范围和Ny是输出变量的个数。
第一个p行y.seq包含当前时间计算出的最佳输出值k时间k+p1。的第一行y.seq基于当前估计状态和当前测量扰动(第一行输入医学博士).由于控制器不计算最优输出值的时间k+p,最后两排y.seq都是相同的。
依赖关系
要启用此端口,请选择最优输出顺序参数。
参数
MPC控制器
—控制器对象
货币政策委员会
对象名称
控制器初始状态
-初始状态
mpcstate
对象名称
指定控制器初始状态。方法中定义的标称值模型。Nominal
的属性货币政策委员会
对象。若要覆盖默认值,请创建mpcstate
对象,并在字段中输入其名称。
使用此参数可确保控制器状态在模拟开始时反映真实的工厂环境,尽您所知。方法中定义的名义状态可以与此初始状态不同货币政策委员会
对象。
如果启用了自定义状态估计,则块将忽略控制器初始状态参数。
编程使用
块参数:x0 |
类型:字符串,字符向量 |
默认值:”“ |
设计
-交互设计控制器
按钮
控件以交互方式修改指定的控制器MPC控制器参数,打开MPC设计师点击应用程序设计.例如,你可以:
导入一个新的预测模型。
改变视野、约束和权重。
用线性装置评估MPC性能。
将更新后的控制器导出到MATLAB工作区。
如果你有一个现存的货币政策委员会
对象中指定该对象的名称MPC控制器参数。
如果你没有一个存在货币政策委员会
对象在MATLAB工作空间中,留下MPC控制器参数是空的。与MPC控制器块连接到厂房,打开MPC设计师通过点击设计.使用该应用程序,在指定的工作点线性化Simulink模型,金宝app并设计控制器。要使用这种设计方法,您必须具备金宝appSimulink控制设计™软件有关更多信息,请参见在Simulink中设计MPC控制器金宝app而且使用MPC设计器线性金宝app化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)输入端口。
编程使用
块参数:state_inport |
类型:字符串,字符向量 |
价值观:“关闭” ,“上” |
默认值:“关闭” |
OV下限
-增加最小OV约束输入端口
从
(默认)|在
选择此参数可添加ymin块的输入端口。
编程使用
块参数:ymin_inport |
类型:字符串,字符向量 |
价值观:“关闭” ,“上” |
默认值:“关闭” |
OV上限
—增加最大OV约束输入端口
从
(默认)|在
选择此参数可添加ymax块的输入端口。
编程使用
块参数:ymax_inport |
类型:字符串,字符向量 |
价值观:“关闭” ,“上” |
默认值:“关闭” |
下MV极限
-增加最小MV约束输入端口
从
(默认)|在
选择此参数可添加umin块的输入端口。
编程使用
块参数:umin_inport |
类型:字符串,字符向量 |
价值观:“关闭” ,“上” |
默认值:“关闭” |
上MV极限
—增加最大MV约束输入端口
从
(默认)|在
选择此参数可添加umax块的输入端口。
编程使用
块参数:umax_inport |
类型:字符串,字符向量 |
价值观:“关闭” ,“上” |
默认值:“关闭” |
自定义约束
—增加自定义约束输入端口
从
(默认)|在
选择此参数可添加E,F,G,年代输入端口到块。
编程使用
块参数:cc_inport |
类型:字符串,字符向量 |
价值观:“关闭” ,“上” |
默认值:“关闭” |
OV权重
-增加OV调优权重输入端口
从
(默认)|在
选择此参数可添加y.wt块的输入端口。
编程使用
块参数:ywt_inport |
类型:字符串,字符向量 |
价值观:“关闭” ,“上” |
默认值:“关闭” |
MV权重
-增加MV调优权重输入端口
从
(默认)|在
选择此参数可添加u.wt块的输入端口。
编程使用
块参数:uwt_inport |
类型:字符串,字符向量 |
价值观:“关闭” ,“上” |
默认值:“关闭” |
MVRate权重
-增加MV调频权重输入端口
从
(默认)|在
选择此参数可添加du.wt块的输入端口。
编程使用
块参数:duwt_inport |
类型:字符串,字符向量 |
价值观:“关闭” ,“上” |
默认值:“关闭” |
松弛变重
—增加ECR调优权重输入端口
从
(默认)|在
选择此参数可添加ecr.wt块的输入端口。
编程使用
块参数:rhoeps_inport |
类型:字符串,字符向量 |
价值观:“关闭” ,“上” |
默认值:“关闭” |
在运行时调整预测水平和控制水平
—添加水平输入端口
Off(默认)| on
选择此参数可添加p而且米块的输入端口。
编程使用
块参数:pm_inport |
类型:字符串,字符向量 |
价值观:“关闭” ,“上” |
默认值:“关闭” |
最大预测层
—添加水平输入端口
10
(默认值)|正整数
选择此参数可添加p而且米块的输入端口。
依赖关系
要启用此参数,请选择在运行时调整预测水平和控制水平参数。
编程使用
块参数:MaximumP |
类型:字符串,字符向量 |
默认值:“10” |
样品时间
—默认的块采样时间
1
(默认)|正标量
控件执行模拟、裁剪或线性化的默认块采样时间MPC设计师必须指定与Simulink模型设计兼容的采样时间。金宝app
依赖关系
仅当MPC控制器参数为空,打开MPC设计师使用设计按钮。
编程使用
块参数:n_ts |
类型:字符串,字符向量 |
默认值:“1” |
预测地平线
-默认预测范围
10
(默认值)|正整数
控件执行模拟、裁剪或线性化的默认预测范围MPC设计师您必须指定与您的Simulink模型设计兼容的预测范围。金宝app
依赖关系
仅当MPC控制器参数为空,打开MPC设计师使用设计按钮。
编程使用
块参数:n_p |
类型:字符串,字符向量 |
默认值:“10” |
操纵变量个数
—默认操作变量个数
1
(默认值)|正整数
控件执行模拟、裁剪或线性化时的默认操作变量数MPC设计师您必须指定一个与您的Simulink模型设计兼容的值。金宝app
依赖关系
仅当MPC控制器参数为空,打开MPC设计师使用设计按钮。
编程使用
块参数:n_mv |
类型:字符串,字符向量 |
默认值:“1” |
测量扰动数
-默认测量扰动数
1
(默认)|非负整数
用于执行模拟、修整或线性化的默认测量扰动数MPC设计师您必须指定一个与您的Simulink模型设计兼容的值。金宝app
依赖关系
仅当MPC控制器参数为空,打开MPC设计师使用设计按钮。
若要使用此参数,必须选择测量的干扰参数。
编程使用
块参数:n_md |
类型:字符串,字符向量 |
默认值:“1” |
未测扰动数
-默认的未测量扰动数
0
(默认)|非负整数
用于执行模拟、修整或线性化的默认未测量扰动数MPC设计师您必须指定一个与您的Simulink模型设计兼容的值。金宝app
依赖关系
仅当MPC控制器参数为空,打开MPC设计师使用设计按钮。
编程使用
块参数:n_ud |
类型:字符串,字符向量 |
默认值:“0” |
测量输出数
—默认的测量输出数
1
(默认值)|正整数
用于执行模拟、裁剪或线性化的默认测量输出数MPC设计师您必须指定一个与您的Simulink模型设计兼容的值。金宝app
依赖关系
仅当MPC控制器参数为空,打开MPC设计师使用设计按钮。
编程使用
块参数:n_mo |
类型:字符串,字符向量 |
默认值:“1” |
未测量输出数
—默认未测量输出数
0
(默认)|非负整数
用于执行模拟、裁剪或线性化的未测量输出的默认数量MPC设计师您必须指定一个与您的Simulink模型设计兼容的值。金宝app
依赖关系
仅当MPC控制器参数为空,打开MPC设计师使用设计按钮。
编程使用
块参数:n_uo |
类型:字符串,字符向量 |
默认值:“0” |
块数据类型
—指定操作变量的数据类型
双
(默认)|单
|数据类型表达式
指定操作变量的块数据类型为以下之一:
双
-双精度浮点数单
—单精度浮点数如果在单精度目标上实现块,则将输出数据类型指定为
单
.数据类型表达式
-求值为任意一个的表达式双
或单
.有关更多信息,请参见控制信号的数据类型(金宝app模型).
编程使用
块参数:BlockDataType |
类型:字符串,字符向量 |
价值观:“替身” ,“单身” ,数据类型表达式 |
默认值:“替身” |
继承采样时间
-从父子系统继承块采样时间
从
(默认)|在
选择该参数将继承父子系统的采样时间作为块采样时间。这样做可以让你有条件地在里面执行这个块函数调用子系统(金宝app模型)或触发子系统(金宝app模型)块。有关示例,请参见在函数调用和触发子系统中使用MPC控制器块.
请注意
你必须执行函数调用子系统或触发子系统在控制器的采样率上阻塞。否则,由于两个原因,您可能会看到意想不到的结果。
MV速率向量的第一个元素(它是当前和被操纵变量的最后一个值之间的差值)通常是加权和约束的,假设最后一个MV值发生在MPC对象中指定的采样时间,当以不同的采样速率执行块时,这个假设不再成立。
内置的Kalman估计器使用MPC对象中指定的采样时间来为MPC优化问题提供当前状态的估计,因此当块以不同的采样时间执行时,估计的状态不再正确。
如果清除此参数(默认),则块的采样时间将从控制器对象继承。
要查看块的采样时间,请在“Simulink模型”窗口中金宝app调试选项卡,在信息覆盖,选择颜色或文本.有关更多信息,请参见查看采样时间信息(金宝app模型).
编程使用
块参数:SampleTimeInherited |
类型:字符串,字符向量 |
价值观:“关闭” ,“上” |
默认值:“关闭” |
使用外部信号来启用或禁用优化
—添加交换机输入接口
从
(默认)|在
选择此参数可添加开关块的输入端口。
编程使用
块参数:switch_inport |
类型:字符串,字符向量 |
价值观:“关闭” ,“上” |
默认值:“关闭” |
模型的例子
扩展功能
C/ c++代码生成
使用Simulink®Coder™生成C和c++代码。金宝app
GPU代码生成
使用GPU Coder™为NVIDIA®GPU生成CUDA®代码。
PLC代码生成
使用Simulink®PLC Coder™生成结构化文本代码。金宝app
版本历史
R2006a之前介绍R2018b:货币政策委员会金宝app块mv.seq
输出端口信号尺寸已改变
的信号维数mv.seq
输出端口MPC控制器块已经改变。之前,这个信号是ap——- - - - - -Nmv矩阵,p预测的范围和Nmv是被操纵变量的数量。现在,mv.seq
是a (p+ 1)——-Nmv矩阵,其中行p+1重复行p.
MATLAB突击队
Ha hecho clic en unenlace que对应一个este commando de MATLAB:
弹射突击队introduciéndolo en la ventana de commandos de MATLAB。Los navegadores web no permission comandos de MATLAB。
您也可以从以下列表中选择一个网站:
如何获得最佳的网站性能
选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。