选项集mpcmove
功能
为。指定选项mpcmove
,mpcmoveAdaptive
,及多重移动
功能,使用一个mpcmoveopt
对象
使用此对象,可以为控制器属性的子集指定运行时值,例如调整权重和约束。如果未为其中一个指定值mpcmoveopt
属性,则使用相应控制器选项的值。
输出权重
—输出可变调整权重[]
(默认)|矢量|数组输出可变调整权重,以替换权重。OutputVariables
属性,指定为非负值的向量或数组。
要在整个预测范围内使用相同的权重,请指定长度的行向量NY,在那里NY是输出变量的数量。
在预测范围内随时改变调整权重K+一对一K+P,指定一个具有NY列和最多P行,这里,K是当前的时间和时间P这是预测范围。每行包含一个预测地平线步骤的输出可变调整权重。如果指定小于P行,最后一行中的权重用于预测视界的其余步骤。
的格式输出权重
必须与文件的格式匹配权重。OutputVariables
控制器对象的属性。例如,不能在控制器对象中跨预测范围指定恒定权重,然后使用指定时变权重mpcmoveopt
.
MVWeights
—操纵可变调优权[]
(默认)|矢量|数组操纵可变调整权重,替换权重。操纵变量
属性,指定为非负值的向量或数组。
要在整个预测范围内使用相同的权重,请指定长度的行向量Nmv,在那里Nmv是操纵变量的数量。
在预测范围内随时改变调整权重K时间K+P-1,指定数组Nmv列和最多P行,这里,K是当前的时间和时间P是预测视界。每行包含一个预测水平步骤的操纵变量调优权值。如果指定小于P行,最后一行中的权重用于预测视界的其余步骤。
的格式MVWeights
必须与文件的格式匹配权重。操纵变量
控制器对象的属性。例如,不能在控制器对象中跨预测范围指定恒定权重,然后使用指定时变权重mpcmoveopt
.
MVRateWeights
—操纵变速率调整权重[]
(默认)|矢量|数组操纵可变速率调整权重,替换权重.操纵变量速率
属性,指定为非负值的向量或数组。
要在整个预测范围内使用相同的权重,请指定长度的行向量Nmv,在那里Nmv是操纵变量的数量。
在预测范围内随时改变调整权重K时间K+P-1,指定数组Nmv列和最多P行,这里,K是当前的时间和时间P是预测视界。每行包含一个预测水平步骤的操纵可变率调优权值。如果指定小于P行,最后一行中的权重用于预测视界的其余步骤。
的格式MVRateWeights
必须与文件的格式匹配权重.操纵变量速率
控制器对象的属性。例如,不能在控制器对象中跨预测范围指定恒定权重,然后使用指定时变权重mpcmoveopt
.
体重
—松弛可变调谐重量[]
(默认)|正标量松弛可变的调优权重代替权重。ECR
属性,指定为正标量。
输出分钟
—输出变量下界[]
(默认)|行向量|矩阵输出变量下界,指定为长度的行向量NY或者作为矩阵NY列,NY是输出变量的数量。
如果您没有指定OutputVariables(我)。最小值
财产的货币政策委员会
对象,然后指定输出分钟
执行时会导致错误mpcmove
.
随时更改预测范围的边界K+一对一K+P,指定一个带有NY列和最多P行,这里,NY是工厂输出的数量,K是当前时间吗P是预测范围。每行包含一个预测范围步骤的范围。如果指定的范围小于P行,最后一行中的边界用于预测视界的其余步骤。
OutputMin(:,i)
取代OutputVariables(我)。最小值
财产的货币政策委员会
对象在运行时。替换行为取决于两个变量的维度。
标量OutputVariables(我)。最小值
在货币政策委员会
对象(对象的常量边界)我
用于所有预测步骤的工厂产量)
输出分钟 维 |
替换行为 |
---|---|
标量输出分钟 (单输出,常数范围) |
输出分钟 中定义的常量边界OutputVariables(我)。最小值 |
列向量输出分钟 (单输出,时变界) |
输出分钟 中定义的常量边界OutputVariables(我)。最小值 具有时变界。 |
行向量输出分钟 (多输出,恒定边界) |
输出最小值(i) 中定义的常量边界OutputVariables(我)。最小值 |
矩阵输出分钟 (多输出,时变边界) |
OutputMin(:,i) 中定义的常量边界OutputVariables(我)。最小值 具有时变界。 |
矢量OutputVariables(我)。最小值
在货币政策委员会
对象(对象的时变边界)我
th不同预测步骤下具有不同值的工厂产量)
输出分钟 维 |
替换行为 |
---|---|
标量输出分钟 (单输出,常数范围) |
输出分钟 替换第一个有限项OutputVariables.Min 以及OutputVariables.Min 以相同的位移量向上或向下移动,以保持原始轮廓OutputVariables.Min 向量。 |
列向量输出分钟 (单输出,时变界) |
输出分钟 代替中定义的时变边界OutputVariables(我)。最小值 ,并放弃原始绑定的配置文件。 |
行向量输出分钟 (多输出,恒定边界) |
输出最小值(i) 替换第一个有限项OutputVariables(我)。最小值 以及OutputVariables(我)。最小值 以相同的位移量向上或向下移动,以保持原始轮廓OutputVariables(我)。最小值 向量。 |
矩阵输出分钟 (多个输出,时变边界)。 |
OutputMin(:,i) 代替中定义的时变边界OutputVariables(我)。最小值 ,并放弃原始绑定的配置文件。 |
输出最大值
—输出变量上界[]
(默认)|行向量|矩阵输出变量上限,指定为长度的行向量NY或者作为矩阵NY列,NY是输出变量的数量。
如果您没有指定输出变量(i).Max
财产的货币政策委员会
对象,然后指定输出最大值
执行时会导致错误mpcmove
.
随时更改预测范围的边界K+一对一K+P,指定一个带有NY列和最多P行,这里,NY是工厂输出的数量,K是当前时间吗P是预测范围。每行包含一个预测范围步骤的范围。如果指定的范围小于P行,最后一行中的边界用于预测视界的其余步骤。
输出最大值(:,i)
取代输出变量(i).Max
财产的货币政策委员会
对象在运行时。替换行为取决于两个变量的维度。
标量输出变量(i).Max
在货币政策委员会
对象(对象的常量边界)我
用于所有预测步骤的工厂产量)
输出最大值 维 |
替换行为 |
---|---|
标量输出最大值 (单输出,常数范围) |
输出最大值 中定义的常量边界输出变量(i).Max |
列向量输出最大值 (单输出,时变界) |
输出最大值 中定义的常量边界输出变量(i).Max 具有时变界。 |
行向量输出最大值 (多输出,恒定边界) |
输出最大值(i) 中定义的常量边界输出变量(i).Max |
矩阵输出最大值 (多输出,时变边界) |
输出最大值(:,i) 中定义的常量边界输出变量(i).Max 具有时变界。 |
矢量输出变量(i).Max
在货币政策委员会
对象(对象的时变边界)我
th不同预测步骤下具有不同值的工厂产量)
输出最大值 维 |
替换行为 |
---|---|
标量输出最大值 (单输出,常数范围) |
输出最大值 替换第一个有限项OutputVariables.Max 以及OutputVariables.Max 以相同的位移量向上或向下移动,以保持原始轮廓OutputVariables.Max 向量。 |
列向量输出最大值 (单输出,时变界) |
输出最大值 代替中定义的时变边界输出变量(i).Max ,并放弃原始绑定的配置文件。 |
行向量输出最大值 (多输出,恒定边界) |
输出最大值(i) 替换第一个有限项输出变量(i).Max 以及输出变量(i).Max 以相同的位移量向上或向下移动,以保持原始轮廓输出变量(i).Max 向量。 |
矩阵输出最大值 (多个输出,时变边界)。 |
输出最大值(:,i) 代替中定义的时变边界输出变量(i).Max ,并放弃原始绑定的配置文件。 |
MVMin
—操纵变量下界[]
(默认)|行向量|矩阵操纵变量下界,指定为长度的行向量Nmv或者作为矩阵Nmv列,Nmv是输出变量的数量。
如果您没有指定ManipulatedVariables(我)。最小值
财产的货币政策委员会
对象,然后指定MVMin
执行时会导致错误mpcmove
.
随时更改预测范围的边界K时间K+P-1,指定一个带有Nmv列和最多P行,这里,Nmv是操纵变量的数量,K是当前时间吗P是预测范围。每行包含一个预测范围步骤的范围。如果指定的范围小于P行,最后一行中的边界用于预测视界的其余步骤。
MVMin(:,i)
取代ManipulatedVariables(我)。最小值
财产的货币政策委员会
对象在运行时。替换行为取决于两个变量的维度。
标量ManipulatedVariables(我)。最小值
在货币政策委员会
对象(对象的常量边界)我
应用于所有预测步骤的th操纵变量)
MVMin 维 |
替换行为 |
---|---|
标量MVMin (单输出,常数范围) |
MVMin 中定义的常量边界ManipulatedVariables(我)。最小值 |
列向量MVMin (单输出,时变界) |
MVMin 中定义的常量边界ManipulatedVariables(我)。最小值 具有时变界。 |
行向量MVMin (多输出,恒定边界) |
MVMin(我) 中定义的常量边界ManipulatedVariables(我)。最小值 |
矩阵MVMin (多输出,时变边界) |
MVMin(:,i) 中定义的常量边界ManipulatedVariables(我)。最小值 具有时变界。 |
矢量ManipulatedVariables(我)。最小值
在货币政策委员会
对象(对象的时变边界)我
th(在不同的预测步骤中具有不同值的操纵变量)
MVMin 维 |
替换行为 |
---|---|
标量MVMin (单输出,常数范围) |
MVMin 替换第一个有限项ManipulatedVariables。最小值 以及ManipulatedVariables。最小值 以相同的位移量向上或向下移动,以保持原始轮廓ManipulatedVariables。最小值 向量。 |
列向量MVMin (单输出,时变界) |
MVMin 代替中定义的时变边界ManipulatedVariables(我)。最小值 ,并放弃原始绑定的配置文件。 |
行向量MVMin (多输出,恒定边界) |
MVMin(我) 替换第一个有限项ManipulatedVariables(我)。最小值 以及ManipulatedVariables(我)。最小值 以相同的位移量向上或向下移动,以保持原始轮廓ManipulatedVariables(我)。最小值 向量。 |
矩阵MVMin (多个输出,时变边界)。 |
MVMin(:,i) 代替中定义的时变边界ManipulatedVariables(我)。最小值 ,并放弃原始绑定的配置文件。 |
MVMax
—操纵变量上界[]
(默认)|行向量|矩阵操纵变量上界,指定为长度的行向量Nmv或者作为矩阵Nmv列,Nmv是输出变量的数量。
如果您没有指定操纵变量(i).Max
财产的货币政策委员会
对象,然后指定MVMax
执行时会导致错误mpcmove
.
随时更改预测范围的边界K时间K+P-1,指定一个带有Nmv列和最多P行,这里,Nmv是操纵变量的数量,K是当前时间吗P是预测范围。每行包含一个预测范围步骤的范围。如果指定的范围小于P行,最后一行中的边界用于预测视界的其余步骤。
MVMax(:,我)
取代操纵变量(i).Max
财产的货币政策委员会
对象在运行时。替换行为取决于两个变量的维度。
标量操纵变量(i).Max
在货币政策委员会
对象(对象的常量边界)我
应用于所有预测步骤的th操纵变量)
MVMax 维 |
替换行为 |
---|---|
标量MVMax (单输出,常数范围) |
MVMax 中定义的常量边界操纵变量(i).Max |
列向量MVMax (单输出,时变界) |
MVMax 中定义的常量边界操纵变量(i).Max 具有时变界。 |
行向量MVMax (多输出,恒定边界) |
MVMax(我) 中定义的常量边界操纵变量(i).Max |
矩阵MVMax (多输出,时变边界) |
MVMax(:,我) 中定义的常量边界操纵变量(i).Max 具有时变界。 |
矢量操纵变量(i).Max
在货币政策委员会
对象(对象的时变边界)我
th(在不同的预测步骤中具有不同值的操纵变量)
MVMax 维 |
替换行为 |
---|---|
标量MVMax (单输出,常数范围) |
MVMax 替换第一个有限项ManipulatedVariables。马克斯 以及ManipulatedVariables。马克斯 以相同的位移量向上或向下移动,以保持原始轮廓ManipulatedVariables。马克斯 向量。 |
列向量MVMax (单输出,时变界) |
MVMax 代替中定义的时变边界操纵变量(i).Max ,并放弃原始绑定的配置文件。 |
行向量MVMax (多输出,恒定边界) |
MVMax(我) 替换第一个有限项操纵变量(i).Max 以及操纵变量(i).Max 以相同的位移量向上或向下移动,以保持原始轮廓操纵变量(i).Max 向量。 |
矩阵MVMax (多个输出,时变边界)。 |
MVMax(:,我) 代替中定义的时变边界操纵变量(i).Max ,并放弃原始绑定的配置文件。 |
CustomConstraint
—自定义混合输入/输出约束[]
(默认)|结构自定义混合输入/输出约束,指定为具有以下字段的结构。这些约束替换以前使用设置的混合输入/输出约束设置约束
.
E
-操纵变量约束常数操纵变量约束常数,指定为NC——- - - - - -Nmv数组,在哪里NC是约束的数量,以及Nmv是操纵变量的数量。
F
-受控输出约束常数控制输出约束常数,指定为NC——- - - - - -NY数组,在哪里NY是受控输出(已测量和未测量)的数量。
G
-混合输入/输出约束常数混合输入/输出约束常量,指定为长度的列向量NC.
s
-实测干扰约束常数测量的扰动约束常数,指定为NC——- - - - - -N医学博士数组,在哪里N医学博士是测量的扰动数。
OnlyComputeCost
—指示是否计算最优控制顺序的标志0
(默认)|1.
指示是否计算最佳控制顺序的标志,指定为以下之一:
0
-控制器除了返回目标函数代价值外,还返回预测的最优控制动作。
1.
-控制器仅返回目标函数成本,这节省了计算工作量。
MVUse
—在前一个控制间隔期间,被操作的变量值[]
(默认)|行向量在上一个控制间隔期间,被操作的变量值,指定为长度的行向量Nmv,在那里Nmv是操纵变量的数量。如果您没有指定MVUse
这个MPV移动
使用LastMove
其当前控制器状态输入参数的属性,x
.
MVTarget
—操纵可变目标[]
(默认)|行向量被操纵的变量目标,指定为长度的行向量Nmv,在那里Nmv是操纵变量的数量。目标(一)
取代操纵变量(i).目标
运行时控制器的属性。
PredictionHorizon
—预测视界[]
(默认)|正整数预测视界,它取代了PredictionHorizon
运行时控制器的属性,指定为正整数。如果您指定PredictionHorizon
,您还必须指定控制地平线
.
指定PredictionHorizon
更改:
属性返回的最佳序列中的行数mpcmove
和mpcmoveAdaptive
功能
设备的最大尺寸植物
和名义上
输入参数的mpcmoveAdaptive
该参数将被忽略多重移动
功能。
控制地平线
—控制视界[]
(默认)|正整数|正整数向量控制地平线,它取代了控制地平线
运行时控制器的属性,指定为以下内容之一:
正整数,M之间,1.
和P,包括在内,在哪里P等于PredictionHorizon
.此时,由控制器进行计算M有时发生的自由控制移动K通过K+M-1,并为从K+M通过K+P-1.在这里,K是当前控制间隔。最优轨迹规划集的求解M等于P.
正整数向量,[M1.,M2.,…],其中整数之和等于预测范围,P.此时,由控制器进行计算M自由移动块,其中M长度是控制地平线
矢量。第一个自由移动适用于时间K通过K+M1.-1,第二个自由移动适用于时间K+M1.通过K+M1.+M2.-1,等等。与默认情况相比,使用块移动可以提高控制器的鲁棒性。
如果您指定控制地平线
,您还必须指定PredictionHorizon
.
该参数将被忽略多重移动
功能。
mpcmove |
计算最优控制动作并更新控制器状态 |
mpcmoveAdaptive |
计算最优控制与预测模型更新 |
多重移动 |
在单个时刻计算增益调度MPC控制动作 |
在模拟过程中改变操纵变量的上限。
定义设备,其中包括4秒的输入延迟。转换为无延迟,离散,状态空间模型使用2秒的控制间隔。创建相应的默认控制器,并指定MV边界为+/-2。
Ts=2;植物=吸收层(c2d)ss(tf(0.8,[5 1],“输入延迟”,4),Ts);MPCobj=mpc(工厂,Ts);
-->“mpc”对象的“PredictionHorizon”属性为空。正在尝试PredictionHorizon=10。-->“mpc”对象的“ControlHorizon”属性为空。假设2。-->“mpc”对象的“Weights.ManufacturedVariables”属性为空。假设默认值为0.00000。-->“mpc”的“Weights.ManufacturedVariablesRate”属性对象为空。假设默认值为0.10000。-->“mpc”对象的“Weights.OutputVariables”属性为空。假设默认值为1.00000。
MPCobj.MV(1)。Min = 2;MPCobj.MV(1)。Max = 2;
创建一个空mpcmoveopt
对象在模拟过程中,可以设置对象的属性以指定控制器参数。
选择= mpcmoveopt;
预分配存储并初始化控制器状态。
v=[];t=[0:Ts:20];N=长度(t);y=零(N,1);u=零(N,1);x=mpcstate(MPCobj);
-->假设添加到测量输出通道#1的输出干扰是集成白噪声。-->“mpc”对象的“Model.noise”属性为空。假设每个测量输出通道上都存在白噪声。
使用mpcmove
要模拟以下情况:
参考(设定点)与初始条件的阶跃变化R= 0R=1(伺服响应)
MV上界阶跃从2减小到1,发生在T= 10
r = 1;对于i = 1:N y(i) = Plant.C*x.Plant;如果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,美国)=楼梯(t, u);情节(Ts、美国、“b -”、t、y,“r-”)传说(“MV”,“OV”)包含(sprintf ('时间,%s',植物。时间单位)
从图中可以看出,原始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的输出干扰是集成白噪声。-->“mpc”对象的“Model.noise”属性为空。假设每个测量输出通道上都存在白噪声。
OPTobj=mpcmoveopt;对于i = 1:N y(i) = Plant.C*x.Plant;如果t(i)>=10 OPTobj.MVMax=1;结束OPTobj。OutputMax = r + 0.4;[u (i),信息]= mpcmove (MPCobj x, y (i), r, v, OPTobj);结束
标量值R+0.4替换中的第一个有限值MPCobj.OV(1).Max
向量和剩余的有限值进行调整以保持原始轮廓,即,这些值之间的数值差保持不变。R=1用于模拟,因此先前使用mpcmoveopt
对象等价于命令
Max=[Inf,Inf,1.4,1.3,1.2];
但是,使用mpcmoveopt
对象涉及的计算开销要小得多。
如果一个变量在初始控制器设计中是不受约束的,你就不能使用约束mpcmoveopt
. 控制器忽略任何此类规范。
您不能从初始控制器设计中受约束的变量中移除约束。但是,您可以将其更改为一个大(或小)值,使其不太可能变为活动的。
您单击了与此MATLAB命令对应的链接:
通过在MATLAB命令窗口中输入命令来运行命令。Web浏览器不支持MATLAB命令。金宝app
您还可以从以下列表中选择网站:
选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家/地区站点不适合您所在位置的访问。