在运行时调整视野
对于隐式和自适应MPC控制器,您可以在控制器运行时调整预测和控制范围。这样做可以用于:
在原型制作期间,在运行时有效地评估不同的视界选择
在工厂动态发生显著变化后调整视界而不重新部署,例如在批处理过程中
调整视野MATLAB
控件的以下属性可在运行时从命令行调整视界mpcmoveopt
对象。
PredictionHorizon
-运行时预测水平信号,指定为正整数ControlHorizon
-运行时控制水平信号,指定为正整数或正整数的向量
然后你可以传递mpcmoveopt
反对任何一个mpcmove
或mpcmoveAdaptive
.
调整视野金宝app
在仿真金宝app软件®,以调整视界为一个MPC控制器或自适应MPC控制器块,选择在运行时调整预测水平和控制水平参数。这样做会向块中添加以下输入端口:
p
—运行时预测水平信号,指定为标量整数信号米
-运行时控制水平信号,指定为标量或矢量信号
属性指定最大预测范围最大预测层参数。这样做可以确保块的最佳输出端口序列(mv.seq
,x.seq
,y.seq
)的大小不变p马克斯+1行,其中p马克斯为最大预测视界。
代码生成
运行时水平调优支持MATLAB中的代码生成金宝app®和仿真软金宝app件。为支持运行时水平变化的控制器生成代码,允许您在已部署的控制器硬件上优化水平值金宝app。
在调优水平值之后,为了提高最终部署控制器的计算效率,您可以使用调优的值为恒定水平控制器生成代码。
部署启用运行时范围调优的控制器会显著增加MPC应用程序的计算负载和内存占用。如果您计划仅在原型中使用运行时水平调优来查找适当的水平值,那么在调优之后,请确保禁用此特性。然后,您可以使用调优后的值生成具有恒定水平控制器的代码。
如果你的控制器使用操纵变量块,并且你为你的控制器生成代码,控制水平矢量的大小必须在运行时保持不变。在这种情况下,您仍然可以调优控制水平向量内的值。
请注意
要为使用运行时水平调优的控制器生成代码,所部署的硬件目标必须支持动态内存分配。金宝app例如,如果您的嵌入式系统不支持金宝appmalloc
C函数,则生成的代码将无法运行。
要在MATLAB中生成代码,请设置“UseVariableHorizon”
的名称-值参数getCodeGenerationData
来真正的
.在每个控制间隔中,您可以在调用之前指定视界mpcmoveCodeGeneration
.
[configData,stateData,onlineData] = getCodeGenerationData(mpcobj,“UseVariableHorizon”,真正的);...onlindata . horizons .p = 10;onlindata . horizons .m = 3;[u,stateData] = mpcmoveCodeGeneration(configData,stateData,onlineData);
对时变控制器参数和信号的影响
如果应用程序使用在预测范围内变化的控制器参数或信号,则在运行时调整预测范围会影响这些时变参数的行为。
约束
如果在控制器对象中定义时变约束,则整个预测范围内的约束配置文件在运行时不会更改。如果您的运行时预测范围值pr是:
大于控制器中指定的约束配置文件的长度,则控制器对预测范围的剩余部分使用约束配置文件的最终值
小于控制器中指定的约束配置文件的长度,则控制器随后截断约束配置文件pr步骤
有关调整约束的详细信息,请参见在运行时更新约束而且使用MPC设计器设置时变权重和约束.
调整权重和预览信号
若要在整个预测水平范围内更改调优权重或指定信号预览,请指定信号数组,其中的行对应于预测水平步骤。
如果在运行时调整预测范围,使用定义权重和预览数组是最佳实践N行,N是基于最大预测水平吗p马克斯根据下表。
在运行时,指定第一个pr每个信号阵列的行数(pr+1行表示测量的扰动)。控制器忽略数组中任何额外的行。
信号类型 | 命令行用法 | 块输入口 | 最大行数N |
---|---|---|---|
MV调谐权重 | MVWeights 的属性mpcmoveopt |
u.wt |
p马克斯 |
MV率权重 | MVRateWeights 的属性mpcmoveopt |
du.wt |
p马克斯 |
输出权值 | OutputWeights 的属性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.