主要内容

mpcmoveMultiple

计算增益调度MPC控制动作在一个单一的时间瞬间

描述

mv= mpcmoveMultiple (MPCArray指数ymrv使用从一组MPC控制器中按指标选择的模型预测控制器,计算当前最优操纵变量的移动。这个结果取决于MPC控制器中包含的属性和控制器状态。结果还取决于测量的植物输出、输出参考(设定值)和测量的扰动输入。mpcmoveMultiple当使用默认状态估计时,更新控制器状态。调用mpcmoveMultiple重复仿真闭环模型预测控制。

mv信息) = mpcmoveMultiple (MPCArray指数ymrv返回结构中有关计算的附加细节。为了确定最优控制计算是否正常完成,将数据检入信息

___) = mpcmoveMultiple (___选项使用指定的选项更改选定的控制器设置mpcmoveopt.这些更改仅适用于当前时间瞬时,允许使用命令行模拟mpcmoveMultiple模仿的多个MPC控制器在仿真软件万博1manbetx®以计算效率高的方式。

输入参数

全部折叠

要模拟的MPC控制器,指定为传统(隐式)MPC控制器对象的单元格数组。使用货币政策委员会命令,创建MPC控制器。

所有的控制器MPCArray必须使用默认状态估计或自定义状态估计。不允许错配。

中每个MPC控制器的当前控制器状态MPCArray,指定为单元格数组mpcstate对象。

在开始一个模拟之前mpcmoveMultiple,使用初始化每个控制器状态x = mpcstate (MPCobj).然后,根据需要修改每个状态的默认属性。

如果使用默认状态估计,mpcmoveMultiple预计x代表x (n | n - 1)(x是一个条目,其中一个MPC控制器的当前状态MPCArray).的mpcmoveMultiple命令用该信息更新前一个控制间隔中的状态值。因此,您不应该以编程方式进行更新x在所有。默认状态估计器采用稳态卡尔曼滤波器。

如果您正在使用自定义状态估计,mpcmoveMultiple预计x代表x [n | n].因此,在每个mpcmoveMultiple命令,必须设置x.Plantx.Disturbance,x.Noise到在当前控制间隔内对这些状态(使用最新测量)的最佳估计。

选定控制器在单元阵列中的索引MPCArray,指定为正整数。

测量的电流输出,指定为长度的行向量Nym,在那里Nym为测量输出的数量。如果您正在使用自定义状态估计,ym将被忽略。如果你设置ym[],然后mpcmoveMultiple使用适当的标称值。

工厂输出参考值,指定为p——- - - - - -Ny数组,p所选控制器的预测视界是和吗Ny为输出数。行r(我,:)定义步骤中的引用值预测视界。

r必须包含至少一行。如果r包含少于p行,mpcmoveMultiple复制最后一行以填充p——- - - - - -Ny数组中。因此,如果只提供一行,则常量引用适用于整个预测范围。

如果你设置r[],然后mpcmoveMultiple使用适当的标称值。

要实现引用预览,可以在引用以可预测的方式变化时改进跟踪,r必须包含预期的变化,理想情况下p步骤。

电流和预期测量的扰动,指定为p——- - - - - -N医学博士数组,p所选控制器的预测视界是和吗N医学博士为被测扰动的个数。行v(我,:)定义步长处的预期测量扰动值预测视界。

测量扰动的建模提供了前馈控制作用。如果你的工厂模型不包括测量到的扰动,请使用v[]

v必须包含至少一行。如果v包含少于p行,mpcmoveMultiple复制最后一行以填充p——- - - - - -N医学博士数组中。因此,如果你恰好提供了一行,那么一个常数测量扰动适用于整个预测视界。

如果你设置v[],然后mpcmoveMultiple使用适当的标称值。

为了实现干扰预览,当干扰以可预测的方式变化时,可以改善跟踪,v必须包含预期的变化,理想情况下p步骤。

覆盖选定MPC控制器的选定属性的值,指定为创建的选项对象mpcmoveopt.这些选项适用于当前mpcmoveMultiple时间瞬间。使用选项产生与每次调用之前重新定义或修改所选控制器相同的结果mpcmoveMultiple,但涉及的开销要少得多。使用选项等于使用a多个MPC控制器万博1manbetxSimulink模块结合可选的输入信号,修改控制器设置,如MV和OV约束。

输出参数

全部折叠

最优操纵变量移动,返回为长度的列向量Nmv,在那里Nmv为被操纵变量的个数。

如果控制器检测到不可行的优化问题或在解决病态优化问题时遇到数值困难,mv仍然是最近成功的解决方案,xc。LastMove

否则,如果优化问题是可行的,且求解器在未找到最优解的情况下达到指定的最大迭代次数,mv

  • 仍然是最近的成功解决方案,如果优化器。使用SuboptimalSolution属性为

  • 在最终迭代后是否达到次最优解优化器。使用SuboptimalSolution属性为真正的.有关更多信息,请参见次优的QP解决方案

解决方案详细信息,作为带有以下字段的结构返回。

预测的最优操纵变量调整(移动),返回为p+ 1)——-Nmv数组,p预测的范围是和吗Nmv为被操纵变量的个数。

Uopt(我,:)包含每次计算的最优值k +张,因为我= 1,…,p,在那里k为当前时间。第一行信息。Uopt包含与输出参数相同的操纵变量值mv.由于控制器不计算最优控制移动时刻k + p: Uopt (p + 1)等于Uopt (p,:)

最优输出变量序列,返回为p+ 1)——-Ny数组,p预测的范围是和吗Ny为输出数。

第一行信息。Yopt包含每次计算的输出k基于估计状态和测量扰动;它不是当时测量的输出kYopt(我,:)包含每次的预测输出值k +张,因为我= 1,…,p + 1

Yopt(我,:)包含每次计算的输出值k +张,因为我= 2,…,p + 1,在那里k为当前时间。: Yopt (1)是根据估计的状态和测量的扰动来计算的。

最优预测模型状态序列,返回为(p+ 1)——-Nx数组,p预测的范围是和吗Nx是设备和未测量干扰模型中的状态数(不包括来自噪声模型的状态)。

Xopt(我,:)包含时刻的计算状态值k +张,因为我= 2,…,p + 1,在那里k为当前时间。: Xopt (1)与当前状态状态值相同。

时间间隔,返回为长度的列向量p+ 1。Topt (1)= 0,表示当前时间。随后的时间步长Topt(我)是由Ts *(张),在那里Ts = MPCobj。Ts为控制器采样时间。

使用Topt当策划UoptXopt,或Yopt序列。

松弛变量ε,用于约束软化,返回为0或者一个正标量值。

  • ε = 0 -对于整个预测层,所有约束条件都得到满足。

  • ε > 0 -至少违反了一个软约束。当违反多个约束时,ε表示最坏情况的软约束违反(根据每个约束的ECR值进行缩放)。

看到优化问题为更多的信息。

求解器迭代次数,返回为:

  • 正整数-解决决定最优序列的优化问题所需的迭代次数。

  • 0-在指定的最大迭代次数内无法解决优化问题。

  • 1-优化问题不可行。如果一个优化问题的解不能满足所有的硬约束,那么它就是不可行的。

  • 2—在解决优化问题时出现数值错误。

优化解决方案状态,返回如下之一:

  • “可行的”-得到最优解(迭代> 0)

  • “不可行”解决者发现了一个没有可行解决方案的问题(迭代= -1)或发生数值错误(迭代= 2)

  • “不可靠”-解算器无法收敛(迭代= 0)。在本例中,ifMPCobj.Optimizer.UseSuboptimalSolutionu在最近成功的解决方案冻结。否则,它使用在最后一次求解迭代中找到的次最优解。

目标函数代价,作为非负标量值返回。成本量化了控制人员实现其目标的程度。有关更多信息,请参见优化问题

成本值只有在QPCode =“可行的”,或者当QPCode =“可行的”MPCobj.Optimizer.UseSuboptimalSolution真正的

提示

介绍了R2014b