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

这个示例展示如何使用qp.statusSimulink中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]);

定义未测负荷扰动。信号在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。对象的“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。最小值= 1;Obj.MV。Max = 1;Obj.OV。最小值= 1;Obj.OV。Max = 1;

将上部和下部OV约束配置为硬边界。

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

重写默认的估计器。这个高增益估计器改进了对迫近的约束违反的检测。

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

使用仿真软件模拟®金宝app

要运行此示例,需要使用Simulink®。金宝app

如果~ mpcchecktoolboxinstalled (“金宝app模型”) disp (运金宝app行这个示例需要Simulink(R)。)返回结束

在Simulink模型中构建控制系统,并启用金宝appqp.status从控制器块对话框输出。它的运行时值显示在Simulink作用域块中。金宝app

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)