此示例显示如何在Simulink中设计用于连续搅拌罐电抗器(CSTR)的模型预测控制器金宝app®使用MPC设计师。
这个例子需要金宝appSimulink Control Design™通过线性化非线性Simulink模型来定义MPC结构的软件。金宝app
如果你没有金宝appSimulink控制设计软件,您必须先创建一个mpc
对象在MATLAB中的应用®工作区。有关更多信息,请参阅使用MPC设计器设计控制器和在命令行中设计MPC控制器。
CSTR是一种常用于工艺行业的夹套的非抗脂罐反应器。
试剂的入口流一种以恒定速率向油箱中进料。发生一级不可逆放热反应以产生产物流,产物流以与输入流相同的速率离开反应器。
CSTR模型有三个输入:
饲料浓度(蔡) - 试剂的浓度一种在进料流中(kgmol/m3.)
饲料温度(钛) - 进料流温度(k)
冷却温度(Tc) - 反应器冷却剂温度(k)
两个模型输出是:
CSTR温度(T.) - 反应器温度(k)
集中(加利福尼亚州) - 试剂的浓度一种在产品流中,也称为残余浓度(kgmol / m3.)
控制目标是保持残留浓度,加利福尼亚州,通过调整冷却液温度使其处于标称设定点,Tc. 饲料浓度的变化,蔡和饲料温度,钛,导致CSTR反应中的扰动。
反应器温度,T.,通常是控制的。然而,对于该示例,忽略反应器温度,并假设直接测量残留浓度。
打开Simulin金宝appk模型。
Open_System('cstr_closedloop')
在Simuli金宝appnk模型窗口中,双击MPC控制器堵塞。
在“块参数”对话框中的一般的选项卡,选择测量干扰(md)选项。
点击申请要添加m
控制器块的输入端口。
在Simuli金宝appnk模型窗口中,连接饲料温度块输出到m
输入端口。
在此示例中,您可以从内部化Simulink模型金宝appMPC设计师,这需要金宝appSimulink控制设计软件。有关更多信息,请参阅使用MPC设计器线性金宝app化Simulink模型。
如果你没有金宝appSimulink控制设计软件,您必须先创建一个mpc
MATLAB工作区中的对象并指定该控制器对象MPC控制器堵塞。
开MPC设计师, 打开MPC控制器块并单击设计。
在MPC设计师,在MPC设计师标签,在结构部分,单击MPC结构。
通过线性化对话框定义MPC结构,在控制器采样时间部分,指定示例时间0.1
。
在里面MPC结构部分,单击更改I/O大小添加未测量的干扰和测量的扰动信号尺寸。
在MPC块信号大小对话框中,指定每种类型的输入/输出通道的数量。
点击好啊。
通过线性化对话框定义MPC结构,在金宝app用于工厂输入的Simulink信号部分,应用程序添加一行未测量干扰(UD)。
已经将操纵变量,测量的干扰和测量的输出分配给它们各自的Simulink信号线,其连接到金宝appMPC控制器堵塞。
在里面金宝app用于工厂输入的Simulink信号部分,选择未测量干扰(UD)行,然后单击选择信号。
在Simuli金宝appnk模型窗口中,单击来自饲料浓度堵塞。
信号将高亮显示,其块路径将添加到“选择信号”对话框中。
在“选择信号”对话框中,单击添加信号。
通过线性化对话框定义MPC结构,在金宝app用于工厂输入的Simulink信号表,桌子块路径对于未测量的干扰信号进行更新。
在此示例中,您可以在稳态平衡操作点处线性化模拟模型,其中剩余浓度为2k金宝appgmol / m3.. 要计算这样一个工作点,请添加加利福尼亚州
信号作为修剪输出约束,并指定其目标约束值。
在Simuli金宝appnk模型窗口中,选择连接到的信号线加利福尼亚州
输出端口CSTR堵塞。
上应用程序选项卡,单击线性化管理器。然后,在线性化标签,在插入分析点画廊,选择修剪输出约束。
这加利福尼亚州
该信号现在可用于定义用于计算模型稳态工作点的输出规格。
通过线性化对话框定义MPC结构,在金宝appSimulink工作点部分,在下拉列表中选择修剪模型。
使用时MPC设计师在MATLAB在线™,不支持修剪。金宝app您必须在模型初始条件下线性化模型。
在修剪模型对话框的情况下输出选项卡中的复选框众所周知专栏频道-1
并指定A.价值属于2
。
该设置在操作点搜索期间将输出信号的值约束到已知值。
点击开始修剪。
通过线性化对话框定义MPC结构,在金宝appSimulink工作点部分,计算的操作点,op_trim1
,被添加到下拉列表并选择。
在下拉列表中的查看/编辑点击编辑op_trim1.。
在“编辑”对话框中,在状态标签,在实际dx列中,接近零的导数值表示计算的工作点处于稳态。
将Simulink模型的初始状态设置为操作点值金宝app实际价值列,点击初始化模型。这样做使您可以稍后在计算的操作点模拟Simulink模型,而不是在默认模型初始条件下模金宝app拟Simulink模型。
在“初始化模型”对话框中,单击好啊。
设置模型初始条件时,MPC设计师将工作点导出到MATLAB工作空间。此外,在“Simulink配置参数”对话框中金宝app数据导入/导出节中,它选择输入和初始状态参数并配置它们以在导出的操作点中使用状态和输入。
要重置模型初始条件,例如,如果删除导出的工作点,请清除输入和初始状态参数。
关闭“编辑”对话框。
在“通过线性化定义MPC结构”对话框中,单击以线性化模型定义和线性化。
在里面数据浏览器,应用程序将添加以下项目。
线性化植物模型植物
默认MPC控制器MPC1.
使用线性化工厂作为内部预测模型创建
默认模拟场景场景1
上MPC设计师标签,在结构部分,单击I / O属性。
在“输入和输出通道规格”对话框中名称列,为每个输入和输出通道指定有意义的名称。
在里面单元列中,为每个信号指定适当的单位。
这名义价值对于每个信号是计算操作点处的相应稳态值。
点击好啊。
控制器的主要目标是保持残余浓度加利福尼亚州名义价值为2
kgmol / m.3.。为此,控制器必须拒绝测量和未测量的干扰。
上MPC设计师标签,在脚本节,选择编辑场景>场景1。
在“模拟方案”对话框中的参考信号表,在信号下拉列表选择常数将输出设定点保持在其标称值。
在里面测量的障碍表,在信号下拉列表,选择步。
指定一个步骤尺寸属于10
和一步时间属于0.
。
点击好啊。
在里面数据浏览器, 在下面场景点击场景1
。点击场景1
第二次,并重命名它md_reject.
。
在里面脚本部分,单击情节场景>新情景。
在“模拟方案”对话框中的未训练的紊乱表,在信号下拉列表,选择步。
指定一个步骤尺寸属于1
和一步时间属于0.
。
点击好啊。
在里面数据浏览器, 在下面场景,重命名newscenario
到拒绝
。
为便于查看调整结果,请安排绘图区域,以同时显示两种方案的输出响应图。
上看法标签,在瓷砖部分,单击上/下。这看法中不支持选项卡金宝appMatlab在线。
绘图显示区域改变以显示在输出响应图上方的输入响应曲线。
拖动并选择绘图,以便md_reject:输出标签位于上部绘图区域和UD_拒绝:输出情节在较低的绘图区域中。
上调谐标签,在地平线部分,指定一个预测地平线属于20
和控制地平线属于5.
。
这输出响应绘图将根据新的地平线值进行更新。
使用默认控制器约束和权重配置。
在里面性能调整部分,拖动闭环性能向右滑动,这将导致更严格的输出控制和更积极的控制移动。拖动滑块,直到md_reject:输出响应在不到两秒钟内达到稳态。
拖动国家估计数向右滑动,这将导致更积极的未测量干扰抑制。拖动滑块,直到UD_拒绝:输出响应在不到3秒钟内达到稳态。
在里面分析节,选择输出控制器>仅更新块。应用程序导出调谐控制器MPC1.
转到MATLAB工作区。在Simulink模型中金宝appMPC控制器块已更新以使用导出的控制器。
在Simuli金宝appnk模型窗口中的模拟选项卡,更改停止时间到5.
秒。
模型初始条件设置为用于线性化的标称操作点。
要在时间零点模拟进料浓度的单位步长,请打开饲料浓度阻止并增加其定值参数来自10
到11
。
在Simuli金宝appnk模型窗口中,打开专注范围并运行模拟。
输出响应类似于拒绝响应,但稳定时间约为1秒后。不同的结果是由于系统中使用的线性设备之间不匹配MPC设计师Simulink模型中的仿真和非线性对象。金宝app
为了模拟测量的干扰抑制,首先返回饲料浓度阻止其标称值10
。
要模拟时间零点进料温度的阶跃变化,请打开饲料温度阻止并增加其定值参数来自300
到310.
。
运行模拟。
输出响应类似于md_reject.回应来自MPC设计师模拟
[1] Seborg,Dale。E.,托马斯。F. Edgar和Duncan。A. Mellichamp,过程动态和控制. 第二版,新泽西州霍博肯:约翰·威利父子公司,2004年,第34-36页和第94-95页。