主要内容

简化

减少明确的MPC控制器的复杂性和内存要求

描述

例子

授予=简化(empcobj,'精确的')试图通过合并具有相同控制器收益且其联合是凸组的区域来减少显式MPC控制器中的分段仿射(PWA)区域的数量。减少PWA区域的数量可减少控制器的内存要求。此命令返回减少的控制器,授予。如果省略了第二个参数,则假定为“确切”。

授予=简化(empcobj,'精确的',团结指定可以合并的区域的公差。

授予=简化(empcobj,'半径',r仅保留Chebyshev半径(该地区最大的球的半径)的区域大于r

授予=简化(empcobj,'序列',指数除了在索引向量中指定的区域以外,所有区域都消除了所有区域。

简化(empcobj,,,,___将还原适用于显式MPC控制器empcobj,而不是返回新的控制器对象。您可以将此语法与以前的任何减排选项一起使用。

例子

全部收缩

定义植物模型。在此示例中,将植物模型定义为双积分器。

植物= tf(1,[1 0 0])植物模型%
植物= 1 --- s^2连续传输函数。

创建一个MPC控制器,采样时间为0.1秒,预测范围或10个步骤以及3步的控制范围。还定义对操纵变量的约束。

mpcobj = mpc(植物,0.1,10,3);%MPC控制器
- >“ weights.manipulationvariables”属性为空。假设默认为0.00000。- >“ weights.manipulationVariablesrate”属性为空。假设默认为0.10000。- >“ weight.outputvariables”属性为空。假设默认为1.00000。
mpcobj.manipulatulyVariables = struct(',-1,'最大限度',1);百分比对操纵变量的硬性约束

创建一个范围结构以指定输入,状态和参考信号的范围。

range.manipulationvariable.min = -1.1;%输入信号最小range.manipulationvariable.max = 1.1;%输入信号最大range.state.min(:) = [-10; -10];%州最小range.state.max(:) = [10; 10];%最大状态Range.Reference.min = -2;%参考最小值range.Reference.max = 2;%参考最大

使用指定信号范围生成一个明确的MPC控制器生成ExplicitMpc功能,并显示结果控制器。

mpcobjexplitic = generateExpliticmpc(MPCOBJ,范围)
- >将“ model.plant”属性转换为状态空间。- >将模型转换为离散时间。假设未在测量的输出通道#1中添加干扰。- >“ model.noise”属性为空。假设每个测得的输出上都有白噪声。发现 /未探索的区域:19/0显式MPC控制器-----------------------------------------------------------------------------------------------------------------------------------------控制器样本时间:0.1(秒)多面体区域:19个参数数:4是解决方案:无状态估计:默认Kalman增益---------------------------------------------------------------------------------------------------------键入原始隐式MPC设计的'mpcobjexplitic.mpc'。为有效参数范围键入“ mpcobjexplicit.range”。为多参数QP计算中使用的选项键入“ mpcobjexplicit.optimizeptions”。键入“ mpcobjexplicit.piecewiseaffinesolution”以获取每个溶液中的区域和增益。

请注意,所得的显式控制器具有19个多面体区域。

利用简化为了简化显式MPC控制器,并显示结果控制器。

yousedempc =简化(mpcobjexplitic)
要分析的区域:15/15显式MPC控制器--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------控制器样本时间:0.1(秒)多面体区域:15参数数:4 IS解决方案简化:是状态估计:默认Kalman增益----------------------------------------------------------------------------------------------------------对于原始隐式MPC设计键入'yrodudeSempc.mpc'。为有效的参数范围键入'yrodudedempc.range'。为多参数QP计算中使用的选项键入“减少EMPC.OptimizePtions”。为每个溶液中的区域和增益键入“降低EMPC.pieceWiseAffinesloune”。

请注意,简化的显式控制器具有15个多面体区域。

输入参数

全部收缩

显式MPC控制器降低,指定为显式MPC控制器对象。利用生成ExplicitMpc创建一个显式MPC控制器。

加入PWA区域的耐受性,指定为正标量。

最小Chebyshev半径用于保留PWA区域,指定为非负标量。当您使用'半径'选项,简化仅保留其chebyshev半径大于r。默认值为0,这会导致所有区域保留。

PWA区域要保留的指数,指定为向量。默认值是[1:nr], 在哪里nr是PWA地区的数量empcobj。因此,默认情况下,所有区域都保留。您可以通过使用使用模拟来获得一系列区域以保留的区域empcobj并记录实际遇到的区域索引。

输出参数

全部收缩

减少的MPC控制器,作为显式MPC控制器对象返回。

版本历史记录

在R2014b中引入