对于隐式和自适应MPC控制器,您可以在控制器运行时调整预测和控制范围。这样做在以下情况下很有用:
在原型化过程中,在运行时有效地评估不同的水平选择
在植物动力学显着变化后,调整视野无需重新部署,例如在批处理过程中
要在命令行从命令行调整视野,请在每个控制间隔中指定以下属性mpcmoveopt
对象。
PredictionHorizon
-运行时预测水平信号,指定为一个正整数
ControlHorizon.
- 运行时控制地平线信号,指定为正整数或正整数的向量
然后你可以通过mpcmoveopt
对象是MPCMOVE.
或mpcmoveadaptive
。
在Si金宝appmulink.®,调整视野MPC控制器或自适应MPC控制器块,选择在运行时调整预测地平线和控制地平线参数。这样做会将以下输入端口添加到块中:
P.
- 运行时预测地平线信号,指定为标量整数信号
M.
-运行时控制水平信号,指定为标量或矢量信号
方法指定最大预测范围最大预测地平线参数。这样做可以确保块的最佳序列输出端口(mv.seq.
那x.seq
,y.seq
)有恒定的尺寸P.马克斯+1行,在哪里P.马克斯为最大预测期。
运行时光调谐支持Matlab中的代码生成金宝app®和Sim金宝appulink。生成支持运行时光的控制器的代码更改允许您在已部署的控制器硬件上调整地平线值。金宝app
在调整地平线值后,为了提高最终部署的控制器的计算效率,您可以使用调谐值生成恒定地平线控制器的代码。
部署启用了运行时水平调优的控制器会显著增加MPC应用程序的计算负载和内存占用。如果您计划只在原型中使用运行时水平调优来寻找合适的水平值,那么在调优之后,请确保禁用此功能。然后,您可以使用调优的值使用恒水平控制器生成代码。
如果您的控制器使用操纵变量阻塞,并且您为控制器生成代码,那么控制水平向量的大小必须在运行时保持不变。在这种情况下,您仍然可以调整控制水平矢量中的值。
笔记
要为使用运行时光调谐的控制器生成代码,所署的硬件目标必须支持动态内存分配。金宝app例如,如果您的嵌入式系统不支持金宝appmalloc
函数,则生成的代码将不会运行。
要在MATLAB中生成代码,请设置'udervarifehorizon'
名称 - 价值论证getCodeGenerationData
到真正的
。在每个控制间隔,您可以在呼叫之前指定视野mpcmoveCodeGeneration
。
[configdata,stateata,onlinedata] = getcodegenerationData(mpcobj,'udervarifehorizon',真的);......onlineData.Horizons.p = 10;onlineData.Horizons.m = 3;[u, stateData] = mpcmoveCodeGeneration (configData, stateData onlineData);
如果应用程序使用在预测范围内变化的控制器参数或信号,则在运行时调整预测范围会影响这些时变参数的行为。
如果在控制器对象中定义时变的约束,则预测视野中的约束的配置文件在运行时不会更改。如果您的运行时间预测地平线值P.R.是:
大于控制器中指定的约束配置文件的长度,然后控制器使用约束配置文件的最终值以进行预测地平线的其余部分
小于控制器中指定的约束配置文件的长度,然后控制器之后截断约束配置文件P.R.步骤
有关调整约束的详细信息,请参见在运行时更新约束和使用MPC设计器设置时变量和约束。
要在预测地平线上变化调整权重或指定信号预览,请指定信号阵列,其中行对应于预测地平线步骤。
如果在运行时调整预测视界,则最好的做法是定义权重和预览阵列N.行,N.基于最大预测地平线P.马克斯根据下表。
在运行时,您指定第一个P.R.每个信号阵列的行(P.R.+1测量干扰的行)。控制器忽略阵列中的任何额外行。
信号类型 | 命令行用法 | 块输入端口 | 最大行数N. |
---|---|---|---|
MV调整权重 | MVWeights 财产mpcmoveopt |
U.Wt. |
P.马
|
MV率权重 | mvrateweights. 财产mpcmoveopt |
du.wt. |
P.马克斯 |
输出权重 | 输出重量 财产mpcmoveopt |
y.wt. |
P.马克斯 |
参考预览 | 输入MPCMOVE. 或mpcmoveadaptive |
裁判 |
P.马克斯 |
测量扰动预览 | 输入MPCMOVE. 或mpcmoveadaptive |
医学博士 |
P.马克斯+1 |
如果你指定任何小于的信号数组P.R.行(P.R.+1测量扰动的行),控制器使用最后一行的值作为预测视界的剩余部分。
有关调优权重的更多信息,请参见运行时间调整重量和使用MPC设计器设置时变量和约束。
有关预览参考或测量干扰信号的更多信息,请参阅信号预览。
对于线性时变MPC控制器,通过将阵列传递到预测地平线,改变植物模型和标称条件mpcmoveadaptive
或者是自适应MPC控制器块,其中每个数组的第一个元素是当前值,每个额外的数组元素对应一个预测水平步长。
如果您在运行时调整预测范围,最佳实践是定义工厂模型和标称条件数组P.马克斯+1元素。在运行时,您指定第一个P.R.+1每个数组的元素,控制器忽略额外的元素。
如果你指定的数组都是小于P.R.+1元素,控制器将最后一个元素用于预测层的剩余部分。
有关线性时变MPC的更多信息,请参见时变MPC。