该实例说明了如何利用模型预测控制器设计连续搅拌釜反应器(CSTR)MPC设计师.
连续搅拌釜反应器(CSTR)的线性化模型显示在CSTR模型.在模型中,前两个状态变量是试剂的浓度(这里称为C一个测量单位为kmol/m3.)和反应堆温度(这里称为T,用K表示),而前两个输入是冷却剂温度(Tc以k测量,用于控制植物的K,和流入饲料试剂浓度C一个在以kmol / m3.,(通常被认为是未训练的干扰)。
在这个例子中,冷却剂温度与其标称值的变化范围为±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.1Tr, 在哪里Tr是平均上升时间CSTR.
.对于这个例子,在指定MPC控制器采样时间字段,输入的样本时间0.5
秒。
默认情况下,所有工厂输入都定义为被操纵变量和所有工厂输出作为测量输出。在分配工厂I / O频道段,指定输入和输出通道索引,如下:
第一个输入,冷却剂温度,是一个被操纵的变量。
第二个输入,饲料浓度,是一个无法测量的干扰。
第一个输出,反应堆温度,是一个测量的输出。
第二个输出,反应物浓度,是一个未测量的输出。
点击进口.
该应用程序导入CSTR.
工厂到了数据浏览器.以下内容也将添加到数据浏览器:
MPC1.
- 默认的MPC控制器使用CSTR.
作为其内部模式。
scenario1
—默认仿真场景。
应用程序运行默认的模拟场景并更新输入响应和输出响应情节。闭环系统能够成功跟踪所需的测量输出,而未测量的输出不是这种情况。预期该行为是工厂只有一个操纵变量。
一旦定义了MPC结构,就不能在当前范围内更改它MPC设计师会话。要使用不同的通道配置,请启动应用程序的新会话。
在MPC设计师选项卡,选择I / O属性.
在“输入和输出通道规格”对话框中的名字列时,为每个输入和输出通道指定有意义的名称。
在单位列,可选地指定每个通道的单元。
由于状态空间模型是使用从标称工作点的偏差来定义的,因此保持面值对于每个输入和输出通道0
.
保持比例因子对于默认值的每个频道1
.
点击好吧.
的输入响应和输出响应绘图标签更新以反映新的信号名称和单位。
在MPC设计师选项卡,场景部分中,点击编辑场景>scenario1.
在“模拟场景”对话框中,设置仿真时间20秒。
在参考信号表,在第一行中,指定一个步骤大小的2
和一个时间的5
.
在信号列,在第二行中,选择一个常数
参考将浓度设定值保持在其标称值,该标称值在输入和输出通道规格对话框中定义(在本例中,标称值为零)。
默认方案配置为模拟步骤更改2
参考反应堆温度的开氏度,T在…的时候5
秒。
点击好吧.
响应图更新以反映新的模拟场景配置。的参考值C一个不再是一步,而是等于零的常数。
在数据浏览器,在场景部分中,点击scenario1
.点击scenario1
第二次,将场景重命名为stept.
.
在调整选项卡,视野节中,指定一个预测地平线的15
和一个控制地平线的3.
.
响应图更新以反映新的视野。的输入响应图显示,控制行为违反所需的限制冷却剂温度的变化率。
在设计部分中,点击约束.
在“约束”对话框中输入输出约束的部分,输入行,进入冷却液温度上部和下限最小值和最大限度分别列。
中指定更改限制的速率比例和RateMax列。
点击好吧.
的输入响应绘图显示受约束的操纵变量控制动作。
在调整选项卡,设计部分中,点击权重.
在输入权重表,增加操纵变量(MV)率重量来0.3
.增加MV率权重会惩罚控制器优化成本函数中MV的较大变化。
在输出权值表,保持默认值重量值。默认情况下,所有未测量输出的权重为零。
由于只有一个操纵变量,如果控制器尝试在特定设定点保持两个输出,则一个或两个输出将在其响应中表现出稳态误差。由于控制器忽略了具有零重量的输出的设定值,因此将浓度输出重量设置为零,允许反应器温度设定点跟踪零稳态误差。
点击好吧.
的输入响应绘图显示更保守的控制行动,这导致速度较慢输出响应.
假设应用程序在输出响应中需要零过冲。在性能调优选项卡,将闭环性能左边的滑块直到输出响应没有过冲。将此滑块移动到左侧同时增加控制器的操纵可变速率重量,并降低输出变量,产生更强大的控制器。
使用控制器调优权重闭环性能滑块,MPC设计师不会更改“权重”对话框中指定的权重。相反,滑块控制一个调整因子,它与用户指定的权重一起用于定义实际控制器权重。
这个因素是1
当滑块居中时;当滑块向左移动时,其值减少,并且随着滑块移动右侧的增加而增加。加权因子乘以被操纵的变量和输出变量权重,并将操纵的可变速率权重与权重对话框划分。
为了查看控制器的实际权值,将控制器导出到MATLAB中®工作区,并查看权重
属性导出的控制器对象。
在过程控制应用中,干扰抑制通常比设定值跟踪更重要。模拟控制器响应进料浓度无扰动的步骤变化。
在MPC设计师选项卡,场景部分中,点击情节方案>新情景.
在“模拟场景”对话框中,设置仿真时间20秒。
在参考信号表的第一行信号下拉列表中,选择一步
,然后指定一步大小的2
和A.时间的5
.在信号列,第二行,保持a常数
将浓度设定值保持在其标称值的参考值。
在未训练的紊乱行,在信号下拉列表中,选择一步
.然后指定一个步骤大小的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。