主要内容

基于在线模型估计的非线性化学反应器自适应MPC控制

该实例演示了如何使用自适应MPC控制器来控制非线性连续搅拌槽式反应器(CSTR)从低转化率向高转化率的转变。

离散时间ARX模型在每个控制区间通过递归多项式模型估计块在线辨识。自适应MPC控制器利用它来更新内部对象模型,成功地实现了非线性控制。

关于连续搅拌釜式反应器

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

这是Seborg在Wiley出版的《过程动力学与控制》一书中广泛描述的一种夹套非绝热罐式反应堆。假设容器完全混合,发生单一的一级放热和不可逆反应,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}
& # 38;[kgmol/m^3] \\
y_2 = x_2 = T \;& # 38;\textnormal{Reactor temperature} [K] \\
\end{array} $$

控制目标是保持反应堆温度元新台币在其期望的设定值,当反应堆从低转化率转变到高转化率时,它随时间而变化。冷却液温度T_c美元MPC控制器是否使用操纵变量来跟踪参考以及拒绝由进料流温度引起的测量扰动T_i美元。进料流浓度,CA_i美元,被假定为常数。仿真软件万博1manbetx模型mpc_cstr_plant实现了非线性CSTR装置。有关CSTR反应器和相关示例的更多信息,请参见装运箱模型

关于自适应模型预测控制

众所周知,CSTR动力学对于反应堆温度变化是强烈的非线性,并且在从一种操作条件到另一种操作条件的过渡期间可能是开环不稳定的。单一的MPC控制器在特定的工作条件下设计,不能在大的工作范围内提供令人满意的控制性能。

要用线性MPC控制技术控制非线性CSTR装置,你有几个选项:

  • 如果不能在运行时获得线性电厂模型,首先需要在不同的运行条件下获得覆盖典型运行范围的几个线性电厂模型。接下来你可以选择两种方法中的一种来实现MPC控制策略:

离线设计几个MPC控制器,每个工厂模型一个。在运行时,使用多个MPC控制器块,根据所需的调度策略从一个MPC控制器切换到另一个MPC控制器。看到非线性化学反应器的增益调度MPC控制为更多的细节。当工厂模型有不同的订单或时间延迟时,使用这种方法。

(2)在初始工作点脱机设计一台MPC控制器。在运行时,使用自适应MPC控制器块(在每个控制区间更新预测模型)和线性参数变化(LPV)系统块(提供具有调度策略的线性对象模型)。看到非线性化学反应器的线性变参数自适应MPC控制为更多的细节。当所有的对象模型具有相同的阶数和时间延迟时,使用这种方法。

  • 如果可以在运行时获得线性对象模型,则应该使用自适应MPC控制器块来实现非线性控制。有两种典型的在线获取线性植物模型的方法:

(1)采用逐次线性化。看到采用逐次线性化的非线性化学反应器自适应MPC控制为更多的细节。当非线性对象模型可用并可在运行时进行线性化时,使用此方法。

(2)在回路闭合时,利用在线估计来识别线性模型,如本例所示。当线性对象模型不能从LPV系统或连续线性化得到时,使用这种方法。

获得初始运行条件下的线性对象模型

为了实现自适应MPC控制器,首先需要在初始工作点设计MPC控制器,此时CAi为10 kgmol/m^3, Ti和Tc为298.15 K。

创建工作点规范。

plant_mdl =“mpc_cstr_plant”;op = operspec (plant_mdl);

在初始条件下,进料浓度已知。

op.Inputs(1)。u = 10;op.Inputs(1)。知道= true;

在初始条件下进料温度已知。

op.Inputs(2)。u = 298.15;op.Inputs(2)。知道= true;

在初始条件下冷却剂的温度是已知的。

op.Inputs(3)。u = 298.15;op.Inputs(3)。知道= true;

计算初始条件。

[op_point, op_report] = findp (plant_mdl,op);
工作点搜索报告:--------------------------------- opreport = mpc_cstr_plant模型的工作点搜索报告。(t=0时评估的时变分量)成功满足工作点规范。状态:---------- < 强> Min < /强> < >强x < /强> <强> Max < /强> < >强dxMin < /强> < >强dx < /强> < >强dxMax < /强> <强> ___ < /强> <强> __ < /强> <强> ___ < /强> <强> ___ < /强> <强劲 >___________ <强> ___ < / >强(1)mpc_cstr_plant /装运箱/集成商0 311.26正0 8.1176 e-11 0(2)。mpc_cstr_plant /装运箱/ Integrator1 0 8.5698正0 -6.8709 e-12 0输入 : ---------- < 强> Min < /强> <强> u < /强> <强> Max < /强> <强> __ < /强> <强> __ < /强> <强> __ < / >强(1)mpc_cstr_plant / CAi 10 10 10 (2) mpc_cstr_plant / Ti 298.15 298.15 298.15 (3) mpc_cstr_plant / Tc 298.15 298.15 298.15输出:---------- < 强> Min < /强> <强> y < /强> <强> Max < /强> <强> ___ < /强> <强> __ < /强> <强> ___ < / >强(1)mpc_cstr_plant / T 311.26负无穷到正无穷(2)mpc_cstr_plant / CA负8.5698正无穷

获得x, y和u的标称值。

x0 = [op_report.States(1)方式;op_report.States(2)方式);y0 = [op_report.Outputs (1) .y; op_report.Outputs (2) .y);情况= [op_report.Inputs (1) .u; op_report.Inputs (2) .u; op_report.Inputs (3) .u);

得到初始条件下的线性植物模型。

Sys = linearize(plant_mdl, op_point);

删除第一个工厂输入CAi和第二个输出CA,因为它们不被MPC使用。

sys =系统(2:3);

离散对象模型,因为自适应MPC控制器只接受离散时间对象模型。

t = 0.5;工厂=汇集(sys、Ts);

MPC控制器设计

你在初始运行条件下设计一个MPC。当以自适应模式运行时,工厂模型将在运行时更新。

指定MPC中使用的信号类型。

plant.InputGroup.MeasuredDisturbances = 1;plant.InputGroup.ManipulatedVariables = 2;plant.OutputGroup.Measured = 1;工厂。InputName = {“透明国际”“Tc”};工厂。OutputName = {“T”};

创建带有默认预测和控制视野的MPC控制器

mpcobj = mpc(植物);
mpc对象的“PredictionHorizon”属性是空的。尝试PredictionHorizon = 10。mpc对象的"ControlHorizon"属性为空。假设2。- - - >“权重。mpc对象的操纵变量属性为空。假设默认的0.00000。- - - >“权重。mpc对象的操控变量率属性为空。假设默认的0.10000。 -->The "Weights.OutputVariables" property of "mpc" object is empty. Assuming default 1.00000.

在控制器中设置标称值

mpcobj.Model.Nominal =结构(“X”x0,“U”情况(2:3),“Y”, y0 (1),“DX”[0 0]);

设置比例因子,因为植物的输入和输出信号有不同的数量级

Uscale = [30 50];Yscale = 50;mpcobj.DV.ScaleFactor = Uscale (1);mpcobj.MV.ScaleFactor = Uscale (2);mpcobj.OV.ScaleFactor = Yscale;

由于冷却剂夹套的物理约束,Tc的变化率为2度/分钟。

mpcobj.MV.RateMin = 2;mpcobj.MV.RateMax = 2;

在这个例子中反应堆的浓度不是直接控制的。如果反应器温度能够被成功控制,由于两个变量之间的强耦合,浓度将达到预期的性能要求。

在Simulink中实现CSTR装置的自适应MPC控制(R)万博1manbetx

要使用在线估计运行此示例,需要System Identification Toolbox™软件。

如果~ mpcchecktoolboxinstalled (“识别”) disp (运行此示例需要系统识别工具箱(TM)。返回结束

打开Simulin万博1manbetxk模型。

mdl =“ampc_cstr_estimation”;open_system (mdl);

模型包括三个部分:

  1. “CSTR”模块实现了非线性植物模型。

  2. “自适应MPC控制器”模块以自适应模式运行所设计的MPC控制器。

  3. “递归多项式模型估计器”块根据测量的温度估计一个双输入(Ti和Tc)和一个输出(T)离散时间ARX模型。然后由“模型类型转换器”模块将估计的模型转换为状态空间形式,并在每个控制区间将其反馈给“自适应MPC控制器”模块。

在本例中,初始植物模型用于初始化参数协方差矩阵集为1的在线估计器。在线估计方法为“卡尔曼滤波”,噪声协方差矩阵设为0.01。在线估计结果对这些参数很敏感,可以进一步调整这些参数以获得更好的估计结果。

系统辨识工具箱提供了“递归多项式模型估计器”和“模型型转换器”。您可以使用这两个块作为模板,为您自己的应用程序开发适当的在线模型估计。

A(q)和B(q)变量的初始值由初始植物模型的分子和分母填充。

[num, den] = tfdata(plant);Aq =窝{1};Bq = num;

注意,新的线性对象模型必须是与原对象模型具有相同阶次和采样时间的离散时间状态空间系统。如果被摄对象具有时滞,则它也必须与原始时滞相同,并被吸收到状态空间模型中。

验证自适应MPC控制性能

控制器性能验证了设置点跟踪和干扰抑制。

  • 跟踪:反应器温度T设定点从原来的311 K(低转化率)到377 K(高转化率)kgmol/m^3。

  • 调节:进料温度Ti有一个缓慢的波动,振幅为5度的正弦波,是馈给MPC控制器的一个测量扰动。

模拟闭环性能。

open_system ([mdl/浓度的(mdl) open_system (/温度的]) sim (mdl)
——>假设添加到测量输出通道#1的输出扰动为集成白噪声。——>”模式。mpc对象的Noise属性为空。假设每个测量输出通道上都有白噪声。

跟踪和调节性能非常令人满意。

与非自适应MPC控制进行了比较

自适应MPC比非自适应MPC具有更好的控制性能。为了说明这一点,同一MPC控制器在非自适应模式下的控制性能如下图所示。该控制器采用MPC控制器模块实现。

mdl1 =“ampc_cstr_no_estimation”;open_system mdl1 open_system ([mdl1/浓度的]) open_system ([mdl1/温度的]) sim (mdl1)

正如预期的那样,跟踪和调节性能是不可接受的。

bdclose (mdl) bdclose (mdl1)

另请参阅

相关的话题