# 连续搅拌槽反应器
此示例演示如何使用敏感度分析工具箱对连续搅拌槽反应器(CSTR)的设计进行采样和探索,以在同时考虑反应器输入端温度和浓度的不确定性的前提下,最小化产品浓度变化和生产成本。
# 背景介绍
连续搅拌槽反应器(CSTR)是过程工业中常见的一种反应器,通常假设其内部完全混合,并且有一个单一的、放热的、不可逆的一级反应,即反应物 A 转化为产物 B。以下是 CSTR 的基本原理和模型方程:

质量平衡方程:描述了反应器中 A 物质浓度随时间的变化,包括进料带来的 A 物质浓度变化和反应消耗的 A 物质浓度变化。
能量平衡方程:描述了反应器温度随时间的变化,包括进料带来的温度变化、反应放热、冷却水带走的热量。
反应速率方程:描述了反应速率
与温度 的关系,是一个指数衰减函数,涉及到反应的活化能 和反应常数 。
具体参数解释如下:
: CSTR 反应器中 A 物质的浓度,单位 ; : 进料中 A 物质的浓度,单位 ; : CSTR 反应器中的温度,单位 ; : 进料的温度,单位 ; : 冷却水的温度,单位 ; : 体积流量,单位 ; : CSTR 中物质的密度,单位 ; : CSTR 的高度,单位 ; : CSTR 的加热横截面积,单位 ; : 反应 的前指数因子,单位 ; : 反应 的活化能,单位 ; : 反应 的反应热, ; : 玻尔兹曼气体常数, ; : 热熔, ; : 热传递系数, 。
按照上述原理描述,使用 Sysplorer 搭建的基于 Modelica 的物理仿真模型如下图所示:
# 问题描述
在工业生产中,设计 CSTR 时,需要优化反应器的几何参数(横截面积和高度),以达到两个主要目标:一是减少残余浓度变化,以保证产品质量和提高经济效益;二是降低冷却液的平均温度,以减少能源消耗和成本。同时,设计还必须能够适应进料浓度和温度的不确定性,以确保反应器在不同工作条件下的稳定性和效率。所以本次设计的具体目标如下:
- 最小化残余浓度(
)的变化:残余浓度的变化会影响 CSTR 产品的质量,最小化这种变化可以提高 CSTR 的盈利能力。 - 最小化平均冷却液温度(
):加热或冷却夹套冷却液的成本较高,通过最小化平均冷却液温度可以提高 CSTR 的效率。 - 考虑进料质量的变化:由于不同批次的进料质量可能不同,设计必须能够适应供应进料浓度(
)和进料温度( )的变化,以确保反应器在不同批次进料条件下的稳定性和效率。
# 进行敏感度分析
# 准备工作
在 Sysplorer 中加载
,并打开 CSTR.mainCSTR,然后在工具栏中单击敏感度分析图标打开敏感度分析工具箱。# 选择调节参数
- 在敏感度分析工具箱工具栏中单击调节参数,选择
、 、 和 作为调节参数。

- 单击确定按钮关闭调节参数界面。

# 生成随机参数值
单击参数采样图标,打开生成随机参数值界面。
在生成随机参数值界面指定参数如下:
- 设置采样数量为 1000;
- 设置参数
的数据分布类型为均匀分布,设置其下界为 0.2、上界为 2; - 设置参数
的数据分布类型为均匀分布,设置其下界为 0.5、上界为 3; - 设置参数
的数据分布类型为正态分布,设置其均值参数为 10、标准差为 0.5; - 设置参数
的数据分布类型为正态分布,设置其均值参数为 295、标准差为 3。
按照上述要求设置完参数后,单击确定即可生成一个参数可编辑表,你可以在可编辑表中手动(双击)修改某个参数的任意采样数值。
另外你还可以在数据浏览器中选中上一步中生成的参数集的名称(ParamSet),然后在敏感度分析顶部的工具栏中单击绘图>散点图绘制所有参数的采样数据直方图与散点图(如下图所示)。
提示
- 请注意,由于随机数生成器的原因,在你按照这个文档进行操作时,可能得到的参数的直方图与散点图会与上面的图有点不一样,不要惊讶,这是正常的;
- 你可以通过设置直方图条数来控制柱状图的显示密度,以改善柱状图的美观度,例如下图设置的直方图条数为 50;
- 敏感度分析提供的窗口是可弹出式的,你可以在需要的时候将不同的窗口分别弹出显示。
# 设计评估需求
按照问题描述中分析,我们需要最小化残余浓度(
创建需求 Req_1
单击新建需求图标,选择变量属性需求,并按照以下要求设置需求属性。- 在选择需求变量功能区域单击添加按钮,选择 ResidualConcentration 作为该需求的输出变量(左侧蓝色勾选框会默认选中当前创建的变量集);
- 设置变量属性为方差;
- 设置需求类型为最小化。
按照上述步骤设置完成之后,单击界面下方确定按钮即可完成最小化残余浓度(
)的变化需求的设计。

- 在选择需求变量功能区域单击添加按钮,选择 ResidualConcentration 作为该需求的输出变量(左侧蓝色勾选框会默认选中当前创建的变量集);
创建需求 Req_2
再次单击新建需求图标,选择变量属性需求,并按照以下要求设置需求属性。- 在选择需求变量功能区域单击添加按钮,选择 controller.y 作为该需求的输出变量(左侧蓝色勾选框会默认选中当前创建的变量集);
- 设置变量属性为平均值;
- 设置需求类型为最小化。
按照上述步骤设置完成之后,单击界面下方确定按钮即可完成最小化平均冷却液温度(
)需求的设计。

- 在选择需求变量功能区域单击添加按钮,选择 controller.y 作为该需求的输出变量(左侧蓝色勾选框会默认选中当前创建的变量集);
# 需求评估
单击工具栏中的选择需求项,可以选择需要进行评估计算的需求,这里需求全选;之后,单击敏感度分析工具栏中的开始计算,以对创建的两个需求进行评估,待计算结束之后,得到如下结果。
从散点图可以看出,需求 Req_2 残差值随着参数 h 数值的递增整体上呈现减小的趋势,这说明 h 对于需求 Req_2 是有一定明确的影响的,但是其它参数与需求之间的关系仅从散点图上确不能直接观察到,因此要想得到参数对于不同需求的影响,需要进一步分析。


# 量化分析
在上一步中进行的需求评估,实际上是采样得到的参数数据带入模型并进行了 1000 次仿真,这样做的目的是为了得到与采样参数对应的需求残差数据,以便进行量化分析,得到参数变化对需求的影响。
单击工具栏顶部量化分析,打开量化分析主界面,全选类型和方法,然后单击开始计算,待计算结束可得到如下图所示的龙卷风视图。
从龙卷风图中可以看出:
- 参数 A、h、FeedCon0、FeedTemp0 与需求 Req_2 呈负相关,且在所有参数中,参数 h 对需求 Req_2 的影响最大;
- 参数 h、FeedCon0、FeedTemp0 对需求 Req_1 总体上呈正相关,但影响性较小;
- 参数 A 与需求 Req_1 呈负相关,且在所有参数中,参数 A 与需求 Req_1 的相关性是最大的。
因此,从整体上看,参数 A、h 与 Req_1、Req_2 的相关性最强,若要对这两项需求作进一步优化,可选择从这两个参数入手。
