对于隐式和自适应MPC控制器,您可以在控制器运行时调整预测和控制范围。这样做有助于:
在原型设计期间,在运行时有效地评估不同的地平线选择
在工厂动态发生显著变化后,如在批处理过程中,无需重新部署即可调整范围
要在运行时从命令行在每个控制间隔调整水平,请指定mpcmoveopt
对象
预测视野
-运行时预测地平线信号,指定为正整数
控制地平线
-运行时控制水平信号,指定为正整数或正整数向量
然后你就可以通过考试了mpcmoveopt
反对mpcmove
或mpcmoveAdaptive
.
在Si金宝appmulink中®,以调整一个MPC控制器或自适应MPC控制器块,选择在运行时调整预测范围和控制范围参数。这样做会将以下输入端口添加到块中:
P
-运行时预测水平信号,指定为标量整数信号
M
-运行时控制水平信号,指定为标量或矢量信号
您必须使用最大预测层位这样做可以确保块的最佳序列输出端口(mv.seq
,x、 序号
和y、 序号
)有固定大小的P最大值+1行,在哪里P最大值是最大预测范围。
运行时范围调整支持在两种MATLAB中生成代码金宝app®和Sim金宝appulink。为支持运行时范围更改的控制器生成代码允许您在部署的控制器硬件上调整范围值。金宝app
调整地平线值后,为了提高最终部署的控制器的计算效率,可以使用调整后的值为恒定地平线控制器生成代码。
在启用运行时范围调整的情况下部署控制器会显著增加MPC应用程序的计算负载和内存占用。如果您计划仅在原型设计中使用运行时范围调整来查找正确的范围值,则在调整后,请确保禁用此功能。然后,您可以使用常量生成代码-使用调谐值的地平线控制器。
如果控制器使用操纵变量块并为控制器生成代码,则控制范围向量的大小在运行时必须保持不变。在这种情况下,您仍然可以调整控制范围向量内的值。
笔记
要为使用运行时水平调整的控制器生成代码,部署的硬件目标必须支持动态内存分配。例如,如果您的嵌入式系统不支持金宝app马洛克
C函数,则生成的代码将不会运行。
要在MATLAB中生成代码,请设置“UseVariableHorizon”
的名称值参数getCodeGenerationData
到符合事实的
. 在每个控制间隔中,您可以在调用之前指定地平线mpcmoveCodeGeneration
.
[configData,stateData,onlineData]=getCodeGenerationData(mpcobj,“UseVariableHorizon”,对);...onlineData.Horizons.p=10;onlineData.Horizons.m=3;[u,stateData]=mpcmoveCodeGeneration(配置数据、stateData、onlineData);
如果应用程序使用在预测范围内变化的控制器参数或信号,则在运行时调整预测范围会影响这些时变参数的行为。
如果在控制器对象中定义时变约束,则整个预测范围内的约束配置文件在运行时不会更改。如果您的运行时预测范围值PR是:
大于控制器中指定的约束配置文件的长度,则控制器将约束配置文件的最终值用于预测范围的其余部分
小于控制器中指定的约束配置文件的长度,则控制器将在之后截断约束配置文件PR台阶
有关调整约束的详细信息,请参见在运行时更新约束和使用MPC设计器设置时变权重和约束.
要在整个预测范围内改变调整权重或指定信号预览,请指定行对应于预测范围步长的信号阵列。
如果在运行时调整预测范围,最好使用N行,在哪里N基于最大预测范围P最大值根据下表。
在运行时,指定第一个PR每个信号阵列的行数(PR+1用于测量干扰的行)。控制器将忽略阵列中的任何额外行。
信号类型 | 命令行使用 | 块输入端口 | 最大行数N |
---|---|---|---|
MV调谐权重 | MVWeights 性质mpcmoveopt |
u、 wt |
P文科硕士
|
MV速率权重 | MVRateWeights 性质mpcmoveopt |
杜威 |
P最大值 |
输出权重 | 输出权重 性质mpcmoveopt |
y、 wt |
P最大值 |
参考预览 | 输入到mpcmove 或mpcmoveAdaptive |
裁判 |
P最大值 |
实测扰动预览 | 输入到mpcmove 或mpcmoveAdaptive |
医学博士 |
P最大值+1 |
如果指定任何小于PR排(PR+1对于测量的干扰行),控制器使用最后一行中的值作为预测范围的剩余部分。
有关调整权重的详细信息,请参见在运行时调整权重和使用MPC设计器设置时变权重和约束.
有关预览参考或测量干扰信号的更多信息,请参见信号预览.
对于线性时变MPC控制器,通过将数组传递给mpcmoveAdaptive
或者自适应MPC控制器块,其中每个数组中的第一个元素是当前值,并且每个附加数组元素对应于预测水平步长。
如果在运行时调整预测范围,最好使用P最大值+1元素。在运行时,指定第一个PR+1每个数组的元素,控制器忽略额外的元素。
如果指定的数组少于PR+1元素,控制器将最后一个元素用于预测范围的剩余部分。
有关线性时变MPC的更多信息,请参阅时变MPC.