主要内容

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

你可以检查你的模型预测控制器设计为潜在的稳定性和鲁棒性问题。这样做:

  • 在命令行中使用审查函数。

  • MPC设计师,在调优选项卡,分析部分中,点击审查设计

在这两种情况下,软件生成一个报告显示下面的测试结果:

  • MPC对象创建-测试控制器是否规范生成一个有效的MPC控制器。如果控制器是无效的,不进行额外的测试。

  • QP海赛矩阵有效性——测试MPC是否二次规划(QP)问题控制器有一个独特的解决方案。你必须选择成本函数参数(惩罚权重)和视野,QP海赛矩阵是正定的。

  • 闭环内部稳定——提取一个矩阵的状态实现无约束控制器,然后计算它的特征值。如果每个特征值的绝对值小于或等于1和植物是稳定的,那么你的反馈系统内部稳定。

  • 闭环名义稳定——提取一个矩阵的离散时间状态空间实现闭环系统;也就是说,工厂和控制器连接在一个反馈配置。然后计算的特征值一个。如果每个特征值的绝对值小于或等于1,那么名义(无约束)系统是稳定的。

  • 闭环稳态收益——测试控制器是否力量都控制在稳态输出变量目标约束的缺失。

  • 硬MV约束——测试控制器是否有硬约束在一个操纵变量及其变化率,如果是这样,在运行时这些限制是否会冲突。

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

  • 软约束——测试控制器是否软硬约束通过评估的适当平衡约束ECR参数。

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

您也可以通过编程方式使用的评估你的控制器设计审查函数。在这种情况下,通过/失败测试结果返回一个结构和测试报告是抑制。

下面的例子显示了如何在命令行检查你的控制器设计和解决潜在的设计问题。

工厂模式

应用程序在这个例子中是一个燃气混合的过程。目标是六气体获得燃气混合,然后燃烧提供过程加热。燃气必须满足三个质量标准才能可靠地燃烧和预期的热量输出。燃气头压力也必须被控制。因此,有四个输出变量控制。六个操纵变量是原料气流量。

植物的输入:

  1. 天然气(NG)

  2. 改革后的气体(RG)

  3. 氢(H2)

  4. 氮(N2)

  5. 尾气1 (T1)

  6. 尾气2 (T2)

植物输出是:

  1. 高热值(疱疹)

  2. 沃泊指数(WI)

  3. 火焰速度指数(投资策略基金会)

  4. 头压力(P)

燃气混合问题的更多信息,参见[1]。

使用以下线性植物模型作为预测模型的控制器。这个状态方程模型,适用于在一个典型的稳态操作点,使用单位小时的时间。

一个=诊断接头([-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(2) 5: 8日= (2 2 4 32)';3 B (9:12) = (2 2 4 32) ';B (13:16 4) = (4 4 8 32) ';B(十七20 (5)= (2 2 4 32)';B原因(21:24 6)= (1 2 1 32)';C =[诊断接头([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 = 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命令窗口消息。

MPC_verbosity = mpcverbosity (“关闭”);

创建一个控制器和一个:

  • 样品时间,Ts的,20.中指定的秒,小时,对应的样品时间传感器。

  • 预测地平线,p的,39控制区间,约等于植物沉淀时间。

  • 控制层,移动的长度,使用四个阻塞2,6,12,19控制的时间间隔。

Ts = 20/3600;p = 39;m = (2 6 12 19);Obj = mpc(植物、t、p、m);

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

Obj.Model。噪音= ss(0.001 *眼(4));Obj.Model.Nominal。Y = 25 [16.5 43.8 2100];Obj.Model.Nominal。U = (1.4170 0 2 0 0 26.5829);

为每个被控变量指定的上下界限(MV)。因为所有的操纵变量是流速的气体流,它们的下界为零。默认情况下,所有的MV约束是很难的(MinECR=0MaxECR=0)。

MVmin = 0 (1,6);MVmax = (15 20 5 5 30 30);i = 1:6 Obj.MV(我)。Min = MVmin(我);Obj.MV(我)。Max = MVmax(我);结束

指定为被控变量的增量上下界限。边界设置足够大,允许全面的运动在一个时间间隔。默认情况下,所有的MV率约束是很难的(RateMinECR=0RateMaxECR=0)。

i = 1:6 Obj.MV(我)。杀鼠灵= -MVmax(我);Obj.MV(我)。RateMax = MVmax(我);结束

为每个工厂指定的上下边界输出变量(OV)。默认情况下,所有OV软约束(MinECR= 1,MaxECR= 1)。

OVmin = 25 39 2000] [16.5;OVmax = (18.0 27 46 2200);i = 1:4 Obj.OV(我)。Min = OVmin(我);Obj.OV(我)。Max = OVmax(我);结束

指定操作调优权重变量。MV指定权重已知的成本的基础上每个提要流。这样告诉MPC控制器如何移动六个操纵变量混合燃气的成本降到最低。权重是标准化的最大重量大约是这样的1.0

Obj.Weights。5.73 MV = (54.9 - 20.5 0 0 0] / 55;

指定为被控变量的增量调整权重。这些权重小的相对于最大MV重量MVs可以自由变化。

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

为植物输出变量指定优化权重。OV权重惩罚偏离指定的定位点和通常会大相对于其他权重。对于这个示例,首先考虑默认值,等于最大MV重量。

Obj.Weights。OV = (1, 1, 1, 1);

提高初步设计

回顾最初的控制器设计。的审查函数生成并在Web浏览器窗口中打开一个报告。

评估(Obj)

回顾总结列出了三个警告和错误。检查警告和错误。点击QP海赛矩阵有效性向下滚动到警告,表明植物信号大小差别很大。具体来说,压力远远大于其他信号的响应。

OV跨越表示OV指定边界有很大的不同,和压强跨度比别人大两个数量级。是一种很好的做法占预期信号大小的差异通过指定MPC规模因素。自从MVs已经加权相对成本的基础上,指定只在ov规模因素。

计算OV跨越。

OVspan = OVmax - OVmin;

使用这些跨越规模因素。

i = 1:4 Obj.OV(我)。ScaleFactor = OVspan(我);结束

验证设置输出规模因素修正的警告,检查更新后的控制器设计。

评估(Obj)

接下来的警告表明,控制器不开车ov目标在稳定状态。非零收益的列表,点击闭环稳态收益

第一项在列表中显示,添加一个持续扰动的单位大小疱疹输出会导致疱疹输出从其稳态目标偏离0.0860单位,假设没有约束是活跃的。第二项显示单位干扰WI会导致稳态偏差,或者抵消,约为-0.0345疱疹,等等。

因为有六个MVs和只有四机汇,多余的自由度是可用的。因此,你可能会认为没有稳态补偿控制器。然而,指定非零MV权重,选择向最经济的驱动装置操作条件,导致了非零稳态补偿。

非零稳态补偿通常是不受欢迎的但是是可以接受的在这个应用程序中,因为:

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

  2. 小补偿增益大小表明,扰动的影响很小。

  3. OV限制软约束。小,短期行为是可以接受的。

通过点击查看第二个警告硬MV约束。这个警告表明硬约束的潜在冲突。

如果一个外部事件的原因NG远远低于其指定最小,约束其增长率可能会使它无法返回NG在允许范围内控制在一个时间间隔。换句话说,如果你指定MV.MinMV.RateMax,控制器将无法找到一个最优解,如果最近的MV值小于(MV.Min- - - - - -MV.RateMax)。同样,有一个潜在的冲突时指定MV.MaxMV.RateMin

一个MV约束冲突不太可能在气混合应用程序。然而,是一种很好的做法,消除的可能性软化的两个约束条件。自MV中物理限制,最大和最小值增量范围不是软化增量。

i = 1:6 Obj.MV(我)。RateMinECR = 0.1;Obj.MV(我)。RateMaxECR=0。1;结束

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

评估(Obj)

MV约束冲突预警是固定的。

查看错误消息,点击软约束

的延迟WI输出使其无法满足在前三个变量控制界限的间隔。的WI边界是软,但可怜的实践将高不可攀约束纳入设计。因此,修改WI约束规范,它是无约束,直到第四步预测地平线。

Obj.OV (2)。Min =[无穷(1、3)OVmin (2)];Obj.OV (2)。Max =[正(1、3)OVmax (2)];

运行检查命令验证这种变化消除了错误消息,如图所示在下一步。

零输出权重评估的影响

考虑到设计要求允许ov变化自由地在自己的范围内,考虑删除他们的惩罚权重。

Obj.Weights。OV = 0 (1、4);

回顾这个设计变化的影响。

评估(Obj)

有一个新的警告关于QP海赛矩阵的有效性。看到警告信息,点击QP海赛矩阵有效性

审查旗帜零重量在所有四个输出变量。自零重量符合设计要求和其他黑森测试表明,二次规划问题有一个独特的解决方案,这个警告可以忽略。看到第二个新的警告,点击闭环稳态收益。警告显示设置的另一个后果四个OV权重为零。OV不是惩罚的重量时,控制器会忽略任何输出扰动OV和通过干扰通过没有衰减。

因为它是一个设计要求,非零稳态补偿控制器是可以接受的,只要是能够保存所有ov在其指定的界限。因此,它是一个好主意来检查很容易软OV约束是如何干扰存在时违反了。

检查软约束

看到软约束的列表,点击软约束。在这个例子中,软约束是对每个OV上界和下界。

影响因子列显示,使用默认值MinECRMaxECR值给的压力(P比其他ov)更高的优先级。重点更多的可比性,增加约束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)

灵敏度比列,现在所有的敏感性比率不到团结,这意味着软约束获得的关注更少比其他条款在MPC目标函数,如MVs的目标值的偏差。因此,很可能会发生一个输出约束违反。

给输出约束的优先级高于其他MPC目标,增加Weights.ECR从默认的参数,1 e5,更高的价值,变硬软OV约束。

Obj.Weights。ECR = 1 e8;

回顾这个设计变化的影响。

评估(Obj)

现在控制器输出约束违反比错误更敏感于目标跟踪的一个因素One hundred.

审查数据的内存大小

看到货币政策委员会数据存储所需的内存大小估计矩阵用于硬件、点击MPC数据的内存大小

在这个例子中,如果控制器运行使用单精度,它需要250 KB的内存来存储矩阵。如果控制器内存大小超过目标系统上的可用内存,重新设计控制器,以减少内存需求。另外,增加目标系统上的可用内存。

恢复MPC冗长的水平。

mpcverbosity (MPC_verbosity);

引用

[1]穆勒c J。,I. K. Craig, and N. L. Ricker. "Modeling, validation, and control of an industrial fuel gas blending system."《过程控制。6号卷。21日,2011年,页852 - 860。

另请参阅