主要内容

监控优化状态以检测控制器故障

这个例子展示了如何使用qp.status在Simulink®中MPC控制器模块的输出端口,以实时检测控制器故障。金宝app

运行时控制监控概述

qp.status当控制器通过求解二次规划(QP)问题找到最优控制动作时,MPC控制器块的输出返回一个正整数。整数值对应于优化过程中使用的迭代次数。如果在给定的样本区间内所表述的QP问题是不可行的,控制器将无法找到解决方案。在这种情况下,控制器块的MV输出端口保留最近的值和qp.status外港返回1。在优化过程中达到最大迭代次数的罕见情况下qp.status外港返回0。

在工业MPC应用中,您可以检测您的模型预测控制器是否处于故障模式(0或-1)或不是通过监控qp.status外港。如果MPC发生故障,您可以使用此信号切换到备份控制计划。

有关更多信息,请参见车道保持辅助系统优化器选项的货币政策委员会

这个例子展示了如何在Simulink中设置运行时控制器状态监控。金宝app

定义植物模型

测试装置是单输入,单输出装置,对操纵变量和控制输出都有严格限制。在设备输出处增加一个负荷扰动。干扰包括一个斜坡信号,饱和操纵变量由于对MV的硬限制。饱和发生后,你失去了控制自由度,扰动最终迫使输出超出其上限。当这种情况发生时,模型预测控制器在运行时提出的QP问题就变得不可行的了。

将电厂模型定义为具有统一静态增益的简单SISO系统。

Plant = tf(1,[2 1]);

定义未测负载扰动。信号从02之间的13.秒,然后从20之间的3.5秒。

LoadDist = [0 0;1 0;3 - 2;5 0;7 0];

MPC控制器设计

创建一个MPC对象植物样本时间为0.2秒。

Mpcobj = mpc(plant, 0.2);
mpc对象的“PredictionHorizon”属性是空的。尝试PredictionHorizon = 10。mpc对象的"ControlHorizon"属性为空。假设2。- - - >“权重。mpc对象的操纵变量属性为空。假设默认的0.00000。- - - >“权重。mpc对象的操控变量率属性为空。假设默认的0.10000。 -->The "Weights.OutputVariables" property of "mpc" object is empty. Assuming default 1.00000.

定义设备输入(MV)和输出(OV)的硬约束。默认情况下,所有的MV约束是硬的,而OV约束是软的。

mpcobj.MV.Min = 1;mpcobj.MV.Max = 1;mpcobj.OV.Min = 1;mpcobj.OV.Max = 1;

配置上、下OV约束为硬边界。

mpcobj.OV.MinECR = 0;mpcobj.OV.MaxECR = 0;

覆盖默认估计器。这种高增益估计器改进了对即将发生的约束违反的检测。

setEstimator (mpcobj [], [0, 1])

使用仿真软件模拟金宝app

在Simulink模型中建立控制系统并使金宝appqp.status从控制器模块对话框中输出。它的运行时值显示在Simulink Scope块中。金宝app

mdl =“mpc_onlinemonitoring”;open_system (mdl)

模拟闭环并显示响应。

(mdl sim (mdl) open_system (“/控制器状态”(mdl) open_system (“/响应”])
- - - >转换”模型。将“mpc”对象的“属性”放入状态空间。——>模型转换为离散时间。——>假设添加到测量输出通道#1的输出扰动为集成白噪声。——>”模式。mpc对象的Noise属性为空。假设每个测量输出通道上都有白噪声。

如响应范围所示,升压扰动信号使MV在其下界-1处饱和,这是这些情况下的最优解。植物产量超过上限后,在下一个采样间隔(2.6秒),控制器实现,它再也不能保持在允许范围内的输出饱和的(因为它的MV仍然),所以信号控制器故障由于一个不可行的QP问题在控制器状态范围(1)。在输出返回范围内后,QP问题再次变得可行(3.4秒)。一旦MV不再饱和,正常的控制行为就会恢复。

关闭Simulink金宝app模型。

bdclose (mdl)