使用MPC设计器设计控制器
本文以连续搅拌式反应器(CSTR)为例,介绍了模型预测控制器的设计方法MPC设计师.
装运箱模型
连续搅拌式反应器(CSTR)的线性化模型如图所示装运箱模型.在模型中,前两个状态变量是试剂的浓度(这里称为C一个单位是kmol/m3.)和反应堆温度(这里称为T,单位为K),而前两个输入为冷却剂温度(Tc,单位为K,用于控制装置),以及进料试剂浓度C一个f计量单位为kmol/m3.,(通常被认为是不可测量的干扰)。
在这个例子中,冷却剂温度从其标称值的±10度的范围和每秒±2度的有限变化率。
创建CSTR系统的状态空间模型。
A = [-5 -0.3427;47.68 - 2.785);B = [0 1 0.3 0];C = flipud(眼(2));D = 0 (2);CSTR = ss(A,B,C,D);
导入植物并定义MPC结构
mpcDesigner
在MPC设计师选项卡,在结构部分中,点击MPC结构.
在“通过导入定义MPC结构”对话框中,在从MATLAB工作区中选择一个植物模型或MPC控制器表中,选择装运箱
模型。
自装运箱
是一个稳定的连续LTI系统,MPC设计师设置控制器采样时间为0.1Tr,在那里Tr平均上升时间是装运箱
.对于本例,在指定MPC控制器采样时间字段,输入的采样时间0.5
秒。
默认情况下,所有设备输入被定义为操作变量,所有设备输出被定义为测量输出。在分配设备i/o通道节中,分配输入和输出通道索引,使其如下:
第一个输入,冷却剂温度,是一个操纵变量。
第二个输入,进料浓度,是一个无法测量的干扰。
第一个输出,反应堆温度,是一个测量输出。
第二个输出,反应物浓度,是一个无法测量的输出。
点击进口.
应用程序导入装运箱
植物到数据浏览器.还添加了以下内容数据浏览器:
mpc1
—默认的MPC控制器装运箱
作为内部模型。scenario1
—默认模拟场景。
该应用程序运行默认的模拟场景并更新输入响应而且输出响应情节。闭环系统能够成功地跟踪所需的测量输出,而对于未测量输出则不是这样。这种行为是预期的,因为工厂只有一个被操纵的变量。
一旦定义了MPC结构,就不能在当前范围内更改它MPC设计师会话。要使用不同的通道配置,请启动应用程序的新会话。
定义输入和输出通道属性
在MPC设计师选项卡上,选择I / O属性.
在“输入和输出通道规格”对话框中,单击的名字列中,为每个输入和输出通道指定有意义的名称。
在单位列,可选地为每个通道指定单元。
由于状态空间模型是使用从标称工作点的偏差定义的,所以保持名义价值对于每个输入输出通道都要0
.
保持比例因子为每个通道的默认值1
.
点击好吧.
的输入响应而且输出响应图标签更新,以反映新的信号名称和单位。
配置仿真场景
在MPC设计师选项卡,在场景部分中,点击编辑场景>scenario1.
在“模拟场景”对话框中设置仿真时间到20秒。
在参考信号表的第一行指定一个步骤大小的2
和一个时间的5
.
在信号第二行中的列,选择a常数
引用以保持浓度设定值为其标称值,该标称值在输入和输出通道规格对话框中定义(在本例中标称值为零)。
的步骤更改被配置为默认场景2
参考反应堆温度的开氏度,T,在一次5
秒。
点击好吧.
响应图更新以反映新的模拟场景配置。有参考价值C一个不再是阶跃,而是等于零的常数。
在场景Section的左下部分MPC设计师,点击scenario1
.点击scenario1
第二次,将场景重命名为stepT
.
配置控制器视野
在调优选项卡,在视野节中指定预测地平线的15
和一个控制层的3.
.
响应图的更新反映了新的视野。的输入响应图显示,控制行为违反了所需的约束,对冷却剂温度的变化速率。
定义输入约束
在设计部分中,点击约束.
在“约束”对话框中,在输入和输出约束部分,在输入行中,输入冷却剂温度的上下限最小值而且马克斯分别列。
中指定变更速率限制杀鼠灵而且RateMax列。
点击好吧.
的输入响应图显示了受约束的操纵变量控制动作。
指定控制器调优权重
在调优选项卡,在设计部分中,点击权重.
在输入重量表中,增加操纵变量(MV)率的重量来0.3
.增加MV率权值会导致控制器优化代价函数中MV变化较大。
在输出权值表,保持默认值重量值。默认情况下,所有未测量输出的权值为零。
由于只有一个被操纵的变量,如果控制器试图保持两个输出在特定的设定值,一个或两个输出将在其响应中显示稳态误差。由于控制器忽略零权重输出的设定值,设置浓度输出权重为零允许反应堆温度设定值跟踪与零稳态误差。
点击好吧.
的输入响应图显示了更保守的控制动作,这导致了更慢的输出响应.
消除输出超调
假设应用程序在输出响应中要求零超调。在性能调优选项卡,拖动闭环性能向左滑动条直到输出响应没有超调。向左移动这个滑块同时增加控制器的操纵变量权重,减少输出变量权重,产生一个更鲁棒的控制器。
方法调整控制器调优权重时闭环性能滑块,MPC设计师不会更改您在“权重”对话框中指定的权重。相反,滑块控制一个调整因子,它与用户指定的权重一起使用,以定义实际的控制器权重。
这个因子是1
当滑块居中时;它的值随滑块向左移动而减小,随滑块向右移动而增大。权重因子将操作变量与输出变量权重相乘,并在“权重”对话框中除以操作变量的比率权重。因此,移动滑块以增加鲁棒性会降低OV和MV权重,增加MV Rate权重,从而导致输出控制的放松和更保守的控制动作。
为了查看控制器的实际权重,将控制器导出到MATLAB中®工作区,并查看权重
属性。
测试控制器干扰抑制
在过程控制应用中,干扰抑制往往比设定点跟踪更为重要。模拟控制器对进料浓度无测量扰动阶跃变化的响应。
在MPC设计师选项卡,在场景部分中,点击情节场景>新场景.
在“模拟场景”对话框中设置仿真时间到20秒。
在参考信号表,在第一行,在信号下拉列表,选择一步
,然后指定一个步骤大小的2
,以及时间的5
.在信号列,在第二行,保留a常数
参考将浓度设定值保持在其标称值。
在无边无际的干扰行,在信号下拉列表,选择一步
.然后指定一个步骤大小的0.2
和一个时间的5
.
点击好吧.
该应用程序添加了新的场景数据浏览器并创建新的对应的输入响应而且输出响应情节。
在数据浏览器,在场景节中,重命名NewScenario
来distReject
.
正如你所看到的输出响应结果表明,闭环系统仍然能够达到预期的反应堆温度。在这种情况下,所需的控制动作,加上输入扰动,会导致输出浓度的稳态下降,C一个0.1 kmol/m3..
指定浓度输出约束
在此之前,您定义了控制器调谐权值,以实现跟踪反应堆温度设定点的主要控制目标和零稳态误差。这样可以使未测量的反应堆浓度自由变化。假设一旦反应器浓度降到0.05 kmol/m以下,就会发生不良反应3.相对于它的名义价值。若要约束反应器浓度,请指定输出约束。
在调优选项卡,在设计部分中,点击约束.
在“约束”对话框中,在输入和输出约束section,在第二行输出表,指定最小值的未测输出(UO)值-0.05
.
默认情况下,所有输出约束都是软的,这意味着它们的MinECR而且MaxECR值大于零。为了进一步软化未测产出(UO)约束,增加其MaxECR价值。
点击好吧.
在输出响应图,反应堆浓度,C一个,稳定在-0.05 kmol/m3.10秒后。由于只有一个被操纵变量,控制器在两个相互竞争的控制目标之间做出妥协:温度跟踪和约束满足。较软的输出约束使控制器能够牺牲更多的约束要求来改善温度跟踪。
由于输出约束是软的,控制器通过允许轻微的浓度约束违反来维持某种水平的温度控制。通常,根据您的应用程序需求,您可以尝试使用不同的约束设置来实现可接受的控制目标折衷。
出口控制器
在调优选项卡,在分析部分中,点击出口控制器为了保存调谐控制器,mpc1
,到MATLAB工作空间。
删除“植物”、“控制器”和“场景”
删除设备、控制器或场景数据浏览器,右键单击需要删除的项目,选择删除.
不能删除当前控制器。此外,如果一个植物或场景是唯一列出的植物或场景,则不能删除它。
如果某个植物已被任意控制器或场景使用,则不能删除该植物。
当需要删除多个设备、控制器或场景时,按住转变然后单击要删除的每个项目。
参考文献
塞博格,埃德加,梅利尚,过程动力学与控制,第二版,威利,2004年,第34-36页和94-95页。