货币政策委员会
模型预测控制器
描述
使用线性模型预测控制器,干扰和噪声模型来估计控制器输出状态和预测未来工厂。使用预测植物输出,控制器解决了二次规划优化问题,以确定控制措施。
更多信息的结构模型预测控制器,明白了货币政策委员会预测模型。
创建
语法
描述
创建一个模型预测控制器对象基于离散时间预测模型mpcobj
= mpc (植物
)植物
。控制器,mpcobj
,继承了其控制区间plant.Ts
,它的时间单位plant.TimeUnit
。所有其他控制器属性的默认值。在您创建MPC控制器,你可以设置它的属性使用点符号。
如果plant.Ts=- - - - - -1
,你必须设置Ts
财产的控制器设计和模拟控制器之前积极的价值。
创建一个模型预测控制器模型并设置根据指定的工厂mpcobj
= mpc (植物
,ts
)Ts
控制器的属性。如果植物
是:
连续时间模型,控制器可使用样本时间预测模型
ts
离散时间模型与指定的样品时间,预测控制器重新取样装置使用样品时间
ts
一个离散时间模型与一个未指明的样本时间(
plant.Ts
=1
),它继承了样品的时间ts
当用于预测。
创建一个模型预测控制器对象根据指定的预测模型,包括植物、输入扰动和测量噪声模型连同名义条件的模型。当你不指定一个样品,工厂模型,mpcobj
= mpc (模型
)model.Plant
,必须是一个离散时间模型。这个语法设置模型
控制器的属性。
创建一个模型预测控制器模型并设置根据指定的工厂mpcobj
= mpc (模型
,ts
)Ts
控制器的属性ts
。如果model.Plant
是一个离散时间线性时不变模型与一个未指明的样品时间(model.Plant.Ts
=1
),它继承了样品的时间ts
当用于预测。
属性指定额外的控制器。如果这些值省略或空,默认值适用。mpcobj
= mpc (模型
,ts
,P
,米
,W
,MV
,机汇
,DV
)
输入参数
植物
- - - - - -植物预测模型
线性时不变模型|确定线性模型
植物预测模型,指定为一个线性时不变模型或者一个线性系统辨识工具箱™模型。对应于指定的工厂Model.Plant
控制器的属性。
如果你不指定一个样本时间在创建你的控制器,植物
必须是一个离散时间模型。预测,植物
如果需要使用离散或重新取样mpcobj.Ts
作为示例。延迟,如果存在,是包含在生成的离散时间模型。
MPC预测模型的更多信息,请参阅货币政策委员会预测模型。
请注意
直接从操纵变量的任何输出引线植物
不支持。金宝app
例子:特遣部队(10、10 [1])
模型
- - - - - -预测模型
结构
预测模型,指定为一个结构相同的格式模型
控制器的属性。如果你不指定一个样本时间在创建你的控制器,model.Plant
必须是一个离散时间模型。
MPC预测模型的更多信息,请参阅货币政策委员会预测模型。
属性
Ts
- - - - - -控制器样品时间
积极的标量
控制器样品时间,指定为一个积极的有限的标量。控制器使用离散时间模型与样本Ts
为预测。时间单位是遗传的plant.TimeUnit
。
例子:mpcobj.Ts=0.1
PredictionHorizon
- - - - - -预测地平线
10
+时滞相关步骤(默认)|正整数
预测地平线步骤,指定为一个正整数。的产物PredictionHorizon
和Ts
预测的时间;也就是说,控制器看起来在未来多远。
如果您指定一个预测地平线的数量不超过必要步骤覆盖最长的延迟在所有输入输出通道,Nd = max (mpcobj.Model.Plant.IODelay (:)) / mpcobj.Ts
,那么软件自动增加预测地平线地板(Nd)
。
例子:mpcobj。PredictionHorizon = 15
ControlHorizon
- - - - - -控制层
2
(默认)|正整数|向量的正整数
控制层,指定为以下之一:
正整数,米之间,
1
和p、包容,p等于PredictionHorizon
。在这种情况下,控制器计算米自由控制动作发生k通过k+米1,保持着剩下的预测地平线的控制器输出恒定的步骤k+米通过k+p1。在这里,k是当前控制间隔。向量的正整数(米1,米2,…),指定阻塞时间间隔的长度。默认情况下,控制器计算米块的自由移动,米是阻塞的数量的间隔。第一次自由移动适用于时间k通过k+米11,第二个免费的移动应用k+米1通过k+米1+米21,等等。使用块运动可以提高控制器的鲁棒性。中的值的总和
ControlHorizon
必须匹配预测地平线p。如果您指定一个向量的总和:小于预测地平线,那么控制器添加一个阻塞时间间隔。这个区间的长度是间隔长度的总和p。例如,如果p=
10
你指定一个控制层ControlHorizon
=(1 2 3)
,然后控制器使用四个区间长度(1 2 3 4)
。大于预测地平线,然后间隔是截断直到区间长度之和等于p。例如,如果p=
10
你指定一个控制层ControlHorizon
=(1 2 3 6 7)
,然后控制器使用四个区间长度(1 2 3 4)
。
有关被控变量的更多信息阻塞,明白了被控变量阻塞。
例子:mpcobj。ControlHorizon = 3
模型
- - - - - -预测模型和名义上的条件
结构
预测模型和名义条件,指定为以下字段的结构。MPC预测模型的更多信息,请参阅货币政策委员会预测模型和控制器状态估计。
植物
——植物预测模型
线性时不变模型|识别线性模型
植物预测模型,指定为一个线性时不变模型或者一个线性系统辨识工具箱模型。
请注意
直接从操纵变量的任何输出引线植物
不支持。金宝app
例子:mpcobj.Model。植物=党卫军(- - - - - -1,1,1,0)
干扰
——模型描述预期的无边无际的干扰
线性时不变模型
模型描述预期的无边无际的干扰,指定为一个线性时不变模型。这个模型是必需的,只有当植物不可测量的干扰。你可以设置这个扰动模型直接使用点符号或使用setindist
函数。
默认情况下,输入扰动将集成的白噪声。信号模型,添加一个积分器与无因次单位增益为每一个无边无际的输入扰动,除非增加导致控制器失去状态可观测性。在这种情况下,将白噪声干扰,因此,添加了一个无量纲单位增益的通道。
例子:mpcobj.Model。干扰=特遣部队(5,[1 5])
噪音
——模型描述预期的输出测量噪声
线性时不变模型
模型描述预期的输出测量噪声,指定为一个线性时不变模型。
默认情况下,测量噪声将白噪声与单位方差。信号模型,添加了一个无量纲单位增益为每一个测量通道。
例子:mpcobj.Model。噪音=zpk(0,-1,1)
名义上的
——名义操作点植物模型线性化
结构
名义操作点植物模型线性化,用以下字段指定为一个结构。
场 | 描述 | 默认的 |
---|---|---|
X |
植物状态的操作点,指定为一个列向量长度等于国家的数量 |
零向量 |
U |
植物输入操作点,包括操纵变量和测量和不可测量的干扰,指定为一个列向量的长度等于输入的数量 |
零向量 |
Y |
植物输出操作点,包括测量和不可测量的输出,指定为一个列向量的长度等于输出的数量 |
零向量 |
DX |
对于连续时间模型, |
零向量 |
ManipulatedVariables
- - - - - -操纵变量信息,范围和规模的因素
结构数组
操纵变量(MV)信息、范围和规模因素,指定为一个结构数组Nmv元素,Nmv是操纵变量的数量。要访问该属性,您可以使用别名MV
而不是ManipulatedVariables
。
请注意
利率是指Δ的区别u(k)=u(k)- - -u(k1)。约束和基于衍生品的重量du / dt的连续输入信号必须得到适当的新配方Δ离散时间的差异u(k),使用近似du / dt≅Δu(k)/T年代。
每个结构元素有以下字段。
最小值
- - - - - - MV下界
负
(默认)|标量|向量
下界为给定的操纵变量指定为一个标量或矢量。默认情况下,这个下界负
。
使用相同的绑定在预测地平线,指定一个标量值。
不同的绑定预测地平线k时间k+p1、指定的向量p值。在这里,k当前时间和吗p是预测地平线。如果你指定不到p值,最后必然是用于预测地平线的其余步骤。
例子:mpcobj.ManipulatedVariables (1)。最小值= 5
马克斯
- - - - - - MV上界
正
(默认)|标量|向量
上界为给定的操纵变量指定为一个标量或矢量。默认情况下,这个上限正
。
使用相同的绑定在预测地平线,指定一个标量值。
不同的绑定预测地平线k时间k+p1、指定的向量p值。在这里,k当前时间和吗p是预测地平线。如果你指定不到p值,最后必然是用于预测地平线的其余步骤。
例子:mpcobj.ManipulatedVariables (1)。Max = 5
MinECR
- MV下界柔软
0
(默认)|非负标量|向量
柔软的下界为给定的操纵变量。一个更大的平等的关心放松(ECR)值表示一种软约束,指定为负的标量或矢量。默认情况下,MV下界是硬约束。
使用相同的ECR值预测地平线,指定一个标量值。
改变ECR值对预测地平线k时间k+p1、指定的向量p值。在这里,k当前时间和吗p是预测地平线。如果你指定不到p值,最后ECR值用于预测地平线的其余步骤。
例子:mpcobj.ManipulatedVariables (1)。MinECR = 0.01
MaxECR
- - - - - - MV上界
0
(默认)|非负标量|向量
柔软的上界为给定的操纵变量。一个更大的平等的关心放松(ECR)值表示一种软约束,指定为负的标量或矢量。默认情况下,MV上界是硬约束。
使用相同的ECR值预测地平线,指定一个标量值。
改变ECR值对预测地平线k时间k+p1、指定的向量p值。在这里,k当前时间和吗p是预测地平线。如果你指定不到p值,最后ECR值用于预测地平线的其余步骤。
例子:mpcobj.ManipulatedVariables (1)。MaxECR = 0.01
杀鼠灵
- MV变化率下界
负
(默认)|负值的标量|向量
下界为给定的操纵变量的变化率,指定为负值的标量或矢量。MV的改变被定义为MV(k)- - -MV(k1),k是当前时间。默认情况下,这个下界负
。
使用相同的绑定在预测地平线,指定一个标量值。
不同的绑定预测地平线k时间k+p1、指定的向量p值。在这里,k当前时间和吗p是预测地平线。如果你指定不到p值,最后必然是用于预测地平线的其余步骤。
例子:mpcobj.ManipulatedVariables (1)。杀鼠灵= 2
RateMax
- MV变化率上界
正
(默认)|非负标量|向量
上限为给定的操纵变量的变化率,指定为负的标量或矢量。MV的改变被定义为MV(k)- - -MV(k1),k是当前时间。默认情况下,这个下界正
。
使用相同的绑定在预测地平线,指定一个标量值。
不同的绑定预测地平线k时间k+p1、指定的向量p值。在这里,k当前时间和吗p是预测地平线。如果你指定不到p值,最后必然是用于预测地平线的其余步骤。
例子:mpcobj.ManipulatedVariables (1)。RateMax = 2
RateMinECR
- MV变化率下界柔软
0
(默认)|非负有限标量|向量
柔软的变化率下界的一个给定的被控变量。一个更大的平等的关心放松(ECR)值表示一种软约束,指定为非负有限标量或矢量。默认情况下,MV变化率下界是硬约束。
使用相同的ECR值预测地平线,指定一个标量值。
改变ECR值对预测地平线k时间k+p1、指定的向量p值。在这里,k当前时间和吗p是预测地平线。如果你指定不到p值,最后使用ECR值预测地平线的其余步骤。
例子:mpcobj.ManipulatedVariables (2)。RateMinECR = 0.01
RateMaxECR
- MV变化率上界柔软
0
(默认)|非负有限标量|向量
柔软的上界给定被控变量的变化率。一个更大的平等的关心放松(ECR)值表示一种软约束,指定为非负有限标量或矢量。默认情况下,MV变化率上界是硬约束。
使用相同的ECR值预测地平线,指定一个标量值。
改变ECR值对预测地平线k时间k+p1、指定的向量p值。在这里,k当前时间和吗p是预测地平线。如果你指定不到p值,最后使用ECR值预测地平线的其余步骤。
例子:mpcobj.ManipulatedVariables (2)。RateMaxECR = 0.01
目标
- - - - - - MV目标
“名义”
(默认)|标量|向量
目标对于一个给定的操纵变量指定为一个标量,矢量,或“名义”
(默认)。当目标
是“名义”
,然后操纵变量对应的目标mpcobj.Model.Nominal.U
。
在预测地平线,使用相同的目标指定一个标量值。
不同目标的预测地平线k时间k+p1、指定的向量p值。在这里,k当前时间和吗p是预测地平线。如果你指定不到p值,最终值是用来预测地平线的其余步骤。
你可能想要为一些操纵变量设定目标值,连同对应的非零成本函数的权重,对经济或操作原因,每当你比植物更有操纵变量输出。有关更多信息,请参见设计MPC控制器Nonsquare植物和设定目标的操纵变量。
例子:mpcobj.ManipulatedVariables (2)。目标= (0.3 - 0.2)
的名字
- - - - - - MV的名字
字符串|字符向量
一个给定的被控变量的名称,指定为一个字符串或字符向量。这是一个只读属性。修改操作变量的名称,使用mpcobj.Model.Plant.InputName
。
例子:mpcobj.ManipulatedVariables (2) . name
单位
- MV单位
”“
(默认)| |字符字符串向量
单位的一个给定的被控变量,指定为字符串或字符向量。这是一个只读属性。修改单位的操纵变量,使用mpcobj.Model.Plant.InputUnit
。
例子:mpcobj.ManipulatedVariables .Units (2)
ScaleFactor
- - - - - - MV比例因子
1
(默认)|积极有限的标量
比例因子的一个给定的操纵变量指定为积极有限的标量。指定合适的比例因子可以提高数值条件优化。一般来说,使用操作的振幅范围的操纵变量。有关更多信息,请参见指定规模因素。
例子:mpcobj.ManipulatedVariables (1)。ScaleFactor = 10
类型
- - - - - - MV类型
“连续”
(默认)|“整数”
|“二元”
|向量
给定的被控变量,类型指定为:
“连续”
——这表明操纵变量是连续的。“二元”
——这个限制了操纵变量是0或1。“整数”
——这限制了操纵变量是整数。一个向量包含所有可能的值,这限制了操纵变量指定的值,例如
mpcobj.MV (1)。类型=[-1,0,0.5,1,2];
。
默认情况下,设置为类型“连续”
。
有关更多信息,请参见货币政策委员会有限控制设置。
例子:mpcobj.ManipulatedVariables (1)。类型=“二进制”
OutputVariables
- - - - - -输出变量信息,范围和规模的因素
结构数组
输出变量(OV)信息、范围和规模因素,指定为一个结构数组Ny元素,Ny输出变量的数量。要访问该属性,您可以使用别名机汇
而不是OutputVariables
。
每个结构元素有以下字段。
最小值
- - - - - - OV下界
负
(默认)|标量|向量
下界对于一个给定的输出变量,指定为一个标量或矢量。默认情况下,这个下界负
。
使用相同的绑定在预测地平线,指定一个标量值。
不同的绑定预测地平线k+ 1,k+p,指定一个向量的p值。在这里,k当前时间和吗p是预测地平线。如果你指定不到p值,最后必然是用于预测地平线的其余步骤。
例子:mpcobj.OutputVariables (1)。最小值= -10
马克斯
- - - - - - OV上界
正
(默认)|标量|向量
上限对于一个给定的输出变量,指定为一个标量或矢量。默认情况下,这个上限正
。
使用相同的绑定在预测地平线,指定一个标量值。
不同的绑定预测地平线k+ 1,k+p,指定一个向量的p值。在这里,k当前时间和吗p是预测地平线。如果你指定不到p值,最后必然是用于预测地平线的其余步骤。
例子:mpcobj.OutputVariables (1)。Max = 10
MinECR
- OV下界柔软
1
(默认)|非负有限标量|向量
柔软的下界为给定的输出变量。一个更大的平等的关心放松(ECR)值表示一种软约束,指定为非负有限标量或矢量。默认情况下,OV上界是软约束。
为了避免创建一个不可行的优化问题在运行时,最佳实践是使用软OV界限。
使用相同的ECR值预测地平线,指定一个标量值。
改变ECR值对预测地平线k+ 1,k+p,指定一个向量的p值。在这里,k当前时间和吗p是预测地平线。如果你指定不到p值,最后ECR值用于预测地平线的其余步骤。
例子:mpcobj.OutputVariables (1)。MinECR = 5
MaxECR
- OV上界柔软
1
(默认)|非负有限标量|向量
柔软的上界为给定的输出变量。一个更大的平等的关心放松(ECR)值表示一种软约束,指定为非负有限标量或矢量。默认情况下,OV下界是软约束。
为了避免创建一个不可行的优化问题在运行时,最佳实践是使用软OV界限。
使用相同的ECR值预测地平线,指定一个标量值。
改变ECR值对预测地平线k+ 1,k+p,指定一个向量的p值。在这里,k当前时间和吗p是预测地平线。如果你指定不到p值,最后ECR值用于预测地平线的其余步骤。
例子:mpcobj.OutputVariables (1)。MaxECR = 10
的名字
- OV名字
字符串|字符向量
一个给定的输出变量的名称,指定为字符串或字符向量。这是一个只读属性。修改输出变量的名称,使用mpcobj.Model.Plant.OutputName
例子:mpcobj.OutputVariables (2) . name
单位
- OV单位
”“
(默认)| |字符字符串向量
单位的一个给定的输出变量,指定为字符串或字符向量。这是一个只读属性。修改输出变量的名称,使用mpcobj.Model.Plant.OutputUnit
。
例子:mpcobj.OutputVariables .Units (2)
ScaleFactor
- - - - - - OV比例因子
1
(默认)|积极有限的标量
指定的一个给定的输出变量,比例因子是一个积极的有限的标量。指定合适的比例因子可以提高数值条件优化。一般来说,使用操作范围的输出变量。有关更多信息,请参见指定规模因素。
例子:mpcobj.OutputVariables (1)。ScaleFactor = 20
DisturbanceVariables
- - - - - -输入扰动变量信息和规模的因素
结构数组
扰动变量(DV)信息和规模因素,指定为一个结构数组Nd元素,Nd是测量的总数和无边无际的干扰输入。干扰信号的顺序DisturbanceVariables
如下:第一N医学博士条目与测量输入干扰,最后一次Nud条目与无边无际的输入扰动。
要访问该属性,您可以使用别名DV
而不是DisturbanceVariables
。
每个结构元素有以下字段。
的名字
- DV的名字
字符串|字符向量
DV名称指定为字符串或字符向量。这是一个只读属性。修改的名字扰动变量,使用mpcobj.Plant.Inputname
。
例子:mpcobj.DisturbanceVariables (1) . name
单位
- OV单位
”“
(默认)| |字符字符串向量
OV单位,指定为字符串或字符向量。这是一个只读属性。修改扰动变量的单位使用mpcobj.Model.Plant.InputUnit
。
例子:mpcobj.DisturbanceVariables (1) .Units
ScaleFactor
- - - - - - DV比例因子
1
(默认)|积极有限的标量
DV比例因子,指定为一个积极的有限的标量。指定合适的比例因子可以提高数值条件优化。有关更多信息,请参见指定规模因素。
例子:mpcobj.DisturbanceVariables (1)。ScaleFactor = 15
权重
- - - - - -标准成本函数优化权重
结构
标准成本优化权重函数,指定为一个结构。控制器适用于这些权重比例变量。因此,优化权重是无量纲值。
的格式OutputWeights
必须匹配的格式吗Weights.OutputVariables
控制器的属性对象。例如,你不能指定恒定重量在预测地平线在控制器对象,然后指定使用时变权重mpcmoveopt
。
权重
有以下字段。这些字段的值取决于你使用的标准或替代成本函数。这些成本函数的更多信息,请参阅优化问题。
ManipulatedVariables
——被控变量优化权重
行向量|数组
被控变量优化权重,这惩罚MV的偏离目标,指定为一个行向量或负的值的数组。所有操纵变量的默认重量0
。
使用相同的权重预测地平线,指定一个行向量的长度Nmv,在那里Nmv是操纵变量的数量。
不同的调优权重预测地平线k时间k+p1、指定数组Nmv列和p行。在这里,k当前时间和吗p是预测地平线。每行包含操纵变量优化权重预测地平线的一步。如果你指定不到p行,最后一行的权重是用于预测地平线的其余步骤。
如果你使用另一种成本函数,指定Weights.ManipulatedVariables
作为一个单元阵列包含Nmv——- - - - - -NmvRu矩阵。例如,mpcobj.Weights。米anipulatedVariables = {Ru}
。Ru必须是半正定矩阵。改变Ru不支持矩阵在预测地平线。金宝app有关更多信息,请参见替代成本函数。
例子:mpcobj.Weights。米anipulatedVariables = [0.1 0.2]
ManipulatedVariablesRate
——被控变量率优化权重
行向量数组| |单元阵列
操纵可变利率调整权重,这惩罚发生巨大变化,控制措施,指定为一个行向量或负的值的数组。所有被控变量的默认体重率0.1
。
使用相同的权重预测地平线,指定一个行向量的长度Nmv,在那里Nmv是操纵变量的数量。
不同的调优权重预测地平线k时间k+p1、指定数组Nmv列和p行。在这里,k当前时间和吗p是预测地平线。每行包含被控变量率优化权重预测地平线的一步。如果你指定不到p行,最后一行的权重是用于预测地平线的其余步骤。
请注意
最佳实践是使用非零操纵变量率权重。如果被控变量率权重都是严格正的,由此产生的QP问题是严格凸。如果一些权重为零,QP黑森半正定。保持QP问题严格凸,当海赛矩阵的条件数KΔU大于1012,数量10 * sqrt (eps)
是添加到每个对角线项。看到成本函数。
如果你使用另一种成本函数,指定Weights.ManipulatedVariablesRate
作为一个单元阵列包含Nmv——- - - - - -NmvRΔu矩阵。例如,mpcobj.Weights。米anipulatedVariablesRate = {Rdu}
。RΔu必须是半正定矩阵。改变RΔu不支持矩阵在预测地平线。金宝app有关更多信息,请参见替代成本函数。
例子:mpcobj.Weights。米anipulatedVariablesRate = [0.1 0.1]
OutputVariables
——输出变量优化权重
矢量|数组
输出变量优化权重,这惩罚偏离输出引用指定为一个行向量或负的值的数组。所有输出变量的默认重量1
。
使用相同的权重预测地平线,指定一个行向量的长度Ny,在那里Ny输出变量的数量。
不同的调优权重预测地平线k+ 1,k+p,指定数组Ny列和p行。在这里,k当前时间和吗p是预测地平线。每行包含一个预测地平线步骤的输出变量优化权重。如果你指定不到p行,最后一行的权重是用于预测地平线的其余步骤。
如果你使用另一种成本函数,指定Weights.OutputVariables
作为一个单元阵列包含Ny——- - - - - -Ny问矩阵。例如,mpcobj.Weights。OutputVariables={Q}
。问必须是半正定矩阵。改变问不支持矩阵在预测地平线。金宝app有关更多信息,请参见替代成本函数。
例子:mpcobj.Weights。OutputVariables=[1 1]
ECR
-松弛变量优化重量
1 e5
(默认)|积极的标量
松弛变量调整体重,指定为一个积极的标量。增加或减少放松(ECR)重量相等的担忧让所有软约束困难或柔软,分别。
例子:mpcobj.Weights。ECR = 1 e4
优化器
- - - - - -QP优化参数
结构
QP优化参数,指定为以下字段的结构。第一个四个字段,算法
,ActiveSetOptions
,InteriorPointOptions
和MixedIntegerOptions
建在解决有关。如果你选择使用一个定制的模拟解算器(通过设置CustomSolver
来真正的
为模拟)这四个字段被忽略。同样地,如果你选择使用一个自定义代码生成的解算器(通过设置CustomSolverCodeGen
来真正的
为代码生成)这四个字段被忽略。
支持解决QP的更多信息,请参阅金宝appQP解决者。
算法
- - - - - - QP算法解算器
“激活集”
(默认)|“内点”
QP算法求解,指定为以下之一:
“激活集”
使用KWIK -解决QP问题有效集算法。“内点”
——解决QP问题用内点算法Mehrotra预估。
对于需要解决QP问题的应用程序,您还可以使用访问激活集和内点算法mpcActiveSetSolver
和mpcInteriorPointSolver
函数,分别。
例子:mpcobj.Optimizer。算法=“内点”
ActiveSetOptions
——激活集QP解算器设置
结构
激活集QP解算器设置,指定为一个结构。这些设置仅适用于当算法
是“激活集”
,类型
财产的操纵变量“连续”
。
您可以指定下列激活集优化器设置。
MaxIterations
——最大迭代数
“默认”
(默认)|正整数
最大数量的迭代允许计算QP的解决方案时,指定为以下之一:
“默认”
- MPC控制器自动计算QP解算器迭代的最大数量 ,地点:nc约束的总数在预测地平线。
nv优化变量的总数在控制层。
默认的
MaxIterations
值的下界120年
。正整数- QP解算器停止后指定的迭代次数。如果解决失败在最后的迭代收敛,控制器:
控制器运动如果结冰
UseSuboptimalSolution
是假
。应用后的次优的解决方案达成最终的迭代
UseSuboptimalSolution
是真正的
。
请注意
默认的MaxIterations
价值可以为一些非常大的控制器配置,如那些有大量预测和控制的视野。当模拟控制器,如果QP解算器无法找到一个可行的解决方案,仿真可以出现停止响应,自解算器继续寻找一个解决方案,直到迭代次数达到MaxIterations
。
例子:mpcobj.Optimizer.ActiveSetOptions。MaxIterations = 2000
ConstraintTolerance
——宽容用于验证满足不等式约束
1 e-6
(默认)|积极的标量
公差用于验证满足不等式约束的最优解决方案,指定为一个积极的标量。一个更大的ConstraintTolerance
值允许更大的约束违反。
例子:mpcobj.Optimizer.ActiveSetOptions。ConstraintTolerance = 1 e-5
UseWarmStart
——选项指示是否热启动每个QP解决迭代
真正的
(默认)|假
选项指示是否温暖的开始列表中的每个QP解算器迭代通过活跃的不平等从先前的迭代中,指定为一个逻辑值。不平等是活跃的,当他们相等的部分是正确的。
例子:mpcobj.Optimizer.ActiveSetOptions。UseWarmStart = true
InteriorPointOptions
——内点QP解算器设置
结构
内点QP解算器设置,指定为一个结构。这些设置仅适用于当算法
是“内点”
,类型
财产的操纵变量“连续”
。
您可以指定以下内点优化器设置。
MaxIterations
——最大迭代数
50
(默认)|正整数
最大数量的迭代允许计算QP的解决方案时,指定为一个正整数。QP解算器停止后指定的迭代次数。如果解决失败在最后的迭代收敛,控制器:
控制器运动如果结冰
UseSuboptimalSolution
是假
。应用后的次优的解决方案达成最终的迭代
UseSuboptimalSolution
是真正的
。
例子:mpcobj.Optimizer.InteriorPointOptions。MaxIterations = 30
ConstraintTolerance
——宽容等式和不等式约束是用于验证满意
1 e-6
(默认)|积极的标量
宽容等式和不等式约束用于验证是通过最优解决方案,指定为一个积极的标量。一个更大的ConstraintTolerance
值允许更大的约束违反。
例子:mpcobj.Optimizer.InteriorPointOptions。ConstraintTolerance = 1 e-5
OptimalityTolerance
终止对一阶最优性(马双残留)
1 e-6
(默认)|积极的标量
终止对一阶最优性(马双残留),指定为一个积极的标量。
例子:mpcobj.Optimizer.InteriorPointOptions。OptimalityTolerance = 1 e-5
ComplementarityTolerance
终止对一阶最优性(马平均互补残留)
1 e-8
(默认)|积极的标量
终止对一阶最优性(马平均互补残余),指定为一个积极的标量。增加这个值可以提高鲁棒性,同时降低这个值增加准确性。
例子:mpcobj.Optimizer.InteriorPointOptions。ComplementarityTolerance = 1 e-6
StepTolerance
- - - - - -终止对决策变量的容忍度
1 e-8
(默认)|积极的标量
终止对决策变量,指定为一个积极的标量。
例子:mpcobj.Optimizer.InteriorPointOptions。StepTolerance = 1 e -
MixedIntegerOptions
——整数QP解算器设置
结构
混合整数QP解算器设置,指定为一个结构。这个设置适用于任何操纵变量时类型
财产不“连续”
。在这种情况下,建立了混合整数KWIK算法,实现了一个分支定界法。
您可以指定下列整数QP优化器设置。
MaxIterations
——最大迭代数
1000年
(默认)|正整数
最大数量的迭代允许计算整数QP的解决方案时,指定为一个正整数。整数QP解算器停止后指定的迭代次数。如果解决失败在最后的迭代收敛,控制器:
控制器运动如果结冰
UseSuboptimalSolution
是假
。应用后的次优的解决方案达成最终的迭代
UseSuboptimalSolution
是真正的
。
例子:mpcobj.Optimizer.MixedIntegerOptions。MaxIterations = 500
ConstraintTolerance
——宽容等式和不等式约束是用于验证满意
1 e-6
(默认)|积极的标量
宽容等式和不等式约束用于验证是通过最优解决方案,指定为一个积极的标量。一个更大的ConstraintTolerance
值允许更大的约束违反。
例子:mpcobj.Optimizer.MixedIntegerOptions。ConstraintTolerance = 1 e-5
DiscreteConstraintTolerance
——宽容用于验证约束离散控制变量是满意
1 e-6
(默认)|积极的标量
公差用于验证约束的离散控制变量是通过最优解决方案,指定为一个积极的标量。一个更大的DiscreteConstraintTolerance
值允许更大的约束违反。
例子:mpcobj.Optimizer.MixedIntegerOptions。DiscreteConstraintTolerance = 1 e-5
RoundingAtRootNode
——选择根节点的解决方案
1
(默认)| 0
选择根节点的解决方案,指定为一个布尔值。当RoundingAtRootNode
=1
轻松的解决方案,解决轮QP问题解决了搜索树的根节点,所以离散约束得到满足。然后,额外的QP解决剩下的(连续的)变量。如果这样的QP可行解,相应的成本作为一个有效的上限最初的整数问题的最优解。有这样一个上限可能消除其他地区的整个子树求解程序的执行,加快解决以下QP放松方式。除非迭代的数量MaxIterations
很小,值得吗RoundingAtRootNode
=1
。否则,设置RoundingAtRootNode
=0
避免解决额外的QP。
例子:mpcobj.Optimizer.MixedIntegerOptions。RoundingAtRootNode = true
MaxPendingNodes
——等待节点的最大数量
1000年
(默认)|积极的标量
这是等待QP放松方式的最大数量,可以存储。它决定了分配的内存来存储所有未决QP风头,成正比(2 *米+ 3 *Nd)*MaxPendingNodes
,在那里米不等式约束的数量,Nd是离散变量的数量。如果等待风头超过的数量MaxPendingNodes
解算器是停止状态代码3
,4
或5
。
例子:mpcobj.Optimizer.MixedIntegerOptions。MaxPendingNodes = 2000
MinOutputECR
ECR -最小值允许输出约束值
0
(默认)|负的标量
最小值允许输出约束等于关心放松(ECR)值,指定为负的标量。的值0
表明输出硬约束是允许的。如果的OutputVariables.MinECR
或OutputVariables.MaxECR
不到MPC控制器的属性MinOutputECR
时,会显示一个警告和价值提高MinOutputECR
在计算。
例子:mpcobj.Optimizer。MinOutputECR=1e-10
UseSuboptimalSolution
——选项指示是否一个次优的解决方案是可以接受的
假
(默认)|真正的
指定的选项指示是否一个理想的解决方案是可以接受的,作为一个逻辑值。当QP解算器达到最大迭代次数(退出选项是没有找到一个解决方案0
),控制器:
MV值如果结冰
UseSuboptimalSolution
是假
应用的理想解决方案解决者最后的迭代后如果发现
UseSuboptimalSolution
是真正的
指定的最大迭代数,根据的价值算法
,使用ActiveSetOptions.MaxIterations
或InteriorPointOptions.MaxIterations
。
例子:mpcobj.Optimizer。使用SuboptimalSolution = true
CustomSolver
——选项指示是否使用一个定制的QP仿真解算器
假
(默认)|真正的
选项指示是否使用一个定制的QP仿真解算器,指定为一个逻辑值。如果CustomSolver
是真正的
,用户必须提供一个mpcCustomSolver
在MATLAB函数®路径。
这个习俗解决不用于代码生成。生成一个控制器和一个自定义代码解算器,使用CustomSolverCodeGen
。
如果CustomSolver
是真正的
,控制器不需要自定义的能手荣誉中的设置ActiveSetOptions
或InteriorPointOptions
。
您还可以使用函数setCustomSolver
自动配置mpcobj
使用的有效集算法quadprog
(优化工具箱)作为模拟和一个定制的QP解算器代码生成。
有关使用自定义QP解算器的更多信息见,QP解决者。
例子:mpcobj.Optimizer。CustomSolver=真正的
CustomSolverCodeGen
——选项指示是否使用一个定制的QP解算器对代码生成
假
(默认)|真正的
选项指示是否使用一个定制的QP解决代码生成,指定为一个逻辑值。如果CustomSolverCodeGen
是真正的
,用户必须提供一个mpcCustomSolverCodeGen
在MATLAB函数路径。
这个习俗解决不用于模拟。与定制解决模拟控制器,使用CustomSolver
。
您还可以使用函数setCustomSolver
自动配置mpcobj
使用的有效集算法quadprog
(优化工具箱)作为模拟和一个定制的QP解算器代码生成。
有关使用自定义QP解算器的更多信息见,QP解决者。
例子:mpcobj.Optimizer。CustomSolverCodeGen = true
笔记
- - - - - -用户的笔记
{}
(默认)|单元阵列的特征向量
用户与MPC控制器相关笔记,指定为一个单元阵列的特征向量。
例子:mpcobj。笔记={'Longitudinal Controller'; 'Version 2.1'}
用户数据
- - - - - -用户数据
[]
(默认)|任何MATLAB数据
用户数据与MPC控制器,指定为任何MATLAB数据,如细胞数组或结构。
例子:mpcobj。使用rData = {'Parameters',0.2,[3 4]'}
历史
- - - - - -控制器创建日期和时间
向量
这个属性是只读的。
控制器创建日期和时间,指定为一个向量用以下元素:
(1)历史
年(2)历史
每月(3)历史
天(4)历史
- - - - - -小时(5)历史
- - - - - -分钟(6)历史
- - - - - -秒
使用datestr (mpcobj.History)
显示控制器创建日期作为特征向量。
例子:mpcobj。历史=datevec(now)
对象的功能
buildMEX |
构建墨西哥人文件解决了MPC控制问题 |
cloffset |
从输出干扰计算闭环直流增益测量输出假设在稳态约束是不活跃的 |
比较 |
比较两个MPC对象 |
generateExplicitMPC |
隐式MPC控制器转换为明确MPC控制器 |
generatePlotParameters |
参数plotSection |
generateExplicitOptions |
优化选项显式MPC的一代 |
generateExplicitRange |
界限明确的MPC控制律参数 |
得到 |
从MPC对象获取属性值 |
getCodeGenerationData |
创建数据结构mpcmoveCodeGeneration |
getEstimator |
获得卡尔曼估计收益和模型设计 |
getconstraint |
从模型获得混合输入/输出约束预测控制器 |
getindist |
检索无节制的输入扰动模型 |
getname |
检索从MPC植物模型I / O信号名称 |
getoutdist |
检索无节制的输出扰动模型 |
mpcmove |
计算最优控制行动和更新控制器的状态 |
mpcmoveAdaptive |
计算最优控制与预测模型更新 |
情节 |
情节反应生成的MPC模拟 |
审查 |
检查MPC控制器设计在运行时错误和稳定性问题 |
灵敏度 |
计算性能指标及其灵敏度的值的对角权重MPC控制器 |
集 |
设置或修改MPC对象属性 |
setCustomSolver |
配置一个MPC对象使用QP解算器优化工具箱作为一个定制的解算器 |
setEstimator |
修改模型预测控制器的状态估计 |
setconstraint |
集混合模型预测控制器的输入/输出约束 |
setindist |
修改不可测量的输入扰动模型 |
setname |
组I / O信号名称MPC植物模型 |
setoutdist |
修改无边无际的输出扰动模型 |
setterminal |
终端权重和约束 |
sim卡 |
模拟一个MPC控制器在闭环线性植物 |
大小 |
大小和MPC控制器 |
党卫军 |
无约束MPC控制器转换为整数线性系统形式 |
特遣部队 |
无约束MPC控制器转换为线性传递函数形式 |
修剪 |
计算稳态的MPC控制器工厂模型状态值给定的输入和输出 |
例子
创建MPC控制器与指定的预测和控制的视野
创建一个植物模型的传递函数 。
工厂=特遣部队([1],[1 2 0]);
植物的输出,因此它的输入必须是一个操纵变量及其输出必须测量。一般来说,是一种很好的做法指定所有植物信号类型使用setmpcsignals
命令,或线性时不变InputGroup
和OutputGroup
属性。
指定一个样本时间控制器。
t = 0.1;
定义范围被控变量, ,这样 。
MV =结构(Min = 1, Max = 1);
MV
只包含被控变量的上下界。一般来说,您可以指定额外的MV属性。当你不指定其他属性,其默认值适用。
指定一个20-interval预测地平线,地平线3-interval控制。
p = 20;m = 3;
创建一个MPC控制器使用指定的值。第五个输入参数为空,所以应用默认的调整权重。
mpcobj = mpc(植物、t、p、m [], MV);
- - >“权重。米anipulatedVariables" is empty. Assuming default 0.00000. -->"Weights.ManipulatedVariablesRate" is empty. Assuming default 0.10000. -->"Weights.OutputVariables" is empty. Assuming default 1.00000.
算法
以减少计算开销,模型预测控制器创建发生在两个阶段。第一次发生在创建当你使用货币政策委员会
函数,或者当你改变一个控制器财产。创建包含基本的有效性和一致性检查,如信号的维度和nonnegativity权重。
第二个阶段是初始化,当您使用对象第一次模拟或分析过程。初始化计算所需的所有常量属性有效数值性能,如矩阵定义的最优控制问题和状态估计收益。另外,诊断检查发生在初始化期间,如确认控制器状态可观测的。
默认情况下,这两个阶段在命令窗口中显示的消息。您可以开启或关闭使用这些信息mpcverbosity
函数。
选择功能
您还可以创建模型预测控制器使用MPC设计师应用程序。
版本历史
之前介绍过的R2006aR2018b:金宝app支持使用一个线性MPC控制器实现经济政策委员会被移除
金宝app支持使用一个线性MPC控制器实现经济政策委员会被移除。使用一个非线性MPC控制器实现经济政策委员会。有关非线性MPC控制器的更多信息,请参阅非线性MPC。
如果你以前保存的一个线性MPC对象配置定制成本或约束函数,软件对象加载时生成一个警告,而且如果它是模拟一个错误。抑制错误和警告消息并继续使用线性MPC控制器,mpcobj
,没有自定义成本和约束,设置IsEconomicMPC
选项假
。
mpcobj。IsEconomicMPC = false;
实现经济MPC控制器使用非线性MPC对象:
创建一个
nlmpc
对象。转换您的自定义代价函数为非线性MPC所需的格式。非线性MPC成本函数的更多信息,见为非线性MPC指定成本函数。
转换您的自定义约束函数非线性MPC所需的格式。有关非线性MPC限制的更多信息,请参阅为通用非线性MPC指定约束。
实现线性预测模型使用状态和输出功能。关于非线性MPC预测模型的更多信息,请参阅为非线性MPC指定预测模型。
Apri esempio
如果dispone di una versione modificata di questo esempio。Desideri aprire questo esempio con le modifiche星期二吗?
第一MATLAB
海脂肪clic苏联合国collegamento切corrisponde questo第一MATLAB:
Esegui il第一inserendolo所以nella隙缝di第一MATLAB。我浏览器web非supportano金宝app comandi MATLAB。
你也可以从下面的列表中选择一个网站:
表现最好的网站怎么走吗
选择中国网站(中文或英文)最佳站点的性能。其他MathWorks国家网站不优化的访问你的位置。