主要内容

自适应MPC控制使用逐次线性化的非线性化学反应器

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

第一个原则非线性植物模型是可用的,在每个控制区间线性化。自适应MPC控制器然后更新其内部预测模型与线性化的植物模型,成功实现了非线性控制。

连续搅拌釜反应器

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

这是一个夹套非绝热的釜式反应器广泛描述在Seborg的书,“过程动力学和控制”,由威利出版,2004年。这艘船被认为是完全混合,和一个一阶放热、不可逆的反应,——> B,发生。进口试剂是美联储的流槽以恒定容积率。产品流出口连续在同一液体容积率和密度是常数。因此反应液体的体积是恒定的。

装运箱模型的输入:

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

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

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

控制目标是维持试剂的浓度,CA美元在其预期的定位点,从而改变随着时间的推移,当反应堆从低转化率高转化率的转换。冷却液温度T_c美元是被操纵的变量使用的MPC控制器跟踪参考以及拒绝进口原料流的测量产生干扰温度T_i美元。进口原料流浓度,CA_i美元,被认为是常数。仿真软件金宝app模型mpc_cstr_plant实现了非线性装运箱厂。

我们还假设浓度不可用或罕见的直接测量,这是通常的情况在实践中。相反,我们使用“软传感器”估计CA基于温度测量和植物模型。有关装运箱反应堆的更多信息和相关的例子,看看装运箱模型

关于自适应预测控制模型

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

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

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

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

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

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

(1)使用逐次线性化,如本例所示。使用这种方法,当一个非线性植物模型是可用的,并且可以在运行时线性化。

(2)使用在线估计来确定线性模型循环时关闭。看到自适应MPC控制的非线性化学反应器使用在线估计模型为更多的细节。线性植物模型时使用这种方法不能获得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] = 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 = [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 =线性化(plant_mdl op_point);

下降第一工厂输入CAi因为它不是由MPC使用。

sys =系统(:2:3);

工厂模型离散化,因为自适应MPC控制器只接受一个离散时间模型。

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

MPC控制器设计

你设计的MPC初始运行条件。在自适应模式下运行时,植物模型在运行时更新。

指定信号类型用于MPC。

plant.InputGroup。MeasuredDisturbances = 1;plant.InputGroup。ManipulatedVariables = 2;plant.OutputGroup。测量= 1;plant.OutputGroup。无边无际的= 2;工厂。InputName = {“透明国际”,“Tc”};工厂。OutputName = {“T”,“CA”};

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

mpcobj = mpc(植物);
- - >“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,“U”情况(2:3),“Y”,y0,“DX”[0 0]);

集规模因素,因为植物输入和输出信号有不同的数量级

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

让反应堆温度T(即没有浮动选点跟踪误差惩罚),因为目标是控制反应堆浓度CA和只有一个操纵变量(冷却剂温度Tc)是可用的。

mpcobj.Weights。OV = [0 1];

由于冷却剂的物理约束的夹克,Tc每分钟速度度变化是有界的。

mpcobj.MV。杀鼠灵= 2;mpcobj.MV。RateMax = 2;

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

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

mdl =“ampc_cstr_linearization”;open_system (mdl)

模型包括三个部分:

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

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

  3. “逐次线性化电路块的MATLAB功能块中渗流第一原则非线性装运箱工厂和提供了线性模型的“适应性MPC控制器”块在每个时间间隔的控制。双击查看MATLAB代码块。您可以使用块作为模板,为您自己的应用程序开发适当的线性化电路。

注意,新线性植物模型必须是一个离散时间状态空间系统订单和样品相同的时间与原始模型。如果工厂有时间延迟,它同样也必须与原始时间延迟和吸收状态空间模型。

验证自适应MPC控制性能

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

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

  • 温度调节:喂Ti缓慢波动代表了振幅的正弦波5度,这是一个测量扰动的MPC控制器。

模拟闭环性能。

open_system ([mdl/浓度的(mdl) open_system (/温度的(mdl) open_system (' /杆'])sim (mdl)
- - >输出假设扰动添加到测量输出通道# 1是集成的白噪声。- - >”模型。噪音”属性是空的。假设白噪声在每个测量输出。

bdclose (mdl)

跟踪和调节性能非常满意。然而在应用程序真正的反应堆,模型不准确和无节制的干扰可能导致贫穷比这里显示跟踪。额外的模拟可以用来研究这些影响。

与非自适应的MPC控制

自适应MPC提供优越的控制性能比一个非自适应的MPC。为了说明这一点,同样的MPC控制器的控制性能在非自适应的运行模式如下所示。MPC控制器的控制器实现。

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

正如所料,跟踪和调节性能的非自适应的MPC是不可接受的。

bdclose (mdl1)

另请参阅

相关的话题