主要内容

多个显式MPC控制器

多个显式MPC控制器

  • 库:
  • 模型预测控制工具箱

  • 多个显式MPC控制器块

描述

多个显式MPC控制器块使用以下输入信号:

  • 测量的植物产量(

  • 参考或设定点(裁判

  • 测量的植物干扰(医学博士),如果任何

  • 开关信号(开关

多个显式MPC控制器block可根据当前运行条件实时切换多个显式MPC控制器。通常,您为操作空间的特定区域设计每个控制器。使用可用的测量,您可以检测当前操作区域并使用开关轮廓尺寸。

开关信号选择活跃的控制器在两个或多个显式MPC控制器的候选列表中。这些控制器通过在每个控制区间使用表格查找控制律来减少在线计算的工作量,而不是解决二次规划问题。有关更多信息,请参见明确的MPC控制器

为了提高效率,非活动控制器不评估其控制律。然而,为了在控制器之间提供无颠簸传输,非活动控制器继续执行状态估计。

像的多个MPC控制器块,则不能禁用多个显式MPC控制器块。一个控制器必须始终处于激活状态。

就像明确的MPC控制器块,多个显式MPC控制器块只支持可选万博1manbetxMPC特性的一个子集,如下表所示。

万博1manbetx支持的功能 不支万博1manbetx持的功能
  • 内置(卡尔曼滤波)和自定义状态估计

  • 输出状态估计结果

  • 外部操纵变量反馈信号输入

  • 单精度块数据(默认为双精度)

  • 继承采样时间

  • 在线调优(惩罚权重调整)

  • 在线约束调整

  • 在线操纵可变目标调整

  • 参考和/或测量扰动预览

港口

输入

全部展开

需要输入

使用开关输入端口以选择主控制器。的开关输入信号必须是来自的标量整数1Nc,在那里Nc是指定的候选控制器的数量。在每个控制瞬间,这个信号指定主动控制器。的开关值1对应于候选控制器单元格数组中的第一个条目,值为2对应于第二个控制器,依此类推。

如果开关信号超出了1到的范围Nc,块保留以前的控制器输出。

测量的输出信号,指定为矢量信号。候选控制器使用测量的设备输出来改进它们的状态估计。

所有候选控制器必须使用相同的状态估计选项,无论是默认的还是自定义的。如果候选控制器使用默认状态估计,则必须将测量的设备输出连接到输入端口。如果候选控制器使用自定义状态估计,则必须将估计的植物状态信号连接到x (k | k)输入端口。

依赖关系

要启用该端口,请清除使用自定义状态估计而不是使用内置的卡尔曼滤波器参数。

自定义状态估计,指定为矢量信号。候选控制器使用连接状态估计,而不是使用内置估计器估计状态。当一种替代的评估技术被认为优于内置的评估器,或者当状态完全可测量时,使用自定义状态评估。

所有候选控制器必须使用相同的状态估计选项,无论是默认的还是自定义的。如果候选控制器使用自定义状态估计,则必须将当前状态估计连接到x (k | k)输入端口。如果您的候选控制器使用默认状态估计,您必须将测量的输出连接到输入端口。

当您使用自定义状态估计时,所有候选控制器必须具有相同的维度。所有候选控制器必须使用相同的状态定义(状态的数量和顺序),用于各自的设备、干扰和测量噪声模型。

依赖关系

要启用该端口,请选择使用自定义状态估计而不是使用内置的卡尔曼滤波器参数。

在每个控制瞬间裁判信号必须包含当前的参考值(目标或设定值)ny输出变量,ny为输出总数,包括已测量输出和未测量输出。由于此块不支持引用预览,万博1manbetx裁判一定是矢量信号。

额外的输入

如果您的控制器预测模型已经测量到扰动,您必须启用这个端口,并将包含行向量信号的端口连接到它N医学博士元素,N医学博士为被测扰动的个数。

由于这个块不支持测量干扰预览,万博1manbetx医学博士一定是矢量信号。

依赖关系

要启用该端口,请选择测量的干扰参数。

被控对象在上一个控制间隔中使用的控制信号,指定为长度矢量信号Nmv,在那里Nmv为被操纵变量的个数。所有候选控制器都使用这个信号在每个控制区间更新它们的控制器状态估计。这有助于最小化无颠簸转换时,驱动控制器被切换。当被控对象中使用的操纵变量(MV)向量与块计算的MV向量不同时(例如,由于信号饱和或覆盖条件),使用这个输入还可以提高状态估计的准确性。

控制器状态估计假设MV向量是分段常数。因此,在时间tk,ext.mv值必须为两次之间的有效MV向量tk - 1tk.例如,如果mv在这个时间间隔内实际上是变化的,那么您可以提供按时间计算的时间平均值tk

请注意

  • 连接ext.mv实际应用于上一个控制区间内的设备的MV信号。通常,这些MV信号是由驱动控制器块生成的值,尽管并不总是这样。如果控制器块没有驱动装置,则将实际控制信号馈电给ext.mv也可以帮助实现无颠簸转移时,控制器切换回在线。

  • 当控制器驱动植物时使用此选项会在Simulink中引起代数循环万博1manbetx®模型,因为有直接的馈通ext.mv的输入mv外港。为了防止这种代数循环,插入a内存块或单位延迟块。

有关使用外部操纵变量输入端口进行无颠簸传输的示例,请参阅切换控制器在线和离线与无颠簸转移

依赖关系

要启用该端口,请选择外部操纵变量参数。

输出

全部展开

要求输出

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

多个显式MPC控制器块将主动控制器的输出传递给mv输出。因此,主控制器更新mv使用显式MPC控制器对象中包含的控制律在每个控制时刻的输出。如果控制律评估失败,该信号不变;也就是说,它在先前的成功结果中被保存。

额外的输出

该输出表明最新的显式MPC控制律评估是否成功。输出端口提供一个标量信号,该信号具有以下值之一:

  • 成功的显式控制律评估

  • 0 -由于一个或多个控制律参数超出范围而导致的故障

  • - 1 -控制律参数在有效范围内,但需要外推

如果状态是0还是-1mv外埠保持在最后已知的良好价值。

依赖关系

要启用该端口,请选择分段仿射函数求值的状态参数。

该输出提供了在最新的显式控制律评估中使用的多面体区域的指标。如果控制律评估失败,则该出口的信号为零。

依赖关系

要启用该端口,请选择分段仿射函数的区域数参数。

估计控制器在每个控制时刻的状态,作为矢量信号返回。估计的状态包括对象状态、扰动状态和噪声模型状态。如果使用自定义状态估计,输出信号的值与x (k | k)输入信号。

依赖关系

要启用该端口,请选择估计控制器状态参数。

参数

全部展开

候选控制器,指定为以下任意一个:

  • 单元阵列的explicitMPC对象

  • 字符串的单元格数组或字符向量的单元格数组,其中每个元素是explicitMPC对象。®工作空间

指定的阵列必须包含至少两个候选控制器。单元格数组中的第一个条目是对应于开关输入值为1的控制器,第二个条目对应于开关输入值为2的控制器,以此类推。

编程使用

块参数:empcobjs
类型:字符串,字符向量,字符串的单元数组,字符向量的单元数组
默认值:""

候选控制器的初始状态,指定为以下状态之一:

  • 单元阵列的mpcstate对象。

  • 字符串的单元格数组或字符向量的单元格数组,其中每个元素是mpcstate对象的MATLAB工作空间。

  • {[],[],...}{'[]','[]',...},或{"[]","[]",...}-使用中定义的名义条件模型。Nominal属性作为每个候选控制器的初始状态。

属性中定义的标称值,如果将该参数留空,则块将使用模型。Nominal财产的explicitMPC对象。就您所知,可以使用此参数使控制器状态反映模拟开始时真实的植物环境。

如果启用了自定义状态估计,则该块将忽略初始控制器状态单元阵列参数。

编程使用

块参数:x0
类型:字符串,字符向量,字符串的单元数组,字符向量的单元数组
默认值:""
General选项卡

如果你的控制器已经测量到扰动,你必须选择这个参数来添加医学博士输出端口到块。

编程使用

块参数:md_inport_multiple
类型:字符串,特征向量
价值观:“关闭”“上”
默认值:“上”

选择此参数添加ext.mv块的输入端口。

编程使用

块参数:mv_inport_multiple
类型:字符串,特征向量
价值观:“关闭”“上”
默认值:“关闭”

选择此参数添加状态输出端口到块。

编程使用

块参数:return_status_multiple
类型:字符串,特征向量
价值观:“关闭”“上”
默认值:“关闭”

选择此参数添加地区输出端口到块。

编程使用

块参数:return_region_multiple
类型:字符串,特征向量
价值观:“关闭”“上”
默认值:“关闭”

选择此参数添加est.state输出端口到块。

编程使用

块参数:return_state_multiple
类型:字符串,特征向量
价值观:“关闭”“上”
默认值:“关闭”

选择此参数可以删除输入端口,并添加x (k | k)输入端口。

编程使用

块参数:state_inport_multiple
类型:字符串,特征向量
价值观:“关闭”“上”
默认值:“关闭”
其他选项卡

将受操纵变量的块数据类型指定为以下类型之一:

  • —双精度浮点数

  • —单精度浮点数

    如果在单精度目标上实现块,则指定输出数据类型为

  • 数据类型的表达式—计算结果为其中之一的表达式.有关更多信息,请参见控制信号数据类型(万博1manbetx模型)

编程使用

块参数:BlockDataType_multiple
类型:字符串,特征向量
价值观:“替身”“单身”数据类型的表达式
默认值:“替身”

选择此参数将继承父子系统的样本时间作为块样本时间。这样做允许您在内部有条件地执行这个块函数调用子系统(万博1manbetx模型)触发子系统(万博1manbetx模型)块。例如,请参见在函数调用和被触发的子系统中使用MPC控制器块

请注意

你必须执行函数调用子系统触发子系统以控制器的采样率阻塞。否则,您将看到意想不到的结果。

如果清除此参数(默认),则块的采样时间将从控制器对象继承。

控件上的Simulink模型窗口中查看块的示例时间万博1manbetx调试选项卡,在信息覆盖,选择颜色文本.有关更多信息,请参见查看样本时间信息(万博1manbetx模型)

编程使用

块参数:SampleTimeInherited_multiple
类型:字符串,特征向量
价值观:“关闭”“上”
默认值:“关闭”

扩展功能

C / c++代码生成
使用Simulink®Coder™生成C和c++代码。万博1manbetx

PLC的代码生成
使用Simulink®PLC Coder™生成结构化文本代码。万博1manbetx

介绍了R2016b