主要内容

自适应MPC控制使用线性变参数系统的非线性化学反应器

这个例子展示了如何使用一个适应性MPC控制器来控制非线性连续搅拌釜反应器(装运箱)从低转化率高转化率的转换。

线性参数变化系统(LPV)组成的三线性构造离线植物模型来描述当地的植物动力学在操作范围。自适应MPC控制器然后使用LPV系统更新内部预测模型在每个控制区间和成功实现非线性控制。

连续搅拌釜反应器

连续搅拌釜反应器(装运箱)是一种常见的化学系统过程中产业。装运箱系统的原理是:

这个系统是一个夹套非绝热的釜式反应器广泛描述[1]。这艘船被认为是完全混合,和一个一阶放热、不可逆的反应,——> B,发生。进口试剂是美联储的流槽以恒定容积率。产品流出口连续在同一容积率,和液体密度是常数。因此,反应液体的体积是恒定的。

装运箱模型的输入:

数组$ $ \开始{}{你}& # xA; u_1 = CA_i \;& # 38;\ textnormal{浓度的进口饲料# xA;流}[kmol / m ^ 3] \ \ & # xA; u_2 = T_i \;& # 38;\ textnormal{进口原料流温度}[K] \ \ & # xA; u_3 = T_c \;& # 38;\ textnormal{夹克冷却剂温度}[K] \ \ & # xA; \{数组}$ $

模型的输出,这也是该模型,包括:

数组$ $ \开始{}{你}& # xA; y_1 = x_1 = CA \;& # 38;\ textnormal {A的浓度在反应堆槽}[kmol / m ^ 3] \ \ & # xA; y_2 = x_2 = T \;& # 38;\ textnormal{反应堆温度}[K] \ \ & # xA; \{数组}$ $

控制目标是维持试剂的浓度,CA美元在其预期的定位点,从而改变随着时间的推移,当反应堆转换从一个低转化率较高的转化率。冷却液温度T_c美元是被操纵的变量使用的MPC控制器跟踪参考。进口原料流浓度和温度都假定为常数。仿真软件金宝app模型mpc_cstr_plant实现了非线性装运箱厂。有关装运箱反应堆的更多信息和相关的例子,看看装运箱模型

关于自适应预测控制模型

众所周知,装运箱动态强烈非线性对反应堆温度变化,可以开环不稳定在过渡到另一个从一个操作条件。单个MPC控制器设计在特定的操作条件不能令人满意的控制性能在一个宽的操作范围。

与线性控制非线性装运箱厂MPC控制技术,你有几个选择:

  • 如果无法获得线性植物模型在运行时,首先需要获得一些线性植物模型离线在不同的操作条件,典型的操作范围。接下来,你可以选择两种方法来实现货币政策委员会的控制策略:

(1)设计几个MPC控制器脱机,每个工厂模型。在运行时,使用多块MPC控制器,开关控制器之间基于所需的调度策略。更多细节,请参阅Gain-Scheduled MPC控制非线性化学反应器。使用这种方法时,植物模型有不同的订单或时间延迟。

(2)设计一个MPC控制器在初始操作点离线。在运行时,使用自适应MPC控制器块(更新预测模型在每个控制区间)和线性参数变化系统(LPV)块(与调度策略提供线性植物模型),如本例所示。使用这种方法,当所有的植物模型有相同的顺序和时间延迟。

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

(1)使用逐次线性化。更多细节,请参阅自适应MPC控制使用逐次线性化的非线性化学反应器。使用这种方法,当一个非线性植物模型是可用的,并且可以在运行时线性化。

(2)使用在线估计来确定线性模型循环时关闭。更多细节,请参阅自适应MPC控制的非线性化学反应器使用在线估计模型。使用这种方法,当一个线性植物模型不能获得LPV系统或逐次线性化。

获得线性植物模型在初始运行条件

首先,获得一个线性植物模型在初始运行条件,是10 kmol / m ^ 3,两个“透明国际”Tc298.15 K。生成模型的线性状态空间系统模型,使用等功能金宝appoperspec,findop,线性化从仿真软件金宝app控制设计。

创建操作规范。

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] = findop (plant_mdl, op);
操作点搜索报告:- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - opreport mpc_cstr_plant =操作点搜索报告模型。(时变组件评估在时间t = 0)操作点规范成功实现。状态:- - - - - - - - - - - Min 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输出:- - - - - - - - - - - Min y马克斯说______ (1)mpc_cstr_plant / T 311.2639负无穷到正无穷(2)mpc_cstr_plant / CA负8.5698正无穷

获得的名义值x,y,u

x0_initial = [op_report.States(1)方式;op_report.States(2)方式);y0_initial = [op_report.Outputs (1) .y;op_report.Outputs (2) .y];u0_initial = [op_report.Inputs (1) .u;op_report.Inputs (2) .u;op_report.Inputs (3) .u];

获得一个线性模型的初始条件。

plant_initial =线性化(plant_mdl op_point);

工厂模型离散化。

t = 0.5;plant_initial =汇集(plant_initial, Ts);

指定的信号类型和名称用于MPC。

plant_initial.InputGroup。UnmeasuredDisturbances = (1 - 2);plant_initial.InputGroup。ManipulatedVariables = 3;plant_initial.OutputGroup。测量= (1 - 2);plant_initial。InputName = {“蔡”,“透明国际”,“Tc”};plant_initial。OutputName = {“T”,“CA”};

获得线性植物模型在中间操作条件

创建操作规范。

op = operspec (plant_mdl);

指定提要浓度。

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

指定提要温度。

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

指定反应堆浓度。

op.Outputs (2)。y = 5.5;op.Outputs (2)。知道= true;

发现稳态操作条件。

[op_point, op_report] = findop (plant_mdl, op);
操作点搜索报告:- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - opreport mpc_cstr_plant =操作点搜索报告模型。(时变组件评估在时间t = 0)操作点规范成功实现。状态:- - - - - - - - - - - Min x马克斯dxMin dx dxMax………………………………(1) mpc_cstr_plant /装运箱/集成商0 339.4282正0 3.4187 e-08 0 (2) mpc_cstr_plant /装运箱/ Integrator1 0 5.5正0 -2.8686 e-09 0输入:- - - - - - - - - - -最小u最大累积_________ (1)mpc_cstr_plant / CAi 10 10 10 (2) mpc_cstr_plant / Ti 298.15 298.15 298.15 298.222 (3) mpc_cstr_plant / Tc负无穷到正无穷输出:- - - - - - - - - - - Min y马克斯说______ (1)mpc_cstr_plant / T 339.4282负无穷到正无穷(2)mpc_cstr_plant / CA 5.5 5.5 5.5

获得的名义值x,y,u

x0_intermediate = [op_report.States(1)方式;op_report.States(2)方式);y0_intermediate = [op_report.Outputs (1) .y;op_report.Outputs (2) .y];u0_intermediate = [op_report.Inputs (1) .u;op_report.Inputs (2) .u;op_report.Inputs (3) .u];

获得一个线性模型的初始条件。

plant_intermediate =线性化(plant_mdl op_point);

工厂模型离散化

plant_intermediate =汇集(plant_intermediate, Ts);

指定的信号类型和名称用于MPC。

plant_intermediate.InputGroup。UnmeasuredDisturbances = (1 - 2);plant_intermediate.InputGroup。ManipulatedVariables = 3;plant_intermediate.OutputGroup。测量= (1 - 2);plant_intermediate。InputName = {“蔡”,“透明国际”,“Tc”};plant_intermediate。OutputName = {“T”,“CA”};

获得线性植物模型在最后的操作条件

创建操作规范。

op = operspec (plant_mdl);

指定提要浓度。

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

指定提要温度。

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

指定反应堆浓度。

op.Outputs (2)。y = 2;op.Outputs (2)。知道= true;

发现稳态操作条件。

[op_point, op_report] = findop (plant_mdl, op);
操作点搜索报告:- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - opreport mpc_cstr_plant =操作点搜索报告模型。(时变组件评估在时间t = 0)操作点规范成功实现。状态:- - - - - - - - - - - Min x马克斯dxMin dx dxMax………………………………(1) mpc_cstr_plant /装运箱/集成商0 373.1311正0 5.7298 e-11 0 (2) mpc_cstr_plant /装运箱/ Integrator1 0 2正0 -4.7411 e-12 0输入:- - - - - - - - - - - Min u马克斯说______ (1)mpc_cstr_plant / CAi 10 10 10 (2) mpc_cstr_plant / Ti 298.15 298.15 298.15 305.2015 (3) mpc_cstr_plant / Tc负无穷到正无穷输出:- - - - - - - - - - - Min y马克斯说______ (1)mpc_cstr_plant / T 373.1311负无穷到正无穷(2)mpc_cstr_plant / CA 2 2 2

获得的名义值x,y,u

x0_final = [op_report.States(1)方式;op_report.States(2)方式);y0_final = [op_report.Outputs (1) .y;op_report.Outputs (2) .y];u0_final = [op_report.Inputs (1) .u;op_report.Inputs (2) .u;op_report.Inputs (3) .u];

获得一个线性模型的初始条件。

plant_final =线性化(plant_mdl op_point);

工厂模型离散化

plant_final =汇集(plant_final, Ts);

指定的信号类型和名称用于MPC。

plant_final.InputGroup。UnmeasuredDisturbances = (1 - 2);plant_final.InputGroup。ManipulatedVariables = 3;plant_final.OutputGroup。测量= (1 - 2);plant_final。InputName = {“蔡”,“透明国际”,“Tc”};plant_final。OutputName = {“T”,“CA”};

构造线性变参数系统

使用LTI数组存储的三线性模型。

lpv (:,: 1) = plant_initial;lpv (:: 2) = plant_intermediate;lpv (:,:, 3) = plant_final;

指定反应堆温度T作为调度参数。

lpv。SamplingGrid =结构(“T”,(y0_initial (1);y0_intermediate (1);y0_final (1)]);

指定工厂的名义值的输入、输出和状态在每一个稳态操作点。

lpv_u0 (:,: 1) = u0_initial;lpv_u0 (:: 2) = u0_intermediate;lpv_u0 (:,:, 3) = u0_final;lpv_y0 (:,: 1) = y0_initial;lpv_y0 (:: 2) = y0_intermediate;lpv_y0 (:,:, 3) = y0_final;lpv_x0 (:,: 1) = x0_initial;lpv_x0 (:: 2) = x0_intermediate;lpv_x0 (:,:, 3) = x0_final;

你不需要提供输入信号uLPV系统块因为植物输出信号y在本例中没有使用。

设计MPC控制器在初始运行条件

你设计一个MPC控制器在初始运行条件。控制器设置如视野和调优权重应该选择这样他们适用于整个操作范围。

创建一个MPC控制器与违约预测和控制的视野

mpcobj = mpc (plant_initial, Ts);
- - >“PredictionHorizon”属性是空的。假设默认10。- - >“ControlHorizon”属性是空的。假设默认2。- - >“权重。ManipulatedVariables”属性是空的。假设默认的0.00000。- - >“权重。ManipulatedVariablesRate”属性是空的。假设默认的0.10000。 -->The "Weights.OutputVariables" property is empty. Assuming default 1.00000. for output(s) y1 and zero weight for output(s) y2

在控制器中设置名义值。无边无际的干扰的名义值必须是零。

mpcobj.Model。名义=结构(“X”x0_initial,“U”,(0,0,u0_initial (3)),“Y”y0_initial,“DX”[0 0]);

由于植物输入和输出信号有不同的数量级,指定比例因子。

Uscale = (10、30、50);Yscale = (50; 10);mpcobj.DV (1)。ScaleFactor = Uscale (1);mpcobj.DV (2)。ScaleFactor = Uscale (2);mpcobj.MV。ScaleFactor = Uscale (3);mpcobj.OV (1)。ScaleFactor = Yscale (1); mpcobj.OV(2).ScaleFactor = Yscale(2);

指定的目标跟踪是一个过渡的反应堆的浓度。状态估计中使用的反应堆温度测量,但控制器不会试图直接调节它。它将根据需要调节不同浓度。因此,设置它的MPC重量为零。

mpcobj.Weights。OV = [0 1];

植物输入1和2是不可测量的干扰。默认情况下,控制器是集成在这些输入白噪声与单位大小在配置状态估计量。试着提高状态估计信噪比的因素10提高抗干扰性能。

Dist = ss (getindist (mpcobj));Dist.B =眼(2)* 10;setindist (mpcobj“模型”、距离);
- - >”模型。干扰”属性是空的:假设无边无际的输入扰动# 1是集成的白噪声。假设无节制的输入扰动# 2是集成的白噪声。假设没有干扰测量输出通道# 2。假设没有干扰测量输出通道# 1。- - >”模型。噪音”属性是空的。假设白噪声在每个测量输出。

保持所有其他MPC参数为默认值。

在仿真软件实现自适应MPC控制装运箱的工厂金宝app

打开仿真软件模型。金宝app

mdl =“ampc_cstr_lpv”;open_system (mdl)

模型包括三个部分:

  1. 装运箱块实现了非线性植物模型。

  2. 自适应MPC控制器设计MPC控制器自适应模式下运行。

  3. LPV系统块(控制系统工具箱)提供了一个局部状态空间植物通过插值模型及其名义值在每个时间间隔的控制。然后喂植物模型自适应MPC控制器块并更新预测模型使用的MPC控制器。在这个例子中,最初的植物模型用于初始化块LPV系统。

您可以使用仿真软件模型作为模板来金宝app开发自己的LPV-based适应性MPC的应用程序。

验证自适应MPC控制性能

控制器性能验证选点跟踪和抗干扰性。

  • 跟踪:反应堆温度T选点转换从原来的311 K(低转化率)到377 K(高转化率)kgmol / m ^ 3。在过渡期间,工厂第一次变得不稳定又稳定的两极(见图)。

  • 温度调节:喂“透明国际”缓慢的波动由一个正弦波的振幅5度,这是一个测量扰动喂MPC控制器。

模拟闭环性能。

open_system ([mdl/浓度的(mdl) open_system (/温度的])sim (mdl)
假设没有干扰测量输出通道# 2。假设没有干扰测量输出通道# 1。- - >”模型。噪音”属性是空的。假设白噪声在每个测量输出。

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

引用

[1]Seborg, d, E。,T。F. Edgar, and D. A. Mellichamp,过程动力学和控制2004年,第二版,威利。

bdclose (mdl)

另请参阅

相关的话题