回顾模型预测控制器的稳定性和鲁棒性问题
您可以检查您的模型预测控制器设计的潜在稳定性和鲁棒性问题。这样做:
在这两种情况下,软件生成一个报告,显示以下测试的结果:
MPC对象创建—测试控制器规格是否生成有效的MPC控制器。如果控制器无效,则不会执行其他测试。
QP黑森矩阵有效性—测试控制器的MPC二次规划(QP)问题是否有唯一解。你必须选择成本函数参数(惩罚权重)和范围,使QP黑森矩阵是正定的。
闭环内部稳定性-提取
一个
从矩阵的状态空间实现无约束控制器,然后计算其特征值。如果每个特征值的绝对值小于或等于1
工厂是稳定的,那么你的反馈系统内部也是稳定的。闭环名义稳定性-提取
一个
基于矩阵的离散状态空间闭环系统的实现也就是说,设备和控制器以反馈配置连接。然后计算的特征值一个
.如果每个特征值的绝对值小于或等于1
,则名义(无约束)系统是稳定的。闭环稳态增益-在没有约束的情况下,测试控制器是否在稳态下将所有被控制的输出变量强制到目标上。
硬MV约束-测试控制器是否对被操纵的变量及其变化率都有硬约束,如果有,这些约束在运行时是否会冲突。
其他硬性限制-测试控制器是否有硬输出约束或硬混合输入/输出约束,如果有,这些约束在运行时是否可能无法满足。
软约束-通过评估约束ECR参数,测试控制器是否具有适当的硬约束和软约束的平衡。
MPC数据的内存大小—估算控制器在运行时所需的内存大小。
控件还可以以编程方式评估控制器设计审查
函数。在这种情况下,通过/失败测试结果作为结构返回,测试报告被抑制。
下面的示例展示了如何在命令行检查控制器设计并解决潜在的设计问题。
工厂模式
本例中的应用是一个燃料气体混合过程。其目的是混合六种气体以获得燃料气体,然后燃烧以提供工艺加热。燃料气体必须满足三个质量标准,以便可靠地燃烧和预期的热量输出。燃料气体集管压力也必须控制。因此,有四个受控输出变量。这六个操纵变量是原料气流量。
工厂的投入是:
天然气(
NG
)重整气体(
RG
)氢(
H2
)氮(
N2
)尾气1 (
T1
)尾气2 (
T2
)
工厂产量为:
高热值(
疱疹
)沃伯指数(
WI
)火焰速度指数(
投资策略基金会
)压头压力(
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]);B = 0 (24,6);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])...Diag ([-2.2158 -3.1204 2.6220 35.3561])...Diag ([-2.5223 1.1480 7.8136 35.0376])...Diag ([-3.3187 -7.6067 -6.2755 34.8720])...Diag ([-1.6583 -2.0249 2.5584 34.7881])...Diag ([-1.6807 -1.2217 1.0492 35.0297])];D = 0 (4,6);植物= ss(A,B,C,D);
默认情况下,所有工厂输入都是操作变量。
工厂。在putName = {“NG”,“RG”,“氢气”,“氮气”,“T1”,《终结者2》};
默认情况下,所有工厂输出均为测量输出。
工厂。OutputName = {“它”,“WI”,投资策略基金会的,“P”};
为了反映传感器延迟,将运输延迟添加到工厂输出。
工厂。OutputDelay = [0.00556 0.0167 0.00556 0];
初始控制器设计
根据设计要求,构造初始模型预测控制器。首先,为了清晰起见,禁用MPC命令窗口消息。
mpcverbosity = mpcverbosity(“关闭”);
创建一个控制器:
样品时间,
Ts
的,20.
秒,单位为小时,对应于传感器的采样时间。预测地平线,
p
的,39
控制间隔,这大约等于植物的安顿时间。控制层,
米
,它使用了四个长度为2
,6
,12
,19
控制的时间间隔。
Ts = 20/3600;P = 39;M = [2 6 12 19];Obj = mpc(Plant,Ts,p,m);
指定控制器的输出测量噪声和非零标称工作点。
Obj.Model.Noise = ss(0.001*eye(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约束都是硬的(MinECR
=0
而且MaxECR
=0
).
MVmin = 0 (1,6);MVmax = [15 20 5 5 30 30];为i = 1:6 Obj.MV(i)。Min = MVmin(i);Obj.MV(我)。马克斯=MVmax(i);结束
指定操作变量增量的下界和上界。边界设置得足够大,以允许在一个间隔内进行全范围的运动。默认情况下,所有MV速率约束都是硬的(RateMinECR
=0
而且RateMaxECR
=0
).
为i = 1:6 Obj.MV(i)。杀鼠灵=-MVmax(i); Obj.MV(i).RateMax = MVmax(i);结束
指定每个工厂输出变量(OV)的下限和上限。默认情况下,所有OV约束都是软的(MinECR
= 1和MaxECR
= 1)。
OVmin = [16.5 25 39 2000];OVmax = [18.0 27 46 2200];为i = 1:4 Obj.OV(i)。Min = OVmin(i);Obj.OV(我)。马克斯=OVmax(i);结束
为被操作的变量指定调优权重。MV权重是根据每个饲料流的已知成本指定的。这样做告诉MPC控制器如何移动六个操纵变量,以尽量减少混合燃料的成本。权重经过标准化处理,使得最大权重近似为1.0
.
Obj.Weights.MV = [54.9 20.5 0 5.73 0 0]/55;
为操作的变量增量指定调优权重。这些权重相对于最大MV权重较小,因此MV可以自由变化。
Obj.Weights.MVrate = 0.1*ones(1,6);
为工厂输出变量指定调优权重。OV权重惩罚偏离指定设定值的偏差,通常相对于其他权重较大。对于本例,首先考虑默认值,它等于最大MV权值。
Obj.Weights.OV = [1,1,1,1];
完善初始设计
回顾最初的控制器设计。的审查
函数生成并在Web浏览器窗口中打开报告。
评估(Obj)
审查摘要列出了三个警告和一个错误。按顺序检查警告和错误。点击QP黑森矩阵有效性并向下滚动到警告,这表明植物信号的幅度有显著差异。具体来说,压力响应比其他信号要大得多。
由指定的OV边界指示的OV跨度有很大的不同,压力跨度比其他的大两个数量级。通过指定MPC尺度因子来解释信号幅度的预期差异是一个很好的实践。因为mv已经基于相对成本进行了加权,所以只为ov指定比例因子。
计算OV跨度。
OVspan = OVmax - OVmin;
使用这些跨度作为比例因子。
为i = 1:4 Obj.OV(i)。ScaleFactor = OVspan(i);结束
要验证设置输出比例因子修复了警告,请检查更新后的控制器设计。
评估(Obj)
下一个警告表示控制器没有在稳定状态下将OVs驱动到目标。要查看非零增益的列表,请单击闭环稳态增益.
列表中的第一个条目表明,将单位量级的持续扰动添加到疱疹
输出将导致疱疹
输出偏离其稳态目标约0.0860个单位,假设没有约束是有效的。第二项显示了一个单元的扰动WI
会造成大约-0.0345英寸的稳态偏差或偏移量吗疱疹
等等。
因为有6个mv,而只有4个ov,所以有多余的自由度。因此,您可能希望控制器没有稳态偏移。然而,指定的非零MV权值(被选择来驱动电厂走向最经济的运行条件)会导致非零稳态偏移。
非零稳态偏移量通常是不可取的,但在本应用中是可以接受的,因为:
主要目标是使混合成本最小化。气体质量(
疱疹
,等等)可在指定的OV限值内自由变化。较小的偏置增益量表明扰动的影响较小。
OV极限是软约束。小的、短期的违规行为是可以接受的。
通过单击查看第二个警告硬MV约束.此警告表示硬约束中存在潜在冲突。
如果外部事件导致NG
要远低于其指定的最小值,对其增长率的限制可能会使其无法返回NG
在一个控制区间的范围内。换句话说,如果同时指定两者MV。最小值
而且MV。RateMax
时,如果最近MV值小于(),控制器将无法找到最优解MV。最小值
-MV。RateMax
).类似地,当同时指定两者时,也存在潜在的冲突MV。马克斯
而且MV。杀鼠灵
.
在气体混合应用中不太可能出现MV约束冲突。然而,通过软化两个约束之一来消除这种可能性是一种良好的实践。由于MV的最小值和最大值是物理极限,而增量边界不是,所以要软化增量边界。
为i = 1:6 Obj.MV(i)。RateMinECR = 0.1;Obj.MV(我)。RateMaxECR=0.1;结束
检查更新后的控制器设计。
评估(Obj)
修正了MV约束冲突警告。
单击,查看错误提示信息软约束.
延迟WI
输出使得在前三个控制间隔内不可能满足该变量的边界。的WI
界限是软的,但是在设计中包含无法达到的约束是一种糟糕的实践。因此,请修改WI
绑定规范,使其在第四个预测水平步骤之前不受约束。
Obj.OV(2)。最小值=[-Inf(1,3) OVmin(2)]; Obj.OV(2).Max = [ Inf(1,3) OVmax(2)];
重新运行review命令验证此更改是否消除了错误消息,如下一步所示。
评估零输出权重的影响
考虑到设计要求允许OVs在其限制范围内自由变化,可以考虑去掉它们的惩罚权重。
Obj.Weights.OV = 0 (1,4);
检查此设计更改的影响。
评估(Obj)
有一个关于QP黑森矩阵有效性的新警告。单击,查看详细警告信息QP黑森矩阵有效性.
审查标记了所有四个输出变量的零权重。由于零权值与设计要求一致,且其他Hessian检验表明二次规划问题有唯一解,因此可以忽略此警告。要查看第二个新警告,请单击闭环稳态增益.该警告显示了将四个OV权重设置为零的另一个后果。当OV没有受到权重的惩罚时,控制器忽略添加到OV的任何输出扰动,并使扰动通过而没有衰减。
由于这是设计要求,只要控制器能够将所有OVs控制在指定的范围内,非零稳态偏移量是可以接受的。因此,当存在干扰时,检查软OV约束是否容易被违反是一个好主意。
回顾软约束
要查看软约束列表,请单击软约束.在本例中,软约束是每个OV的上限和下限。
的影响因子列显示使用默认值的MinECR
而且MaxECR
值给出压力(P
),优先级比其他OVs高得多。为了使优先级更具可比性,可以增加压力约束ECR值,并调整其他优先级。例如:
Obj.OV(1)。MinECR=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)
在灵敏度比列中,所有的灵敏度比现在都小于1,这意味着在MPC目标函数中,软约束受到的关注要少于其他项,例如mv与目标值的偏差。因此,很可能会发生违反输出约束的情况。
要使产出约束比其他MPC目标具有更高的优先级,可以增加权重。ECR
参数,1 e5
,到一个更高的值,使所有的软OV约束硬化。
Obj.Weights.ECR = 1e8;
检查此设计更改的影响。
评估(Obj)
控制器现在对输出约束的违反比对目标跟踪中的错误更加敏感One hundred.
.
回顾数据内存大小
要查看存储硬件上使用的MPC数据矩阵所需的估计内存大小,请单击MPC数据的内存大小.
在本例中,如果控制器使用单个精度运行,则需要250 KB内存来存储矩阵。如果控制器内存大小超过目标系统上可用的内存,请重新设计控制器以减少其内存需求。或者,增加目标系统上的可用内存。
恢复MPC详细级别。
mpcverbosity (MPC_verbosity);
参考文献
穆勒C. J., I. K.克雷格,N. L.里克。工业燃料气体混合系统的建模、验证和控制过程控制杂志.Vol. 21, no . 6, 2011, pp. 852-860。