使用MPC设计器设计控制器
以连续搅拌釜反应器为例,介绍了如何设计模型预测控制器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 =翻转(眼(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一个不再是阶跃,而是等于零的常数。
在场景部分在左下部分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.相对于它的名义价值。若要约束反应器浓度,请指定输出约束。
在调优选项卡,在设计部分中,点击约束.
在“约束”对话框中,在输入和输出约束节,在第二行输出表,指定最小值的未测输出(UO)值-0.05
.
默认情况下,所有输出约束都是软的,这意味着它们的MinECR而且MaxECR值大于0。为了进一步软化未测量输出(UO)约束,增加其MaxECR价值。
点击好吧.
在输出响应图,反应堆浓度,C一个,稳定在-0.05 kmol/m3.10秒钟后。由于只有一个操纵变量,控制器在两个相互竞争的控制目标之间做出妥协:温度跟踪和约束满足。较软的输出约束使控制器能够牺牲更多的约束要求来改善温度跟踪。
由于输出约束是软的,控制器通过允许少量违反浓度约束来保持一定程度的温度控制。通常,根据应用程序需求,您可以试验不同的约束设置,以实现可接受的控制目标折衷。
出口控制器
在调优选项卡,在分析部分中,点击出口控制器为了保存调优的控制器,mpc1
,到MATLAB工作空间。
删除植物、控制器和场景
删除设备、控制器或场景数据浏览器,右键单击需要删除的项目,选择删除.
不能删除当前控制器。此外,如果工厂或场景是唯一列出的工厂或场景,则不能删除它。
如果已被任何控制器或场景使用,则不能删除。
如需删除多个植物、控制器或场景,请长按转变然后单击要删除的每个项。
参考文献
[1]塞博格,D. E.埃德加,D. A.梅利尚,过程动力学与控制,第二版,Wiley, 2004, pp. 34-36和94-95。