文档

mpcmoveAdaptive

使用预测模型更新计算最佳控制

语法

u = mpcmoveAdaptive (ym MPCobj x,植物,名义,r, v)
[U,INFO] = MPCMoveAveAve(MPCobj,x,植物,标称,ym,r,v)
___] = mpcmoveadaptive(___,选项)

描述

u= mpcmoveadaptive(mpcobj.x植物义务ym.rv计算当前时间的最佳操纵变量。该结果取决于MPC控制器,控制器状态,更新的预测模型和标称值中包含的属性。结果还取决于测量的输出变量,输出参考(设定值)和测量的干扰输入。mpcmoveAdaptive更新控制器状态,x,使用默认状态估计时。称呼mpcmoveAdaptive重复仿真闭环模型预测控制。

u信息] = mpcmoveadaptive(mpcobj.x植物义务ym.rv在结构中返回关于解决方案的其他详细信息。要查看整个预测视界的预测最优轨迹,绘制中提供的序列信息.确定最佳控制计算是否正常完成,检查信息。迭代info.qpcode.

___] = mpcmoveadaptive(___选项使用指定的选项更改选定的控制器设置mpcmoveopt.这些更改仅适用于当前时间即时,从而使用命令行仿真使用mpcmoveAdaptive模仿这一点自适应MPC控制器Simulink中金宝app的块®以计算上有效的方式。

输入参数

全部折叠

MPC控制器,指定为隐式MPC控制器对象。要创建MPC控制器,请使用MPC.命令。

当前的MPC控制器状态,指定为一个MPCState.目的。

在开始一个模拟之前mpcmoveAdaptive,使用初始化控制器状态x = mpcstate (MPCobj).然后,修改默认属性x作为适当的。

如果使用默认状态估计,mpcmoveAdaptive预计x代表X [n | n-1].这mpcmoveAdaptive命令在以前的控制间隔中更新状态值,其中包含该信息。因此,您不应该以编程方式更新x根本默认状态估计器采用线性时变卡尔曼滤波器。

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

有关Adaptive MPC和时变MPC的状态估计的更多信息,请参阅国家估计数

更新的预测模型,指定为:

  • 无延迟离散状态空间(SS.) 模型。这个工厂是更新mpcobj.model.plant.它必须:

    • 具有与控制器相同的采样时间;那是,植物必须匹配mpcobj.ts.

    • 具有相同的输入和输出信号配置,例如类型,订单和尺寸

    • 定义与控制器预测模型相同的状态,mpcobj.model.plant.

  • 一系列最高的p+1延迟,离散时间的状态空间模型,在哪里p预测的范围是mpcobj..使用此选项可在预测范围内改变控制器预测模型。

    如果植物包含少于p+1模型,最后一个模型重复了其余的预测地平线。

提示

如果您使用非无延迟的离散时间状态空间模型来定义预测模型mpcobj.,您可以将其转换为这样的模型以确定预测模型结构。

如果原始植物是 然后
不是状态空间模型 使用它将其转换为状态模型SS.
连续时间模型 将其转换为具有与控制器相同的采样时间的离散时间模型,mpcobj.ts., 使用C2D.默认转发欧拉离散化。
延迟模型 将延迟转换为状态使用吸收

更新了名义条件,指定为以下内容之一:

  • 具有以下领域的结构:

    描述

    默认

    X

    植物状态在工作点

    []

    U

    操作点的设备输入,包括操作变量和测量和未测量的扰动

    []

    Y

    工厂在操作点输出

    []

    DX

    对于连续时间模型,DX为工作点状态导数:DXfXU).对于离散时间模型,DXxk+ 1) -xk) =fXU)-X

    []

  • 一系列最高的p+1标称条件结构,在哪里p预测的范围是mpcobj..使用此选项可在预测地平线上变化控制器标称条件。

    如果义务包含少于p+1结构,最后一个结构在预测视界的其余部分重复。

如果义务是空的,[],或者某个字段缺失或为空,mpcmoveAdaptive使用相应的mpcobj.model.nominal.价值。

当前测量的输出,指定为长度的行矢量nym.向量,nym.是测量输出的数量。

如果您使用的是自定义状态估计,ym.被忽略了。如果你设置了ym.[],然后mpcmoveAdaptive使用适当的标称值。

工厂输出参考值,指定为p-经过-ny阵列,其中p预测的范围是mpcobj.ny为输出数。行r(我,:)在步骤中定义参考值预测地平线。

r必须包含至少一行。如果r包含少于p行,mpcmoveAdaptive复制最后一行以填补p-经过-ny数组中。因此,如果提供一行,因此,常量引用适用于整个预测地平线。

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

实现参考预览,当引用以可预测的方式变化时,可以改善跟踪,r必须包含预期的变化,理想情况下p脚步。

当前和预期的测量干扰,指定为ap-经过-nm阵列,其中p预测的范围是mpcobj.nm是测量障碍的数量。行v(我,:)在步骤中定义预期的测量干扰值预测地平线。

测量干扰建模提供了前馈控制动作。如果您的植物模型不包括测量的干扰,请使用v[]

v必须包含至少一行。如果v包含少于p行,mpcmoveAdaptive复制最后一行以填补p-经过-nm数组中。因此,如果你恰好提供了一行,那么一个常数测量扰动适用于整个预测视界。

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

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

覆盖所选属性的值mpcobj.,指定为创建的选项对象mpcmoveopt.这些选项适用于当前mpcmoveAdaptive时间瞬间。使用选项产生与重新定义或修改相同的结果mpcobj.每次呼叫之前mpcmoveAdaptive,但涉及较少的开销。使用选项相当于使用自适应MPC控制器金宝appSimulink模块结合可选的输入信号,修改控制器设置,如MV和OV约束。

输出参数

全部折叠

最佳操纵变量移动,作为长度的行向量返回nu, 在哪里nu为被操纵变量的个数。

如果控制器检测到不可行的优化问题或遇到解决不良优化问题的数值困难,u仍然是最近成功的解决方案,X.LastMove.

否则,如果优化问题是可行的,并且求解器达到指定的最大迭代次数而不找到最佳解决方案,u

  • 仍然是最近的成功解决方案优化器.Usesuboptimalsolution.控制器的财产是

  • 在最终迭代后是否达到次最优解优化器.Usesuboptimalsolution.控制器的财产是真的.有关更多信息,请参阅次优QP解决方案

解决方案详细信息,作为包含以下字段的结构返回:

最佳操作变量调整(移动),作为a返回p+ 1乘 -nu阵列,其中p预测的范围是mpcobj.nu为被操纵变量的个数。

第一排信息。Uopt与输出参数相同u,这是当前应用的调整,kUopt(我,:)包含时间预测的最佳值K + I-1,因为i = 1,...,p + 1.由于控制器不会在时间计算最佳控制K + P.Uopt(p + 1,:)

预测最佳输出变量序列,返回为ap+ 1乘 -ny阵列,其中p预测的范围是mpcobj.nx为输出数。

第一排info.opt.包含当前输出的时间k经过国家估计。Yopt(我,:)包含每次的预测输出值K + I-1,因为i = 1,...,p + 1

最优预测状态变量序列,返回为p+ 1乘 -nx阵列,其中p预测的范围是mpcobj.nx是州的数量。

第一排info.xopt.包含当前时刻的状态k由国家估计确定。xopt(我,:)包含时刻的预测状态值K + I-1,因为i = 1,...,p + 1

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

top当策划UoptXOPT., 或者Yopt.序列。

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

  • ε= 0 - 对整个预测地平线满足所有约束。

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

看到优化问题想要查询更多的信息。

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

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

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

  • -1- 优化问题是不可行的。如果没有解决方案可以满足所有硬约束,则优化问题是不可行的。

  • -2- 解决优化问题时发生数值错误。

优化解决方案状态,作为以下内容之一返回:

  • “可行的”- 获得最佳解决方案(迭代> 0)

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

  • “不可靠”- 求助者未能收敛(迭代= 0)。在这种情况下,如果mpcobj.optimizer.usesuboptimalsolutiz.u在最近成功的解决方案冻结。否则,它使用在最后一次求解迭代中找到的次最优解。

客观函数成本,作为非负标量值返回。成本量化了控制器实现了目标的程度。有关更多信息,请参阅优化问题

成本价值只有有意义的时候QPCode =“可行”,或时间QPCode =“可行”mpcobj.optimizer.usesuboptimalsolutiz.真的

提示

在R2014B中介绍

这个主题有用吗?