选项设置mpcmove
功能
为。指定选项mpcmove
,mpcmoveAdaptive
, 和mpcmovemultiple
功能,使用一个mpcmoveopt.
目的。
使用此对象,您可以为控制器属性的子集指定运行时值,例如调优权重和约束。方法之一的值如果没有指定mpcmoveopt.
属性,使用相应的控制器选项的值。
OutputWeights
- - - - - -输出可变调谐权值[]
(默认)|向量|数组的输出变量调优权重权重。OutputVariables
属性,指定为非负值的向量或数组。
要在整个预测范围内使用相同的权重,请指定长度的行向量Ny,在那里Ny是输出变量的数量。
在预测范围内随时间改变调优权值k+1时间k+p,指定一个数组Ny列,直到p行。在这里,k当前的时间是和p是预测视界。每行包含一个预测水平步骤的输出变量调优权值。如果指定小于p行,最后一行中的权重用于预测视界的其余步骤。
的格式OutputWeights
必须匹配的格式权重。OutputVariables
属性。例如,您不能在控制器对象的预测范围内指定常数权值,然后使用mpcmoveopt.
.
mvweights.
- - - - - -操纵可变调优权[]
(默认)|向量|数组操纵可变调谐重量,取代权重.manipuldvariables.
属性,指定为非负值的向量或数组。
要在整个预测范围内使用相同的权重,请指定长度的行向量Nm,在那里Nm为被操纵变量的个数。
在预测范围内随时间改变调优权值k时间k+p-1,指定数组Nm列,直到p行。在这里,k当前的时间是和p是预测视界。每行包含一个预测水平步骤的操纵变量调优权值。如果指定小于p行,最后一行中的权重用于预测视界的其余步骤。
的格式mvweights.
必须匹配的格式权重.manipuldvariables.
属性。例如,您不能在控制器对象的预测范围内指定常数权值,然后使用mpcmoveopt.
.
MVRateWeights
- - - - - -操纵的可变率调谐重量[]
(默认)|向量|数组操作的可变速率调优权代替权重.manipuldvariables.Rate
属性,指定为非负值的向量或数组。
要在整个预测范围内使用相同的权重,请指定长度的行向量Nm,在那里Nm为被操纵变量的个数。
在预测范围内随时间改变调优权值k时间k+p-1,指定数组Nm列,直到p行。在这里,k当前的时间是和p是预测视界。每行包含一个预测水平步骤的操纵可变率调优权值。如果指定小于p行,最后一行中的权重用于预测视界的其余步骤。
的格式MVRateWeights
必须匹配的格式权重.manipuldvariables.Rate
属性。例如,您不能在控制器对象的预测范围内指定常数权值,然后使用mpcmoveopt.
.
ecrweight.
- - - - - -松弛可变调谐重量[]
(默认)|积极的标量松弛可变的调优权重代替权重。ECR
属性,指定为正标量。
OutputMin
- - - - - -输出变量下界[]
(默认)|行矢量|矩阵输出变量下界,指定为长度的行向量Ny或者作为矩阵Ny列,Ny是输出变量的数量。
如果您没有指定OutputVariables(我)。最小值
财产的货币政策委员会
对象,然后指定OutputMin
在执行时导致错误mpcmove
.
从时间改变预测地平线上的界限k+1时间k+p,指定矩阵Ny列,直到p行。在这里,Ny为植物产量,k是当前时间吗p是预测视界。每一行包含一个预测视界步骤的边界。如果指定小于p行,最后一行中的边界用于预测视界的其余步骤。
Outputmin(:,i)
取代OutputVariables(我)。最小值
财产的货币政策委员会
对象在运行时。替换行为取决于两个变量的维度。
标量OutputVariables(我)。最小值
在货币政策委员会
对象的边界常量我
用于所有预测步骤的工厂产量)
OutputMin 维 |
替换行为 |
---|---|
标量OutputMin (单输出,常量绑定) |
OutputMin 中定义的常量边界OutputVariables(我)。最小值 |
列向量OutputMin (单输出,时变界) |
OutputMin 中定义的常量边界OutputVariables(我)。最小值 有一个时变的界限。 |
行向量OutputMin (多个输出,常量界限) |
OutputMin(我) 中定义的常量边界OutputVariables(我)。最小值 |
矩阵OutputMin (多输出,时变边界) |
Outputmin(:,i) 中定义的常量边界OutputVariables(我)。最小值 有一个时变的界限。 |
向量OutputVariables(我)。最小值
在货币政策委员会
对象(对象的时变界限我
不同预测步骤下不同值的工厂产量)
OutputMin 维 |
替换行为 |
---|---|
标量OutputMin (单输出,常量绑定) |
OutputMin 替换第一个有限项OutputVariables。最小值 和剩下的条目OutputVariables。最小值 以相同的位移量向上或向下移动,以保持原始轮廓OutputVariables。最小值 向量。 |
列向量OutputMin (单输出,时变界) |
OutputMin 代替中定义的时变边界OutputVariables(我)。最小值 ,原有绑定的配置文件将被丢弃。 |
行向量OutputMin (多个输出,常量界限) |
OutputMin(我) 替换第一个有限项OutputVariables(我)。最小值 和剩下的条目OutputVariables(我)。最小值 以相同的位移量向上或向下移动,以保持原始轮廓OutputVariables(我)。最小值 向量。 |
矩阵OutputMin (多个输出,时变边界)。 |
Outputmin(:,i) 代替中定义的时变边界OutputVariables(我)。最小值 ,原有绑定的配置文件将被丢弃。 |
outputmax.
- - - - - -输出变量上界[]
(默认)|行矢量|矩阵输出变量上界,指定为长度的行向量Ny或者作为矩阵Ny列,Ny是输出变量的数量。
如果您没有指定OutputVariables(我)。马克斯
财产的货币政策委员会
对象,然后指定outputmax.
在执行时导致错误mpcmove
.
从时间改变预测地平线上的界限k+1时间k+p,指定矩阵Ny列,直到p行。在这里,Ny为植物产量,k是当前时间吗p是预测视界。每一行包含一个预测视界步骤的边界。如果指定小于p行,最后一行中的边界用于预测视界的其余步骤。
outputmax(:,i)
取代OutputVariables(我)。马克斯
财产的货币政策委员会
对象在运行时。替换行为取决于两个变量的维度。
标量OutputVariables(我)。马克斯
在货币政策委员会
对象的边界常量我
用于所有预测步骤的工厂产量)
outputmax. 维 |
替换行为 |
---|---|
标量outputmax. (单输出,常量绑定) |
outputmax. 中定义的常量边界OutputVariables(我)。马克斯 |
列向量outputmax. (单输出,时变界) |
outputmax. 中定义的常量边界OutputVariables(我)。马克斯 有一个时变的界限。 |
行向量outputmax. (多个输出,常量界限) |
OutputMax(我) 中定义的常量边界OutputVariables(我)。马克斯 |
矩阵outputmax. (多输出,时变边界) |
outputmax(:,i) 中定义的常量边界OutputVariables(我)。马克斯 有一个时变的界限。 |
向量OutputVariables(我)。马克斯
在货币政策委员会
对象(对象的时变界限我
不同预测步骤下不同值的工厂产量)
outputmax. 维 |
替换行为 |
---|---|
标量outputmax. (单输出,常量绑定) |
outputmax. 替换第一个有限项outputvariables.max. 和剩下的条目outputvariables.max. 以相同的位移量向上或向下移动,以保持原始轮廓outputvariables.max. 向量。 |
列向量outputmax. (单输出,时变界) |
outputmax. 代替中定义的时变边界OutputVariables(我)。马克斯 ,原有绑定的配置文件将被丢弃。 |
行向量outputmax. (多个输出,常量界限) |
OutputMax(我) 替换第一个有限项OutputVariables(我)。马克斯 和剩下的条目OutputVariables(我)。马克斯 以相同的位移量向上或向下移动,以保持原始轮廓OutputVariables(我)。马克斯 向量。 |
矩阵outputmax. (多个输出,时变边界)。 |
outputmax(:,i) 代替中定义的时变边界OutputVariables(我)。马克斯 ,原有绑定的配置文件将被丢弃。 |
MVMin
- - - - - -操纵变量下界[]
(默认)|行矢量|矩阵操纵变量下界,指定为长度的行向量Nm或者作为矩阵Nm列,Nm是输出变量的数量。
如果您没有指定ManipulatedVariables(我)。最小值
财产的货币政策委员会
对象,然后指定MVMin
在执行时导致错误mpcmove
.
从时间改变预测地平线上的界限k时间k+p-1,指定一个矩阵Nm列,直到p行。在这里,Nm为被操纵变量的个数,k是当前时间吗p是预测视界。每一行包含一个预测视界步骤的边界。如果指定小于p行,最后一行中的边界用于预测视界的其余步骤。
MVMin(:,我)
取代ManipulatedVariables(我)。最小值
财产的货币政策委员会
对象在运行时。替换行为取决于两个变量的维度。
标量ManipulatedVariables(我)。最小值
在货币政策委员会
对象的边界常量我
TH操纵变量以应用于所有预测步骤)
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
- - - - - -操纵变量上界[]
(默认)|行矢量|矩阵操纵变量上界,指定为长度的行向量Nm或者作为矩阵Nm列,Nm是输出变量的数量。
如果您没有指定Manipulatedvariables(i).max
财产的货币政策委员会
对象,然后指定MVMax
在执行时导致错误mpcmove
.
从时间改变预测地平线上的界限k时间k+p-1,指定一个矩阵Nm列,直到p行。在这里,Nm为被操纵变量的个数,k是当前时间吗p是预测视界。每一行包含一个预测视界步骤的边界。如果指定小于p行,最后一行中的边界用于预测视界的其余步骤。
MVMax(:,我)
取代Manipulatedvariables(i).max
财产的货币政策委员会
对象在运行时。替换行为取决于两个变量的维度。
标量Manipulatedvariables(i).max
在货币政策委员会
对象的边界常量我
TH操纵变量以应用于所有预测步骤)
MVMax 维 |
替换行为 |
---|---|
标量MVMax (单输出,常量绑定) |
MVMax 中定义的常量边界Manipulatedvariables(i).max |
列向量MVMax (单输出,时变界) |
MVMax 中定义的常量边界Manipulatedvariables(i).max 有一个时变的界限。 |
行向量MVMax (多个输出,常量界限) |
MVMax(我) 中定义的常量边界Manipulatedvariables(i).max |
矩阵MVMax (多输出,时变边界) |
MVMax(:,我) 中定义的常量边界Manipulatedvariables(i).max 有一个时变的界限。 |
向量Manipulatedvariables(i).max
在货币政策委员会
对象(对象的时变界限我
在不同的预测步骤中具有不同值的操纵变量)
MVMax 维 |
替换行为 |
---|---|
标量MVMax (单输出,常量绑定) |
MVMax 替换第一个有限项ManipulatedVariables。马克斯 和剩下的条目ManipulatedVariables。马克斯 以相同的位移量向上或向下移动,以保持原始轮廓ManipulatedVariables。马克斯 向量。 |
列向量MVMax (单输出,时变界) |
MVMax 代替中定义的时变边界Manipulatedvariables(i).max ,原有绑定的配置文件将被丢弃。 |
行向量MVMax (多个输出,常量界限) |
MVMax(我) 替换第一个有限项Manipulatedvariables(i).max 和剩下的条目Manipulatedvariables(i).max 以相同的位移量向上或向下移动,以保持原始轮廓Manipulatedvariables(i).max 向量。 |
矩阵MVMax (多个输出,时变边界)。 |
MVMax(:,我) 代替中定义的时变边界Manipulatedvariables(i).max ,原有绑定的配置文件将被丢弃。 |
CustomConstraint
- - - - - -自定义混合输入/输出约束[]
(默认)|结构体自定义混合输入/输出约束,指定为具有以下字段的结构。这些约束替换先前使用的混合输入/输出约束setConstraint.
.
E
-操纵变量约束常数操纵变量约束常数,指定为Nc——- - - - - -Nm阵列,其中Nc是约束的数量,和Nm为被操纵变量的个数。
F
-受控输出约束常数控制输出约束常数,指定为Nc——- - - - - -Ny阵列,其中Ny是受控输出(已测量和未测量)的数量。
G
- 混合输入/输出约束常数混合输入/输出约束常数,指定为长度的列向量Nc.
年代
-测量的扰动约束常数测量的扰动约束常数,指定为Nc——- - - - - -Nm阵列,其中Nm是测量干扰的数量。
OnlyComputeCost
- - - - - -指示是否计算最优控制顺序的标志0
(默认)|1
标志指示是否计算最佳控制序列,指定为以下之一:
0
-控制器除了返回目标函数代价值外,还返回预测的最优控制动作。
1
-控制器只返回目标函数成本,节省计算时间。
MVused
- - - - - -在前一个控制间隔期间,被操作的变量值[]
(默认)|行矢量在上一个控制间隔期间,被操作的变量值,指定为长度的行向量Nm,在那里Nm为被操纵变量的个数。如果您未指定MVused
,MPVMOVE.
用来LastMove
属性的当前控制器状态输入参数,x
.
MVTarget
- - - - - -被控变量的目标[]
(默认)|行矢量被操纵的变量目标,指定为长度的行向量Nm,在那里Nm为被操纵变量的个数。MVTarget(我)
取代Manipulatedvariables(i).target
运行时控制器的属性。
PredictionHorizon
- - - - - -预测地平线[]
(默认)|正整数预测视界,它取代了PredictionHorizon
属性,指定为正整数。如果您指定PredictionHorizon
,您还必须指定ControlHorizon.
.
指定PredictionHorizon
更改:
属性返回的最佳序列中的行数mpcmove
和mpcmoveAdaptive
功能
最大尺寸植物
和义务
输入参数的mpcmoveAdaptive
该参数将被忽略mpcmovemultiple
函数。
ControlHorizon.
- - - - - -控制层[]
(默认)|正整数|正整数向量控制地平线,取代ControlHorizon.
运行时控制器的属性,指定为以下之一:
正整数,米之间,1
和p、包容,p等于PredictionHorizon
.此时,由控制器进行计算米自由控制动作时有发生k通过k+米-1,并保存控制器输出常数,用于剩余的预测地平线步骤k+米通过k+p-1.在这里,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(植物,TS);
mpc对象的“PredictionHorizon”属性是空的。尝试PredictionHorizon = 10。mpc对象的"ControlHorizon"属性为空。假设2。- - - >“权重。米anipulatedVariables" property of "mpc" object is empty. Assuming default 0.00000. -->The "Weights.ManipulatedVariablesRate" property of "mpc" object is empty. Assuming default 0.10000. -->The "Weights.OutputVariables" property of "mpc" object 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 =零(n,1);U =零(n,1);x = mpcstate (MPCobj);
——>假设添加到测量输出通道#1的输出扰动为集成白噪声。——>”模式。Noise" property of the "mpc" object is empty. Assuming white noise on each measured output channel.
用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),信息] = mpcmove(mpcobj,x,y(i),r,v,选项);结束
随着循环执行,值选项。MVMax
对于后面发生的所有迭代,重置为1t= 10。在此之前,选项。MVMax
是空的。因此,控制器的价值MVMax
用来,MPCobj.MV(1)。Max = 2
.
绘制模拟结果。
(Ts,美国)=楼梯(t, u);情节(Ts、美国、“b -”、t、y,的r -)传说('mv','ov')包含(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约束。因此,前两个步骤期间的有限约束将是糟糕的实践。出于说明性目的,在步骤5和此后,先前的约束也在步骤3至0.2下降0.4。
以下命令在上一个绘图中产生相同的结果。OV约束永远不会有效,因为它与设定值时变化,r.
x = mpcstate (MPCobj);
——>假设添加到测量输出通道#1的输出扰动为集成白噪声。——>”模式。Noise" property of the "mpc" object is empty. Assuming white noise on each measured output channel.
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.
对象等价于命令
mpcobj.ov(1).max = [INF,INF,1.4,1.3,1.2];
然而,使用mpcmoveopt.
对象涉及的计算开销要小得多。
如果一个变量在初始控制器设计中是不受约束的,你就不能使用约束mpcmoveopt.
.控制器忽略任何这样的规格。
您不能从初始控制器设计中受约束的变量中移除约束。但是,您可以将其更改为一个大(或小)值,使其不太可能变为活动的。
您已经有了geänderte版本死亡Beispiels。Möchten您是谁? Änderungen öffnen?
Sie Haben AUF EINEN LINK GEKLICKT,DER DIESEM MATLAB-BEFEHL ONTSPRICHT:
Führen Sie den Befehl durch Eingabe in das MATLAB-Befehlsfenster aus。Webbrowser unterstützen keine MATLAB-Befehle。
您还可以从以下列表中选择一个网站:
选择中国网站(中文或英文)以获得最佳网站性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。