主要内容

在运行时调整视野

对于隐式和自适应MPC控制器,你可以在控制器运行时调整预测和控制范围。这样做在以下情况下很有用:

  • 在原型制作过程中,在运行时有效地评估不同的水平选择

  • 在工厂动态发生显著变化后,如在批处理过程中,不重新部署,调整水平

调整视野MATLAB

要在运行时从命令行调整视界,请在每个控制间隔中指定mpcmoveopt对象。

  • PredictionHorizon-运行时预测水平信号,指定为一个正整数

  • ControlHorizon-运行时控制水平信号,指定为一个正整数或正整数向量

然后你可以通过mpcmoveopt对象是mpcmovempcmoveAdaptive

调整视野金宝app

在仿真金宝app软件®,调整地平线MPC控制器自适应MPC控制器块,选择在运行时调整预测视界和控制视界参数。这样做会将以下输入端口添加到块中:

  • p-运行时预测水平信号,指定为标量整数信号

  • -运行时控制水平信号,指定为标量或矢量信号

属性指定最大预测视界最大预测地平线参数。这样做可以确保块的最佳序列输出端口(mv.seqx.seq,y.seq)有固定的大小p马克斯+ 1行,p马克斯为最大预测视界。

代码生成

运行时水平调优支持MATLAB中的代码生成金宝app®和仿真软金宝app件。为支持运行时水平变化的控制器生成代码,允许您在已部署的控制器硬件上调整水平值金宝app。

在调优水平段值之后,为了提高最终部署控制器的计算效率,可以使用调优的值为常量水平段控制器生成代码。

部署启用了运行时水平调优的控制器会显著增加MPC应用程序的计算负载和内存占用。如果您计划只在原型中使用运行时水平调优来找到合适的水平值,那么在调优之后,请确保禁用该特性。然后,您可以使用调优后的值使用常量水平控制器生成代码。

如果您的控制器使用操纵变量阻塞,并且您为控制器生成代码,那么控制水平向量的大小必须在运行时保持不变。在这种情况下,您仍然可以在控制水平矢量内调整值。

请注意

要为使用运行时水平调优的控制器生成代码,部署的硬件目标必须支持动态内存分配。金宝app例如,如果您的嵌入式系统不支持金宝appmallocC函数,则生成的代码将不会运行。

要在MATLAB中生成代码,设置“UseVariableHorizon”名称-值参数getCodeGenerationData真正的.在每个控制间隔中,您可以在调用之前指定视界mpcmoveCodeGeneration

[configData, stateData onlineData] = getCodeGenerationData (mpcobj,“UseVariableHorizon”,真正的);...onlineData.Horizons.p = 10;onlineData.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
x
MV率权重 MVRateWeights的属性mpcmoveopt du.wt p马克斯
输出权值 OutputWeights的属性mpcmoveopt y.wt p马克斯
参考预览 输入mpcmovempcmoveAdaptive 裁判 p马克斯
测量扰动预览 输入mpcmovempcmoveAdaptive 医学博士 p马克斯+1

如果你指定的信号数组小于pr行(pr+1行为测量到的扰动),控制器使用来自最后一行的值作为预测视界的剩余部分。

有关调优权重的更多信息,请参见在运行时调优权重用MPC设计器设置时变权值和约束

有关预览参考或测量干扰信号的更多信息,请参阅信号预览

模型和名义条件

对于线性时变MPC控制器,通过将数组传递到,可以在整个预测范围内改变被控对象模型和标称条件mpcmoveAdaptive或者是自适应MPC控制器块,其中每个数组中的第一个元素是当前值,每个额外的数组元素对应一个预测层步长。

如果您在运行时调整预测视界,最好的做法是使用p马克斯+1元素。在运行时,指定第一个pr+1每个数组的元素和控制器忽略额外的元素。

如果指定的数组个数小于pr+1元素时,控制器使用最后一个元素来表示剩余的预测视界。

有关线性时变MPC的更多信息,请参见时变MPC

另请参阅

功能

相关的话题