该实例说明了如何在Simulink中设计连续搅拌釜反应器(CSTR)的模型预测控制器万博1manbetx®使用MPC设计师.
这个例子需要万博1manbetxSimulink控制设计™通过将非线性Simulink模型线性化来定义MPC结构的软件。万博1manbetx
如果你没有万博1manbetx仿真软件控制设计软件,你必须先创建一个货币政策委员会
对象。®工作区。有关更多信息,请参见使用MPC设计器设计控制器和在命令行上设计MPC控制器.
CSTR是工艺工业中常用的一种夹套式非绝热罐式反应器。
试剂的入口流一个饲料以恒定的速率注入罐中。一个一级,不可逆的放热反应发生产生产物流,它以与输入流相同的速度离开反应器。
CSTR模型有三个输入:
进料浓度(蔡) -试剂的浓度一个在饲料流(kgmol/m3.)
进料温度(“透明国际”) -进料流温度(K)
冷却液温度(Tc)-反应堆冷却剂温度(K)
两个模型输出是:
装运箱温度(T) -反应堆温度(K)
浓度(CA)-试剂浓度一个在产品流中,也称为残留浓度(kgmol /米3.)
控制目标是保持残留浓度,CA,通过调整冷却剂温度,使其处于标称设定值,Tc.饲料浓度的变化,蔡,以及进料温度,“透明国际”,在CSTR反应中引起干扰。
反应堆的温度,T,通常是受控的。然而,对于这个例子,忽略反应器温度,并假设剩余浓度是直接测量的。
打开Simulin万博1manbetxk模型。
开放式系统(“CSTR_ClosedLoop”)
在Simuli万博1manbetxnk模型窗口中,双击MPC控制器块。
在“块参数”对话框中,单击一般选项卡中,选择测量扰动(md)选项
点击应用添加医学博士
控制器模块的输入端口。
在Simuli万博1manbetxnk模型窗口中,连接进料温度块输出到医学博士
输入端口。
在本例中,您从内部线性化了Simulink模型万博1manbetxMPC设计师,这需要万博1manbetx仿真软件控制设计软件有关更多信息,请参见使用MPC设计器线性万博1manbetx化Simulink模型.
如果你没有万博1manbetx仿真软件控制设计软件,你必须先创建一个货币政策委员会
的控制器对象,并在MPC控制器块。
打开MPC设计师,打开MPC控制器块,然后单击设计.
在MPC设计师,在MPC设计师选项卡,结构部分中,点击MPC结构.
在“通过线性化定义MPC结构”对话框中控制器采样时间段,指定的采样时间0.1
.
在MPC结构部分中,点击改变I / O大小添加未测量的干扰和测量的干扰信号尺寸。
在“MPC块信号大小”对话框中,指定每种类型的输入/输出通道数。
点击好吧.
在“通过线性化定义MPC结构”对话框中万博1manbetx用于设备输入的Simulink信号Section时,应用程序添加一行无边无际的干扰(UD).
被操纵变量、被测扰动和被测输出已经分配到各自的Simulink信号线中,这些信号线连接到万博1manbetxMPC控制器块。
在万博1manbetx用于设备输入的Simulink信号部分中,选择无边无际的干扰(UD)行,然后单击选择信号.
在Simuli万博1manbetxnk模型窗口中,单击来自饲料浓度块。
信号被高亮显示,它的块路径被添加到“选择信号”对话框中。
在“选择信号”对话框中,单击添加信号(年代).
在“通过线性化定义MPC结构”对话框中万博1manbetx用于设备输入的Simulink信号表,块路径对未经测量的干扰信号进行了更新。
在本例中,您将Simulink模型线性化在稳态平衡工作点,此时残留浓度万博1manbetx为2 kgmol/m3..要计算这样的工作点,请将CA
将信号作为一个微调输出约束,并指定其目标约束值。
在Simuli万博1manbetxnk模型窗口中,选择所连接的信号线CA
输出端口装运箱块。
在应用程序选项卡上,单击线性化管理.然后,在线性化选项卡,插入分析点画廊,选择削减产出约束.
的CA
信号现在可以用来定义计算模型稳态工作点的输出规格。
在“通过线性化定义MPC结构”对话框中万博1manbetx仿真软件的操作点部分,在下拉列表中选择调整模型.
当使用MPC设计师在MATLAB在线™,不支持修边。万博1manbetx你必须在模型初始条件下将模型线性化。
在“修剪模型”对话框中,在输出选项卡,勾选框中的已知的列第一频道
并指定一个价值的2
.
这个设置将工作点搜索期间的输出信号的值限制为已知值。
点击开始修剪.
在“通过线性化定义MPC结构”对话框中万博1manbetx仿真软件的操作点节,计算的工作点,op_trim1
,将添加到下拉列表并选中。
在下拉列表中,在查看/编辑点击编辑op_trim1.
在“编辑”对话框中,在状态选项卡,实际dx列中,接近零的导数值表明计算的工作点处于稳态。
控件中的操作点值设置Simulink模型的初始状态万博1manbetx实际值列,单击初始化模型.这样做使您以后可以在计算的操作点而不是在默认的模型初始条件下模拟Simulink模型。万博1manbetx
在“初始化模型”对话框中单击好吧.
在设定模型初始条件时,MPC设计师将操作点导出到MATLAB工作区。此外,在Simulink配万博1manbetx置参数对话框中,在数据导入/导出段,它选择输入和初始状态参数,并将其配置为使用导出操作点中的状态和输入。
若要重置模型初始条件,例如删除导出的工作点,请清除输入和初始状态参数。
关闭“编辑”对话框。
在“通过线性化定义MPC结构”对话框中,通过单击将模型线性化定义和线性化.
在数据浏览器,应用程序将添加以下项目。
线性化植物模型植物
默认MPC控制器mpc1
使用线性化的植物作为内部预测模型创建
默认的模拟场景scenario1
在MPC设计师选项卡,结构部分中,点击I / O属性.
在“输入和输出通道规格”对话框中的名字列,为每个输入和输出通道指定有意义的名称。
在单位列,为每个信号指定适当的单位。
的名义价值对于每个信号,是计算出的工作点处的相应稳态值。
点击好吧.
控制器的主要目标是保持残留浓度CA以…的名义价值2
kgmol / m3..要做到这一点,控制器必须同时抑制测量和未测量的扰动。
在MPC设计师选项卡,场景部分中,选择编辑场景>scenario1.
在“模拟场景”对话框中,在参考信号表,信号下拉列表选择常数将输出设定值保持在其标称值。
在测量的干扰表,信号下拉列表中,选择一步.
指定一个步骤大小的10
和一个步骤时间的0
.
点击好吧.
在数据浏览器下,场景点击scenario1
.点击scenario1
第二次,重新命名它MD_reject
.
在场景部分中,点击情节场景>新场景.
在“模拟场景”对话框中,在无边无际的干扰表,信号下拉列表中,选择一步.
指定一个步骤大小的1
和一个步骤时间的0
.
点击好吧.
在数据浏览器下,场景、重命名NewScenario
来UD_reject
.
为了更容易地查看调优结果,请安排绘图区域,以便同时显示两个场景的Output Response绘图。
在视图选项卡,瓷砖部分中,点击上/下. 这个视图中不支持TAB万博1manbetxMATLAB在线.
绘图显示区域更改为在输出响应图上方显示输入响应图。
拖动并选择图形,以便MD_reject:输出选项卡位于上部打印区域和UD_reject:输出绘图位于较低的绘图区域中。
在调优选项卡,地平线节中,指定一个预测地平线的20.
和一个控制层的5
.
的输出响应根据新的视界值更新情节。
使用默认的控制器约束和权重配置。
在性能调优节中,拖动闭环性能滑块向右,这导致更严格的控制输出和更积极的控制动作。拖动滑块直到MD_reject:输出响应在两秒内达到稳定状态。
拖动状态估计滑块向右,这导致更积极的未经测量的干扰抑制。拖动滑块直到UD_reject:输出响应在3秒内达到稳定状态。
在分析部分中,选择出口控制器>只更新块. 该应用程序导出已调整的控制器mpc1
到MATLAB工作空间。在Simuli万博1manbetxnk模型中MPC控制器块更新为使用导出的控制器。
在Simuli万博1manbetxnk模型窗口中的模拟选项卡,更改停止时间来5
秒。
将模型初始条件设置为用于线性化的标称工作点。
要模拟在时间零时进料浓度的单位阶跃,打开饲料浓度阻塞并增加其恒定值参数从10
来11
.
在Simuli万博1manbetxnk模型窗口中,打开浓度范围并运行模拟。
输出响应类似于UD_reject响应,但沉降时间大约晚1秒。不同的结果是由于使用的线性植物之间的不匹配MPC设计师在Simulink模型中对非线性对象进行仿真。万博1manbetx
为了模拟测量的干扰抑制,首先返回饲料浓度块的标称值10
.
为了模拟进料温度在时间零点的阶跃变化,打开进料温度阻塞并增加其恒定值参数从300
来310
.
运行仿真。
输出响应类似于MD_reject的反应MPC设计师模拟。
[1] Seborg,戴尔。托马斯·E。埃德加和邓肯。a . Mellichamp过程动力学与控制.第2版,《中国科学院大学学报(自然科学版)》,2004。34-36和94 - 95。