主要内容

放热化学反应器的非线性模型预测控制

本例展示了如何使用非线性MPC控制器来控制非线性连续搅拌釜反应器(CSTR)从低转化率过渡到高转化率。

关于连续搅拌釜反应器

连续搅拌釜反应器(CSTR)是过程工业中常见的化工系统。CSTR系统的示意图如下:

该系统是在[1]中广泛描述的夹套非绝热罐式反应堆。假设容器完全混合,发生单次一级放热不可逆反应a—> B。试剂A的入口流以恒定的容量速率被送入罐中。产品流以相同的体积速率连续地流出,液体密度是恒定的。因此,反应液在反应器中的体积是恒定的。

CSTR模型的输入为:

$$ \begin{array {ll}
u_1 = CA_i \;& # 38;\textnormal{A在进料流中的浓度[kgmol/m^3] \\
u_2 = T_i \;& # 38;\textnormal{进料流温度}[K] \\
u_3 = T_c \;& # 38;\textnormal{护套冷却液温度}[K] \\
\end{array} $$

输出(y(t)),也是模型(x(t))的状态,为:

$$ \begin{array} {ll}
y = x_1 = T \;& # 38;\textnormal{反应堆温度}[K] \\
y_2 = x_2 = CA \;& # 38;\textnormal{A在反应釜中的浓度}[kgmol/m^3] \\
\end{array} $$

控制目标是保持出口流中试剂A的浓度,CA美元当反应器从低转化率转变为高转化率时,设定值会发生变化。冷却剂温度T_c美元控制器用来跟踪引用的被操纵变量。对进料流中A的浓度和进料流温度进行扰动测量。

万博1manbetx仿真软件模型

要运行此示例,需要Simulink®。万博1manbetx

如果~ mpcchecktoolboxinstalled (“万博1manbetx模型”) disp (“万博1manbetx运行这个例子需要Simulink。”)返回结束

打开Sim万博1manbetxulink模型。

mdl =“mpc_cstr_nonlinear”;open_system (mdl)

非线性预测模型

非线性MPC需要一个预测模型,描述你的工厂的非线性行为,你最好的知识。为了挑战控制器,本例有意引入建模误差,例如,随着温度的升高,预测模型的反应速率超过真实植物的反应速率。有关预测模型状态函数的详细信息,请参见exocstrStateFcnCT.m

此外,为了抑制出口流中浓度中出现的随机阶跃式不可测扰动,在植物模型中增加了一个积分器,该积分器的输入假设为零均值白噪声。增强后的预测模型有四个状态(T, CA和Dist)和四个输入(CA_i, T_i, T_c, WN)。

由于您只关心控制离开反应器的浓度,因此输出函数返回一个标量值,即第二个状态(CA)加上第三个状态(Dist)。有关预测模型输出函数的详细信息,请参见exocstrOutputFcn.m

非线性MPC

控制目标是将植物从低转化率的初始工作点(CA = 8.5698 kgmol/m^3)移动到高转化率的最终工作点(CA = 2 kgmol/m^3)。在最终稳定状态下,由于冷却不再自我调节,电站是开环不稳定的。因此,反应器温度趋于跑了从操作点开始。

在MATLAB®中创建一个非线性MPC控制器对象。如前所述,预测模型有三个状态、一个输出和四个输入。在输入中,前两个输入(进料成分和进料温度)是测量扰动,第三个输入(冷却液温度)是被操纵变量。第四个输入是进入增广积分器的白噪声,它表示一个未测量的输出扰动。

Nlobj = nlmpc(3,1,“MV”3,“医学博士”(1 - 2),“UD”4);

预测模型采样时间与控制器采样时间相同。

Ts = 0.5;nlobj。Ts = Ts;

为了减少计算工作量,可以使用3秒(6步)的短预测范围。此外,为了增加健壮性,可以在控制范围内使用块移动。

nlobj。PredictionHorizon = 6;nlobj。ControlHorizon = [2 2 2];

由于MV的大小为300阶,OV的大小为1阶,因此缩放MV以使它们兼容,这样就可以使用默认的调优权重。

nlobj.MV(1)。ScaleFactor = 300;

限制冷却液温度调节速率,在两个连续间隔之间只能增减5度。

nlobj.MV(1)。RateMin = -5;nlobj.MV(1)。RateMax = 5;

将状态标为单位顺序是一个很好的实践。这样做对控制策略没有影响,但可以改善数值行为。

nlobj.States(1)。ScaleFactor = 300;nlobj.States(2)。ScaleFactor = 10;

指定非线性状态和输出函数。

nlobj.Model.StateFcn =“exocstrStateFcnCT”;nlobj.Model.OutputFcn =“exocstrOutputFcn”

在模拟中使用预测模型和任何其他自定义函数之前,最好先测试它们。要做到这一点,请使用validateFcns命令。在这种情况下,以初始工作点作为测试的标称条件,将未测扰动状态设为0

X0 = [311.2639;8.5698;0);U0 = [10;298.15;298.15);validateFcns (x0, nlobj情况(3),情况(1:2)');
模型。StateFcn是OK的。模型。OutputFcn是OK。分析了用户提供的模型、成本和约束函数。

非线性状态估计

非线性MPC控制器需要在每个采样时间估计三个状态(包括未测量的扰动状态)。为了提供这种估计,使用扩展卡尔曼滤波(EKF)块。该模块使用与非线性MPC控制器相同的模型,除了模型是离散时间的。详细信息请参见exocstrStateFcnDT.m

EKF测量当前浓度,并使用它来修正之前区间的预测。在本例中,假设测量值相对准确,并在扩展卡尔曼滤波块中使用较小的协方差。

闭环仿真

在模拟中,增加目标浓度,而不是突然的阶跃变化。由于使用了非线性预测模型,您可以使用更快的斜坡速率。

在工作点转换过程中,两个测量扰动通道的阶跃变化发生在10而且20.秒,分别。在时间40,一个不可测量的输出扰动(反应器出口浓度的阶跃变化)也会发生。

(mdl open_system (,' /浓度(OV) '(mdl) open_system (,/冷却液温度(MV)]) sim (mdl)

出口流中的浓度精确地跟踪其参考值并收敛到所需的最终值。此外,控制器同时拒绝测量扰动和未测量扰动。

控制器的初始运动受到冷却液温度最大变化率的限制。这可以通过向控制器MPC提供一个前瞻参考信号来改进,该信号通知控制器在预测范围内的预期参考变化。

参考文献

[1]塞博格,D. E.埃德加,D. A.梅利尚。过程动力学与控制,第二版,Wiley, 2004, pp. 34-36和94-95。

bdclose (mdl)

另请参阅

|

相关的话题