主要内容

在混合过程中使用自定义约束

这个例子展示了如何设计一个混合的MPC控制器过程使用自定义输入/输出线性约束。

混合过程

连续混合过程结合了三个饲料混合容器生产混合所需的浓度。的无量纲控制方程是:

数组$ $ \开始{}{1}& # xA; \压裂{{dV}} {{dt}} = \ \ limits_总和{i = 1} ^ 3 {{F _i}} - {F _{出来}}\ \ & # xA; V \压裂{{d {c _j}}} {{dt}} = \ \ limits_总和{i = 1} ^ 3 & # xA; {{c _ {ij}} {F _i}} - {c _j} _{出来}}{F & # xA; \{数组}$ $

在哪里

  • 五美元混合物的体积库存在容器中。

  • F _i美元是饲料的体积流率我美元

  • $ F _{出}$的体积流率的混合退出容器(来自下游的需求)。

  • $ c _ {ij} $成分的浓度吗$ j $在饲料我美元

  • c _j美元成分的浓度吗$ j $在混合。

  • 元新台币是时候

在这个例子中,有三个提要,我美元= 1,2和3和两个组分,$ j $= 1和2。

控制目标是维持在设定值以下值:

  • 两组分混合的浓度(质量目标)

  • 在容器的体积混合库存(安全目标)

下游需求的挑战是,$ F _{出}$在饲料成分的浓度,$ c _ {ij} $,可以从名义操作点。

混合物的库存五美元,在混合组分的浓度$ c _ {j} $测量,但$ c _ {ij} $是无边无际的。

在名义操作条件:

  • 饲料1F _1 = 1.6美元,c _{11} = 0.7美元c _{12} = 0.3美元

  • 饲料2F _2 = 0.4美元,c _{21} = 0.2美元c _{22} = 0.8美元

  • 饲料3F _3 = 0美元,c _{31} = 0.5美元c _{32} = 0.4美元

此外,工厂只允许操作的总饲料流量进入混合室,$ F _{在}$提要,个人流速2,F _2美元,和饲料3,F _3美元。换句话说,饲料1的流量,F _1美元,不能直接操纵。然而,F _1美元间接影响其他三个流量如下:

$ $ F _1 = _ {} - F _2 - F _3 $ $

每个提要有限可用性由上游工序:

$ $ 0 \ le {F _i} \ le 1.6 $ $

定义线性植物模型

混合过程温和非线性,考虑到库存卷进入浓度方程,但是你可以用线性模型近似名义稳定状态。这种方法是相当准确的,除非无边无际的进料浓度变化。如果变化足够大,非线性过程的稳态增益变化的信号,和闭环系统会变得不稳定。

指定的名义流量三个输入流和输出流,或需求。在名义操作条件,输出流量等于输入流量的总和。

饲料= (1.6,0.4,0);F_out =总和(饲料);

定义输入提要的名义成分浓度,在哪里cin (i, j)代表成分的浓度j在饲料

cin = (0.7 - 0.3, 0.2 - 0.8, 0.5 - 0.4);

定义名义成分浓度混合。

cout = * cin / F_out饲料;

的名义体积混合库存是2

V = 2;

创建一个与饲料流状态空间模型F1,F2,F3作为输入

一个= [0 0 0;0 -F_out / V 0;0 0 -F_out / V];% 3州V, c1和c2Bu = [1 1 1;cin (: 1)“/ V;cin (:, 2) / V);% 3的输入是F1, F2, F3

以来,如上所述,植物总数的允许操作进给速率以及饲料2和3(没有直接控制饲料1),更改MV定义从[F1, F2, F3] [F_in F2、F3]使用方程F1 = F_in - F2 - F3

布鲁里溃疡Bu =[(: 1),但(:,2)布鲁里溃疡(:1),但(:,3)布鲁里溃疡(:1)];% 3输入F_in、F2、F3

添加测量干扰,融合需求,作为第四模型输入。

Bv = [1;cout ' / V);B = (Bu Bv);% 4输入F_in, F2、F3 F_out

定义所有的州是可衡量的和没有直接引线。

C =眼(3);D = 0 (3、4);

构造线性植物模型。

模型= ss (A, B, C, D);模型。InputName = {“F_in”,“₂”,“F_3”,“F_out”};Model.InputGroup。MV = 1:3;Model.InputGroup。MD = 4;模型。OutputName = {“V”,“c₁”,“c₂”};

创建MPC控制器

指定样品时间,预测地平线,地平线和控制的控制器。

t = 0.1;p = 10;m = 3;

创建一个控制器。

mpcobj = mpc(模型、t、p、m);
- - >“权重。ManipulatedVariables”是空的。假设默认的0.00000。- - >“权重。ManipulatedVariablesRate”是空的。假设默认的0.10000。- - >“权重。OutputVariables”是空的。假设默认的1.00000。

输出是库存数量,y (1)组分浓度,y (2)y (3)。对所有输出指定名义值。

mpcobj.Model.Nominal。Y = [V cout (1) cout (2)];

指定的名义值操纵变量,u (1),u (2)你(3)测量的干扰,u (4)

mpcobj.Model.Nominal。U =[(提要)提要和提要(2)(3)F_out);

指定输出调整权重。更加关注控制两个constituenta的浓度,为第二和第三输出使用更大的权重。

mpcobj.Weights。OV = [1 5 5];

指定硬边界(物理限制)饲料2和3,操纵变量。

mpcobj.MV (2)。最小值= 0;mpcobj.MV (2)。Max = 1.6;mpcobj.MV (3)。最小值= 0;mpcobj.MV (3)。Max = 1.6;

指定混合约束

我们不能直接指定给1的上下界限流量和其他人一样,因为它不是一个MV。相反,我们必须执行下列不等式约束作为自定义输入/输出约束在MPC。

$ $ 0 \ le {F _1} = {F _{在}}- {F _2} {F _3} \ le 1.6 $ $

指定该硬约束形式欧盟+年度\ le g美元

E = [1 1 1;1 1 1];F = [0 0 0;0 0 0];g = (0, 1.6);

设置自定义约束MPC控制器。

setconstraint (mpcobj, E, F, g)

在仿真软件模拟模型金宝app

仿真软件金宝app模型包括一个混合过程的非线性模型和一个无边无际的干扰成分1饲料的浓度。

需求,$ F _{出}$建模为测量的干扰。操作员可以改变下游需求价值,和信号流程和控制器。

该模型模拟了下面的场景:

  • t = 0美元,这个过程是在名义操作点操作。

  • t = 1美元,需求减少F _{出}= 2美元F _{出}= 1.8美元

  • t = 2美元,有一个饲料1中成分的浓度变化,从[0.7 - 0.3][0.6 - 0.4]。

开放和模拟仿真软件模型。金宝app

mdl =“mpc_blendingprocess”;open_system (mdl) sim (mdl)%开放范围块窗户open_system ([mdl' /输入'(mdl) open_system (/输出的])
- - >将模型转换为离散时间。- - >输出假设扰动添加到# 2集成白噪声测量输出。- - >输出假设扰动添加到测量输出# 3是集成的白噪声。假设没有干扰# 1添加到测量输出。- - >”模型。噪音”是空的。假设白噪声在每个测量输出。

在仿真:

  • 0时刻,核电站运营稳步的名义条件。

  • 1时,需求减少了10%,控制器保持库存的定位点(V = 2)。

  • 2时,有一个无边无际的饲料1中成分的浓度的变化。这个扰动会导致预测误差和干扰的混合浓度。

线性MPC控制器恢复得很好,单词查找树来驱动混合浓度回到它的定位点。然而,在饲料1达到上限(f = 1.6)强制执行自定义输入/输出约束,MPC再也不能保持零稳态误差由于饲料1饱和。约束条件包括,控制器的系统的物理限制。

bdclose (mdl)

另请参阅

功能

相关的话题