该实例说明了如何在Simulink中设计连续搅拌釜反应器(CSTR)的模型预测控制器金宝app®使用MPC设计师.
这个例子需要金宝app仿真软件控制设计™软件通过线性化一个非线性Simulink模型来定义MPC结构。金宝app
如果你没有金宝app仿真软件控制设计软件,你必须先创建一个MPC.
Matlab的对象®工作区。有关更多信息,请参见使用MPC设计器设计控制器和在命令行上设计MPC控制器.
CSTR是工艺工业中常用的一种夹套式非绝热罐式反应器。
入口的试剂流一个以恒定速率进入罐中。进行一阶,不可逆,放热反应,以产生产物流,其以与输入流的速率相同的速率离开反应器。
CSTR模型有三个输入:
饲料浓度(蔡) -试剂的浓度一个在进料流中(kgmol / m3.)
进料温度(TI.) -进料流温度(K)
冷却液温度(TC.) -反应堆冷却剂温度(K)
两个模型输出是:
装运箱温度(T) -反应堆温度(K)
浓度(CA) -试剂浓度一个在产品流中,也称为残留浓度(kgmol /米3.)
控制目标是保持残留浓度,CA,通过调节冷却剂温度,在其标称设定值处,TC..饲料浓度的变化,蔡,和进料温度,TI.,在CSTR反应中引起干扰。
反应堆的温度,T,通常是受控的。然而,对于这个例子,忽略反应器温度,并假设剩余浓度是直接测量的。
打开Simulin金宝appk模型。
open_system (“CSTR_ClosedLoop”)
在Simuli金宝appnk模型窗口中,双击MPC控制器块。
在“块参数”对话框中,在一般选项卡中,选择测量干扰(MD)选择。
点击应用添加医学博士
输入端口到控制器块。
在Simuli金宝appnk模型窗口中,连接进料温度块输出到医学博士
输入端口。
在本例中,您从内部线性化了Simulink模型金宝appMPC设计师,这就需要金宝app仿真软件控制设计软件有关更多信息,请参见使用MPC设计器线性金宝app化Simulink模型.
如果你没有金宝app仿真软件控制设计软件,你必须先创建一个MPC.
的控制器对象,并在MPC控制器块。
开放MPC设计师,打开MPC控制器块,然后单击设计.
在MPC设计师,在这方面MPC设计师选项卡,结构部分,点击MPC结构.
在“通过线性化定义MPC结构”对话框中控制器样品时间段,指定的采样时间0.1
.
在MPC结构部分,点击改变I / O尺寸添加未测干扰和测得干扰信号维数。
在MPC块信号大小对话框中,指定每种类型的输入/输出通道的数量。
点击好的.
在“通过线性化定义MPC结构”对话框中金宝app植物输入的Simulink信号Section时,应用程序添加一行未测量的干扰(UD).
被操纵变量、被测扰动和被测输出已经分配到各自的Simulink信号线中,这些信号线连接到金宝appMPC控制器块。
在金宝app植物输入的Simulink信号部分中,选择未测量的干扰(UD)行,然后点击选择信号.
在“Simul金宝appink模型”窗口中,单击“输出信号”进料浓度块。
信号突出显示,并将其块路径添加到“选择信号”对话框中。
在“选择信号”对话框中,单击添加信号(年代).
在“通过线性化定义MPC结构”对话框中金宝app植物输入的Simulink信号表,块路径对于未测量的干扰信号,更新。
在本例中,您将Simulink模型线性化在稳态平衡工作点,此时残留浓度金宝app为2 kgmol/m3..要计算这样的操作点,请添加CA
将信号作为一个微调输出约束,并指定其目标约束值。
在“Simul金宝appink模型”窗口中,选择连接的信号线CA
输出端口Cstr.块。
在这一点应用程序选项卡上,单击线性化管理.然后,在线性化选项卡,插入分析点画廊,选择修剪输出约束.
的CA
信号现在可以用于定义计算模型稳态操作点的输出规范。
在“通过线性化定义MPC结构”对话框中金宝appSimulink操作点部分,在下拉列表中,选择修剪模型.
当使用MPC设计师在Matlab Online™,不支持修边。金宝app你必须在模型初始条件下将模型线性化。
在“修剪模型”对话框中,在输出选项卡,选中此框中已知的列1频道
并指定一个价值of2
.
这个设置将工作点搜索期间的输出信号的值限制为已知值。
点击开始削减.
在“通过线性化定义MPC结构”对话框中金宝appSimulink操作点节,计算的工作点,op_trim1
,添加到下拉列表中并被选中。
在下拉列表中,下查看/编辑,点击编辑op_trim1.
在“编辑”对话框中,在状态选项卡,实际DX.列,近零衍生值表明计算的操作点处于稳态。
控件中的操作点值设置Simulink模型的初始状态金宝app实际值列,单击初始化模型.这样做使您以后可以在计算的操作点而不是在默认的模型初始条件下模拟Simulink模型。金宝app
在“初始化模型”对话框中,单击好的.
设置模型初始条件时,MPC设计师将操作点导出到MATLAB工作区。此外,在“Simulink金宝app配置参数”对话框中,在数据导入/导出部分,它选择了输入和初始状态参数并配置它们以使用导出操作点中的状态和输入。
重置模型初始条件,例如,如果删除导出的操作点,请清除输入和初始状态参数。
关闭“编辑”对话框。
在“定义MPC结构”中,通过线性化对话框,通过单击线性化模型定义和线性化.
在数据浏览器,该应用程序添加以下项目。
线性化植物模型植物
默认MPC控制器mpc1
使用线性化的植物作为内部预测模型创建
默认仿真方案scenario1
在这一点MPC设计师选项卡,结构部分,点击I / O属性.
在“输入和输出通道规格”对话框中,在名称列,为每个输入和输出通道指定有意义的名称。
在单位列,为每个信号指定适当的单位。
的标称价值对于每个信号都是在计算的工作点对应的稳态值。
点击好的.
控制器的主要目标是保持残留浓度CA以名义价值2
kgmol / m3..要做到这一点,控制器必须同时抑制测量和未测量的扰动。
在这一点MPC设计师选项卡,场景部分,选择编辑场景>scenario1.
在“模拟方案”对话框中,在参考信号表,信号下拉列表选择常数将输出设定值以标称值保持在。
在测量的干扰表,信号下拉列表中,选择step.
指定步骤大小of10.
和一个步骤时间of0
.
点击好的.
在数据浏览器下,场景,点击scenario1
.点击scenario1
第二次,重新命名它MD_reject
.
在场景部分,点击情节场景>新场景.
在“模拟方案”对话框中,在无边无际的干扰表,信号下拉列表中,选择step.
指定步骤大小of1
和一个步骤时间of0
.
点击好的.
在数据浏览器下,场景,重命名NewScenario
到目前为止ud_reject.
.
要更轻松地查看调整结果,请在绘图区域同时显示两个方案的输出响应图。
在这一点查看选项卡,瓷砖部分,点击顶/底.的查看标签不受支持金宝appMATLAB在线.
绘图显示区更改为在输出响应绘图上方显示输入响应绘图。
拖动并选择图形,以便MD_reject:输出标签位于上面的地块区域,而UD_REJECT:输出地块位于地块较低的区域。
在这一点调整选项卡,地平线节中,指定一个预测地平线of20.
A.控制层of5
.
的输出响应根据新地平线值的绘图更新。
使用默认控制器约束和权重配置。
在性能调优部分,拖闭环性能滑块向右,这导致对输出的更严格,更积极的控制移动。拖动滑块直到MD_reject:输出响应在两秒内达到稳定状态。
拖着状态估计滑块向右,这导致更具侵略性的无紊乱的扰动。拖动滑块直到UD_REJECT:输出响应在3秒内达到稳定状态。
在分析部分,选择出口控制器>只更新块.应用程序导出调优的控制器mpc1
到Matlab工作区。在Simuli金宝appnk模型中,MPC控制器块更新以使用导出的控制器。
在Simuli金宝appnk模型窗口中模拟选项卡中,改变停止时间到目前为止5
秒。
模型的初始条件被设置为线性化所使用的标称工作点。
为了在零的时间内模拟进料浓度的单位步骤,打开进料浓度阻止并增加它恒定价值参数从10.
到目前为止11.
.
在Simuli金宝appnk模型窗口中,打开浓度范围并运行模拟。
输出响应类似于ud_reject.响应,但沉降时间稍后左右1秒。不同的结果是由于使用的线性植物之间的不匹配MPC设计师Simulink模型中的模拟和非线性工厂。金宝app
为了模拟测量的干扰抑制,首先返回进料浓度块的标称值为10.
.
要在零时模拟进料温度的步骤变化,打开进料温度阻止并增加它恒定价值参数从300
到目前为止310
.
运行模拟。
输出响应类似于MD_reject的反应MPC设计师模拟。
[1] Seborg,戴尔。托马斯·E。埃德加和邓肯。a . Mellichamp过程动力学与控制.第二次。霍博肯,N.J:John Wiley&Sons,Inc,2004. 34-36和94-95。