该实例说明了如何利用模型预测控制器设计连续搅拌釜反应器(CSTR)MPC设计师.
以下微分方程表示连续搅拌槽反应器(CSTR)放热反应的线性化模型:
其中输入为:
C人工智能-试剂浓度一个在饲料流(kgmol/m3.)
Tc-反应堆冷却剂温度(摄氏度)
输出如下:
T-反应堆温度(摄氏度)
C一个-试剂残留浓度一个在产品流(kgmol/m3.)
质数项,比如C”一个,表示偏离模型已线性化的名义稳态条件。
试剂浓度的测定常常是困难的。对于这个例子,假设:
Tc是一个操纵变量。
C人工智能是一种无法测量的扰动。
T是一个可测量的输出。
C一个是一个不可测量的输出。
模型可以用状态空间格式描述:
在那里,
在这个例子中,冷却剂温度与其标称值之间的范围为±10度,每个采样周期的变化率为±4度。
创建CSTR系统的状态空间模型。
A = [-0.0285 -0.0014;-0.0371 - -0.1476);B = [-0.0850 0.0238;0.0802 - 0.4462);C = [0 1;1 0];D = 0 (2, 2);装运箱= ss (A, B, C, D);
mpcDesigner
在MPC设计师选项卡,结构部分中,点击MPC结构.
在“通过导入来定义MPC结构”对话框中选择一个工厂模型或MPC控制器表,选择装运箱
模型。
自装运箱
是一个稳定的连续时间LTI系统,MPC设计师设置控制器采样时间为0.1Tr,在那里Tr平均上升时间是装运箱
.对于这个例子,在指定MPC控制器采样时间字段,输入的样本时间1
.
默认情况下,所有设备的输入都被定义为操作变量,所有设备的输出都被定义为测量输出。在分配设备输入输出通道段,指定输入和输出通道索引,如下:
第一个输入,冷却剂温度,是一个被操纵的变量。
第二个输入,饲料浓度,是一个无法测量的干扰。
第一个输出,反应堆温度,是一个测量的输出。
第二个输出,反应物浓度,是一个未测量的输出。
点击定义和进口.
应用程序导入装运箱
植物的数据浏览器.下面还添加到数据浏览器:
mpc1
—使用创建的默认MPC控制器sys
作为其内部模式。
scenario1
—默认仿真场景。
应用程序运行默认的模拟场景并更新输入响应和输出响应情节。
并排查看响应图,在视图选项卡,瓷砖部分中,点击左/右.
一旦定义了MPC结构,就不能在当前范围内更改它MPC设计师会话。要使用不同的通道配置,请启动应用程序的新会话。
在MPC设计师选项卡上,选择I / O属性.
在“输入和输出通道规格”对话框中的名字列时,为每个输入和输出通道指定有意义的名称。
在单位列,可选地指定每个通道的单元。
由于状态空间模型是使用从标称工作点的偏差来定义的,因此设置名义价值为每个输入和输出通道0
.
保持比例因子为每个通道的默认值1
.
点击好吧.
的输入响应和输出响应绘图标签更新以反映新的信号名称和单元。
在MPC设计师选项卡,场景部分中,点击编辑场景>scenario1.
在“模拟场景”对话框中,增加仿真时间来30.
秒。
在参考信号表,在第一行中,指定一个步骤大小的2
和一个时间的5
.
在信号列,在第二行中,选择常数
将浓度设定值保持在其标称值的参考值。
默认场景被配置为模拟的步骤更改2
反应堆温度的度数,T在…的时候5
秒。
点击好吧.
响应图更新以反映新的模拟场景配置。
在数据浏览器,在场景部分中,点击scenario1
.点击scenario1
第二次,将场景重命名为stepT
.
在调优选项卡,视野节中,指定一个预测地平线的15
和一个控制层的3.
.
响应图更新以反映新的视野。的输入响应图显示,对被操纵变量的控制行为违反所需冷却剂温度约束。
在设计部分中,点击约束.
在“约束”对话框中输入约束段中,输入冷却液温度的上下限最小值和马克斯分别列。
中指定更改限制的速率杀鼠灵和RateMax列。
点击好吧.
的输入响应绘图显示受约束的操纵变量控制动作。即使有限制的变化率,冷却剂温度在三个控制间隔内迅速上升到其最大限度。
在调优选项卡,设计部分中,点击权重.
在输入重量表,增加操纵变量(MV)率的重量来0.3
.增加MV率权重会惩罚控制器优化成本函数中MV的较大变化。
在输出权值表,保持默认值重量值。默认情况下,所有未测量输出的权重为零。
由于只有一个操纵变量,如果控制器试图将两个输出保持在特定的设定值,其中一个或两个输出将在响应中显示稳态误差。由于控制器忽略零重量输出的设定值,设置浓度输出重量为零允许反应器温度设定值跟踪零稳态误差。
点击好吧.
的输入响应Plot显示了更保守的控制动作,这导致了更慢的速度输出响应.
假设应用程序要求输出响应中的超调为零。在性能调优选项卡,将闭环性能滑块向左直到输出响应没有过度。将这个滑块向左移动,同时增加了控制器的操纵变量权值,并降低了输出变量权值,从而产生了更鲁棒的控制器。
使用控制器调优权重闭环性能滑块,MPC设计师不会更改“权重”对话框中指定的权重。相反,滑块控制一个调整因子,它与用户指定的权重一起用于定义实际控制器权重。
这个因素是1
当滑块居中时;它的值随着滑块向左移动而减小,随着滑块向右移动而增大。权重因子将被操纵变量和输出变量的权重相乘,并从权重对话框中将被操纵的可变率权重除以。
为了查看控制器的实际权值,将控制器导出到MATLAB中®工作区,并查看权重
属性导出的控制器对象。
在过程控制应用中,干扰抑制往往比设定值跟踪更重要。模拟控制器对进料浓度阶跃变化的响应,未经测量的扰动。
在MPC设计师选项卡,场景部分中,点击情节场景>新场景.
在“模拟场景”对话框中,设置仿真时间到30秒。
在无边无际的干扰表,信号下拉列表中,选择一步
.
在时间列,指定步长时间5
秒。
点击好吧.
该应用程序添加了新的场景数据浏览器然后创建新的对应输入响应和输出响应情节。
在数据浏览器,在场景节中,重命名NewScenario
来distReject
.
在输出响应图中,控制器返回反应堆温度,T,以接近预期设定值。然而,所需的控制动作会导致输出浓度的增加,CA6 kgmol / m3..
之前,您定义了控制器调谐权值,以实现以零稳态误差跟踪反应堆温度设定值的主要控制目标。这样做可以使未经测量的反应堆浓度自由变化。假设一旦反应器浓度超过3 kgmol/m,就会发生不需要的反应3..要限制反应器浓度,请指定一个输出限制。
在调优选项卡,设计部分中,点击约束.
在“约束”对话框中输出约束Section,表的第二行,指定a马克斯的未测量输出(UO)值3.
.
在输出约束部分中,点击约束软化的设置.
默认情况下,所有的输出约束都是软的,这意味着它们的MinECR和MaxECR值大于零。为了进一步软化未测输出(UO)的约束,增加它MaxECR价值。
点击好吧.
在输出响应一旦反应堆的浓度,CA,接近3kgmol /m3.,反应堆温度,T,开始增加。因为只有一个被操纵的变量,控制器在两个竞争的控制目标之间做出妥协:温度控制和约束满足。一个较软的输出约束使控制器能够牺牲更多的约束要求,以实现更好的温度跟踪。
由于输出约束是软的,控制器保持适当的温度控制,允许一个小的浓度约束违反。通常,根据您的应用程序需求,您可以试验不同的约束设置,以达到可接受的控制目标折衷。
在调优选项卡,分析部分中,点击出口控制器为了保存调谐控制器,mpc1
,到MATLAB工作空间。
中删除的设备、控制器或场景数据浏览器,右键单击要删除的项目,并选择删除.你也可以点击项目并点击删除键盘上的。
不能删除当前控制器。此外,如果一个植物或方案是唯一列出的植物或方案,则不能删除该植物或方案。
当设备被任何控制器或场景使用时,不能删除该设备。
要删除多个植物、控制器或场景,保持转变然后单击要删除的每个项目。
塞堡,埃德加和梅利尚,过程动力学与控制,第二版,Wiley, 2004,第34-36和94-95页。