主要内容

mpcmoveAdaptive

计算最优控制与预测模型更新

描述

mv= mpcmoveAdaptive (MPCobj,x,植物,名义上的,ym,r,v)计算最优操纵变量在当前时间。这个结果取决于属性包含在MPC控制器,控制器,一个更新的预测模型,名义值。结果还取决于测量输出变量,输出引用(定位点),测量扰动输入。mpcmoveAdaptive更新控制器的状态,x当使用默认状态估计。调用mpcmoveAdaptive反复模拟闭环预测控制模型。

(mv,信息)= mpcmoveAdaptive (MPCobj,x,植物,名义上的,ym,r,v)返回关于解决方案的结构的更多细节。查看整个预测地平线,预测最优轨迹图中提供的序列信息。确定最优控制计算正常完成,检查info.Iterationsinfo.QPCode

(___)= mpcmoveAdaptive (___,选项)改变选择控制器设置使用你指定的选项mpcmoveopt。这些变化即时申请当前时间,使一个命令行仿真使用mpcmoveAdaptive模仿的自适应MPC控制器在仿真软件金宝app®在计算有效的方式。

输入参数

全部折叠

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这些国家的最佳估计(使用最新的测量)电流控制区间。

更多信息对状态估计的自适应MPC和时变MPC,明白了状态估计

更新预测模型,指定为以下之一:

  • delay-free离散时间状态空间(党卫军)模型。这种植物是更新MPCobj.Model.Plant和它必须:

    • 有相同的样本作为控制器;也就是说,Plant.Ts必须匹配MPCobj.Ts

    • 有相同的输入和输出信号配置,如类型、顺序,和尺寸吗

    • 定义控制器一样的状态预测模型,MPCobj.Model.Plant

  • 的数组p+ 1delay-free、离散时间状态空间模型p预测的吗MPCobj。使用这个选项来改变控制器预测模型在预测地平线。

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

提示

如果你使用植物除了delay-free,离散时间状态空间模型来定义的预测模型MPCobj,你可以将它转换成这样一个模型来确定预测模型结构。

如果原来的工厂 然后
状态空间模型不是一个 把它转换成使用状态空间模型党卫军
一个连续时间模型 把它转换成一个离散时间模型和相同的样品时间控制器,MPCobj.Ts,使用汇集用默认向前欧拉离散化。
一个模型与延迟 转换延迟状态使用absorbDelay

更新的名义条件,指定为以下之一:

  • 的结构有以下字段:

    描述

    默认的

    X

    植物状态的操作点

    []

    U

    植物输入操作点,包括操纵变量和测量和不可测量的干扰

    []

    Y

    植物输出操作点

    []

    DX

    对于连续时间模型,DX是导数在操作点:DX=f(X,U)。对于离散时间模型,DX=x(k+ 1)-x(k)=f(X,U)- - -X

    []

  • 的数组p+ 1名义条件结构,p预测的吗MPCobj。使用这个选项来改变控制器的名义条件预测地平线。

    如果名义上的包含少于p+ 1结构,最后结构重复的预测地平线。

如果名义上的是空的,[],如果一个字段缺失或空的,mpcmoveAdaptive使用相应的MPCobj.Model.Nominal价值。

电流测量输出,指定为一个行向量的长度Nym向量,Nym是测量输出的数量。

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

植物输出参考值,指定为一个p——- - - - - -Ny数组,p预测的吗MPCobjNy是输出的数量。行r(我,:)定义了引用值在步骤预测的地平线。

r必须包含至少一个行。如果r包含少于p行,mpcmoveAdaptive重复最后一行来填补p——- - - - - -Ny数组中。如果你供应一行,因此,一个常数参考适用于整个预测地平线。

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

实现参考预览,可以改善跟踪参考以一种可预见的方式不同,r必须包含预期的变化,理想p步骤。

当前和预期的测量干扰,指定为一个p——- - - - - -N医学博士数组,p预测的吗MPCobjN医学博士是测量扰动的数量。行v(我,:)在步骤定义预期的测量干扰值预测的地平线。

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

v必须包含至少一个行。如果v包含少于p行,mpcmoveAdaptive重复最后一行来填补p——- - - - - -N医学博士数组中。如果你供应一行,因此,一个常数测量扰动适用于整个预测地平线。

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

实现扰动预览,可以改善跟踪干扰时以一种可预见的方式不同,v必须包含预期的变化,理想p步骤。

覆盖值选择的属性MPCobj,指定为一个选项对象创建mpcmoveopt。这些选项适用于当前mpcmoveAdaptive时间瞬间。使用选项收益率和重新定义或修改相同的结果MPCobj之前每次调用mpcmoveAdaptive,但涉及大大减少开销。使用选项相当于用一个吗自适应MPC控制器金宝app模型块结合修改控制器设置可选的输入信号,MV和OV等约束条件。

输出参数

全部折叠

最优操纵变量,返回一个列向量的长度Nmv,在那里Nmv是操纵变量的数量。

如果控制器检测到一个不可行的优化问题或遇到数值困难解决一个坏脾气的优化问题,mv仍然在其最近的成功解决方案,xc.LastMove

否则,如果优化问题是可行的和解决者达到指定的最大数量的迭代没有找到一个最优解,mv:

  • 如果仍然在其最近的成功解决方案Optimizer.UseSuboptimalSolution控制器的属性

  • 是次优的解决方案达成最终的迭代后如果Optimizer.UseSuboptimalSolution控制器的属性真正的。有关更多信息,请参见次优的QP解决方案

解决方案的细节,作为结构与以下字段返回。

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

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

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

第一行的Info.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当策划Uopt,Xopt,或Yopt序列。

松弛变量,ε,用于约束软化,返回0或积极的标量值。

  • ε= 0 -所有的约束条件都满足整个预测地平线。

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

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

返回的求解迭代,数量为以下之一:

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

  • 0——优化问题不能解决在指定的最大迭代次数。

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

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

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

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

  • “不可行”解算器检测到一个问题没有可行解(迭代= 1)或一个数值错误发生(迭代= 2)

  • “不可靠”解算器未能收敛(迭代= 0)。在这种情况下,如果MPCobj.Optimizer.UseSuboptimalSolution,u冻结在最近的成功解决方案。否则,它使用发现在最后的解算器迭代次优的解决方案。

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

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

提示

介绍了R2014b