主要内容

环氧乙烷生产的经济MPC控制

这个例子显示了如何使用经济MPC控制器最大限度的生产利润环氧乙烷工厂。这种控制器是采用与基于性能的自定义的成本函数非线性的MPC控制器实现。

此示例需要的Simulink软件来模拟在Si金宝appmulink乙烯氧化植物的非线性MPC控制。

如果〜mpcchecktoolboxinstalled('金宝appsimulink')DISP('金宝appSimulink(R)需要运行此示例。'返回结束

该示例使用fsolve从优化工具箱™中查找标称均衡操作点和粉刺方法作为默认非线性规划解算器。

如果〜mpcchecktoolboxinstalled('Optim')DISP(必须安装'优化工具箱以运行此示例。'返回结束

非线性乙烯氧化厂

将乙烯(C 2 H 4)转化为环氧乙烷(C 2 H 4 O)在冷却的气相催化反应器中发生。在反应器内的混合气相中同时发生三种反应:

C2H4 + 0.5 * O2  - > C2H4O
C2H4 + 3 * O2  - > 2 * CO 2 + 2 * H 2 O
C2H4O + 2.5 * O2  - > 2 * CO2 + 2 * H2O

第一反应就是想因为他们减少C2H4O生产其他两个是不必要的。空气和乙烯的混合物连续地供入反应器。将反应器的第一原理非线性动态模型被实现为一组在普通微分方程(常微分方程)的oxidationplantct.功能。有关更多信息,请参阅oxidationPlantCT.m

该工厂有四个州:

  • 反应器中的气体密度($ X_1 $

  • C2H4浓度在反应器($ X_2 $

  • 反应器中的C 2 H 4 O浓度($ x_3 $

  • 反应器中的温度($ X_4 $

该工厂有三个输入:

  • C2H4浓度在饲料中($ u_1 $

  • 反应器冷却夹套温度($ u_2 $

  • C2H4进料速率($ u_3 $

模型中的所有变量都缩放为无量纲的统一秩序和。基本植物方程和参数是从[1],在输入/输出定义和订货一些变化而获得。

该植物是渐近的开环稳定。

控制目标和约束

主控制目标是最大化的环氧乙烷(C2H4O)生产速率(其进而最大化利润)在任何稳态工作点,给定的C 2 H 4进料流中的可用性。

C 2 H 4 O生产率定义为反应器中C2H4O浓度的产物($ x_3 $)离开反应器的总体积流量($ {U_3} / {U_1} * {} X_4 $)。

操作点由三个输入有效地确定。$ u_1 $是饲料中的C2H4浓度,MPC控制器可以操纵。$ u_2 $是冷却夹套温度,这使温度稳定。$ u_3 $是C2H4进料速率,表明来自上游过程的可用乙烯。更高的进料速率增加了可实现的C2H4O生产率。在这个例子中,两者都是$ u_2 $$ u_3 $测量干扰。

最初的操作点最佳生产率

在初始条件下,冷却夹套温度是1.1和C2H4可用性0.175

tc = 1.1;C2H4Avalability = 0.175;

通过经由C2H4浓度的工作范围在饲料中扫计算最优C2H4O生产速率($ u_1 $)使用fsolve

uRange = 0.1:0.1:3;EORate =零(长度(uRange),1);optimopt = optimoptions('fsolve''展示''没有');对于CT = 1:长度(urange)XRange = Real(fsolve(@(x)oxidationplantct(x,[urange(ct); tc; c2h4valiability]),rand(1,4),优化));漂亮(CT)= C2H4Avalability / Urange(CT)* Xrange(3)* Xrange(4);结束图图(uRange,EORate)xlabel('C2H4浓度在饲料中')ylabel(“C2H4O生产率”

最佳的C2H4O生产率为0.0156$ u_1 $= 1.6。换句话说,如果植物最初在饲料中以不同的C2H4浓度运行,则期望经济MPC控制器将其带到1.6,使得实现最佳的C2H4O生产率。

非线性MPC设计

经济MPC可以用非线性MPC控制器来实现。预测模型具有四个状态和三个输入(一个MV和两个MD)。在这个例子中,因为你并不需要一个输出功能,假设Y = X。

nlobj = nlmpc(4,4,'mv'1,'MD',[2 3]);nlobj.states(1).name ='den';nlobj.states(1).name ='c2h4';nlobj.states(1).name ='C2H4O';nlobj.states(1).name ='tc';nlobj.MV.Name ='cein';nlobj.md(1).name ='tc';nlobj.md(2).name ='可用性';
在标准的成本函数,零个权重是通过默认,因为有比的MV OVS少施加到一个或多个OVS。

非线性工厂模型定义为oxidationplantdt.。它是一个离散时间模型,其中多步显式欧拉方法用于集成。虽然此示例使用非线性工厂模型,但您还可以使用线性工厂模型实现经济MPC。

nlobj.model.statefcn =.'oxidationPlantDT';nlobj.model.iscontinuoustime = false;

一般来说,为了提高计算效率,它是提供一种用于预测模型的分析雅可比功能最佳实践。在这个例子中,你不提供一个因为模拟是速度不够快。

相对较大的采样时间25.这里使用的秒是合适的,当植物稳定并且主要目标是经济优化时。预测地平线是2,这获得了预测时间是50秒。

TS = 25;nlobj.ts = ts;%采样时间nlobj.predictionhorizo​​n = 2;%预测地平线nlobj.controlhorizo​​n = 1;%控制范围

在预测模型中的所有国家都必须根据第一原则是积极的。因此,指定所有国家必然为零的最小值。

nlobj.states(1).min = 0;nlobj.states(2).min = 0;nlobj.states(3).min = 0;nlobj.states(4).min = 0;

植物输入$ u_1 $必须保持在饱和性范围内0.13.

nlobj.mv.min = 0.1;nlobj.mv.max = 3;

改变的率$ u_1 $也仅限于+/-0.02/秒。

nlobj.mv.ratemin = -0.02 * ts;nlobj.mv.ratemax = 0.02 * ts;

经济MPC的定制成本函数

而不是使用标准二次目标函数的,定制的成本函数被用作替换。你想在预测跨度结束最大化C2H4O生产速度。

F =  - (U3 / U1 * X3 * X4)

在负号F.用于最大化生产,因为控制器最小化F.在优化期间。有关更多信息,请参阅oxidationcostfcn.m.

nlobj.Optimization.CustomCostFcn ='oxidationCostFcn';nlobj.Optimization.ReplaceStandardCost = TRUE;

验证自定义功能

假设工厂最初工作在U1 = 0.5

U0 = 0.5;

使用查找状态在稳定状态fsolve

x0 = real(fsolve(fsolve(@(x)oxidationplantct(x,[u0; tc; c2h4valiability]),rand(1,4),Optimopt));

C2H4O生产率为0.0138,远离最佳条件为0.0156。

EORate0 = C2H4Avalability / U0 * X0(3)* X 0(4);

在初始条件下验证状态功能和成本函数。

validatefcns(nlobj,x0,u0,[tc c2h4avalability]);
model.statefcn是好的。没有指定输出函数。假设预测模型中的“y = x”。优化.customcostfcn是可以的。分析用户提供的模型,成本和约束函数完成。

您可以使用第一个移动使用nlmpcmove.功能。它返回1.0的MV,这表明经济MPC将增加MV为0.5至1,由MVRate约束限制。

mv = nlmpcmove(nlobj,x0,u0,零(1,4),[tc c2h4avalability]);

金宝appSimulink模型与经济MPC控制器

打开Simulin金宝appk模型。

mdl ='mpc_ecomonicoo';open_system(MDL)

冷却夹套温度最初是1.1并且在前100秒保持不变。然后增加到1.15因此,降低了最佳的C2H4O生产率0.0156.到目前为止0.0135

该C2H4可用性最初0.175并保持前200秒的常数。然后增加到0.25因此,增加了最佳的C2H4O生产率0.0135到目前为止0.0195

该模型包括四个植物输出恒定(零)的引用。非线性MPC控制器块需要这些参考信号,但它们在定制成本函数中被忽略。

植物通过子系统在整合常微分方程计算设备状态oxidationPlantCT.m。假设所有的状态是可测量的,这样你就不需要实现这个例子非线性状态估计。当C2H4O植物输出是瞬时C2H4O生产率,用于显示目的。

仿真建模和分析结果

运行模拟。

Open_System([MDL'/ MV']);Open_System([MDL'/ C2H4O']);SIM(MDL)

因为在初始条件下运行的C2H4O工厂不是最佳的,所以可以提高其利润。在前100秒内,经济MPC控制器在相同的冷却夹套温度和C2H4可用性约束下逐渐移动到真实的最佳状态。它提高了C2H4O生产率:

$$ \左({0.0156  -  0.0138} \右)/0.0138 = 13 \%$$

在大规模生产中,每年价值数百万美元。

在接下来的100秒,冷却夹套温度从增加1.1到目前为止1.15。经济MPC控制器将工厂平稳地移动到新的最佳状态0.0135如预期。

在接下来的100秒内,C2H4可用性增加0.175到目前为止0.25。经济MPC控制器能够再次工厂移到新的最优稳态0.0195

关闭Simulink金宝app模型。

bdclose(MDL)

参考资料

[1] H.杜兰德,M.埃利斯,P. D.赫里斯托菲。“经济模型预测控制设计了变化率输入的制约处理和保证经济的表现。”计算机与化学工程。卷。92,2016,第18-36。

相关主题