单片机控制器的设计万博1manbetx
本实例介绍了如何在Simulink中设计连续搅拌槽反应器(CSTR)的模型预测控制器万博1manbetx®使用MPC设计师。
这个例子需要万博1manbetxSimulink Control Design™软件通过线性化非线性Simulink模型来定义MPC结构。万博1manbetx
如果你没有万博1manbetxSimulink控制设计软件,您必须首先创建一个货币政策委员会
对象在MATLAB中®工作区。有关更多信息,请参见使用MPC设计器设计控制器和在命令行设计MPC控制器。
装运箱模型
介绍了连续搅拌槽式反应器(CSTR)的非线性模型装运箱模型。在模型中,输入被安排在向量中u(t),详情如下。
u1- - - - - -C房颤,进料流中试剂A的浓度,单位为kmol/m3.
u2- - - - - -Tf,进料流的温度,单位为K
u3.- - - - - -Tc,夹套冷却剂的温度,单位为K
而状态变量则排列在向量中x(t).
x1- - - - - -C一个,反应器中试剂A的浓度,单位为kmol/m3.
x2- - - - - -T,反应炉的温度,单位是K
控制目标是维持残留浓度,C一个,通过调节冷却液温度达到标称设定值;Tc。饲料浓度的变化,C房颤、进料温度;Tf,引起CSTR反应紊乱。
反应堆温度,T,通常是衡量的。但是,对于本例,忽略反应器温度,并假设直接测量残余浓度。
打开Simulin万博1manbetxk模型。
open_system (“CSTR_ClosedLoop”)
连接测量到的干扰信号
在Simuli万博1manbetxnk模型窗口中,双击MPC控制器块。
在“块参数”对话框中,在一般选项卡,选择测量扰动(md)复选框。
点击应用添加医学博士
控制器块的输入端口。
在Simuli万博1manbetxnk模型窗口中,连接进料温度块输出到医学博士
输入端口。
线性化Simulin万博1manbetxk模型
在本例中,您将从内部线性化Simulink模型万博1manbetxMPC设计师,这需要万博1manbetxSimulink控制设计软件有关更多信息,请参见线性化Simulin万博1manbetxk模型使用MPC设计器。
如果你没有万博1manbetxSimulink控制设计软件,您必须首先创建一个货币政策委员会
对象中指定该控制器对象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输入通道信号对话框中。
2 .在“选择MPC输入通道信号”对话框中,单击好吧。
在“通过线性化定义MPC结构”对话框中,在万博1manbetx用于工厂输入的Simulink信号表,块路径对未测扰动信号进行更新。
在本例中,您在残余浓度为2 kmol/m的稳态平衡工作点对Simuli万博1manbetxnk模型进行线性化3.。要计算这样一个操作点,将CA
信号作为微调输出约束,并指定其目标约束值。
在Simuli万博1manbetxnk模型窗口中,选择所连接的信号线CA
的输出端口。装运箱块。
在应用程序选项卡上,单击线性化管理。然后,在线性化选项卡,在插入分析点画廊,位于修剪部分中,选择微调输出约束。
的CA
信号现在可以用来定义计算模型稳态工作点的输出规格。
在“通过线性化定义MPC结构”对话框中,在万博1manbetxSimulink操作点节,在创建下拉列表,选择调整模型。
在“修剪模型”对话框中,在输出Tab,在已知的列频道- 1
并指定a价值的2
。
此设置将在工作点搜索期间输出信号的值限制为已知值。
点击开始削减。
中指定的特征在模型的状态输入空间中找到一个点的优化过程州,输入,输出选项卡。优化过程结束后,关闭修整进度窗口和修整模型对话框。
在“通过线性化定义MPC结构”对话框中,在万博1manbetxSimulink操作点节,计算出的工作点;op_trim1 (MPC_OP_Workspace)
,添加到下拉列表中并选中。
在万博1manbetxSimulink操作点部分中,点击编辑。
在“编辑”对话框中,在状态选项卡,在实际dx列中,接近于零的导数值表明计算的工作点处于稳态。
将Simulink模型的初始状态设置为中的工作点值万博1manbetx实际值列,单击初始化模型。这样做可以使您以后在计算的操作点上而不是在默认的模型初始条件下模拟Simulink模型万博1manbetx。
在“初始化模型”对话框中,单击好吧。
在设置模型初始条件时,MPC设计师将操作点导出到MATLAB工作空间。此外,在“Simulink万博1manbetx配置参数”对话框中,在数据导入/导出节,它选择输入和初始状态参数,并配置它们以使用导出操作点中的状态和输入。
若要重置模型初始条件,例如删除导出的操作点,请清除输入和初始状态参数。
关闭编辑对话框。
在“通过线性化定义MPC结构”对话框中,对Simulink模型进行线性化,并将线性化后的模型导入万博1manbetxMPC设计师通过点击进口。
在左侧的数据浏览器部分,应用程序添加了以下项目。
线性化和离散化的植物模型
植物
默认MPC控制器
mpc1
使用线性化的工厂作为内部预测模型创建默认仿真场景
scenario1
定义输入/输出通道属性
在MPC设计师选项卡,在结构部分中,点击I / O属性。
在“输入输出通道规格”对话框中,在“名字列,为每个输入和输出通道指定有意义的名称。
在单位列,为每个信号指定适当的单位。
的名义价值对于每个信号都是计算出的工作点对应的稳态值。
点击好吧。
定义干扰抑制仿真场景
控制器的主要目的是控制残留浓度C一个的名义值2
kmol / m3.。为此,控制器必须抑制已测和未测扰动。
在MPC设计师选项卡,在场景部分中,选择编辑场景>scenario1。
在仿真场景对话框中,在参考信号(所有输出的设定值)表,在信号下拉列表选择常数将输出设定值保持在其标称值上。
在测量的干扰表,在信号下拉列表,选择一步。
指定一个步骤大小的10
还有一个步骤时间的0
。
点击好吧。
在数据浏览器下,场景,点击scenario1
。点击scenario1
第二次,并重新命名它MD_reject
。
在场景部分中,点击情节场景>新场景。
在仿真场景对话框中,在无边无际的干扰表,在信号下拉列表,选择一步。
指定一个步骤大小的1
还有一个步骤时间的0
。
点击好吧。
在数据浏览器下,场景、重命名NewScenario
来UD_reject
。
安排输出响应图
为了更容易查看调优结果,请安排绘图区域,以便同时显示两种场景的Output Response绘图。
右键单击输入图选项卡栏并选择闭合输入图。
绘图显示区域更改为仅显示输出绘图。
右键单击输出图选项卡栏并选择瓷砖都>上/下。
绘图显示区域变为显示MD_reject:输出TAB在上面的地块区域UD_reject:输出地块位于较低的地块面积。
调谐控制器性能
在调优选项卡,在地平线节,指定预测地平线的20.
和一个控制层的5
。
的输出响应根据新的地平线值更新图。
使用默认的控制器约束和权重配置。
在性能调优部分,拖动闭环性能滑块向右,这导致更严格的控制输出和更积极的控制动作。拖动滑块,直到MD_reject:输出响应在不到3秒的时间内达到稳态。
拖动状态估计滑块向右,这导致更积极的未测量干扰抑制。拖动滑块,直到UD_reject:输出响应在不到3秒的时间内达到稳态。
更新万博1manbetx带调谐控制器的模型
在分析部分中,选择出口控制器>仅更新块。该应用程序导出调优控制器mpc1
到MATLAB工作空间。在Simuli万博1manbetxnk模型中,MPC控制器块被更新为使用导出的控制器。
模拟非测量干扰抑制
在Simuli万博1manbetxnk模型窗口中,在模拟选项卡中,改变停止时间来5
秒。
模型初始条件设为用于线性化的标称工作点。
要模拟零时进料浓度的单位阶跃,打开进料浓度阻塞并增加其恒定值参数从10
来11
。
在Simuli万博1manbetxnk模型窗口中,打开浓度范围和运行模拟。若要缩放绘图垂直轴,请单击范围绘图工具栏中的垂直缩放按钮。
输出响应类似于UD_reject响应,但是沉淀时间要长1秒左右。不同的结果是由于线性装置之间的不匹配MPC设计师在Simulink模型中进行非线性装置的仿真。万博1manbetx
模拟测量干扰抑制
为了模拟测量到的干扰抑制,首先返回进料浓度块的标称值为10
。
为了模拟零时刻进料温度的阶跃变化,打开进料温度阻塞并增加其恒定值参数从300
来310
。
运行模拟,然后缩放绘图垂直轴。
输出响应类似于MD_reject政府的回应MPC设计师模拟。