此示例显示如何使用使用的连续搅拌罐电抗器(CSTR)来设计模型预测控制器MPC设计师.
下面的微分方程代表了包含放热反应的连续搅拌釜式反应器(CSTR)线性化模型:
其中输入为:
CAI.- 试剂浓度一种进料流中(kgmol/m3.)
T.C-反应堆冷却剂温度(摄氏度)
输出为:
T.-反应堆温度(摄氏度)
C一种-试剂剩余浓度一种在产品流(kgmol/m3.)
主要术语,例如C'一种,表示偏离模型已经线性化的标称稳态条件。
试剂浓度的测量通常是困难的。对于本例,假设:
T.C是一个操纵的变量。
CAI.是一个不可测量的干扰。
T.是一个测量输出。
C一种是一个未测量的输出。
该模型可以以状态空间格式描述:
在哪里,
在这个例子中,冷却剂温度的范围与标称值的偏差为±10度,并且每个样品周期的变化率为±4度。
创建CSTR系统的状态空间模型。
A = [-0.0285 -0.0014;-0.0371 - -0.1476);B = [-0.0850 0.0238;0.0802 - 0.4462);C = [0 1;1 0];D = 0 (2, 2);装运箱= ss (A, B, C, D);
mpcDesigner
在MPC设计师选项卡,结构部分中,点击MPC结构.
通过导入对话框定义MPC结构,在选择一个设备模型或MPC控制器表,选择装运箱
模型。
自装运箱
是一个稳定的连续LTI系统,MPC设计师设置控制器采样时间为0.1T.R.,在那里T.R.平均上升时间是装运箱
.对于这个例子,在指定MPC控制器采样时间字段,输入示例时间1
.
默认情况下,所有植物输入被定义为操作变量,所有植物输出被定义为测量输出。在分配工厂I / O频道部分,分配输入和输出通道索引,使:
第一输入,冷却剂温度是操纵变量。
第二个输入,饲料浓度是一个未训练的干扰。
第一个输出,反应器温度是测量的输出。
第二个输出,反应物浓度,是一个无法测量的输出。
点击定义和进口.
该应用程序导入装运箱
植物的数据浏览器.也将以下内容添加到数据浏览器:
MPC1.
- 使用的默认MPC控制器sys
作为它的内部模型。
场景1
- 默认模拟方案。
应用程序运行默认模拟场景并更新输入响应和输出响应情节。
小费
并排查看响应曲线,在视图选项卡,瓷砖部分中,点击左/右.
一旦你定义了MPC结构,你就不能在当前改变它MPC设计师会议。要使用不同的频道配置,请启动应用程序的新会话。
在MPC设计师选项卡,选择I / O属性.
在“输入和输出通道规格”对话框中,在的名字列,为每个输入和输出通道指定一个有意义的名称。
在单位列,可选地指定每个通道的单元。
由于使用与标称操作点的偏差定义了状态空间模型,因此设置了名义价值对于每个输入和输出通道0.
.
保持比例因子对于默认值的每个通道1
.
点击好吧.
这输入响应和输出响应绘图标签更新以反映新的信号名称和单位。
在MPC设计师选项卡,场景部分中,点击编辑场景>场景1.
在“模拟场景”对话框中,增加模拟持续时间来30.
秒。
在参考信号表的第一行中,指定一个步骤尺寸的2
和一个时间的5.
.
在信号列中,在第二行中选择a常数
参考以标称值保持浓度设定值。
将默认场景配置为模拟步骤更改2
反应堆温度的度数,T.在……的时候5.
秒。
点击好吧.
响应绘图更新以反映新的模拟方案配置。
在数据浏览器,在场景部分中,点击场景1
.点击场景1
第二次,并将场景重命名为stepT
.
在调优选项卡,视野节中,指定一个预测地平线的15
和一个控制地平线的3.
.
响应图更新以反映新的视野。这输入响应绘图表明,操纵变量的控制操作违反所需的冷却液温度约束。
在设计部分中,点击约束.
在“约束”对话框中,在输入约束部分,进入冷却液温度上下边界最小值和最大限度分别列。
中指定变化速率限制比例和RateMax列。
点击好吧.
这输入响应图中显示了受约束的可操纵变量控制动作。即使在受限制的变化速率下,冷却剂温度也会在三个控制区间内迅速上升到其最大极限。
在调优选项卡,设计部分中,点击重量.
在输入权重表,增加操纵变量(MV)率的重量来0.3
.增加MV率权重惩罚了控制器优化成本函数中MV的较大变化。
在输出权值表,保持默认值重量值。默认情况下,所有未测量的输出的权值为零。
由于只有一个被操纵的变量,如果控制器试图将两个输出保持在特定的设定值,一个或两个输出将在它们的响应中表现出稳态误差。由于控制器忽略零重量输出的设定值,设置浓度输出重量为零允许反应堆温度设定值跟踪零稳态误差。
点击好吧.
这输入响应绘图显示更保守的控制行动,这导致速度较慢输出响应.
假设应用程序要求输出响应的超调为零。在性能调整选项卡,将闭环性能滑块到左边直到输出响应没有过冲。将此滑块移动到左侧同时增加控制器的操纵可变速率重量,并降低输出变量,产生更强大的控制器。
调整控制器调优权重时使用闭环性能滑块,MPC设计师不会更改在权重对话框中指定的权重。相反,滑块控制调整因子,该调整因子与用户指定的权重一起使用以定义实际控制器权重。
这个因素是1
当滑块居中;随着滑块向左移动并随着滑块移动右移动而增加,其值减少。加权因子乘以被操纵的变量和输出变量权重,并将操纵的可变速率权重与权重对话框划分。
如果需要查看实际的控制器权值,请将控制器导出到MATLAB中®工作空间,并查看重量
导出控制器对象的属性。
在过程控制应用中,抗干扰往往比设定值跟踪更重要。模拟控制器对进料浓度阶跃变化的响应。
在MPC设计师选项卡,场景部分中,点击情节场景>新情景.
在“模拟场景”对话框中设置模拟持续时间到30秒。
在未训练的紊乱表,在信号下拉列表,选择一步
.
在时间列,指定步长为5.
秒。
点击好吧.
该应用程序添加了新的场景数据浏览器并创建新的对应输入响应和输出响应情节。
在数据浏览器,在场景节中,重命名newscenario
来distreject.
.
在输出响应控制器返回反应堆温度,T.,在其设定点附近的值按预期。但是,所需的控制动作导致输出浓度的增加,加利福尼亚州到6 kgmol / m3..
在前面,您定义了控制器调整权值,以实现以零稳态误差跟踪反应堆温度设定值的主要控制目标。这样做可以使未测量的反应堆浓度自由变化。假设一旦反应器浓度超过3 kgmol/m,不需要的反应就会发生3..为了限制反应器浓度,请指定输出约束。
在调优选项卡,设计部分中,点击约束.
在“约束”对话框中,在输出约束部分,表的第二行,指定a最大限度未测量输出(UO)值3.
.
在输出约束部分中,点击约束软化设置.
默认情况下,所有输出约束都是软约束,这意味着它们的min和MaxECR值大于零。为了进一步软化未测量的输出(UO)约束,增加其MaxECR价值。
点击好吧.
在输出响应一旦反应堆集中,加利福尼亚州,接近3 kgmol/m3.,反应堆温度,T.,开始增加。由于只有一个操纵变量,控制器在温度控制和约束满足这两个相互竞争的控制目标之间进行妥协。较软的输出约束使控制器能够牺牲更多的约束要求来实现更好的温度跟踪。
由于输出约束是软的,控制器保持适当的温度控制,允许一个小的浓度约束违反。通常,根据您的应用程序需求,您可以试验不同的约束设置来实现可接受的控制目标折衷。
在调优选项卡,分析部分中,点击出口控制器要保存调谐控制器,MPC1.
,到MATLAB工作空间。
中删除设备、控制器或场景数据浏览器,右键单击要删除的项目,然后选择删除.您也可以点击项目并击中删除在键盘上。
不能删除当前控制器。此外,如果电厂或场景是唯一列出的电厂或场景,则不能删除它。
如果任何控制器或场景使用工厂,则无法删除工厂。
删除多个工厂,控制器或场景,保持转移然后单击要删除的每个项目。
Seborg, D. E., T. F. Edgar,和D. A. Mellichamp,过程动态和控制,第2版,Wiley,2004,PP。34-36和94-95。