您可以回顾您的模型预测控制器设计,以解决潜在的稳定性和鲁棒性问题。这样做:
在这两种情况下,软件都会生成显示以下测试结果的报告:
对象创建-测试控制器规范是否生成有效的MPC控制器。如果控制器无效,则不执行其他测试。
QP-Hessian矩阵有效性-测试控制器的MPC二次规划(QP)问题是否有唯一的解决方案。您必须选择成本函数参数(惩罚权重)和水平,以便QP Hessian矩阵是正定的。
闭环内部稳定-提取一个
从状态空间矩阵实现无约束控制器,然后计算其特征值。如果每个特征值的绝对值小于或等于1
工厂是稳定的,那么你的反馈系统内部是稳定的。
闭环名义稳定-提取一个
矩阵从离散时间状态空间实现闭环系统,即被控对象与控制器连接在一个反馈配置中,然后计算其特征值一个
.如果每个特征值的绝对值小于或等于1
,则标称(无约束)系统是稳定的。
闭环稳态收益-测试控制器是否在没有约束条件的情况下,将所有受控输出变量强制到其目标上处于稳态。
硬MV约束-测试控制器是否对操纵变量及其变化率都有硬约束,如果有,这些约束在运行时是否会冲突。
其他的硬约束-测试控制器是否具有硬输出约束或硬混合输入/输出约束,如果是,这些约束是否可能在运行时无法满足。
软约束-通过评估约束ECR参数,测试控制器是否正确平衡硬约束和软约束。
MPC数据的内存大小-估计控制器在运行时所需的内存大小。
您还可以使用回顾
在这种情况下,通过/失败测试结果作为结构返回,测试报告被抑制。
下面的示例显示如何在命令行中查看控制器设计并解决潜在的设计问题。
本例中的应用是燃气混合工艺。目的是混合六种气体以获得燃气,然后燃烧以提供工艺加热。燃气必须满足三个质量标准,才能可靠燃烧并具有预期的热量输出。还必须控制燃气集管压力。因此,有四个受控输出变量。六个操纵变量为原料气流量。
设备输入为:
天然气(NG
)
重整气(RG
)
氢(氢
)
氮(氮气
)
尾气1 (T1
)
尾气2(T2
)
工厂输出为:
高热值(HHV
)
沃泊指数(WI
)
火焰速度指数(FSI
)
集管压力(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])...diag([-1.6807-1.22171.0492 35.0297]);D=零(4,6);Plant=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_详细程度=MPC详细程度(“关”);
使用以下命令创建控制器:
样品时间,Ts
的,20.
秒,以小时为单位,对应于传感器的采样时间。
预测地平线,p
的,39
控制间隔,大约等于设备的稳定时间。
控制视野,米
,使用长度为的4个格挡移动2
,6
,12
和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 02 0 26.5829];
为每个操纵变量(MV)指定上下限。由于所有操纵变量都是气体流量,所以它们的下界为零。默认情况下,所有的MV约束都是困难的(地雷
=0
和MaxECR
=0
).
MVmin=0(1,6);MVmax=[15 20 5 30];对于i=1:6 Obj.MV(i).Min=MVmin(i);Obj.MV(i).Max=MVmax(i);终止
为受操纵的变量增量指定下界和上界。边界被设置得足够大,以允许在一个间隔内进行全范围的移动。默认情况下,所有MV速率约束都是困难的(税率
=0
和RateMaxECR
=0
).
对于i=1:6对象MV(i).最小速率=-MVmax(i);对象MV(i).最大速率=MVmax(i);终止
为每个工厂输出变量(OV)指定下限和上限。默认情况下,所有OV约束都是软约束(地雷
=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(i).Max=OVmax(i);终止
为被操作的变量指定调优权重。MV权重是根据每个馈电流的已知成本指定的。这样做告诉MPC控制器如何移动6个操纵变量,以最小化混合燃料气体的成本。权重被归一化,使最大权重近似1
.
Obj.Weights.MV=[54.920.505.730]/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已经基于相对成本进行加权,因此仅为t指定比例因子他有一个卵子。
计算OV跨越。
OVspan = OVmax - OVmin;
将这些跨距用作比例因子。
对于i=1:4对象OV(i),标度因子=OVspan(i);终止
要验证设置输出比例因子是否修复了警告,请查看更新的控制器设计。
审查(Obj)
下一个警告表示控制器未在稳态下将OVs驱动至其目标。要查看非零增益的列表,请单击闭环稳态收益.
列表中的第一项显示,将单位量级的持续扰动添加到HHV
输出将导致HHV
假设没有激活约束,输出偏离其稳态目标约0.0860个单位。第二项显示,在WI
会导致稳态偏差或偏移,约为-0.0345 inHHV
等等
由于有六个MV,只有四个OV,因此有多余的自由度可用。因此,您可能期望控制器没有稳态偏移。但是,为驱动电厂达到最经济的运行条件而选择的指定非零MV重量会导致非零稳态偏移。
非零稳态偏移通常是不可取的,但在这种应用中是可以接受的,因为:
主要目标是使混合成本最小化。气体质量(HHV
等)可以在指定的OV限制内自由变化。
小的偏移增益幅度表明干扰的影响很小。
OV限值是软约束。小的短期违规是可以接受的。
通过单击查看第二个警告硬MV约束.此警告表示硬约束中的潜在冲突。
如果外部事件导致NG
要远远低于其指定的最低值,其增长率的限制可能使其无法返回该值NG
在一个控制区间内。换句话说,如果你指定了两者MV。最小值
和额定功率最大值
,如果最近的MV值小于,控制器将无法找到最佳解决方案(MV。最小值
-额定功率最大值
)。同样,当您同时指定两者时,也存在潜在冲突最大毫伏
和MV。杀鼠灵
.
在气体混合应用中,MV约束冲突不太可能发生。但是,通过软化两个约束中的一个来消除这种可能性是一种很好的做法。由于MV最小值和最大值是物理限制,而增量边界不是,因此软化增量边界。
对于i=1:6目标MV(i).速率MineCr=0.1;目标MV(i).速率MaxeCr=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)];
重新运行review命令验证此更改是否消除了错误消息,如下一步所示。
考虑到设计要求允许OVS在它们的范围内自由地变化,考虑移除它们的惩罚权重。
Obj.Weights.OV=零(1,4);
审查此设计变更的影响。
审查(Obj)
关于QP Hessian矩阵效度有一个新的警告。要查看警告详细信息,请单击QP-Hessian矩阵有效性.
审查标记所有四个输出变量的零权重。由于零权重与设计要求一致,并且其他Hessian测试表明二次规划问题具有唯一的解决方案,因此可以忽略此警告。要查看第二个新警告,请单击闭环稳态收益。警告显示了将四个OV权重设置为零的另一个后果。当OV未受到权重惩罚时,控制器忽略添加到OV的任何输出干扰,并通过干扰而不衰减。
由于这是设计要求,只要控制器能够将所有OV保持在其指定范围内,非零稳态偏移是可以接受的。因此,当存在干扰时,检查软OV约束被违反的程度是一个好主意。
要查看软约束列表,请单击软约束在本例中,软约束是每个OV的上限和下限。
的影响因素列显示使用默认值地雷
和MaxECR
数值表示压力(P
)优先级比其他OV高得多。要使优先级更具可比性,请增加压力约束ECR值,并调整其他值。例如:
Obj.OV(1)。地雷=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详细级别。
MPC冗余度(MPC_冗余度);
Muller C. J., I. K. Craig和N. L. Ricker。工业燃料气体混合系统的建模、验证和控制过程控制杂志.第21卷第6期,2011年,第852-860页。