mpcmoveopt
选项集mpcmove
函数
描述
属性的选项mpcmove
,mpcmoveAdaptive
,mpcmoveMultiple
函数,使用mpcmoveopt
对象。
使用此对象,可以为控制器属性的子集指定运行时值,例如调优权重和约束。属性中的一个未指定值mpcmoveopt
属性时,将使用相应控制器选项的值代替。
属性
OutputWeights
- - - - - -输出可变调优权重
[]
(默认)|向量|数组
属性的变量调优权重权重。OutputVariables
属性,指定为矢量或非负值数组。
若要在整个预测范围内使用相同的权重,请指定长度的行向量Ny,在那里Ny是输出变量的个数。
在预测范围内随时间变化调整权重k+1到时间k+p,指定数组Ny列和至p行。在这里,k当前时间和p是预测视界。每行包含一个预测水平步的输出变量调优权重。如果你指定小于p行,最后一行中的权重用于预测范围的其余步骤。
的格式OutputWeights
必须匹配的格式权重。OutputVariables
属性。例如,您不能在控制器对象的预测范围内指定恒定权重,然后使用指定时变权重mpcmoveopt
.
MVWeights
- - - - - -操纵可变调优权重
[]
(默认)|向量|数组
控件的可变调优权重权重。米anipulatedVariables
属性,指定为矢量或非负值数组。
若要在整个预测范围内使用相同的权重,请指定长度的行向量Nmv,在那里Nmv是被操纵变量的数量。
在预测范围内随时间变化调整权重k时间k+p-1,指定数组Nmv列和至p行。在这里,k当前时间和p是预测视界。每行包含一个预测水平步的操纵变量调优权重。如果你指定小于p行,最后一行中的权重用于预测范围的其余步骤。
的格式MVWeights
必须匹配的格式权重。米anipulatedVariables
属性。例如,您不能在控制器对象的预测范围内指定恒定权重,然后使用指定时变权重mpcmoveopt
.
MVRateWeights
- - - - - -操纵可变率调整权重
[]
(默认)|向量|数组
操纵可变速率调优权重,以取代权重。米anipulatedVariablesRate
属性,指定为矢量或非负值数组。
若要在整个预测范围内使用相同的权重,请指定长度的行向量Nmv,在那里Nmv是被操纵变量的数量。
在预测范围内随时间变化调整权重k时间k+p-1,指定数组Nmv列和至p行。在这里,k当前时间和p是预测视界。每行包含一个预测水平步骤的操纵变量率调优权重。如果你指定小于p行,最后一行中的权重用于预测范围的其余步骤。
的格式MVRateWeights
必须匹配的格式权重。米anipulatedVariablesRate
属性。例如,您不能在控制器对象的预测范围内指定恒定权重,然后使用指定时变权重mpcmoveopt
.
ECRWeight
- - - - - -松弛可变调重
[]
(默认)|积极的标量
松弛变量调优权重,取代权重。ECR
属性,指定为正标量。
OutputMin
- - - - - -输出变量下界
[]
(默认)|行向量|矩阵
输出变量下界,指定为长度的行向量Ny或者作为一个矩阵Ny列,Ny是输出变量的个数。
如果没有指定OutputVariables(我)。最小值
的属性货币政策委员会
对象,然后指定OutputMin
在执行时导致错误mpcmove
.
从时间上改变预测视界的边界k+1到时间k+p,指定一个矩阵Ny列和至p行。在这里,Ny是工厂产出的数量,k是当前时间,和p是预测视界。每行包含一个预测水平步的边界。如果你指定小于p行,最后一行中的边界用于预测范围的其余步骤。
OutputMin(:,我)
取代了OutputVariables(我)。最小值
的属性货币政策委员会
对象。替换行为取决于两个变量的维度。
标量OutputVariables(我)。最小值
在货币政策委员会
对象的常量边界我
植物产量应用于所有预测步骤)
OutputMin 维 |
替换行为 |
---|---|
标量OutputMin (单输出,常数界) |
OutputMin 中定义的常量边界OutputVariables(我)。最小值 |
列向量OutputMin (单输出,时变界) |
OutputMin 中定义的常量边界OutputVariables(我)。最小值 有一个时变的边界。 |
行向量OutputMin (多输出,常量边界) |
OutputMin(我) 中定义的常量边界OutputVariables(我)。最小值 |
矩阵OutputMin (多输出,时变边界) |
OutputMin(:,我) 中定义的常量边界OutputVariables(我)。最小值 有一个时变的边界。 |
向量OutputVariables(我)。最小值
在货币政策委员会
对象的时变边界我
不同预测步骤下不同值的植株产量)
OutputMin 维 |
替换行为 |
---|---|
标量OutputMin (单输出,常数界) |
OutputMin 替换第一个有限项OutputVariables。最小值 剩下的元素OutputVariables。最小值 以相同的位移量向上或向下移动,以保留原始轮廓所定义的轮廓OutputVariables。最小值 向量。 |
列向量OutputMin (单输出,时变界) |
OutputMin 中定义的时变边界OutputVariables(我)。最小值 ,原始绑定配置文件将被丢弃。 |
行向量OutputMin (多输出,常量边界) |
OutputMin(我) 替换第一个有限项OutputVariables(我)。最小值 剩下的元素OutputVariables(我)。最小值 以相同的位移量向上或向下移动,以保留原始轮廓所定义的轮廓OutputVariables(我)。最小值 向量。 |
矩阵OutputMin (多输出,时变边界)。 |
OutputMin(:,我) 中定义的时变边界OutputVariables(我)。最小值 ,原始绑定配置文件将被丢弃。 |
OutputMax
- - - - - -输出变量上界
[]
(默认)|行向量|矩阵
输出变量上界,指定为长度的行向量Ny或者作为一个矩阵Ny列,Ny是输出变量的个数。
如果没有指定OutputVariables(我)。马克斯
的属性货币政策委员会
对象,然后指定OutputMax
在执行时导致错误mpcmove
.
从时间上改变预测视界的边界k+1到时间k+p,指定一个矩阵Ny列和至p行。在这里,Ny是工厂产出的数量,k是当前时间,和p是预测视界。每行包含一个预测水平步的边界。如果你指定小于p行,最后一行中的边界用于预测范围的其余步骤。
OutputMax(:,我)
取代了OutputVariables(我)。马克斯
的属性货币政策委员会
对象。替换行为取决于两个变量的维度。
标量OutputVariables(我)。马克斯
在货币政策委员会
对象的常量边界我
植物产量应用于所有预测步骤)
OutputMax 维 |
替换行为 |
---|---|
标量OutputMax (单输出,常数界) |
OutputMax 中定义的常量边界OutputVariables(我)。马克斯 |
列向量OutputMax (单输出,时变界) |
OutputMax 中定义的常量边界OutputVariables(我)。马克斯 有一个时变的边界。 |
行向量OutputMax (多输出,常量边界) |
OutputMax(我) 中定义的常量边界OutputVariables(我)。马克斯 |
矩阵OutputMax (多输出,时变边界) |
OutputMax(:,我) 中定义的常量边界OutputVariables(我)。马克斯 有一个时变的边界。 |
向量OutputVariables(我)。马克斯
在货币政策委员会
对象的时变边界我
不同预测步骤下不同值的植株产量)
OutputMax 维 |
替换行为 |
---|---|
标量OutputMax (单输出,常数界) |
OutputMax 替换第一个有限项OutputVariables。马克斯 剩下的元素OutputVariables。马克斯 以相同的位移量向上或向下移动,以保留原始轮廓所定义的轮廓OutputVariables。马克斯 向量。 |
列向量OutputMax (单输出,时变界) |
OutputMax 中定义的时变边界OutputVariables(我)。马克斯 ,原始绑定配置文件将被丢弃。 |
行向量OutputMax (多输出,常量边界) |
OutputMax(我) 替换第一个有限项OutputVariables(我)。马克斯 剩下的元素OutputVariables(我)。马克斯 以相同的位移量向上或向下移动,以保留原始轮廓所定义的轮廓OutputVariables(我)。马克斯 向量。 |
矩阵OutputMax (多输出,时变边界)。 |
OutputMax(:,我) 中定义的时变边界OutputVariables(我)。马克斯 ,原始绑定配置文件将被丢弃。 |
MVMin
- - - - - -操纵变量下界
[]
(默认)|行向量|矩阵
被操纵的变量下界,指定为长度的行向量Nmv或者作为一个矩阵Nmv列,Nmv是输出变量的个数。
如果没有指定ManipulatedVariables(我)。最小值
的属性货币政策委员会
对象,然后指定MVMin
在执行时导致错误mpcmove
.
从时间上改变预测视界的边界k时间k+p-1,指定一个矩阵Nmv列和至p行。在这里,Nmv是被操纵变量的数量,k是当前时间,和p是预测视界。每行包含一个预测水平步的边界。如果你指定小于p行,最后一行中的边界用于预测范围的其余步骤。
MVMin(:,我)
取代了ManipulatedVariables(我)。最小值
的属性货币政策委员会
对象。替换行为取决于两个变量的维度。
标量ManipulatedVariables(我)。最小值
在货币政策委员会
对象的常量边界我
应用于所有预测步骤的被操纵变量)
MVMin 维 |
替换行为 |
---|---|
标量MVMin (单输出,常数界) |
MVMin 中定义的常量边界ManipulatedVariables(我)。最小值 |
列向量MVMin (单输出,时变界) |
MVMin 中定义的常量边界ManipulatedVariables(我)。最小值 有一个时变的边界。 |
行向量MVMin (多输出,常量边界) |
MVMin(我) 中定义的常量边界ManipulatedVariables(我)。最小值 |
矩阵MVMin (多输出,时变边界) |
MVMin(:,我) 中定义的常量边界ManipulatedVariables(我)。最小值 有一个时变的边界。 |
向量ManipulatedVariables(我)。最小值
在货币政策委员会
对象的时变边界我
在不同的预测步骤中有不同值的操纵变量)
MVMin 维 |
替换行为 |
---|---|
标量MVMin (单输出,常数界) |
MVMin 替换第一个有限项ManipulatedVariables。最小值 剩下的元素ManipulatedVariables。最小值 以相同的位移量向上或向下移动,以保留原始轮廓所定义的轮廓ManipulatedVariables。最小值 向量。 |
列向量MVMin (单输出,时变界) |
MVMin 中定义的时变边界ManipulatedVariables(我)。最小值 ,原始绑定配置文件将被丢弃。 |
行向量MVMin (多输出,常量边界) |
MVMin(我) 替换第一个有限项ManipulatedVariables(我)。最小值 剩下的元素ManipulatedVariables(我)。最小值 以相同的位移量向上或向下移动,以保留原始轮廓所定义的轮廓ManipulatedVariables(我)。最小值 向量。 |
矩阵MVMin (多输出,时变边界)。 |
MVMin(:,我) 中定义的时变边界ManipulatedVariables(我)。最小值 ,原始绑定配置文件将被丢弃。 |
MVMax
- - - - - -操纵变量上界
[]
(默认)|行向量|矩阵
被操纵的变量上界,指定为长度的行向量Nmv或者作为一个矩阵Nmv列,Nmv是输出变量的个数。
如果没有指定ManipulatedVariables(我)。马克斯
的属性货币政策委员会
对象,然后指定MVMax
在执行时导致错误mpcmove
.
从时间上改变预测视界的边界k时间k+p-1,指定一个矩阵Nmv列和至p行。在这里,Nmv是被操纵变量的数量,k是当前时间,和p是预测视界。每行包含一个预测水平步的边界。如果你指定小于p行,最后一行中的边界用于预测范围的其余步骤。
MVMax(:,我)
取代了ManipulatedVariables(我)。马克斯
的属性货币政策委员会
对象。替换行为取决于两个变量的维度。
标量ManipulatedVariables(我)。马克斯
在货币政策委员会
对象的常量边界我
应用于所有预测步骤的被操纵变量)
MVMax 维 |
替换行为 |
---|---|
标量MVMax (单输出,常数界) |
MVMax 中定义的常量边界ManipulatedVariables(我)。马克斯 |
列向量MVMax (单输出,时变界) |
MVMax 中定义的常量边界ManipulatedVariables(我)。马克斯 有一个时变的边界。 |
行向量MVMax (多输出,常量边界) |
MVMax(我) 中定义的常量边界ManipulatedVariables(我)。马克斯 |
矩阵MVMax (多输出,时变边界) |
MVMax(:,我) 中定义的常量边界ManipulatedVariables(我)。马克斯 有一个时变的边界。 |
向量ManipulatedVariables(我)。马克斯
在货币政策委员会
对象的时变边界我
在不同的预测步骤中有不同值的操纵变量)
MVMax 维 |
替换行为 |
---|---|
标量MVMax (单输出,常数界) |
MVMax 替换第一个有限项ManipulatedVariables。马克斯 剩下的元素ManipulatedVariables。马克斯 以相同的位移量向上或向下移动,以保留原始轮廓所定义的轮廓ManipulatedVariables。马克斯 向量。 |
列向量MVMax (单输出,时变界) |
MVMax 中定义的时变边界ManipulatedVariables(我)。马克斯 ,原始绑定配置文件将被丢弃。 |
行向量MVMax (多输出,常量边界) |
MVMax(我) 替换第一个有限项ManipulatedVariables(我)。马克斯 剩下的元素ManipulatedVariables(我)。马克斯 以相同的位移量向上或向下移动,以保留原始轮廓所定义的轮廓ManipulatedVariables(我)。马克斯 向量。 |
矩阵MVMax (多输出,时变边界)。 |
MVMax(:,我) 中定义的时变边界ManipulatedVariables(我)。马克斯 ,原始绑定配置文件将被丢弃。 |
CustomConstraint
- - - - - -自定义混合输入/输出约束
[]
(默认)|结构
自定义混合输入/输出约束,指定为具有以下字段的结构。这些约束取代了之前设置的混合输入/输出约束setconstraint
.
E
-操纵变量约束常数
零数组(默认值)|Nc——- - - - - -Nmv数组
被操纵变量约束常数,指定为Nc——- - - - - -Nmv数组,Nc是约束的数量,和Nmv是被操纵变量的数量。
F
-受控输出约束常数
零数组(默认值)|Nc——- - - - - -Ny数组
受控输出约束常数,指定为Nc——- - - - - -Ny数组,Ny是受控输出(测量和未测量)的数量。
G
-混合输入输出约束常数
0的列向量(默认)|长度的列向量Nc
混合输入/输出约束常数,指定为长度的列向量Nc.
年代
-测量的扰动约束常数
零数组(默认值)|Nc——- - - - - -N医学博士数组
测量的扰动约束常数,指定为Nc——- - - - - -N医学博士数组,N医学博士是测量扰动的数量。
MVused
- - - - - -在前一个控制间隔期间工厂中使用的被操纵变量值
[]
(默认)|行向量
在前一个控制间隔期间工厂中使用的被操纵变量值,指定为长度的行向量Nmv,在那里Nmv是被操纵变量的数量。如果您没有指定MVused
,mpvmove
使用LastMove
属性的当前控制器状态输入参数x
.
MVTarget
- - - - - -操纵可变目标
[]
(默认)|行向量
被操纵的可变目标,指定为长度的行向量Nmv,在那里Nmv是被操纵变量的数量。MVTarget(我)
取代了ManipulatedVariables(我)。目标
属性。
PredictionHorizon
- - - - - -预测地平线
[]
(默认)|正整数
预测水平,取代PredictionHorizon
属性,指定为正整数。如果你指定PredictionHorizon
,您还必须指定ControlHorizon
.
指定PredictionHorizon
改变了:
方法返回的最佳序列中的行数
mpcmove
而且mpcmoveAdaptive
功能的最大尺寸
植物
而且名义上的
的输入参数mpcmoveAdaptive
方法忽略此参数mpcmoveMultiple
函数。
ControlHorizon
- - - - - -控制层
[]
(默认)|正整数|正整数向量
控件的水平,该控件将替换ControlHorizon
控制器在运行时的属性,指定为以下之一:
正整数,米之间,
1
而且p,包括,其中p等于PredictionHorizon
.在这种情况下,控制器进行计算米自由控制动作时有发生k通过k+米-1,并保持从剩下的预测水平步长的控制器输出不变k+米通过k+p1。在这里,k当前控制间隔。求最优轨迹规划集米等于p.正整数向量,[米1,米2,…],其中整数之和等于预测视界,p.在这种情况下,控制器进行计算米方块的自由移动,其中米长度是
ControlHorizon
向量。第一个自由动作适用于时代k通过k+米1-1,第二次自由移动适用于时间k+米1通过k+米1+米2-1,等等。与默认情况相比,使用块移动可以提高控制器的鲁棒性。
如果你指定ControlHorizon
,您还必须指定PredictionHorizon
.
方法忽略此参数mpcmoveMultiple
函数。
对象的功能
mpcmove |
计算最优控制动作并更新控制器状态 |
mpcmoveAdaptive |
更新预测模型,计算最优控制 |
mpcmoveMultiple |
计算增益调度MPC控制动作在单个时间瞬间 |
例子
改变控制器属性的模拟
在模拟过程中改变被操纵变量的上界。
定义工厂,其中包括4秒的输入延迟。使用2秒控制间隔转换为无延迟、离散的状态空间模型。创建相应的默认控制器,并指定MV边界为+/-2。
Ts = 2;Plant = absorbDelay(c2d(ss(tf(0.8,[5 1],“InputDelay”4)、Ts));MPCobj = mpc(Plant,Ts);
——>“PredictionHorizon”属性为空。假设默认为10。“ControlHorizon”属性为空。假设默认2。- - - >“权重。米anipulatedVariables" property is empty. Assuming default 0.00000. -->The "Weights.ManipulatedVariablesRate" property is empty. Assuming default 0.10000. -->The "Weights.OutputVariables" property is empty. Assuming default 1.00000.
MPCobj.MV(1)。Min = -2;MPCobj.MV(1)。Max = 2;
创建一个空的mpcmoveopt
对象。在仿真过程中,可以通过设置对象的属性来指定控制器参数。
选项= mpcmoveopt;
预分配存储并初始化控制器状态。
V = [];t = [0:Ts:20];N =长度(t);y = 0 (N,1);u = 0 (N,1);x = mpcstate(MPCobj);
假设添加到测量输出通道#1的输出扰动是集成白噪声。——>”模式。Noise" property is empty. Assuming white noise on each measured output.
使用mpcmove
模拟如下:
参考(设定值)步长从初始条件改变r= 0到r= 1(伺服响应)
MV上限阶跃由2减小到1,发生在t= 10
R = 1;为i = 1:N y(i) =植物。c *x.植物;如果T (i) >= 10个选项。MVMax = 1;结束[u(i),Info] = mpcmove(MPCobj,x,y(i),r,v,options);结束
在循环执行时,的值选项。MVMax
之后发生的所有迭代都重置为1t= 10。在此迭代之前,选项。MVMax
是空的。因此,控制器的值为MVMax
使用,MPCobj.MV(1)。Max = 2
.
绘制模拟结果图。
[Ts,us] =楼梯(t,u);情节(Ts、美国、“b -”、t、y,的r -)传说(“MV”,机汇的)包含(sprintf (, % s的, Plant.TimeUnit))
从图中可以观察到,原来的MV上界是活跃的,直到t= 4.输入延迟4秒后,输出变量(OV)平稳地移动到它的新目标r= 1。达到目标t= 10。新的MV界施加于t= 10立即激活。这迫使OV在输入延迟之后低于它的目标。
现在假设您想在相对于OV目标的指定位置施加一个OV上限。考虑以下约束设计命令:
MPCobj.OV (1) .Max= [Inf,Inf,0.4,0.3,0.2];
这是一个水平变化的约束。已知的输入延迟使得控制器不可能在第三步预测视界之前满足OV约束。因此,在前两个步骤中使用有限约束将是糟糕的实践。为了便于说明,前面的约束也从第3步的0.4降低到第5步及之后的0.2。
下面的命令产生与前面图相同的结果。OV约束从来不是活动的,因为它随着设定值而变化,r.
x = mpcstate(MPCobj);
假设添加到测量输出通道#1的输出扰动是集成白噪声。——>”模式。Noise" property is empty. Assuming white noise on each measured output.
OPTobj = mpcmoveopt;为i = 1:N y(i) =植物。c *x.植物;如果t(i) >= 10 OPTobj。MVMax = 1;结束OPTobj。输出max = r + 0.4;[u(i),Info] = mpcmove(MPCobj,x,y(i),r,v,OPTobj);结束
标量值r中的第一个有限值MPCobj.OV (1) .Max
向量,并将剩余的有限值调整为保持原始轮廓,即这些值之间的数值差不变。r= 1为模拟,所以前面使用了mpcmoveopt
对象等效于命令
MPCobj.OV (1) .Max= [Inf, Inf, 1.4, 1.3, 1.2];
但是,使用mpcmoveopt
对象涉及的计算开销要少得多。
提示
如果一个变量在初始控制器设计中是不受约束的,则不能使用
mpcmoveopt
.控制器会忽略这些规格。不能从初始控制器设计中受约束的变量中删除约束。但是,您可以将其更改为较大(或较小)值,这样它就不太可能成为活动的。
版本历史
MATLAB命令
你点击了一个对应于这个MATLAB命令的链接:
在MATLAB命令窗口中输入该命令来运行该命令。Web浏览器不支持MATLAB命令。万博1manbetx
您也可以从以下列表中选择一个网站:
如何获得最佳的网站性能
选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。