主要内容

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

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

运行时控制监控概述

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

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

这个例子展示了如何在Simulink中设置运行时控制器状态监控。万博1manbetx

定义植物模型

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

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

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

定义未测负载扰动。信号在1到3秒之间从0上升到2,然后在3到5秒之间从2下降到0。

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

MPC控制器设计

创建MPC对象。

t = 0.2;Obj = mpc(Plant, Ts);
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约束是软的。

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

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

Obj.OV.MinECR = 0;Obj.OV.MaxECR = 0;

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

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

使用仿真软件模拟®万博1manbetx

要运行此示例,需要Simulink®。万博1manbetx

如果~ mpcchecktoolboxinstalled (“万博1manbetx模型”) disp (运万博1manbetx行这个示例需要Simulink(R)。返回结束

在Simulink模型中建立控制系统并使万博1manbetxqp.status从控制器模块对话框中输出。它的运行时值显示在Simulink Scope块中。万博1manbetx

mdl =“mpc_onlinemonitoring”;open_system (mdl)

模拟闭环响应。

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

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

bdclose (mdl)