主要内容

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

此示例显示了如何使用qp.status.MPC控制器块的出口在Simulink®中实时检测控制器故障。金宝app

运行时控制监控概述

qp.status.当控制器通过求解二次编程(QP)问题时,MPC控制器块的输出返回正整数。整数值对应于优化期间使用的迭代次数。如果在给定的样本间隔中配制的QP问题是不可行的,则控制器将无法找到解决方案。在这种情况下,控制器块的MV输出保留了最新的值和qp.status.出口返回-1。在优化期间达到最大迭代次数时的罕见情况下,qp.status.出口返回0。

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

有关更多信息,请参阅车道保持辅助系统优化器选项在MPC.

此示例显示如何在Simulink中设置运行时控制器状态监视。金宝app

定义工厂模型

试验工厂是单次,单输出工厂,对操纵变量和控制输出有硬限制。在植物输出处添加负载干扰。干扰由斜坡信号组成,该信号由于MV的硬限制而饱和被操纵变量。发生饱和后,您会失去自由度的控制度,并且扰动最终迫使输出超出其上限。发生这种情况时,在运行时间下由模型预测控制器制定的QP问题变得不可行。

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

植物= TF(1,[2 1]);

定义未测量的负载干扰。信号升高0.2之间13.秒,然后斜坡下来20.之间3.5.秒。

loaddist = [0 0;1 0;3 2;5 0;7 0];

设计MPC控制器

创建MPC对象植物采样时间0.2秒。

mpcobj = mpc(植物,0.2);
- >“MPC”对象的“PredIctionHorizo​​n”属性为空。尝试prediondhorizo​​n = 10.  - >“MPC”对象的“ControlHorizo​​n”属性为空。假设2.  - >“MPC”对象的“权重”属性为空。假设默认为0.00000。- >“MPC”对象的“权重”属性为空。假设默认为0.10000。- >“MPC”对象的“权重”属性为空。假设默认为1.0万。

在工厂输入(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])

使用simulink模拟金宝app

在Simulink模型中构建控制系统并启用金宝appqp.status.从控制器块对话框中出口。其运行时值显示在Simulink范围块中。金宝app

mdl ='mpc_onlinamenting';Open_System(MDL)

模拟闭环并显示响应。

SIM(MDL)Open_System([MDL'/控制器状态'])Open_System([MDL'/回复'])
- >将“MPC”对象的“Model.Plant”属性转换为状态空间。- >将模型转换为离散时间。- >假设添加到测量的输出干扰,输出通道#1是集成的白噪声。- >“MPC”对象的“Model.Noise”属性为空。假设每个测量的输出通道上的白噪声。

如响应范围所示,斜坡扰动信号导致MV在其下绑定-1处饱和,这是这些情况的最佳解决方案。在工厂输出超过上限之后,在下一个采样间隔(2.6秒),控制器意识到它不再能够保持界限内的输出(因为其MV仍然是饱和的),因此它引起了由于不可行的控制器故障QP问题(控制器状态范围中的-1)。输出回到界限后,QP问题再次变得可行(3.4秒)。一旦MV不再饱和,就会返回正常的控制行为。

关闭Simulink金宝app模型。

BdClose(MDL)