主要内容

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

这个例子展示了如何使用非线性MPC控制器来控制非线性连续搅拌槽式反应器(CSTR)从低转化率到高转化率的转变。

关于连续搅拌釜式反应器

连续搅拌槽式反应器(CSTR)是过程工业中常用的化学系统。CSTR系统的原理图如下:

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

CSTR模型的输入是:

$$ \begin{array} {ll}
u_1 = CA_i \;& # 38;[kgmol/m^3] \\
u_2 = T_i \;& # 38;[K] \\
u_3 = T_c \;& # 38;\textnormal{夹克冷却温度}[K] \\
\end{array} $$

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

$$\begin{array}{ll}
;y_1=x_1=T\& \text正常{反应器温度}[K]\\
;y_2=x_2=CA\& \text正常{反应器罐中A的浓度}[kgmol/m^3]\\\
\结束{array}$$

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

万博1manbetx仿真软件模型

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

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

打开仿真软万博1manbetx件模型。

mdl =“mpc_cstr_nonlinear”;open_system (mdl)

非线性预测模型

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

此外,为了排除出口流中浓度中出现的随机阶跃型不可测干扰,在植物模型中增加了一个积分器,该积分器的输入假定为零均值白噪声。扩展后的预测模型有4个状态(T, CA, Dist)和4个输入(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,“MD”,[1 2],“UD”4);

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

t = 0.5;nlobj。Ts = t;

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

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

由于MV的量级是300阶,而OV的量级是1阶,缩放MV使它们兼容,这样就可以使用默认的调谐权值。

nlobj.MV(1)。ScaleFactor = 300;

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

nlobj.MV(1)。杀鼠灵= 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];验证EFCNS(nlobj,x0,u0(3),u0(1:2)”;
模型。StateFcn就可以了。模型。OutputFcn就可以了。分析了用户提供的模型、成本和约束功能。

非线性状态估计

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

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

闭环仿真

在模拟中,增加目标浓度而不是做一个突然的步骤改变。因为使用了非线性预测模型,所以可以使用更快的斜坡速率。

在工作点过渡期间,两个被测扰动通道的阶跃变化发生在1020.秒,分别。在时间40,一个未测量的输出干扰(反应堆出口浓度的阶跃变化)也会发生。

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

出口流中的浓度精确地跟踪它的参考值,并收敛到期望的最终值。同时,该控制器抑制了被测扰动和未被测扰动。

初始控制器的移动受到冷却剂温度的最大变化率的限制。这可以通过为控制器MPC提供一个前瞻参考信号来改善,该信号将在预测视界内的预期参考变化通知控制器。

参考文献

塞堡,埃德加和梅利尚。过程动力学与控制,第二版,Wiley, 2004,第34-36和94-95页。

bdclose (mdl)

另请参阅

|

相关的话题