MPC控制器
模拟模型预测控制器
- 库:
模型预测控制工具箱
描述
的MPC控制器块接收当前测量输出信号(莫
),参考信号(裁判
),和可选的测量干扰信号(医学博士
)。块计算最优操纵变量(mv
)通过求解一个二次规划问题,使用默认KWIK解算器或一个定制的QP解算器。有关更多信息,请参见QP解决者。
使用模拟和代码生成的块,您必须指定一个货币政策委员会
对象,它定义了一个模型预测控制器。这个控制器必须已经为工厂设计的,它控制。
因为MPC控制器块使用MATLAB函数块,它需要编译每次你改变货币政策委员会对象和块。此外,由于MATLAB®不允许编译代码驻留在MATLAB产品文件夹中,您必须使用一个non-MATLAB文件夹在你的模型吗金宝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信号应用于植物可能不同于控制器所产生的价值,比如在控制信号饱和。
控制器状态估计假设MVs是分段常数。因此,在时间tk,ext.mv值必须包含有效的MVs倍之间tk - 1和tk。例如,如果MVs实际上是在这个区间不同,你可能提供价值评估在定时间tk。
请注意
连接ext.mvMV信号实际应用于植物在前面的控制区间。通常,这些MV信号控制器所产生的价值,尽管这并非总是如此。例如,如果您的控制器脱机和跟踪模式运行(也就是说,控制器输出不是推动工厂),然后喂实际控制信号ext.mv可以帮助实现无扰转移时,控制器将重新上线。
当控制器驱动的工厂,插入一个内存块或单位延迟块反馈MV信号应用于工厂前面的控制区间。这也避免了直接的引线ext.mv尺寸的mv外港,因此防止代数循环仿真软件模型。金宝app
例如使用外部操纵变量的输入端口无扰转移,明白了与无扰转移开关控制器在线和离线。
依赖关系
要启用这个端口,选择外部操纵变量参数。
开关
-启用或禁用优化
标量
关掉控制器优化计算,连接开关一个非零的信号。
禁用优化计算减少计算工作当不需要控制器的输出,比如当系统操作手动或另一个控制器接管。然而,控制器继续更新其内部状态估计以通常的方式。因此,只要准备好简历优化计算开关信号返回零。当控制器优化掉,阻止电流通过ext.mv信号控制器的输出。如果ext.mv尺寸不启用,控制器输出值举行优化时禁用。
例如使用外部操纵变量的输入端口无扰转移,明白了与无扰转移开关控制器在线和离线。
依赖关系
要启用这个端口,选择使用外部信号来启用或禁用优化参数。
mv.target
——被控变量的目标
向量
指定被控变量的目标,使这个输入端口和连接一个矢量信号。让一个给定的被控变量跟踪其指定的目标价值,您还必须指定一个非零调整体重,操纵变量。
提供的mv.target值在运行时应用于预测地平线。
依赖关系
要启用这个端口,选择目标被操纵的变量参数。
ymin
——最小输出变量约束
向量|矩阵
指定运行时最小输出变量约束,使这个输入端口。如果该端口被禁用,块使用中指定的下界OutputVariables.Min
财产的货币政策委员会
控制器对象。如果一个输出变量没有下界中指定的控制器对象,然后在运行时块忽略相应的连接信号。
改变的范围预测地平线k+ 1,k+p,连接ymin一个矩阵信号Ny列和p行。在这里,Ny是植物的数量输出,k是当前时间,p是预测地平线。每一行包含一个预测地平线的界限一步。如果你指定不到p行,最后一行的界限申请的其余部分预测地平线。如果只有一个输出变量,不超过一个矢量信号p条目连接,然后使用这些条目在预测地平线。
的我
th的列ymin信号对应于我
th工厂产出,取代了OutputVariables .Max(我)
财产的货币政策委员会
在运行时对象。替代行为取决于这两个变量的维度。
标量OutputVariables .Min(我)
在货币政策委员会
对象(一个常数绑定的我
th植物输出用于预测所有步骤)
ymin维 | 替换行为 |
---|---|
标量ymin(单输出,常数绑定) | ymin替换绑定中定义的常数OutputVariables .Min(我) |
列向量ymin(单输出时变约束) | ymin替换绑定中定义的常数OutputVariables .Min(我) 时变约束。 |
行向量ymin(多个输出恒定的范围) | 的我 th元素ymin替换绑定中定义的常数OutputVariables .Min(我) |
矩阵ymin(多个输出时变边界) | 的我 th列ymin替换绑定中定义的常数OutputVariables .Min(我) 时变约束。 |
向量OutputVariables .Min(我)
在货币政策委员会
对象(一个时变的我
th植物有不同的值在不同的预测步骤的输出)
ymin维 | 替换行为 |
---|---|
标量ymin(单输出,常数绑定) | ymin替换第一个有限的进入OutputVariables.Min 和剩余的条目OutputVariables.Min 转变与相同数量的上下位移保留配置文件定义的原始OutputVariables.Min 向量。 |
列向量ymin(单输出时变约束) | ymin取代了时变绑定中定义OutputVariables .Min(我) ,原绑定配置文件就会被丢弃。 |
行向量ymin(多个输出恒定的范围) | 的我 th元素ymin替换第一个有限的进入OutputVariables .Min(我) 和剩余的条目OutputVariables .Min(我) 转变与相同数量的上下位移保留配置文件定义的原始OutputVariables .Min(我) 向量。 |
矩阵ymin(多个输出时变边界)。 | 的我 th列ymin取代了时变绑定中定义OutputVariables .Min(我) ,原绑定配置文件就会被丢弃。 |
依赖关系
要启用这个端口,选择低OV限制参数。
ymax
——最大的输出变量的约束
向量|矩阵
指定运行时最大输出变量约束,使这个输入端口。如果该端口被禁用,块使用中指定的上界OutputVariables.Max
财产的货币政策委员会
控制器对象。如果一个输出变量没有控制器对象中指定的上限,然后在运行时块忽略相应的连接信号。
改变的范围预测地平线k+ 1,k+p,连接ymax一个矩阵信号Ny列和p行。在这里,Ny是植物的数量输出,k是当前时间,p是预测地平线。每一行包含一个预测地平线的界限一步。如果你指定不到p行,最后一行的界限申请的其余部分预测地平线。如果只有一个输出变量,不超过一个矢量信号p条目连接,然后使用这些条目在预测地平线。
的我
th的列ymax信号对应于我
th工厂产出,取代了OutputVariables .Max(我)
财产的货币政策委员会
在运行时对象。替代行为取决于这两个变量的维度。
标量OutputVariables .Max(我)
在货币政策委员会
对象(一个常数绑定的我
th植物输出用于预测所有步骤)
ymax维 | 替换行为 |
---|---|
标量ymax(单输出,常数绑定) | ymax替换绑定中定义的常数OutputVariables .Max(我) |
列向量ymax(单输出时变约束) | ymax替换绑定中定义的常数OutputVariables .Max(我) 时变约束。 |
行向量ymax(多个输出恒定的范围) | 的我 th元素ymax替换绑定中定义的常数OutputVariables .Max(我) |
矩阵ymax(多个输出时变边界) | 的我 th列ymax替换绑定中定义的常数OutputVariables .Max(我) 时变约束。 |
向量OutputVariables .Max(我)
在货币政策委员会
对象(一个时变的我
th植物有不同的值在不同的预测步骤的输出)
ymax维 | 替换行为 |
---|---|
标量ymax(单输出,常数绑定) | ymax替换第一个有限的进入OutputVariables.Max 和剩余的条目OutputVariables.Max 转变与相同数量的上下位移保留配置文件定义的原始OutputVariables.Max 向量。 |
列向量ymax(单输出时变约束) | ymax取代了时变绑定中定义OutputVariables .Max(我) ,原绑定配置文件就会被丢弃。 |
行向量ymax(多个输出恒定的范围) | 的我 th元素ymax替换第一个有限的进入OutputVariables .Max(我) 和剩余的条目OutputVariables .Max(我) 转变与相同数量的上下位移保留配置文件定义的原始OutputVariables .Max(我) 向量。 |
矩阵ymax(多个输出时变边界)。 | 的我 th列ymax取代了时变绑定中定义OutputVariables .Max(我) ,原绑定配置文件就会被丢弃。 |
依赖关系
要启用这个端口,选择上层OV限制参数。
umin
——最小操纵变量约束
向量|矩阵
指定运行时最小操纵变量约束,使这个输入端口。如果该端口被禁用,块使用中指定的下界ManipulatedVariables.Min
财产的货币政策委员会
控制器对象。如果一个操纵变量没有下界中指定的控制器对象,然后在运行时块忽略相应的连接信号。
改变的范围预测地平线k时间k+p1,连接umin一个矩阵信号Nmv列和p行。在这里,Nmv是操纵变量的数量k是当前时间,p是预测地平线。每一行包含一个预测地平线的界限一步。如果你指定不到p行,最后一行的界限申请的其余部分预测地平线。如果只有一个操纵变量,不超过一个矢量信号p条目连接,然后使用这些条目在预测地平线。
的我
th的列umin信号对应于我
th操纵变量,取代了ManipulatedVariables .Max(我)
财产的货币政策委员会
在运行时对象。替代行为取决于这两个变量的维度。
标量ManipulatedVariables .Min(我)
在货币政策委员会
对象(一个常数绑定的我
th操纵变量应用到所有预测步骤)
umin维 | 替换行为 |
---|---|
标量umin(单输出,常数绑定) | umin替换绑定中定义的常数ManipulatedVariables .Min(我) |
列向量umin(单输出时变约束) | umin替换绑定中定义的常数ManipulatedVariables .Min(我) 时变约束。 |
行向量umin(多个输出恒定的范围) | 的我 th元素umin替换绑定中定义的常数ManipulatedVariables .Min(我) |
矩阵umin(多个输出时变边界) | 的我 th列umin替换绑定中定义的常数ManipulatedVariables .Min(我) 时变约束。 |
向量ManipulatedVariables .Min(我)
在货币政策委员会
对象(一个时变的我
th操纵变量不同的值在不同的预测步骤)
umin维 | 替换行为 |
---|---|
标量umin(单输出,常数绑定) | umin替换第一个有限的进入ManipulatedVariables.Min 和剩余的条目ManipulatedVariables.Min 转变与相同数量的上下位移保留配置文件定义的原始ManipulatedVariables.Min 向量。 |
列向量umin(单输出时变约束) | umin取代了时变绑定中定义ManipulatedVariables .Min(我) ,原绑定配置文件就会被丢弃。 |
行向量umin(多个输出恒定的范围) | 的我 th组成部分umin替换第一个有限的进入ManipulatedVariables .Min(我) 和剩余的条目ManipulatedVariables .Min(我) 转变与相同数量的上下位移保留配置文件定义的原始ManipulatedVariables .Min(我) 向量。 |
矩阵umin(多个输出时变边界)。 | 的我 th列umin取代了时变绑定中定义ManipulatedVariables .Min(我) ,原绑定配置文件就会被丢弃。 |
依赖关系
要启用这个端口,选择较低的MV限制参数。
umax
——最大操纵变量约束
向量|矩阵
指定运行时最大操纵变量约束,使这个输入端口。如果该端口被禁用,块使用中指定的上界ManipulatedVariables.Max
财产的货币政策委员会
控制器对象。如果一个操纵变量没有上界中指定的控制器对象,然后在运行时连接对应的块忽略了信号。
改变的范围预测地平线k时间k+p1,连接umax一个矩阵信号Nmv列和p行。在这里,Nmv是操纵变量的数量k是当前时间,p是预测地平线。每一行包含一个预测地平线的界限一步。如果你指定不到p行,最后一行的界限申请的其余部分预测地平线。如果只有一个操纵变量,不超过一个矢量信号p条目连接,然后使用这些条目在预测地平线。
的我
th的列umax信号对应于我
th操纵变量,取代了ManipulatedVariables .Max(我)
财产的货币政策委员会
在运行时对象。替代行为取决于这两个变量的维度。
标量ManipulatedVariables .Max(我)
在货币政策委员会
对象(一个常数绑定的我
th操纵变量应用到所有预测步骤)
umax维 | 替换行为 |
---|---|
标量umax(单输出,常数绑定) | umax替换绑定中定义的常数ManipulatedVariables .Max(我) |
列向量umax(单输出时变约束) | umax替换绑定中定义的常数ManipulatedVariables .Max(我) 时变约束。 |
行向量umax(多个输出恒定的范围) | 的我 th元素umax替换绑定中定义的常数ManipulatedVariables .Max(我) |
矩阵umax(多个输出时变边界) | 的我 th列umax替换绑定中定义的常数ManipulatedVariables .Max(我) 时变约束。 |
向量ManipulatedVariables .Max(我)
在货币政策委员会
对象(一个时变的我
th操纵变量不同的值在不同的预测步骤)
umax维 | 替换行为 |
---|---|
标量umax(单输出,常数绑定) | umax替换第一个有限的进入ManipulatedVariables.Max 和剩余的条目ManipulatedVariables.Max 转变与相同数量的上下位移保留配置文件定义的原始ManipulatedVariables.Max 向量。 |
列向量umax(单输出时变约束) | umax取代了时变绑定中定义ManipulatedVariables .Max(我) ,原绑定配置文件就会被丢弃。 |
行向量umax(多个输出恒定的范围) | 的我 th元素umax替换第一个有限的进入ManipulatedVariables .Max(我) 和剩余的条目ManipulatedVariables .Max(我) 转变与相同数量的上下位移保留配置文件定义的原始ManipulatedVariables .Max(我) 向量。 |
矩阵umax(多个输出时变边界)。 | 的我 th列umax取代了时变绑定中定义ManipulatedVariables .Max(我) ,原绑定配置文件就会被丢弃。 |
依赖关系
要启用这个端口,选择上层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
——输出变量优化权重
矩阵行向量|
指定运行时输出变量优化权重,使这个输入端口。如果该端口被禁用,块使用优化权重中指定Weights.OutputVariables
它的控制器对象的属性。这些调优权重惩罚偏离参考输出。
如果MPC控制器对象使用恒定的输出调优权重预测地平线,你可以在运行时指定只有恒定输出调整权重。类似地,如果MPC控制器对象使用不同的输出调优权重预测地平线,你可以在运行时指定只有时变输出调整权重
使用常数优化权重预测地平线,连接y.wt一个行向量的信号Ny元素,Ny是输出的数量。每个元素指定一个输出变量非负调优的体重。指定优化权值的更多信息,请参阅调整权重。
不同的调优权重预测地平线k+ 1,k+p,连接y.wt一个矩阵信号Ny列和p行。在这里,k当前时间和吗p是预测地平线。每行包含一个预测地平线步骤的优化权重。如果你指定不到p行,优化权重,最后行申请剩下的预测地平线。更多信息在不同权重预测地平线,明白了时变权重设置和约束与MPC设计师。
依赖关系
要启用这个端口,选择OV权重参数。
u.wt
——被控变量优化权重
矩阵行向量|
指定运行时被控变量优化权重,使这个输入端口。如果该端口被禁用,块使用优化权重中指定Weights.ManipulatedVariables
它的控制器对象的属性。这些调优权重惩罚偏离MV的目标。
如果MPC控制器对象使用常数被控变量优化权重预测地平线,您可以指定只有不断的被控变量在运行时优化权重。类似地,如果MPC控制器对象使用不同的被控变量优化权重预测地平线,您可以指定只有时变操纵变量在运行时优化权重
使用相同的调优权重预测地平线,连接u.wt一个行向量的信号Nmv元素,Nmv是操纵变量的数量。每个元素指定为被控变量非负调优的体重。指定优化权值的更多信息,请参阅调整权重。
不同的调优权重预测地平线k时间k+p1,连接u.wt一个矩阵信号Nmv列和p行。在这里,k当前时间和吗p是预测地平线。每行包含一个预测地平线步骤的优化权重。如果你指定不到p行,优化权重,最后行申请剩下的预测地平线。更多信息在不同权重预测地平线,明白了时变权重设置和约束与MPC设计师。
依赖关系
要启用这个端口,选择MV权重参数。
du.wt
——被控变量率优化权重
矩阵行向量|
指定运行时被控变量率优化权重,使这个输入端口。如果该端口被禁用,块使用优化权重中指定Weights.ManipulatedVariablesRate
它的控制器对象的属性。这些调优权重惩罚大变化的控制动作。
如果MPC控制器对象使用常数控制可变利率调整权重预测地平线,您可以指定只有不断的被控变量在运行时优化率权重。同样,如果MPC控制器对象使用操纵可变利率调整权重变化预测地平线,您可以指定只有时变操纵变量率在运行时优化权重
使用相同的调优权重预测地平线,连接du.wt一个行向量的信号Nmv元素,Nmv是操纵变量的数量。每个元素指定为被控变量非负调优的体重率。指定优化权值的更多信息,请参阅调整权重。
不同的调优权重预测地平线k时间k+p1,连接du.wt一个矩阵信号Nmv列和p行。在这里,k当前时间和吗p是预测地平线。每行包含一个预测地平线步骤的优化权重。如果你指定不到p行,优化权重,最后行申请剩下的预测地平线。更多信息在不同权重预测地平线,明白了时变权重设置和约束与MPC设计师。
依赖关系
要启用这个端口,选择MVRate权重参数。
ecr.wt
-松弛变量优化重量
标量
指定运行时松弛变量优化重量,使这个输入端口和连接一个标量信号。如果该端口被禁用,块使用调优中指定的重量Weights.ECR
它的控制器对象的属性。
松弛变量优化重量没有影响,除非你的控制器对象定义的软约束关联ECR值非零。如果有软约束,增加了ecr.wt价值使得这些约束相对困难。控制器然后地方优先减少预测最坏的大小约束违反。
依赖关系
要启用这个端口,选择ECR重量参数。
p
——预测地平线
正整数
预测地平线,指定为正整数信号。预测地平线信号值必须小于或等于最大预测地平线参数。
在运行时的值p
覆盖默认的控制器对象中指定预测地平线。有关更多信息,请参见在运行时调整视野。
依赖关系
要启用这个端口,选择在运行时调整预测层和控制层参数。
输出
mv
——最优操纵变量控制行动
列向量
最优操纵变量控制动作,输出为一个列向量长度的信号Nmv,在那里Nmv是操纵变量的数量。
如果解决收敛于局部最优的解决方案(qp.status是积极的),然后呢mv包含最优解。
如果解决失败(qp.status是负的),然后呢mv仍然在其最近的成功解决方案;控制器输出冻结。
如果解算器达到最大迭代次数没有找到一个最佳的解决方案(qp.status是零)和Optimization.UseSuboptimalSolution
控制器的属性是:
真正的
,然后mv包含了次优的解决方案假
,然后mv然后mv仍然在其最近的成功解决方案
成本
——目标函数成本
负的标量
成本目标函数,输出为负的标量信号。成本量化程度控制器实现其目标。成本计算值使用了MPC成本函数,每一项是offset-free和无量纲。
成本值时才有意义qp.status输出是负的。
依赖关系
要启用这个端口,选择最优成本参数。
qp.status
——优化状态
整数
优化状态,输出一个整数信号。
如果控制器解决了QP问题对于一个给定的控制区间qp.status输出返回QP解算器迭代计算中使用的数量。这个值是有限的,正整数,计算所需的时间成正比。因此,一个较大的值意味着一块相对缓慢的执行时间间隔。
QP解算器能不能找到一个最佳的解决方案有以下原因:
qp.status=
0
- QP解算器无法找到一个解决方案在迭代中指定的最大数量货币政策委员会
对象。在这种情况下,如果Optimizer.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
对象名称
指定初始控制器状态。如果你离开这个参数空白,块中定义使用名义值Model.Nominal
财产的货币政策委员会
对象。覆盖默认创建一个mpcstate
对象在你的工作区,并输入它的名字。
使用这个参数使控制器状态反映了真正的植物环境的模拟最好的你的知识。这个初始状态可以不同于名义州中定义货币政策委员会
对象。
如果启用了自定义状态估计,忽略了初始控制器状态参数。
编程使用
块参数:x0 |
类型:字符串,特征向量 |
默认值:”“ |
设计
——交互式地设计控制器
按钮
交互式修改使用指定的控制器MPC控制器参数,打开MPC设计师应用程序通过点击设计。例如,您可以:
导入一个新的预测模型。
变化的视野、约束和权重。
评估MPC性能线性植物。
MATLAB工作区导出更新控制器。
如果你有一个现有的货币政策委员会
在MATLAB工作区对象,指定该对象使用的名称MPC控制器参数。
如果你没有一个现有的货币政策委员会
在MATLAB工作区对象,离开MPC控制器参数是空的。与MPC控制器块连接到工厂,打开MPC设计师通过点击设计。使用这个应用程序,在指定的操作点线性化模型模型,并设计控制金宝app器。使用这种设计方法,你必须有金宝app仿真软件控制设计™软件。有关更多信息,请参见在仿真软件设计MPC控制器金宝app和线性化模型模型使用M金宝appPC设计师。
审查
——检查控制器的稳定性和鲁棒性问题
按钮
一旦你指定一个控制器使用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 |
类型:字符串,特征向量 |
价值观:“关闭” ,“上” |
默认值:“关闭” |
在运行时调整预测层和控制层
——添加地平线的输入端口
(默认)|
选择要添加这个参数p和米输入端口。
编程使用
块参数:pm_inport |
类型:字符串,特征向量 |
价值观:“关闭” ,“上” |
默认值:“关闭” |
最大预测地平线
——添加地平线的输入端口
10
(默认)|正整数
选择要添加这个参数p和米输入端口。
依赖关系
要启用该参数,选择在运行时调整预测层和控制层参数。
编程使用
块参数:MaximumP |
类型:字符串,特征向量 |
默认值:“10” |
样品时间
违约块样品时间
1
(默认)|积极的标量
缺省块样品进行模拟,削减或线性化使用MPC设计师应用。您必须指定一个示例,兼容仿真软件模型设计。金宝app
依赖关系
这个参数只适用于当MPC控制器参数是空的,你打开MPC设计师使用设计按钮。
编程使用
块参数:n_ts |
类型:字符串,特征向量 |
默认值:“1” |
预测地平线
违约预测地平线
10
(默认)|正整数
违约预测地平线进行模拟、修剪或使用的线性化MPC设计师应用。您必须指定一个预测地平线,兼容你的仿真软件模型设计。金宝app
依赖关系
这个参数只适用于当MPC控制器参数是空的,你打开MPC设计师使用设计按钮。
编程使用
块参数:n_p |
类型:字符串,特征向量 |
默认值:“10” |
被操纵的变量数
违约数量的操纵变量
1
(默认)|正整数
违约数量的操纵变量进行模拟,削减或线性化使用MPC设计师应用。你必须指定一个值,兼容仿真软件模型设计。金宝app
依赖关系
这个参数只适用于当MPC控制器参数是空的,你打开MPC设计师使用设计按钮。
编程使用
块参数:n_mv |
类型:字符串,特征向量 |
默认值:“1” |
数量的测量干扰
违约数量的测量干扰
1
(默认)|非负整数
违约数量的测量干扰进行仿真、修剪或线性化使用MPC设计师应用。你必须指定一个值,兼容仿真软件模型设计。金宝app
依赖关系
这个参数只适用于当MPC控制器参数是空的,你打开MPC设计师使用设计按钮。
使用这个参数,你必须选择测量的干扰参数。
编程使用
块参数:n_md |
类型:字符串,特征向量 |
默认值:“1” |
数量的无边无际的干扰
违约数量的无边无际的干扰
0
(默认)|非负整数
违约数量的无边无际的干扰进行仿真,削减或线性化使用MPC设计师应用。你必须指定一个值,兼容仿真软件模型设计。金宝app
依赖关系
这个参数只适用于当MPC控制器参数是空的,你打开MPC设计师使用设计按钮。
编程使用
块参数:n_ud |
类型:字符串,特征向量 |
默认值:“0” |
测量输出的数量
违约数量的测量输出
1
(默认)|正整数
违约数量的测量输出进行仿真、修剪或线性化使用MPC设计师应用。你必须指定一个值,兼容仿真软件模型设计。金宝app
依赖关系
这个参数只适用于当MPC控制器参数是空的,你打开MPC设计师使用设计按钮。
编程使用
块参数:n_mo |
类型:字符串,特征向量 |
默认值:“1” |
无边无际的输出数
违约数量的无边无际的输出
0
(默认)|非负整数
默认的无边无际的输出进行仿真,削减或线性化使用MPC设计师应用。你必须指定一个值,兼容仿真软件模型设计。金宝app
依赖关系
这个参数只适用于当MPC控制器参数是空的,你打开MPC设计师使用设计按钮。
编程使用
块参数:n_uo |
类型:字符串,特征向量 |
默认值:“0” |
块数据类型
——指定操纵变量的数据类型
双
(默认)|单
|数据类型的表达式
被操纵的变量的块数据类型指定为以下之一:
双
——双精度浮点单
——单精度浮点如果你是单精度目标、实现块指定输出数据类型
单
。数据类型的表达式
——一个表达式计算双
或单
。有关更多信息,请参见控制信号的数据类型(金宝app模型)。
编程使用
块参数:BlockDataType |
类型:字符串,特征向量 |
价值观:“替身” ,“单身” ,数据类型的表达式 |
默认值:“替身” |
继承采样时间
——从父母继承块样品时间子系统
从
(默认)|在
选择该参数继承父子系统的样品时间块样品时间。这样做可以有条件地执行这个块函数调用子系统(金宝app模型)或触发子系统(金宝app模型)块。例如,看到的使用MPC控制器块内部函数调用和触发子系统。
请注意
你必须执行函数调用子系统或触发子系统块的采样率控制器。否则,你可以看到意想不到的结果有两个原因。
MV速度向量的第一个元素(这是当前的最后一个值之间的差别的操纵变量)通常是加权和约束假设最后一个MV值发生在过去在样本时间MPC中指定对象,当块执行不同的采样率,这种假设不再成立。
内置的卡尔曼滤波估计使用样本时间MPC中指定对象提供一个当前状态估计MPC优化问题,所以当块执行不同的样品时间,估计国家不再是正确的。
如果你清楚这个参数(默认),样品时间块继承的控制器对象。
查看样本块的时候,在仿真软件模型窗口,金宝app调试选项卡,在信息覆盖,选择颜色或文本。有关更多信息,请参见查看样品的时间信息(金宝app模型)。
编程使用
块参数:SampleTimeInherited |
类型:字符串,特征向量 |
价值观:“关闭” ,“上” |
默认值:“关闭” |
使用外部信号来启用或禁用优化
——添加开关输入端口
从
(默认)|在
选择要添加这个参数开关输入端口。
编程使用
块参数:switch_inport |
类型:字符串,特征向量 |
价值观:“关闭” ,“上” |
默认值:“关闭” |
模型的例子
扩展功能
C / c++代码生成
使用仿真软件生成C和c++代码®编码器™。金宝app
GPU的代码生成
生成NVIDIA的CUDA®代码®GPU使用GPU编码器™。
PLC的代码生成
使用仿真软件生成结构化文本代码®PLC编码器™。金宝app
版本历史
之前介绍过的R2006aR2018b:货币政策委员会金宝app块mv.seq
输出端口信号方面已经发生了变化
行为改变R2018b
信号的尺寸mv.seq
输出端口的MPC控制器块已经改变了。以前,这是一个信号p——- - - - - -Nmv矩阵,p预测地平线和吗Nmv是操纵变量的数量。现在,mv.seq
是(p+ 1)——-Nmv矩阵,行p+ 1重复行p。
MATLAB命令
你点击一个链接对应MATLAB命令:
运行该命令通过输入MATLAB命令窗口。Web浏览器不支持MATLAB命令。金宝app
你也可以从下面的列表中选择一个网站:
表现最好的网站怎么走吗
选择中国网站(中文或英文)最佳站点的性能。其他MathWorks国家网站不优化的访问你的位置。