并行反应选择性的温度轨迹优化¶
背景¶
在批式反应器中,同一种原料可能同时生成目标产物和副产物。温度会改变 两条反应通道的速率,但影响程度并不相同:活化能较大的通道会随温度 升高而相对增强。因此,提高温度虽然能够加快转化,也可能降低选择性。
本例为不可逆并行反应网络
选择一条平滑的升温、保温和降温轨迹,其中 \(B\) 为目标产物。批次必须 在 90 分钟内达到 92% 转化率,并以零温度变化率返回进料温度。
动力学与状态¶
对通道 \(i\in\{B,C\}\),一阶 Arrhenius 速率常数为
令 \(c_A,c_B,c_C\) 为各组分浓度。温度通过尺度化状态 \(\vartheta\in[0,1]\) 表示:
物理温度变化率 \(r_T=\dot T\) 也是状态,控制量为其加速度 \(a_T=\dot r_T\)。完整动力学为
动力学参数为
由于 \(E_C>E_B\),高温会提高副反应相对于主反应的速率比 \(k_C/k_B\)。
目标函数与约束¶
初始和终端条件为
终端 \(c_B\) 和 \(c_C\) 由优化决定。路径边界为
目标函数为
在转化率严格固定时,守恒关系给出 \(c_B(t_f)+c_C(t_f)=0.92\ \mathrm{mol/L}\),所以单独最小化 \(c_C\) 等价于 最大化目标产物得率和比例 \(c_B/c_C\)。但实际实现的目标函数不严格等价 于选择性最大化,因为其中还有有限权重的温度变化率与加速度正则项; 模型有意用少量产物性能换取更平滑的温度程序。
变量与单位¶
| 符号 | 含义 | 单位 |
|---|---|---|
| \(t\) | 批次时间 | min |
| \(c_A,c_B,c_C\) | 原料、目标产物和副产物浓度 | mol/L |
| \(T,\vartheta\) | 物理温度和尺度化温度 | K、无量纲 |
| \(r_T\) | 温度变化率 | K/min |
| \(a_T\) | 温度变化率加速度 | K/min² |
| \(k_B,k_C\) | 一阶反应速率常数 | 1/min |
| \(A_B,A_C\) | Arrhenius 指前因子 | 1/min |
| \(E_B,E_C\) | 活化能 | J/mol |
| \(J\) | 副产物与平滑性目标 | mol/L |
建模选择与适用边界¶
把温度变化率设为状态、把其加速度设为控制,可同时保证温度轨迹及一阶 导数连续且有界。\(200\times2\) Lobatto 网格给出分段线性加速度样本,并 解析平滑的 Arrhenius 动力学。
这是理想的空间均匀、定容批式模型。它假定不可逆一阶反应,省略能量 守恒、传热面积、夹套或加热器动态、除 \(A\) 外的原料耗尽、二次反应、 体积变化、不确定性和放热等安全约束。优化得到的 \(T(t)\) 应理解为理想 温度执行器的设定值轨迹,而不是完整反应器控制设计。
运行示例¶
保存图片且不打开窗口:
独立数值验证¶
脚本在 6,001 个时刻重构浓度、温度、温度变化率和加速度,并独立计算 解析原料关系
此外还会检查 \(c_A+c_B+c_C=c_A(0)\),分别积分两种产物生成速率,核对 温度变化率积分平衡,并检查全部端点与路径边界。
| 指标 | 验证值 |
|---|---|
| 目标函数 \(J\) | \(0.38924799\ \mathrm{mol/L}\) |
| 目标产物得率 \(c_B(t_f)/c_A(0)\) | \(0.533074\) |
| 目标产物/副产物比例 \(c_B(t_f)/c_C(t_f)\) | \(1.377718\) |
| 转化率 | \(0.920000\) |
| 峰值温度 | \(320.047293\ \mathrm K\) |
| 最大解析原料误差 | \(1.819\times10^{-5}\ \mathrm{mol/L}\) |
| 最大组分守恒误差 | \(2.220\times10^{-16}\ \mathrm{mol/L}\) |
| 最大密集产物速率平衡误差 | \(3.319\times10^{-6}\ \mathrm{mol/L}\) |
| 密集温度平衡误差 | 输出精度下为 \(0\) |
| 最大密集路径边界超限 | 输出精度下为 \(0\) |

源代码¶
完整可运行示例见:
examples/parallel_reaction_selectivity.py。