要创建显式MPC控制器,必须首先设计传统的(隐式)MPC控制器。然后根据传统控制器设计生成显式MPC控制器。
首先为您的应用程序设计一个传统的(隐式的)MPC,并在模拟中测试它。主要考虑事项如下:
模型预测控制工具箱™软件目前支持以下作为独立变量显式MPC:金宝app
nxc控制器状态变量(设备、干扰和测量噪声模型状态)。
ny(≥1)输出参考值,其中ny为工厂输出变量的数量。
nv(≥0)测量植物干扰信号。
因此,在创建显式MPC控制器之前,必须修复大多数MPC设计参数。固定参数包括预测模型(植物、干扰和测量噪声)、尺度因子、视界、惩罚权重、操纵变量目标和约束边界。
有关设计传统MPC控制器的信息,请参阅控制器创建.
有关调整传统MPC控制器的信息,请参阅细化.
不支持参考和测量扰动预览。金宝app在每个控制间隔,电流ny参考和nv实测扰动信号适用于整个预测层。
为了限制显式MPC所需区域的数量,只包括必要的约束。
当在操纵变量(MV)上包含约束时,使用短控制水平或MV阻塞。看到选择样本时间和视野.
避免对植物产量的限制。如果这样的约束是必要的,考虑对选定的预测视界步骤施加它,而不是对整个预测视界。
为每个。建立上下限nx=nxc+ny+nv独立变量。你可能知道一些先验的界限。但是,您必须运行至少记录nxc当系统运行超出预期条件范围时,控制器状态。重要的是不要低估这个范围,因为明确的MPC控制函数不是为范围之外的自变量定义的。
有关指定边界的信息,请参见generateExplicitRange
.
有关模拟传统MPC控制器的信息,请参阅模拟.
给定恒定的MPC设计参数nx控制律自变量的上下界,即,
的generateExplicitMPC
命令决定nr地区。每个区域由一个不等式约束和相应的控制律常数定义:
的explicitMPC
对象包含常量H我,K我,F我,G我对于每个地区。显式MPC控制器对象还保存原始(隐式)设计和独立变量边界。只要x(k)保持在指定的范围内,并保留所有nr区域,显式MPC对象提供相同的最佳MV调整,u(k),作为等价的隐式MPC对象。
即使是一个相对简单的显式MPC控制器也可能需要许多区域(nr>> 100)来完全表征QP溶液。如果区域数量大,考虑以下情况:
使解决方案形象化plotSection
命令。
使用简化
命令,减少区域数量。有时,这种降低对控制律的最优性没有(或可以忽略)影响。例如,相邻区域对可能使用本质上相同的功能F我和K我常量。如果是,且两个区域的并集形成凸集,则可以合并为单个区域。
或者,您可以消除相对较小的区域或只保留选定的区域。在运行过程中,如果电流x(k)不包含在任何保留区域,显式MPC返回次优u(k),如下:
在这里,j为其边界约束为,Hjx(k)≤Kj,是最不受侵犯的。
操作期间,为一给定x(k),显式MPC控制器执行以下步骤:
验证x(k)满足指定的界限,xl≤x (k)≤xu.如果不是,控制器返回一个错误状态并设置u(k) =u(k1)。
从地区我= 1,逐个测试区域以确定是否x(k)属于。如果H我x(k)≤K我,然后x(k)属于区域我.如果x(k)属于区域我,然后是控制器:
获得F我和G我从内存,并计算u(k) =F我x(k) +G我.
通过返回状态代码和索引来表示成功完成我.
返回而不测试其余区域。
如果x(k)不属于地区我控制器:
计算违例项v我的最大(正)分量(H我x(k)- - -K我).
如果v我这是最低限度的违规吗x(k),控制器设置j=我,集v最小值=v我.
然后控制器递增我并测试下一个区域。
如果所有区域都经过了测试x(k)不属于任何区域(例如,由于数值精度问题),控制器:
获得Fj和Gj从内存,并计算u(k) =Fjx(k) +Gj.
设置状态以指示次优解决方案并返回。
因此,每个控制区间的最大计算时间是测试每个区域,计算每种情况的违规项,然后计算次最优控制调整所需的时间。
控件可以执行命令行模拟sim卡
或mpcmoveExplicit
命令。
你可以使用明确的MPC控制器块连接显式MPC到在Simulink中建模的工厂金宝app®.
[1] A. Bemporad, M. Morari, V. Dua, and E.N. Pistikopoulos,“约束系统的显式线性二次调节器”,自动化第38卷第2期第1页3-20页,2002。
[2] A. Bemporad,“基于非负最小二乘的多面体计算多参数二次规划算法”,2014,已提交出版。
generateExplicitMPC
|mpcmoveExplicit
|明确的MPC控制器