该示例显示了如何使用搅拌罐电抗器(CSTR)设计模型预测控制器MPC设计师.
连续搅拌釜反应器(CSTR)的线性化模型显示在CSTR模型.在模型中,前两个状态变量是试剂的浓度(这里称为C一种并在Kmol / m中测量3.)和反应器的温度(这里称为在k中测量的T),而前两个输入是冷却剂温度(T.C以k测量,用于控制植物的K,和流入饲料试剂浓度C一种在在kmol / m中测量3.,(通常被认为是未训练的干扰)。
对于该示例,冷却剂温度从其标称值的有限范围为±10度,并且每秒±2度的有限变化率。
创建CSTR系统的状态空间模型。
a = [-5 -0.3427;47.68 2.785];b = [0 1 0.3 0];c = flipud(眼睛(2));d =零(2);CSTR = SS(A,B,C,D);
mpcdesigner.
在这方面MPC设计师标签,在结构部分,点击MPC结构.
通过导入对话框定义MPC结构,在从MATLAB工作区选择工厂模型或MPC控制器表,选择CSTR.
模型。
自CSTR.
是一个稳定的连续时间LTI系统,MPC设计师设置控制器采样时间0.1T.R., 在哪里T.R.是平均上升时间CSTR.
.对于这个例子,在指定MPC控制器采样时间字段,输入示例时间0.5
秒。
默认情况下,所有工厂输入都定义为被操纵变量和所有工厂输出作为测量输出。在里面分配工厂I / O频道部分,分配输入和输出通道索引,使得:
第一个输入,冷却剂温度是操纵变量。
第二种输入,饲料浓度是未训练的干扰。
第一个输出,反应器温度是测量的输出。
第二输出反应物浓度是未测量的输出。
点击进口.
该应用程序导入CSTR.
工厂到了数据浏览器.以下内容也将添加到数据浏览器:
MPC1.
- 默认的MPC控制器使用CSTR.
作为其内部模式。
场景1.
- 默认的仿真方案。
应用程序运行默认的模拟场景并更新输入响应和输出响应情节。闭环系统能够成功跟踪所需的测量输出,而未测量的输出不是这种情况。预期该行为是工厂只有一个操纵变量。
一旦定义了MPC结构,就不能在当前范围内更改它MPC设计师会议。要使用不同的频道配置,请启动应用程序的新会话。
在这方面MPC设计师选项卡,选择I / O属性.
在“输入和输出通道规格”对话框中姓名列时,为每个输入和输出通道指定有意义的名称。
在里面单元列,可选地指定每个通道的单位。
由于使用与标称操作点的偏差定义了状态空间模型,因此保持面值对于每个输入和输出通道0.
.
保持比例因子对于默认值的每个频道1
.
点击好吧.
这输入响应和输出响应绘图标签更新以反映新的信号名称和单位。
在这方面MPC设计师标签,在设想部分,点击编辑场景>场景1..
在“模拟方案”对话框中,设置模拟持续时间20秒。
在里面参考信号表,在第一行中,指定一个步骤尺寸的2
和一个时间的5.
.
在里面信号列,在第二行中,选择一个常数
参考将浓度设定值保持在其标称值,该标称值在输入和输出通道规格对话框中定义(在本例中,标称值为零)。
默认方案配置为模拟步骤更改2
高度kelvin在参考反应器温度下,T.,一次5.
秒。
点击好吧.
响应绘图更新以反映新的模拟方案配置。参考价值C一种不再是一步,但常数等于零。
在里面数据浏览器,在场景部分,点击场景1.
.点击场景1.
第二次,并将场景重命名为stept.
.
在这方面调整标签,在视野部分,指定一个预测地平线的15.
和一个控制地平线的3.
.
响应绘图更新以反映新的视野。这输入响应绘图表明,控制动作违反了冷却液温度的变化率的所需约束。
在里面设计部分,点击约束.
在“约束”对话框中,在输入和输出约束部分,在输入行,进入冷却液温度上部和下限闵和最大限度分别列。
指定更改限值率比例和ratemax.列。
点击好吧.
这输入响应绘图显示受约束的操纵变量控制动作。
在这方面调整标签,在设计部分,点击重量.
在里面输入权重表,增加操纵变量(MV)率重量到0.3
.增加MV率权重会惩罚控制器优化成本函数中MV的较大变化。
在里面输出权值表,保持默认值重量价值观。默认情况下,所有未测量的输出都具有零权重。
由于只有一个操纵变量,如果控制器尝试在特定设定点保持两个输出,则一个或两个输出将在其响应中表现出稳态误差。由于控制器忽略了具有零重量的输出的设定值,因此将浓度输出重量设置为零,允许反应器温度设定点跟踪零稳态误差。
点击好吧.
这输入响应绘图显示更保守的控制行动,这导致速度较慢输出响应.
假设应用程序在输出响应中需要零过冲。在这方面性能调整标签,拖动闭环性能左边的滑块直到输出响应没有过冲。将此滑块移动到左侧同时增加控制器的操纵可变速率重量,并降低输出变量,产生更强大的控制器。
使用控制器调优权重闭环性能滑块,MPC设计师不会更改在权重对话框中指定的权重。相反,滑块控制调整因子,其与用户指定的权重一起使用以定义实际控制器权重。
这个因素是1
当滑块居中时;当滑块向左移动时,其值减少,并且随着滑块移动右侧的增加而增加。加权因子乘以被操纵的变量和输出变量权重,并将操纵的可变速率权重与权重对话框划分。
为了查看控制器的实际权值,将控制器导出到MATLAB中®工作区,并查看重量
导出控制器对象的属性。
在过程控制应用中,干扰抑制通常比设定值跟踪更重要。模拟控制器响应进料浓度无扰动的步骤变化。
在这方面MPC设计师标签,在设想部分,点击情节方案>新情景.
在“模拟方案”对话框中,设置模拟持续时间20秒。
在里面参考信号表,在第一行,在信号下拉列表,选择步
,然后指定一步尺寸的2
和A.时间的5.
.在里面信号列,在第二行中,保持一个常数
参考以标称值保持浓度设定值。
在里面未训练的紊乱行,在信号下拉列表,选择步
.然后指定一个步骤尺寸的0.2
和一个时间的5.
.
点击好吧.
该应用程序为此添加了新的方案数据浏览器并创造新的相应输入响应和输出响应情节。
在里面数据浏览器,在场景部分,重命名newscenario
到distreject.
.
正如你从中看到的那样输出响应图中,闭环系统仍能达到期望的反应堆温度。在这种情况下,所需的控制动作,加上输入干扰,导致输出浓度的稳态下降,C一种0.1 kmol / m3..
以前,您定义了控制器调谐权重,以实现跟踪电抗器温度设定点的主要控制目标,零稳态误差。这样做使得未测量的反应器浓度可以自由变化。假设一旦反应器浓度下降低于0.05 kmol / m,就会发生不需要的反应3.它的名义价值。要约束反应器浓度,请指定一个输出约束。
在这方面调整标签,在设计部分,点击约束.
在“约束”对话框中,在输入和输出约束部分,在第二行中产出表,指定一个闵未测量的输出(UO)值-0.05.
.
默认情况下,所有的输出约束都是软的,这意味着它们的min和MAXEC.值大于零。为了进一步软化未测量的输出(UO)约束,增加其MAXEC.价值。
点击好吧.
在里面输出响应图,反应器浓度,C一种,稳定在-0.05 kmol/m3.10秒后。由于只有一个操纵变量,控制器在两个竞争控制目标之间产生了折衷:温度跟踪和约束满足。更柔软的输出约束使控制器能够牺牲更多以提高温度跟踪来牺牲约束要求。
由于输出约束是软的,因此控制器通过允许小浓度约束违规来维持一些温度控制。通常,根据您的应用要求,您可以尝试不同的约束设置,以实现可接受的控制目标妥协。
在里面调整标签,在分析部分,点击出口控制器保存调谐控制器,MPC1.
,到Matlab工作区。
删除工厂,控制器或场景数据浏览器,右键单击要删除的项目,然后选择删除.
您无法删除当前控制器。此外,如果它是唯一列出的工厂或场景,您无法删除工厂或场景。
如果任何控制器或场景使用工厂,则无法删除工厂。
删除多个工厂,控制器或场景,保持转移并单击要删除的每个项目。
[1] Seborg,D. E.,T.F. Edgar和D.A.Mellichamp,过程动态和控制,第2版,Wiley,2004,PP。34-36和94-95。