主要内容

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

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

离散时间ARX模型在每个控制区间由递归多项式模型估计器块在线识别。自适应MPC控制器利用该算法实现了内部模型的更新,成功地实现了非线性控制。

关于连续搅拌式反应器

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

这是一个夹套的非绝热罐式反应堆,在Seborg的书中有广泛的描述,“过程动力学和控制”,Wiley, 2004年出版。假设容器完全混合,发生一个一级放热不可逆反应a—> B。试剂A的入口流以恒定的容积率被注入罐中。产品流以相同的容积率连续流出,且液体密度恒定。因此反应液体的体积是恒定的。

CSTR模型的输入是:

$$ \begin{array} {ll}
& # 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}
& # 38;\textnormal{A在反应堆槽中的浓度}[kgmol/m^3] \\
y_2 = x_2 = T \;& # 38;\textnormal{反应堆温度}[K] \\
\end{array} $$ . \

控制目标是维持反应堆温度元新台币当反应器从低转化率过渡到高转化率时,该值随时间变化。冷却剂温度T_c美元被操纵的变量是否被MPC控制器用来跟踪基准并拒绝由进口进料流温度引起的测量扰动T_i美元。进料流浓度,CA_i美元,假设为常数。Simu金宝applink模型mpc_cstr_plant实现了非线性CSTR装置。有关CSTR反应器和相关示例的更多信息,请参见装运箱模型

关于自适应模型预测控制

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

要用线性MPC控制技术控制非线性CSTR装置,您有以下几种选择:

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

(1)离线设计多个MPC控制器,每个设备模型一个。在运行时,使用多个MPC控制器块,根据所需的调度策略将MPC控制器从一个切换到另一个。看到非线性化学反应器的增益调度MPC控制了解更多细节。当工厂模型具有不同的顺序或时间延迟时,使用此方法。

(2)在初始工作点离线设计一个MPC控制器。在运行时,使用自适应MPC控制器块(在每个控制间隔更新预测模型)和线性参数变化(LPV)系统块(为线性工厂模型提供调度策略)。看到基于线性变参数系统的非线性化学反应器自适应MPC控制了解更多细节。当所有的工厂模型具有相同的顺序和时间延迟时,使用此方法。

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

(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)。已知=真实;

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

op.Inputs(2)。U = 298.15;op.Inputs(2)。已知=真实;

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

op.Inputs(3)。U = 298.15;op.Inputs(3)。已知=真实;

计算初始条件。

[op_point, op_report] = findop(plant_mdl,op);
操作点搜索报告:--------------------------------- opreport = mpc_cstr_plant模型的操作点搜索报告。(时变组分在t=0时的评估值)成功满足作业点规格。州 : ---------- 最小x最大dxMin dx dxMax  ___________ ___________ ___________ ___________ ___________ ___________ ( 1) mpc_cstr_plant /装运箱/集成商0 311.2639正0 8.1176 e-11 0 (2) mpc_cstr_plant /装运箱/ Integrator1 0 8.5698正0 -6.8709 e-12 0输入 : ---------- 最小u最大  ______ ______ ______ ( 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输出:---------- 最小y最大  ________ ________ ________ ( 1) mpc_cstr_plant / T 311.2639负无穷到正无穷(2)mpc_cstr_plant / CA负8.5698正无穷

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

x = [op_report.States(1).x;op_report.States(2).x];y0 = [op_report.Outputs(1).y;u0 = [op_report.Inputs(1).u;op_report.Inputs(2).u;op_report.Inputs(3).u];

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

Sys =线性化(plant_mdl, op_point);

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

Sys = Sys (1,2:3);

由于自适应MPC控制器只接受离散时间的植物模型,因此对植物模型进行离散化处理。

Ts = 0.5;plant = c2d(sys,Ts);

MPC控制器设计

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

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

plant. inputgroup . measureddisorders = 1;plant. inputgroup . manipulation variables = 2;plant.OutputGroup.Measured = 1;工厂。InputName = {“透明国际”,“Tc”};工厂。OutputName = {“T”};

创建MPC控制器,默认预测和控制范围

Mpcobj = mpc(植物);
——>“PredictionHorizon”属性为空。假设默认为10。“ControlHorizon”属性为空。假设默认值为2。- - - >“权重。“操纵变量”属性为空。假设默认值为0.00000。- - - >“权重。“操纵变量率”属性为空。假设默认为0.10000。 -->The "Weights.OutputVariables" property is empty. Assuming default 1.00000.

在控制器中设置标称值

mpcoj . model .名义=结构(“X”x0,“U”情况(2:3),“Y”, y0 (1),“DX”, [0 0]);

设置刻度因子,因为工厂输入和输出信号有不同的数量级

Uscale = [30 50];Yscale = 50;mpcoj . dv . scalefactor = Uscale(1);mpcoj . mtv . scalefactor = Uscale(2);mpcoj . v . scalefactor = Yscale;

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

mpcoj . mv . ratemin = -2;mpcoj . mv . ratemax = 2;

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

在Simulink (R)中实现CSTR装置的自适应MPC控制金宝app

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

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

打开Simulin金宝appk模型。

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(植物);Aq = den{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控制相比

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

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

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

bdclose (mdl) bdclose (mdl1)

另请参阅

相关的话题