这个例子展示了如何在Simulink中设计一个连续搅拌釜式反应器(CSTR)的模型预测控制器金宝app®运用MPC设计师。
这个例子需要金宝app仿真软件控制设计™软件通过线性化非线性Simulink模型来定义MPC结构。金宝app
如果你没有金宝app仿真软件控制设计软件,你必须首先创建一个MPC
对象在MATLAB®工作区。有关更多信息,请参见设计的控制器可以使用MPC设计和在命令行设计MPC控制器。
CSTR是一种在工艺工业中常用的有套非绝热槽式反应器。
试剂的入口流一个送入以恒定的速率坦克。一阶,不可逆的,发生放热反应,以产生产物物流,其离开反应器以相同的速率作为输入流。
该CSTR模型有三个输入:
料液浓度(蔡) -试剂浓度一个进料流中(公斤·摩尔/米3.)
进料温度(钛-料流温度(K)
冷却液温度(TC) -反应堆冷却剂温度(K)
两个模型的输出是:
装运箱温度(T) -反应堆温度(K)
浓度 (CA) -试剂浓度一个在产品流中,也称为残留浓度(kgmol /米3.)
控制目标是保持残留浓度,CA在通过调节冷却剂的温度其标称设定点,TC。在进料浓度的变化,蔡,饲料温度,钛,对CSTR反应造成干扰。
反应堆的温度,T,通常是受控的。然而,对于这个例子,忽略反应器温度,并假设剩余浓度是直接测量的。
open_system (“CSTR_ClosedLoop”)
在Simuli金宝appnk模型窗口,双击MPC控制器块。
在块参数对话框,在一般选项卡,额外的港口部分中,检查测量的干扰(MD)选择。
点击应用添加医学博士
导入到控制器块。
在Simuli金宝appnk模型窗口中,连接进料温度块输出到医学博士
轮廓尺寸。
在MPC控制器块参数对话框,点击设计打开MPC设计师。
这一步要求金宝app仿真软件控制设计软件线性化Simulink模型。金宝app有关更多信息,请参见使用MPC设计器线性金宝app化Simulink模型。
如果你没有金宝app仿真软件控制设计软件,你必须首先创建一个MPC
对象。
在MPC设计师,在MPC设计师选项卡,结构部分,点击MPC结构。
在定义MPC结构的线性化对话框中,在控制器样品时间节,指定采样时间0.1
。
在MPC结构部分,点击更改I / O大小加入未测干扰和实测干扰信号维数。
在MPC块信号大小对话框中,指定每种类型的输入/输出通道的数量:
点击好。
在定义MPC结构的线性化对话框中,在金宝app植物输入信号的Simulink部分,应用程序增加了一排不可测的扰动(UD)。
操作变量、测量扰动和测量输出已经分配到各自的Simulink信号线,这些Simulink信号线连接到金宝appMPC控制器块。
在金宝app植物输入信号的Simulink部分中,选择不可测的扰动(UD)行,然后单击选择信号。
在Simuli金宝appnk模型窗口,请从输出信号进料浓度块。
该信号被突出显示,其块路径添加到选择信号对话框。
在“选择信号”对话框中单击添加信号(年代)。
在定义MPC结构的线性化对话框中,在金宝app植物输入信号的Simulink表,块路径对于未测量的干扰信号被更新。
在稳态平衡工况下,剩余浓度为金宝app2 kgmol/m时,对Simulink模型进行线性化处理3.。要计算这样一个工作点,加CA
信号作为一个修剪输出约束,并指定其目标约束值。
在Simuli金宝appnk模型窗口中,右键单击连接到的信号线CA
的外港CSTR块,并选择线性分析点>修剪输出约束。
的CA
信号现在可以用来定义输出规格,用于计算模型的稳态工作点。
在定义MPC结构的线性化对话框中,在金宝appSimulink的工作点下拉列表中的创建新的操作点,点击修剪模式。
在修剪模式对话框,在输出选项卡,检查框已知的列通道1
并指定一个值的2
。
此设置将操作点搜索期间输出信号的值限制为已知值。
点击开始削减。
在定义MPC结构的线性化对话框中,在金宝appSimulink的工作点段,计算出的工作点,op_trim1
,则添加到下拉列表并选中。
在下拉列表中,下查看/编辑,点击编辑op_trim1。
在“编辑”对话框中状态选项卡,实际DX列,近零导数的值指示所计算的工作点是在稳定状态。
点击初始化模式的操作点值设置Simulink模型的初始状态金宝app实际值列。这样做可以使您稍后在计算的操作点而不是在默认的模型初始条件下模拟Simulink模型。金宝app
在初始化模式对话框中,单击好。
当设定模型的初始条件,MPC设计师出口工作点到MATLAB的工作空间。此外,在Simulink配金宝app置参数对话框,在数据导入/导出部,它选择输入和初始状态参数和配置,使它们使用状态和输入在导出的工作点。
要重置模型的初始条件,例如,如果您删除导出工作点,清除输入和初始状态参数。
关闭编辑对话框。
在“通过线性化定义MPC结构”对话框中,单击定义和线性化使模型线性化。
将线性化的植物模型加入到数据浏览器。此外,以下将被添加到数据浏览器:
使用线性化的工厂作为内部预测模型创建的默认MPC控制器
默认的模拟场景
在MPC设计师选项卡,结构部分,点击I / O属性。
在输入和输出通道规格对话框,在名称列,为每个输入和输出通道指定有意义的名称。
在单位列中,指定为每个信号合适的单位。
的面值对于每个信号都是在计算的工作点对应的稳态值。
点击好。
控制器的主要目标是保持剩余浓度,CA的票面价值2
kgmol / m3.。为了做到这一点,控制器必须同时抑制已测量和未测量的扰动。
在脚本部分,点击编辑方案>scenario1。
在模拟的场景对话框,在参考信号表,信号下拉列表选择不变在其标称值保持输出设定值。
在测量的干扰表,信号下拉列表中,选择步。
指定步大小的10
和一个步骤时间的0
。
点击好。
在数据浏览器下,场景,点击scenario1
。点击scenario1
第二次,并重新命名它MD_reject
。
在脚本部分,点击情节场景>新场景。
在模拟的场景对话框,在无边无际的干扰表,信号下拉列表中,选择步。
指定步大小的1
和一个步骤时间的0
。
点击好。
在数据浏览器下,场景, 改名NewScenario
至UD_reject
。
为了查看调谐结果更容易,安排绘图区在同一时间,以显示这两种情况下的输出响应曲线。
在视图选项卡,瓷砖部分,点击顶部/底部。
plot显示区域更改为在输出响应图之上显示输入响应图。
拖动MD_reject:输出标签到顶部的阴谋。
在调音选项卡,地平线节中,指定一个预测地平线的20
和控制层的5
。
的输出响应基于新的地平线值地块更新。
使用默认的控制器约束和重配置。
在性能调优部分,拖闭环性能滑块向右,这导致输出严格的控制和更积极的控制移动。拖动滑块,直到MD_reject:输出响应在小于2秒达到稳定状态。
拖动状态估计滑块向右,从而导致更积极的不可测干扰抑制。拖动滑块,直到UD_reject:输出响应在3秒内达到稳态。
在分析部分,单击更新和模拟箭头。
下更新和模拟,点击只更新块。应用程序导出调好的控制器,mpc1
到MATLAB的工作空间。在Simuli金宝appnk模型中,MPC控制器块更新为使用导出的控制器。
在Simuli金宝appnk模型窗口中,将仿真持续时间更改为5
秒。
模型初始条件设定为用于线性化的标称工作点。
双击进料浓度块。
在“块参数”对话框中输入a常数值的11
以模拟在零时间单位阶跃。
点击应用。
在Simuli金宝appnk模型窗口中,单击跑。
的浓度输出响应类似于UD_reject响应,然而,稳定时间是1秒左右后。不同的结果是由于在所用的线性装置之间的不匹配MPC设计师仿真和Simulink模型非线性设备。金宝app
在块参数:料浓度对话框中,输入a常数值的10
使进料浓度恢复到其标称值。
点击好。
在Simuli金宝appnk模型窗口,双击进料温度块。
在块参数:进料温度对话框中,输入常数值的310
在时间零点,以模拟大小10的阶跃变化。
点击好。
在Simuli金宝appnk模型窗口中,单击跑。
的浓度输出响应类似于MD_reject的反应MPC设计师模拟。
[1] Seborg,D.E。,T. F.埃德加和D. A. Mellichamp,过程动力学与控制,第二版,威利,2004,第34-36页和94-95页。