在运行时间调整视野
对于隐式和自适应MPC控制器,您可以在控制器运行时调整预测和控制视野。这样做可能很有用:
在原型过程中,在运行时有效评估不同的视野选择
在植物动力学发生明显变化之后,调整无重新部署的视野,例如在批处理过程中
调整视野MATLAB
要从命令行调整运行时间的视野,在每个控制间隔中,指定以下属性mpcmoveopt
目的。
预测
- 运行时预测范围信号,指定为正整数Controlhorizon
- 运行时控制范围信号,指定为正整数或正整数的向量
然后您可以通过mpcmoveopt
目的是mpcmove
或者mpcmoveadaptive
。
调整视野金宝app
在Si金宝appmulink中®,调整视野的MPC控制器或者自适应MPC控制器块,选择在运行时调整预测范围和控制范围范围。这样做将以下输入端口添加到块:
p
- 运行时预测范围信号,指定为标量整数信号m
- 运行时控制视野信号,指定为标量或向量信号
您必须使用最大预测范围范围。这样做确保了块的最佳序列输出端口(MV.Seq
,,,,X.Seq
, 和Y.Seq
)尺寸不断p最大限度+1行,哪里p最大限度是最大预测范围。
代码生成
运行时地平线调整支持两个MATLAB中的代码生成金宝app®和Sim金宝appulink。为支持运行时地平线更改的控制器生成代码,您可以在部署的控制器硬件上调整地平线金宝app值。
调整了地平线值后,为了提高最终部署控制器的计算效率,您可以使用调谐值为恒定摩托控制器生成代码。
通过运行时地平线调整部署控制器可以显着增加MPC应用程序的计算负载和内存足迹。如果您计划仅使用运行时地平线调整进行原型来查找正确的地平值值,则在调整后,请确保该功能已禁用。然后,您可以使用调谐值使用常数摩恩控制器生成代码。
如果您的控制器使用操纵变量阻止并为控制器生成代码,则控制范围向量的大小必须在运行时保持恒定。在这种情况下,您仍然可以在控制范围向量中调整值。
笔记
为了为使用运行时地平线调整的控制器生成代码,您已部署的硬件目标必须支持动态内存分配。金宝app例如,如果您的嵌入式系统不支持金宝appmalloc
C函数,然后生成的代码将无法运行。
要在MATLAB中生成代码,请设置'usevariablehorizon'
名称值参数getCodegenerationData
至真的
。在每个控制间隔中,您可以在调用之前指定视野mpcmoveceDgeneration
。
[configdata,estatedata,onlinedata] = getCodeGenerationData(mpcobj,'usevariablehorizon',真的);...Onilinedata.horizons.p = 10;OnLinedata.horizons.m = 3;[u,estatedata] = mpcmovecodegeneration(configData,neTataTa,onlinedata);
对时变控制器参数和信号的影响
如果您的应用程序使用控制器参数或在预测范围内变化的信号,则在运行时间调整预测范围会影响这些时变参数的行为。
约束
如果您在控制器对象中定义了时间变化的约束,则预测范围内约束的配置文件在运行时不会变化。如果您的运行时间预测范围值pr是:
大于控制器中指定的约束配置文件的长度,然后控制器在预测范围的其余部分中使用约束配置文件的最终值
小于控制器中指定的约束配置文件的长度,然后控制器将约束配置文件截断pr脚步
有关调整约束的更多信息,请参见在运行时更新约束和用MPC设计师设置随时间变化的权重和约束。
调整权重和预览信号
要改变调整权重或在预测范围内指定信号预览,您指定行对应于预测范围步骤的信号阵列。
如果您在运行时间调整预测范围,则最好的做法是定义重量和预览阵列n行,哪里n基于最大预测范围p最大限度根据下表。
在运行时,您指定第一个pr每个信号阵列的行(pr+1测量干扰的行)。控制器忽略了数组中的任何额外行。
信号类型 | 命令行的用法 | 块输入端口 | 最大行数n |
---|---|---|---|
MV调整重量 | 轻量级 财产的mpcmoveopt |
U.WT |
p嘛
|
MV速率重量 | 轻量级 财产的mpcmoveopt |
du.wt |
p最大限度 |
输出权重 | 输出压力 财产的mpcmoveopt |
Y.WT |
p最大限度 |
参考预览 | 输入到mpcmove 或者mpcmoveadaptive |
参考 |
p最大限度 |
测量的干扰预览 | 输入到mpcmove 或者mpcmoveadaptive |
MD |
p最大限度+1 |
如果指定任何信号数组,则少于pr行(pr+1对于测量干扰的行),控制器在预测范围的其余部分中使用了最终行中的值。
有关调整权重的更多信息,请参阅在运行时调整权重和用MPC设计师设置随时间变化的权重和约束。
有关预览参考或测量干扰信号的更多信息,请参见信号预览。
模型和名义条件
对于线性时变的MPC控制器,您可以通过将阵列传递到预测范围的植物模型和名义条件mpcmoveadaptive
或者自适应MPC控制器块,其中每个数组中的第一个元素是当前值,每个附加数组元素对应于预测范围步骤。
如果您在运行时间调整预测范围,最好的做法是定义植物模型和标称条件阵列p最大限度+1元素。在运行时,您指定第一个pr+1每个数组和控制器的元素忽略了额外的元素。
如果指定要么少于pr+1元素,控制器将最终元素用于预测范围的其余部分。
有关线性时变MPC的更多信息,请参见时变的MPC。