为显式MPC设计工作流
要创建显式MPC控制器,必须首先设计一个传统的(隐式)MPC控制器。然后根据传统控制器设计生成显式MPC控制器。
传统(隐式)MPC设计
首先为您的应用程序设计一个传统的(隐式)MPC,并在模拟中测试它。主要考虑事项如下:
由模型预测控制工具箱™软件生成的明确的MPC控制律是这样的,被操纵的变量向量是以下变量的分段函数:
nxc控制器状态变量(设备、扰动和测量噪声模型状态)。
ny(≥1)输出参考值ny是植物输出变量的数量。
nv(≥0)测量的植物干扰信号。
因此,在创建显式MPC控制器之前,必须将所有其他MPC设计参数固定为特定的值。固定参数包括预测模型(设备、扰动和测量噪声)、尺度因子、视界、惩罚权重、操纵可变目标和约束边界。
有关设计传统MPC控制器的信息,请参见控制器创建.
有关调优传统MPC控制器的信息,请参见细化.
显式MPC不支持参考和测量扰动预览。金宝app在每个控制间隔,电流ny参考和nv测量的扰动信号适用于整个预测范围。
为了限制显式MPC所需的区域数量,只包括必要的约束。
为每个变量建立上界和下界nx=nxc+ny+nv独立变量。你可能知道一些先验的边界。但是,您必须运行至少记录的模拟nxc当系统在预期条件范围内运行时,控制器处于状态。重要的是不要低估这个范围,因为在这个范围之外的自变量没有明确的MPC控制函数。
有关指定边界的信息,请参见
generateExplicitRange
.有关模拟传统MPC控制器的信息,请参见模拟.
显式MPC生成
在MPC设计参数不变的情况下nx控制律自变量的上下界,即
的generateExplicitMPC
命令决定nr地区。这些区域中的每一个都由一个不等式约束和相应的控制律常数定义:
的explicitMPC
对象包含常量H我,K我,F我,G我对于每个区域。显式MPC控制器对象还保存原始(隐式)设计和自变量边界。只要x(k)保持在指定的范围内,你保留所有nr区域,显式MPC对象提供相同的最佳MV调整,u(k),作为等效的隐式MPC对象。
显式MPC简化
即使是相对简单的显式MPC控制器也可能需要许多区域(nr>> 100)完全表征QP溶液。如果区域数量较多,可以考虑以下几点:
方法可视化解决方案
plotSection
命令。使用
简化
命令减少区域数量。有时,这种减少对控制律最优性没有(或可以忽略不计)影响。例如,相邻区域对可能使用本质上相同的方法F我而且K我常量。如果是这样,并且两个区域的并集形成凸集,则可以将它们合并为单个区域。或者,您可以删除相对较小的区域或只保留选定的区域。操作期间,只要x(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,和E.N. Pistikopoulos,“约束系统的显式线性二次调节器”,自动化,第38卷,no。1,页3-20,2002。
[2] A. Bemporad,“基于非负最小二乘的多面体计算的多参数二次规划算法”,2014,已提交出版。
另请参阅
generateExplicitMPC
|mpcmoveExplicit
|显式MPC控制器