主要内容

回顾模型预测控制器的稳定性和鲁棒性问题

您可以回顾您的模型预测控制器设计,以解决潜在的稳定性和鲁棒性问题。这样做:

  • 在命令行,使用审查功能。

  • MPC设计师,在调整标签,在分析部分中,点击审查设计

在这两种情况下,软件都会生成显示以下测试结果的报告:

  • MPC对象创建- 测试控制器规格是否生成有效的MPC控制器。如果控制器无效,则不执行其他测试。

  • QP Hessian矩阵有效性- 测试控制器的MPC二次编程(QP)问题是否具有唯一的解决方案。您必须选择成本函数参数(惩罚权重)和视野,使得QP Hessian矩阵是正定的。

  • 闭环内部稳定- 提取一个来自无约束控制器的状态空间实现的矩阵,然后计算其特征值。如果每个特征值的绝对值小于或等于1植物稳定,然后您的反馈系统是内部稳定的。

  • 闭环名义稳定- 提取一个来自闭环系统的离散时间空间实现的矩阵;也就是说,植物和控制器以反馈配置连接。然后计算特征值一个.如果每个特征值的绝对值小于或等于1,则标称(无约束)系统是稳定的。

  • 闭环稳态收益-测试控制器是否在没有约束条件的情况下,将所有受控输出变量强制到其目标上处于稳态。

  • 硬MV约束- 测试控制器是否对操作变量和其变化率具有硬约束,如果是,这些约束是否可能在运行时冲突。

  • 其他的硬约束-测试控制器是否具有硬输出约束或硬混合输入/输出约束,如果是,这些约束是否可能在运行时无法满足。

  • 软限制- 通过评估约束ECR参数,测试控制器是否具有适当的硬度和软限制平衡。

  • MPC数据的内存大小- 估计控制器在运行时所需的内存大小。

您还可以使用该控制器设计以编程方式评估您的控制器设计审查功能。在这种情况下,通过/失败测试结果作为结构返回,并且抑制了测试报告。

以下示例显示了如何在命令行中查看控制器设计并解决潜在的设计问题。

工厂模式

该示例中的应用是燃料气体混合过程。目的是将六个气体混合以获得燃料气体,然后燃烧以提供工艺加热。燃气气体必须满足三种质量标准,以便它可靠地燃烧并具有预期的热量输出。还必须控制燃料气体压力。因此,有四个受控输出变量。六种操纵变量是饲料气流速率。

植物输入是:

  1. 天然气(NG.

  2. 改革煤气(RG

  3. 氢(H2.

  4. 氮 (N2.

  5. 尾气1 (T1

  6. 尾气2(T2

植物产出是:

  1. 高热值(HHV.

  2. 沃泊指数(Wi.

  3. 火焰速度指数(FSI.

  4. 标题压力(P

有关燃气混合问题的更多信息,请参阅[1]。

使用以下线性工厂模型作为控制器的预测模型。这种状态空间模型适用于典型的稳态操作点,使用时间单位单位。

A=diag([-28.6120-28.6822-28.5134-0.0281-23.2191-23.4266...-22.9377 -0.0101 -26.4877 -26.7950 -27.2210 -0.0083...-23.0890 -23.0062 -22.9349 -0.0115 -25.8581 -25.6939...-27.0793 -0.0117 -22.8975 -22.8233 -21.1142 -0.0065]);6 B = 0(24日);B(1: 4,1) = [4 4 8 32]';B(5: 8,2) = [2 2 4 32]';B(9:12,3) = [2 2 4 32]';B(13:16,4) = [4 4 8 32]';B(17:20,5) = [2 2 4 32]';B(21:24,6) = [1 21 32]';C = [diag([6.1510 7.6785 -5.9312 34.2689])]...诊断([ -  2.2158 -3.1204 2.6220 35.3561])...诊断([ -  2.5223 1.1480 7.8136 35.0376]...[-3.3187 -7.6067 -6.2755 34.8720]...诊断([ -  1.6583 -2.0249 2.5584 34.7881])...诊断([ -  1.6807 -1.2217 1.0492 35.0297])];d =零(4,6);植物= SS(A,B,C,D);

默认情况下,所有工厂输入都是被操纵变量的。

plant.inputname = {“NG”'rg''h2''n2'“T1”《终结者2》};

默认情况下,所有设备输出均为测量输出。

plant.outputname = {“它”“WI”'fsi'“P”};

为了反映传感器延迟,在工厂输出中增加传输延迟。

Plant.OutputDelay=[0.00556 0.0167 0.00556 0];

初始控制器设计

根据设计要求构建初始模型预测控制器。首先,为清楚起见,禁用MPC命令窗口消息。

mpc_verbosity = mpcverbosity('离开');

创建一个控制器:

  • 样品时间,Ts的,20.在几小时内指定的秒数,其对应于传感器的采样时间。

  • 预测地平线,p的,39控制间隔,大约等于工厂稳定时间。

  • 控制地平线,,使用长度为的4个格挡移动2612, 和19控制的时间间隔。

Ts=20/3600;p=39;m=[2 6 12 19];Obj=主生产成本(工厂、Ts、p、m);

指定控制器的输出测量噪声和非零名称操作点。

obj.model.noise = ss(0.001 *眼睛(4));obj.model.nominal.y = [16.5 25 43.8 2100];obj.model.nominal.u = [1.4170 0 2 0 0 26.5829];

为每个操纵变量(MV)指定上下限。由于所有操纵变量都是气体流量,所以它们的下界为零。默认情况下,所有的MV约束都是困难的(min0MAXEC.0)。

mvmin =零(1,6);mvmax = [15 20 5 5 30 30];为了i = 1:6 obj.mv(i).min = mvmin(i);obj.mv(i).max = mvmax(i);结尾

为受操纵的变量增量指定下界和上界。边界被设置得足够大,以允许在一个间隔内进行全范围的移动。默认情况下,所有MV速率约束都是困难的(rateminecr.0RateMaxECR0)。

为了i = 1:6 obj.mv(i).ratemin = -mvmax(i);obj.mv(i).ratemax = mvmax(i);结尾

为每个工厂输出变量(OV)指定下限和上限。默认情况下,所有OV约束都是软的(min=1和MAXEC.= 1).

OVmin = [16.5 25 39 2000];OVmax = [18.0 27 46 2200];为了i = 1:4 obj.ov(i).min = ovmin(i);obj.ov(i).max = ovmax(i);结尾

为被操作的变量指定调优权重。MV权重是根据每个馈电流的已知成本指定的。这样做告诉MPC控制器如何移动6个操纵变量,以最小化混合燃料气体的成本。权重被归一化,使最大权重近似1.0

obj.weights.mv = [54.9 20.5 0 5.73 0 0] / 55;

为操作变量增量指定调整权重。这些重量相对于最大MV重量很小,使MV可以自由变化。

Obj.Weights.MVrate=0.1*个(1,6);

指定设备输出变量的调整权重。OV权重惩罚与指定设定点的偏差,通常相对于其他权重较大。对于这个例子,首先考虑默认值,它等于最大MV权重。

obj.weights.ov = [1,1,1,1];

改进初始设计

查看初始控制器设计。的审查函数在Web浏览器窗口中生成并打开报告。

审查(Obj)

审查摘要列出了三个警告和一个错误。按顺序查看警告和错误。点击QP Hessian矩阵有效性并向下滚动到警告,表示工厂信号量大值显着不同。具体地,压力响应远大于其他信号。

由指定的OV边界指示的OV跨度是完全不同的,压力跨度比其他级别大。良好的做法是通过指定MPC尺度因子来解释信号量大的预期差异。由于MVS基于相对成本的加权,因此仅针对OV指定比例因子。

计算OV跨越。

OVspan = OVmax - OVmin;

将这些跨距用作比例因子。

为了i = 1:4 obj.ov(i).scalefactor = ovspan(i);结尾

要验证设置输出缩放因子修复警告,请查看更新的控制器设计。

审查(Obj)

下一个警告表示控制器未在稳态下将OVs驱动至其目标。要查看非零增益的列表,请单击闭环稳态收益

列表中的第一个条目表明,为单位幅度添加了持续干扰HHV.输出将导致HHV.输出偏离其稳态目标约0.0860个单元,假设没有约束是活动的。第二个条目表明了一个单位干扰Wi.会导致稳态偏差或偏移,约为-0.0345 inHHV., 等等。

由于只有六个MV和只有四个OV,因此可以使用多种自由度。因此,您可能希望控制器没有稳态偏移。然而,所指定的非零MV重量被选择为推动工厂朝向最经济的操作条件,导致非零稳态偏移。

非零稳态偏移通常是不可取的,但在这种应用中是可以接受的,因为:

  1. 主要目标是最小化混合成本。气体质量(HHV.等等)可以在指定的OV限制范围内自由变化。

  2. 小的偏移增益幅度表明干扰的影响很小。

  3. OV限制是软限制。小,短期违规是可接受的。

通过单击查看第二个警告硬MV约束.此警告表示硬约束中的潜在冲突。

如果外部事件原因NG.远远低于其指定的最低限额,其增加率的约束可能使得不可能返回NG.在一个控制区间内。换句话说,如果你指定了两者MV。最小值mv.ratemax.如果最近的MV值小于(即可),控制器将无法找到最佳解决方案MV。最小值-mv.ratemax.). 类似地,当您同时指定这两个选项时,可能会发生冲突mv.max.MV。杀鼠灵

气体混合应用中,MV约束冲突将不太可能。但是,良好的做法是通过软化两个约束之一来消除可能性。由于MV最小值和最大值是物理限制,并且增量界限不是,软化增量界限。

为了i = 1:6 obj.mv(i).rateminecr = 0.1;obj.mv(i).ratemaxecr = 0.1;结尾

检查更新后的控制器设计。

审查(Obj)

修正了MV约束冲突警告。

单击,查看错误信息软限制

延迟Wi.输出使得不可能在前三个控制间隔内满足该变量的界限。的Wi.边界是柔软的,但在设计中包括不可达到的限制是不良的做法。因此,修改Wi.绑定规范使得它是不受约束的,直到第四预测地平线步骤。

obj.ov(2).min = [-inf(1,3)OVMIN(2)];obj.ov(2).max = [INF(1,3)OVMAX(2)];

Rerunning Deview命令验证此更改消除了错误消息,如下一步所示。

评估零输出重量的影响

考虑到设计要求允许OVS在它们的范围内自由地变化,考虑移除它们的惩罚权重。

Obj.Weights.OV=零(1,4);

审查此设计变更的影响。

审查(Obj)

关于QP Hessian矩阵效度有一个新的警告。要查看警告详细信息,请单击QP Hessian矩阵有效性

审核标志所有四个输出变量上的零权重。由于零重量与设计要求一致,而其他Hessian测试表明二次编程问题有一个唯一的解决方案,则可以忽略此警告。要查看第二个新警告,请单击闭环稳态收益.该警告显示将四个OV权重设定为零的另一个结果。当AV不会被重量惩罚时,控制器忽略添加到OV的任何输出干扰,并通过无衰减来通过干扰。

由于它是一种设计要求,因此,只要控制器能够在其指定边界内存在其指定的范围内,就可以接受非零稳态偏移。因此,在存在干扰时,可以检查软管约束是否侵犯软ov约束的良好主意。

查看软限制

要查看软限制列表,请单击软限制.在该示例中,软约束是每个OV上的上限和下限。

影响因子列显示使用默认值minMAXEC.数值表示压力(P)比其他OVS更高的优先级。为了使优先级更具可比性,增加压力约束ECR值,并调整其他物。例如:

Obj.OV(1)。min=0。5; Obj.OV(1).MaxECR = 0.5; Obj.OV(3).MinECR = 3; Obj.OV(3).MaxECR = 3; Obj.OV(4).MinECR = 80; Obj.OV(4).MaxECR = 80;

审查此设计变更的影响。

审查(Obj)

在里面敏感比例列时,所有的灵敏度比现在都小于统一,这意味着软约束比MPC目标函数中的其他项得到的关注更少,如mv与它们的目标值的偏差。因此,很可能会发生输出约束冲突。

要使输出约束更高的优先级,而不是其他MPC目标,增加权重..参数,1 e5较高的值,这使得所有软ov约束硬化。

Obj.Weights.ECR=1e8;

审查此设计变更的影响。

审查(Obj)

控制器现在对输出约束违反比对目标跟踪误差更敏感100

查看数据内存大小

要查看在硬件上存储MPC数据矩阵所需的估计内存大小,请单击MPC数据的内存大小

在本例中,如果控制器使用单一精度运行,则需要250 KB内存来存储矩阵。如果控制器内存大小超过目标系统的可用内存,请重新设计控制器以降低其内存需求。或者,增加目标系统上的可用内存。

恢复MPC的冗长级别。

mpcverbosity(mpc_verbosity);

工具书类

Muller C. J., I. K. Craig和N. L. Ricker。工业燃料气体混合系统的建模、验证和控制过程控制.第21卷第6期,2011年,第852-860页。

另请参阅