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