MATLAB - MPC - 优化问题(Optimization Problem)

2024-01-08 16:56:11

系列文章目录

?


前言

模型预测控制可在每个控制间隔内解决一个优化问题,具体来说就是二次规划(QP)。求解结果决定了被控对象在下一个控制间隔之前使用的操纵变量(MV)。

该 QP 问题具有以下特点:

  • 目标或 "成本 "函数 - 要最小化的控制器性能的非负标量。
  • 约束条件 - 解决方案必须满足的条件,如 MV 和被控对象输出变量的物理边界。
  • 决策 - 在满足约束条件的同时使成本函数最小化的 MV 调整。

下文将详细介绍这些功能。


?

一、标准代价函数

标准成本函数是四个项的总和,每个项都侧重于控制器性能的一个特定方面,如下所示:

eq?%24J%28z%20k%29%3DJ_%7By%7D%28z%20k%29+J_%7Bu%7D%28z%20k%29+J_%7B%5CDelta%20u%7D%28z%20k%29+J_%7Be%7D%28z%20k%29.%24

这里,zk 是 QP 决策。如下所述,每个项都包含权重,可帮助您平衡相互竞争的目标。虽然 MPC 控制器提供了默认权重,但您通常需要对其进行调整,以适应您的应用。

1.1 输出参考跟踪


在大多数应用中,控制器必须将选定的被控对象输出保持在或接近指定的参考值。MPC 控制器使用以下标量性能指标进行输出参考跟踪:

eq?%24J_%7By%7D%28z%20k%29%3D%5Csum_%7B%7Bj%7D%3D1%7D%5E%7Bn_%7By%7D%7D%5C%20%5Csum_%7B%7Bi%7D%3D1%7D%5Ep%5Cleft%5C%7B%5Cfrac%7Bw_%7B%7Bi%7D%2C%7Bj%7D%7D%5E%7By%7D%7D%7Bs_%7B%7Bj%7D%7D%5E%7By%7D%7D%5Br_%7B%7Bj%7D%7D%28k+i%5Cvert%20k%29-y_%7B%7Bj%7D%7D%28k+i%5Cvert%20k%29%5D%5Cright%5C%7D%5E%7B%7B2%7D%7D.%24

此处

  • k - 当前控制间隔。
  • p - 预测范围(区间数)。
  • ny - 被控对象输出变量的个数。
  • zk - QP 决策,取值为??

?????????????????eq?%24z_k%5ET%3D%5Cleft%5Bu%28k%7Ck%29%5E%7BT%7D%5Cquad%20u%28k+1%7Ck%29%5E%7BT%7D%5C%20%5Cldots%5C%20%5C%20u%28k+p-1%7Ck%29%5E%7BT%7D%5Cquad%5Cit%5Cepsilon_%7Bk%7D%5Cright%5D.%24

  • yj(k+i|k) - 第 j 个被控对象在第 i 个预测水平步的输出预测值,单位为工程单位。
  • rj(k+i|k) - 第 j 个被控对象在第 i 个预测水平步的输出参考值,单位为工程单位。
  • eq?s_%7B%7Bj%7D%7D%5E%7By%7D?- 第 j 个被控对象产量的比例因子,单位为工程单位。
  • eq?w_%7B%7Bi%7D%2C%7Bj%7D%7D%5E%7By%7D?- 第 i 个预测水平步的第 j 个被控对象输出的调整权重(无量纲)。

值 ny、p、eq?s_%7B%7Bj%7D%7D%5E%7By%7Deq?w_%7B%7Bi%7D%2C%7Bj%7D%7D%5E%7By%7D 是恒定的控制器规格。控制器接收整个预测范围内的参考值 rj(k+i|k)。控制器使用状态观测器来预测被控对象的输出 yj(k+i|k),这些输出取决于受控变量调整 (zk)、测量干扰 (MD) 和状态估计值。在间隔 k 时,可获得控制器状态估计值和 MD 值。因此,Jy 仅是 zk 的函数。?

1.2 操纵变量跟踪


在某些应用中,例如当被控对象的输出多于操纵变量时,控制器必须将选定的操纵变量 (MV) 保持在或接近指定的目标值。MPC 控制器使用以下标量性能指标进行操纵变量跟踪:?

eq?%24J_%7Bu%7D%28z%20k%29%3D%5Csum_%7Bj%3D1%7D%5E%7Bn_%7Bu%7D%7D%5Csum_%7Bi%3D0%7D%5E%7Bp-1%7D%5Cleft%5C%7B%5Cfrac%7Bw_%7Bi%2Cj%7D%5E%7Bu%7D%7D%7Bs_%7Bj%7D%5E%7Bu%7D%7D%5Bu_%7Bj%7D%28k+i%5Cvert%20k%29-u_%7Bj%2Cl%20a%20r%20g%20e%20t%7D%28k+i%5Cvert%20k%29%5D%5Cright%5C%7D%5E%7B2%7D.%24

此处

  • k - 当前控制间隔。
  • p - 预测范围(区间数)。
  • nu - 受控变量的数量。
  • zk - QP 决策,取值为
  • uj,target(k+i|k) - 第 j 个 MV 在第 i 个预测水平步的目标值,单位为工程单位。
  • eq?s_%7B%7Bj%7D%7D%5E%7Bu%7D?- 第 j 个 MV 的比例因子,单位为工程单位。
  • eq?w_%7B%7Bi%7D%2C%7Bj%7D%7D%5E%7Bu%7D?- 第 j 个 MV 在第 i 个预测水平步的调整权重(无量纲)。

数值 nu、p、eq?s_%7B%7Bj%7D%7D%5E%7Bu%7Deq?w_%7B%7Bi%7D%2C%7Bj%7D%7D%5E%7Bu%7D 是恒定的控制器规格。控制器接收整个范围内的 uj,target(k+i|k) 值。控制器利用状态观测器预测被控对象的输出。因此,Ju 只是 zk 的函数。

1.3 操纵变量移动抑制


大多数应用都喜欢小的 MV 调整(移动)。MPC 常量使用以下标量性能指标来抑制操纵变量移动:

eq?%24J_%7B%5CDelta%20u%7D%28z_%7Bk%7D%29%3D%5Csum_%7Bj%3D1%7D%5E%7Bn_%7Bu%7D%7D%5Csum_%7Bi%3D0%7D%5E%7Bp-1%7D%5Cleft%5C%7B%5Cfrac%7B%5Cdisplaystyle%20w_%7Bi%2Cj%7D%5E%7B%5CDelta%20u%7D%7D%7B%5Cdisplaystyle%20s_%7Bj%7D%5E%7B%7Bu%7D%7D%7D%5Bu_%7Bj%7D%28k+i%5Cvert%20k%29-u_%7Bj%7D%28k+i-1%5Cvert%20k%29%5D%5Cright%5C%7D%5E%7B2%7D.%24

此处

  • k - 当前控制间隔。
  • p - 预测范围(区间数)。
  • ny - 被控对象输出变量的个数。
  • zk - QP 决策,取值为??

?????????????????eq?%24z_k%5ET%3D%5Cleft%5Bu%28k%7Ck%29%5E%7BT%7D%5Cquad%20u%28k+1%7Ck%29%5E%7BT%7D%5C%20%5Cldots%5C%20%5C%20u%28k+p-1%7Ck%29%5E%7BT%7D%5Cquad%5Cit%5Cepsilon_%7Bk%7D%5Cright%5D.%24

  • eq?s_%7B%7Bj%7D%7D%5E%7Bu%7D?- 第 j 个 MV 的比例因子,单位为工程单位。
  • eq?w_%7Bi%2Cj%7D%5E%7B%5CDelta%20u%7D?- 第 j 个 MV 运动在第 i 个预测水平步的调整权重(无量纲)。

eq?%24n_%7Bu%7D%2C%5C%2Cp_%7B%2C%7D%5C%2C%5C%2Cs_%7Bj%7D%5E%7Bu%7D%2Cw_%7Bi%2Cj%7D%5E%7B%5CDelta%20u%7D%24的值是控制器的常数。u(k-1|k) = u(k-1),是上一个控制区间的已知 MV。JΔu 仅是 zk 的函数。

此外,控制区间 m < p(或 MV 阻塞)会限制某些 MV 移动为零。

1.4 违反约束

在实践中,违反约束可能是不可避免的。软约束允许在这种情况下获得可行的 QP 解决方案。MPC 控制器采用一个无量纲、非负的松弛变量 εk,它量化了最坏情况下的约束违规。(见约束条件)相应的性能指标为

eq?%24J_%7B%5Cvarepsilon%7D%28z%20k%29%3D%5Crho_%7B%5Cvarepsilon%7D%5Cvarepsilon_%7Bk%7D%5E%7B2%7D.%24

这里

zk - QP 决策,取值为

eq?%24z_%7Bk%7D%5E%7BT%7D%3D%5Cbigl%5Bu%28k%7Ck%29%5E%7BT%7D%5C%20%5C%20%5C%20u%28k&plus;1%7Ck%29%5E%7BT%7D%5C%20%5C%20%5Cldots%5C%20%5C%20u%28k&plus;p-1%7Ck%29%5E%7BT%7D%5C%20%5C%20%5Cepsilon_%7Bk%7D%5Cbigr%5D.%24

εk - 控制区间 k 的松弛变量(无量纲)。

ρε - 违反约束条件的惩罚权重(无量纲)。

?

二、?替代成本函数

您可以选择使用以下替代标准成本函数的方法:

eq?%24J%28z_%7Bk%7D%29%3D%5Csum_%7Bi%3D0%7D%5E%7Bp-1%7D%5Cleft%5C%7B%5Cleft%5Be_%7By%7D%5E%7BT%7D%28k&plus;i%29Q%20e_%7By%7D%28k&plus;i%29%5Cright%5D&plus;%5Cleft%5Be_%7Bu%7D%5E%7BT%7D%28k&plus;i%29R_%7Bu%7De_%7Bu%7D%28k&plus;i%29%5Cright%5D&plus;%5Cleft%5B%5CDelta%20u%5E%7BT%7D%28k&plus;i%29R_%7B%5CDelta%20u%7D%5CDelta%20u%28k&plus;i%29%5Cright%5D%5Cright%5C%7D&plus;%5Crho_%7B%5Cepsilon%7D%5Cvarepsilon_%7Bk%7D%5E%7B2%7D.%24

这里,Q(ny-by-ny)、Ru 和 RΔu(nu-by-nu)是正半无穷权重矩阵,并且:?

eq?%24%5Cbegin%7Barray%7D%7Bc%7D%7B%7Be_%7By%7D%28i&plus;k%29%3DS_%7By%7D%5E%7B-1%7D%5Br%28k&plus;i&plus;1%7Ck%29-y%28k&plus;i&plus;1%7Ck%29%5D%7D%7D%5C%5C%20%7B%7Be_%7Bu%7D%28i&plus;k%29%3DS_%7Bu%7D%5E%7B-1%7D%5Bu_%7Bt%20a%20r%20g%20e%20t%7D%28k&plus;i%7Ck%29-u%28k&plus;i%7Ck%29%5D%7D%7D%5C%5C%20%7B%7B%5CDelta%20u%28k&plus;i%29%3DS_%7Bu%7D%5E%7B-1%7D%5Bu%28k&plus;i%5Dk%29-u%28k&plus;i-1%7Ck%29%5D.%7D%7D%5Cend%7Barray%7D%24

也是、

Sy - 被控对象输出可变比例系数的对角矩阵,单位为工程单位。

Su - 以工程单位表示的 MV 比例因子对角矩阵。

r(k+1|k) - 第 i 个预测水平步的 ny 个被控对象输出参考值,单位为工程单位。

y(k+1|k) - 第 i 个预测水平步的 ny 个被控对象的工厂产出,单位为工程单位。

zk - QP 决策,取值为

eq?%24z_%7Bk%7D%5E%7BT%7D%3D%5Cbigl%5Bu%28k%7Ck%29%5E%7BT%7D%5C%20%5C%20%5C%20u%28k&plus;1%7Ck%29%5E%7BT%7D%5C%20%5C%20%5Cldots%5C%20%5C%20u%28k&plus;p-1%7Ck%29%5E%7BT%7D%5C%20%5C%20%5Cepsilon_%7Bk%7D%5Cbigr%5D.%24

utarget(k+i|k) - u(k+i|k) 对应的 nu MV 目标值,单位为工程单位。

与标准成本函数一样,输出预测使用状态观测器。

替代成本函数允许非对角线加权,但要求每个预测水平步的权重相同。

如果满足以下条件,替代成本函数和标准成本函数是相同的:

  • 标准成本函数采用的权重 w , 和 w 相对于指数 i = 1:p 是常数。
  • 矩阵 Q、Ru 和 RΔu 是对角线,对角元素是这些权重的平方。

三、约束条件


某些约束条件是隐含的。例如,控制范围 m < p(或 MV 阻塞)会强制某些 MV 增量为零,而用于被控对象输出预测的状态观测器是一组隐式相等约束。您可以配置的显式约束如下所述。

3.1?被控对象输出、MV 和 MV 增量的界限

最常见的 MPC 约束是边界,如下所示。

eq?%24%5Cfrac%7By%20j%2Cm%20i%20n%28i%29%7D%7Bs_%7Bj%7D%5E%7By%7D%7D-%5Cepsilon_%7Bk%7DV_%7Bj%2Cm%20i%20n%7D%5E%7By%7D%28i%29%5Cleq%5Cfrac%7By%20j%28k&plus;i%7C%20k%29%7D%7Bs_%7Bj%7D%5E%7By%7D%7D%5Cleq%5Cfrac%7By%20j%2Cm%20a%20x%28i%29%7D%7Bs_%7Bj%7D%5E%7By%7D%7D&plus;%5Cepsilon_%7Bk%7DV_%7Bj%2Cm%20a%20x%7D%5E%7By%7D%28i%29%2C%5Cqquad%20i%3D1%3Ap%2C%5Cqquad%20j%3D1%3An_%7By%7D%24

eq?%24%5Cfrac%7Bu%20j%2Cm%20i%20n%28i%29%7D%7Bs_%7Bj%7D%5E%7Bu%7D%7D-%5Cepsilon%20k%20V_%7Bj%2Cm%20i%20n%7D%5E%7Bu%7D%28i%29%5Cleq%5Cfrac%7Bu%20j%28k&plus;i-1%7Ck%29%7D%7Bs_%7Bj%7D%5E%7Bu%7D%7D%5Cleq%5Cfrac%7Bu%20j%2Cm%20a%20x%28i%29%7D%7Bs_%7Bj%7D%5E%7Bu%7D%7D&plus;%5Cepsilon%20k%20V_%7Bj%2Cm%20a%20x%7D%5E%7Bu%7D%28i%29%2C%5Cquad%20i%3D1%3Ap%2C%5Cquad%5Cquad%20j%3D1%3An%20u%5Cquad%24

eq?%24%5Cfrac%7B%5CDelta%20u_%7Bj%2Cm%20i%20n%7D%28i%29%7D%7Bs_%7Bj%7D%5E%7Bu%7D%7D-%5Cepsilon%20k%20V_%7Bj%2Cm%20i%20n%7D%5E%7B%5CDelta%20u%7D%28i%29%5Cleq%5Cfrac%7B%5CDelta%20u_%7Bj%7D%28k&plus;i-1%7Ck%29%7D%7Bs_%7Bj%7D%5E%7Bu%7D%7D%5Cleq%5Cfrac%7B%5CDelta%20u_%7Bj%2Cm%20a%20x%7D%28i%29%7D%7Bs_%7Bj%7D%5E%7Bu%7D%7D&plus;%5Cepsilon%20k%20V_%7Bj%2Cm%20a%20x%7D%5E%7B%5CDelta%20u%7D%28i%29%2C%5Cquad%20i%3D1%3Ap%2C%5Cquad%5Cquad%20j%3D1%3An%20u%2C%24?

这里的 V 参数(ECR 值)是无量纲控制器常数,类似于成本函数权重,但用于约束软化(参见约束软化)。此外还有

εk - 用于约束软化的标量 QP 松弛变量(无量纲)。

syj?- 第 j 个被控对象输出的比例因子,单位为工程单位。

suj?- 第 j 个 MV 的比例因子,单位为工程单位。

yj,min(i)、yj,max(i) - 第 j 个被控对象在第 i 个预测水平步的产量下限和上限,单位为工程单位。

uj,min(i)、uj,max(i) - 第 j 个 MV 在第 i 个预测水平步的下限和上限,单位为工程单位。

Δuj,min(i)、Δuj,max(i) - 第 i 个预测水平步的第 j 个 MV 增量的下限和上限,单位为工程单位。

除松弛变量非负条件外,上述所有约束条件都是可选的,默认为非活动状态(即初始化为无限极限值)。要包含约束条件,必须在设计控制器时指定有限极限值。

四、QP 矩阵

本节介绍与优化问题中描述的模型预测控制优化问题相关的矩阵。

4.1 预测

假设输入干扰模型中描述的干扰模型为单位增益,即 d(k) = nd(k) 为白高斯噪声。可以将此问题表示为

eq?%24%7Bx%5Cleftarrow%20%5Cbegin%7Bbmatrix%7D%20x%5C%5C%20x_d%20%5Cend%7Bbmatrix%7D%2CA%5Cleftarrow%20%5Cbegin%7Bbmatrix%7D%20A%20%26%20B_d%5Cbar%7BC%7D%20%5C%5C%200%20%26%20%5Cbar%7BA%7D%20%5Cend%7Bbmatrix%7D%2CB_u%5Cleftarrow%20%5Cbegin%7Bbmatrix%7DB_u%5C%5C%200%5Cend%7Bbmatrix%7D%2CB_v%5Cleftarrow%20%5Cbegin%7Bbmatrix%7DB_v%5C%5C%200%5Cend%7Bbmatrix%7D%2CB_d%20%5Cleftarrow%20%5Cbegin%7Bbmatrix%7DB_d%5Cbar%7BD%7D%5C%5C%20%5Cbar%7BB%7D%5Cend%7Bbmatrix%7D%2CC%5Cleftarrow%20%5Cbegin%7Bbmatrix%7D%20C%20%26%20D_d%5Cbar%7BC%7D%20%5Cend%7Bbmatrix%7D%7D%24

那么,预测模型就是

eq?%24x%28k&plus;1%29%3DA%20x%28k%29&plus;B_%7Bu%7Du%28k%29&plus;B_%7B%5Cnu%7D%5Cnu%28k%29&plus;B_%7Bd%7Dn_%7Bd%7D%28k%29%24

eq?%24y%28k%29%3DC%20x%28k%29&plus;D_%7B%5Cnu%7D%5Cnu%28k%29&plus;D_%7Bd%7Dn_%7Bd%7D%28k%29%24

接下来,考虑预测模型在时间 k=0 时的未来轨迹问题。对所有预测时刻 i 设置 nd(i)=0,得到?

eq?%24y%28i%7C0%29%3DC%5Cleft%5BA%5E%7Bi%7Dx%280%29&plus;%5Csum_%7Bh%3D0%7D%5E%7Bi-1%7DA%5E%7Bi-1%7D%5Cleft%28B_%7Bu%7D%5Cleft%28%7B%7Bu%28-1%29&plus;%5Csum_%7Bj%3D0%7D%5E%7Bh%7D%7D%7B%5CDelta%20u%28j%29%7D%7D%5Cright%29&plus;B_%7B%5Cnu%7Dv%28h%29%5Cright%29%5Cright%5D&plus;D_%7B%5Cnu%7Dv%28i%29%24

?该方程给出的解是

eq?%24%5Cleft%5B%5Cbegin%7Barray%7D%7Bl%7D%7B%7By%281%29%7D%7D%5C%5C%20%7B%7B%5Ccdots%7D%7D%5C%5C%20%7B%7By%28p%29%7D%7D%5Cend%7Barray%7D%5Cright%5D%3DS_%7Bx%7Dx%280%29&plus;S_%7Bu1%7Du%28-1%29&plus;S_%7Bu%7D%5Cleft%5B%5Cbegin%7Barray%7D%7Bc%7D%7B%7B%5CDelta%20u%280%29%7D%7D%5C%5C%20%7B%7B%5Ccdots%7D%7D%5C%5C%20%7B%7B%5CDelta%20u%28p-1%29%7D%7D%5Cend%7Barray%7D%5Cright%5D&plus;H_%7Bv%7D%5Cleft%5B%5Cbegin%7Barray%7D%7Bl%7D%7B%7B%5Cnu%280%29%7D%7D%5C%5C%20%7B%7B%5Ccdots%7D%7D%5C%5C%20%7B%7B%5Cnu%28p%29%7D%7D%5Cend%7Barray%7D%5Cright%5D%24

其中

eq?%24S_%7Bx%7D%3D%5Cleft%28%5Cbegin%7Barray%7D%7Bl%7D%7B%7BC%20A%7D%7D%5C%5C%20%7B%7BC%20A%5E%7B2%7D%7D%7D%5C%5C%20%7B%7B%5Cdots%7D%7D%5C%5C%20%7B%7BC%20A%5E%7Bp%7D%7D%7D%5Cend%7Barray%7D%5Cright%29%5Cleft.%5Cin%5Cmathfrak%7BR%7D%5E%7Bp%20n_%7By%7D%5Ctimes%20n_%7Bx%7D%7D%2CS_%7Bu1%7D%3D%5Cleft%5B%5Cbegin%7Barray%7D%7Bl%7D%7B%7BC%20B_%7Bu%7D%7D%7D%5C%5C%20%7B%7BC%20B_%7Bu%7D&plus;C%20A%20B_%7Bu%7D%7D%7D%5C%5C%20%7B%7B%5Cdots%7D%7D%5C%5C%20%7B%7B%5Csum_%7Bh%3D0%7D%5E%7Bp-1%7DC%20A%5E%7Bh%7DB_%7Bu%7D%7D%7D%5Cend%7Barray%7D%5Cright%5D%5Cright.%5Cin%5Cmathfrak%7BR%7D%5E%7Bp%20n_%7By%7D%5Ctimes%20n_%7Bu%7D%7D%24

eq?S_%7Bu%7D%3D%5Cbegin%7Bbmatrix%7D%20%7BC%20B_%7Bu%7D%7D%20%26%200%20%26%20%5Ccdots%20%26%200%20%5C%5C%20%7BC%20B_%7Bu%7D&plus;C%20A%20B_%7Bu%7D%7D%20%26%20%7BC%20B_%7Bu%7D%7D%20%26%20%5Ccdots%20%26%200%20%5C%5C%20%5Ccdots%26%5Ccdots%20%26%20%5Ccdots%26%5Ccdots%20%5C%5C%5Csum_%7Bh%3D0%7D%5E%7Bp-1%7DC%20A%5E%7Bh%7DB_%7Bu%7D%20%26%20%5Csum_%7Bh%3D0%7D%5E%7Bp-2%7DC%20A%5E%7Bh%7DB_%7Bu%7D%26%5Ccdots%20%26%7BC%20B_%7Bu%7D%7D%20%5Cend%7Bbmatrix%7D%5Cin%5Cmathfrak%7BR%7D%5E%7Bp%20n_%7By%7D%5Ctimes%20n_%7Bu%7D%7D

eq?%24%7BH_%7Bv%7D%3D%5Cbegin%7Bbmatrix%7D%20%7BC%20B_%7Bv%7D%7D%20%26%20D_v%20%26%200%20%26%20%5Ccdots%20%26%200%20%5C%5C%20%7BCA%20B_%7Bv%7D%7D%20%26%20%7BC%20B_%7Bv%7D%7D%20%26D_v%26%20%5Ccdots%20%26%200%20%5C%5C%20%5Ccdots%26%5Ccdots%20%26%20%5Ccdots%26%5Ccdots%26%5Ccdots%20%5C%5C%5Csum_%7Bh%3D0%7D%5E%7Bp-1%7DC%20A%5E%7Bh%7DB_%7Bv%7D%20%26%20%5Csum_%7Bh%3D0%7D%5E%7Bp-2%7DC%20A%5E%7Bh%7DB_%7Bv%7D%26%5Csum_%7Bh%3D0%7D%5E%7Bp-3%7DC%20A%5E%7Bh%7DB_%7Bv%7D%26%5Ccdots%20%26%7BD_v%7D%20%5Cend%7Bbmatrix%7D%5Cin%5Cmathfrak%7BR%7D%5E%7Bp%20n_%7By%7D%5Ctimes%20%28p&plus;1%29n%7D%7D%24

4.2 优化变量

设 m 为自由控制移动的次数,设 z= [z0; ...; zm-1]。那么?

eq?%24%5Cleft%5B%5Cbegin%7Barray%7D%7Bc%7D%7B%7B%5CDelta%20u%280%29%7D%7D%5C%5C%20%7B%7B%5Cldots%7D%7D%5C%5C%20%7B%7B%5CDelta%20u%28p-1%29%7D%7D%5Cend%7Barray%7D%5Cright%5D%3DJ%20M%5Cleft%5B%5Cbegin%7Barray%7D%7Bc%7D%7B%7Bz0%7D%7D%5C%5C%20%7B%7Bz%20m-1%7D%7D%5Cend%7Barray%7D%5Cright%5D%24

其中,JM 取决于阻塞动作的选择。z0、......、zm-1 与松弛变量? 一起构成了优化问题的自由优化变量。在系统只有一个操纵变量的情况下,z0、......、zm-1 是标量。

考虑下图中描述的阻塞动作。

阻塞移动: 移动 = [2 3 2] 的输入和输入增量

78c5ab8a16df4cf791b7a3cbcec46ca1.png

这个图形对应于选择 moves=[2 3 2],或者等价于 u(0)=u(1),u(2)=u(3)=u(4),u(5)=u(6),Δ u(0)=z0,Δ u(2)=z1,Δ u(5)=z2,Δ u(1)=Δ u(3)=Δ u(4)=Δ u(6)=0.

那么,相应的矩阵 JM 为

eq?%24J_M%3D%5Cbegin%7Barray%7D%7Br%7D%7B%5Cleft%5B%7B%5Cbegin%7Barray%7D%7Br%20r%20r%7D%7BI%7D%26%7B0%7D%26%7B0%7D%5C%5C%20%7B0%7D%26%7B0%7D%26%7B0%7D%5C%5C%20%7B0%7D%26%7BI%7D%26%7B0%7D%5C%5C%20%7B0%7D%26%7B0%7D%26%7B0%7D%5C%5C%20%7B0%7D%26%7B0%7D%26%7B0%7D%5C%5C%20%7B0%7D%26%7B0%7D%26%7BI%7D%5C%5C%20%7B0%7D%26%7B0%7D%26%7B0%7D%5Cend%7Barray%7D%7D%5Cright%5D%7D%5Cend%7Barray%7D%24

有关操纵变量阻塞的更多信息,请参阅操纵变量阻塞。

4.3 成本函数

标准形式。 要优化的函数是

eq?%24J%28z%2C%5Cvarepsilon%29%3D%5Cleft%20%28%7B%5Cbegin%7Bbmatrix%7Du%280%29%5C%5C%20%5Cdots%5C%5C%20u%28p-1%29%5Cend%7Bbmatrix%7D%20%7D%20-%20%7B%5Cbegin%7Bbmatrix%7Du_%7Btarget%7D%280%29%5C%5C%20%5Cdots%5C%5C%20u_%7Btarget%7D%28p-1%29%5Cend%7Bbmatrix%7D%20%7D%5Cright%20%29%5ET%20W_u%5E2%20%5Cleft%20%28%7B%5Cbegin%7Bbmatrix%7Du%280%29%5C%5C%20%5Cdots%5C%5C%20u%28p-1%29%5Cend%7Bbmatrix%7D%20%7D%20-%20%7B%5Cbegin%7Bbmatrix%7Du_%7Btarget%7D%280%29%5C%5C%20%5Cdots%5C%5C%20u_%7Btarget%7D%28p-1%29%5Cend%7Bbmatrix%7D%20%7D%5Cright%20%29%20&plus;%20%7B%5Cbegin%7Bbmatrix%7D%5CDelta%20u%280%29%5C%5C%20%5Cdots%5C%5C%20%5CDelta%20u%28p-1%29%5Cend%7Bbmatrix%7D%5ET%20%7B%20W%7D_%7B%5CDelta%20u%7D%5E%7B2%7D%20%7B%5Cbegin%7Bbmatrix%7D%5CDelta%20u%280%29%5C%5C%20%5Cdots%5C%5C%20%5CDelta%20u%28p-1%29%5Cend%7Bbmatrix%7D%7D%20%7D%24

eq?%24%7B&plus;%20%5Cleft%20%28%7B%5Cbegin%7Bbmatrix%7Dy%281%29%5C%5C%20%5Cdots%5C%5C%20y%28p%29%5Cend%7Bbmatrix%7D%20%7D-%7B%5Cbegin%7Bbmatrix%7Dr%281%29%5C%5C%20%5Cdots%5C%5C%20r%28p%29%5Cend%7Bbmatrix%7D%20%7D%20%5Cright%20%29%5ET%7B%20W%7D_%7By%7D%5E%7B2%7D%20%5Cleft%20%28%7B%5Cbegin%7Bbmatrix%7Dy%281%29%5C%5C%20%5Cdots%5C%5C%20y%28p%29%5Cend%7Bbmatrix%7D%20%7D-%7B%5Cbegin%7Bbmatrix%7Dr%281%29%5C%5C%20%5Cdots%5C%5C%20r%28p%29%5Cend%7Bbmatrix%7D%20%7D%20%5Cright%20%29%20&plus;%20%5Crho_%7B%5Cmathcal%7BE%7D%7D%7B%5Cmathcal%7BE%7D%7D%5E%7B2%7D%7D%24?

其中

eq?%24W_%7Bu%7D%3D%5Cmathrm%7Bdiag%7D%5C%21%5Cleft%28%7Bw%7D_%7B0%2C1%7D%5E%7Bu%7D%2C%7Bw%7D_%7B0%2C2%7D%5E%7Bu%7D%2C...%2C%7Bw%7D_%7B0%2Cn%7D%5E%7Bu%7D%2C...%2C%7Bw%7D_%7Bp-1%2C1%7D%5E%7Bu%7D%5C%21%2C%7Bw%7D_%7Bp-1%2C2%7D%5E%7Bu%7D%5C%21%2C%7Bw%7D_%7Bp-1%2C2%7D%5E%7Bu%7D%5C%21%2C%5Cdots%2C%7Bw%7D_%7Bp-1%2Cn%7D%5E%7Bu%7D%5C%21%5Cright%29%24

eq?%24W%5CDelta%20u%3D%5Cmathrm%7Bdiag%7D%5Cbiggl%28w_%7B0%2C1%7D%5E%7B%5CDelta%20u%7D%2Cw_%7B0%2C2%7D%5E%7B%5CDelta%20u%7D%2C...%2Cw_%7B0%2Cn_%7Bu%7D%7D%5E%7B%5CDelta%20u%7D%2C...%2Cw_%7Bp-1%2C1%7D%5E%7B%5CDelta%20u%7D%2Cw_%7Bp%7D%5E%7B%5CDelta%20u%7D%2C...%2Cw_%7Bp-1%2Cn_%7Bu%7D%7D%5E%7B%5CDelta%20u%7D%5Cbiggr%29%24?

eq?%24W_%7By%7D%3D%5Cmathrm%7Bdiag%7D%5C%21%5Cleft%28w_%7B1%2C1%7D%5E%7By%7D%2Cw_%7B1%2C2%7D%5E%7By%7D%5C%21%5Ccdot%5C%21...%2Cw_%7B1%2Cn_%7By%7D%7D%5E%7By%7D%2C...%2Cw_%7Bp%2C1%7D%5E%7By%7D%2Cw_%7Bp%2C2%7D%5E%7By%7D%5C%21....%2Cw_%7Bp%2Cn_%7By%7D%7D%5E%7By%7D%5Cright%29%24?

最后,在代入 u(k)、Δu(k)、y(k)之后,J(z) 可重写为

eq?%24J%28z%2C%5Cvarepsilon%29%3D%5Crho_%7B%5Cmathcal%7BE%7D%7D%5Cvarepsilon%5E%7B2%7D&plus;z%5E%7BT%7DK%5CDelta%20u%20z&plus;%202%5Cleft%20%28%20%7B%5Cbegin%7Bbmatrix%7Dr%281%29%5C%5C%20%5Cdots%5C%5C%20r%28p%29%5Cend%7Bbmatrix%7D%20%7D%5ET%20K_r%20&plus;%20%7B%5Cbegin%7Bbmatrix%7Dv%280%29%5C%5C%20%5Cdots%5C%5C%20v%28p%29%5Cend%7Bbmatrix%7D%20%7D%5ET%20K_v%20&plus;%20u%28-1%29%5E%7BT%7DK_u%20&plus;%20%7B%5Cbegin%7Bbmatrix%7Du_%7Btarget%7D%280%29%5C%5C%20%5Cdots%5C%5C%20u_%7Btarget%7D%28p-1%29%5Cend%7Bbmatrix%7D%20%7D%5ET%20K_%7But%7D%20&plus;%20&plus;%5C%3Bx%280%29%5E%7BT%7DK%20x%5Cright%20%29z&plus;%7BC%7D_%7By%7DW_%7By%7D%20c%20%7By%7D&plus;&plus;%7BC%7D_%7Bu%7DW_%7Bu%7D%20c%20%7Bu%7D%24其中

eq?%24c_%7By%7D%3DS_%7BX%7Dx%280%29&plus;S_%7Bu%7D1u%28-1%29&plus;H_%7Bv%7D%5Cleft%5B%5Cbegin%7Barray%7D%7Bl%7D%7B%7Bv%281%29%7D%7D%5C%5C%20%7B%7B%5Ccdots%7D%7D%5C%5C%20%7B%7Bv%28p%29%7D%7D%5Cend%7Barray%7D%5Cright%5D-%5Cleft%5B%5Cbegin%7Barray%7D%7Bl%7D%7B%7Br%281%29%7D%7D%5C%5C%20%7B%7B%5Ccdots%7D%7D%5C%5C%20%7B%7Br%28p%29%7D%7D%5Cend%7Barray%7D%5Cright%5D%24?

注意事项

您可能希望 QP 问题保持严格的凸性。如果 Hessian 矩阵 KΔU 的条件数大于 1012,请在每个对角项上添加 10*sqrt(eps)。只有当所有输入率都未受惩罚(WΔu=0)时,才能使用此解决方案(请参阅 mpc 对象的权重属性)。

替代成本函数。 ?如果使用 "替代成本函数 "中所示的替代成本函数,则等式 1 由以下公式代替:

eq?%24%5Cbegin%7Barray%7D%7Bl%7D%7B%7BW_%7Bu%7D%3D%7B%5Cmathrm%7Bblkdiag%7D%7D%28R_%7Bu%7D%2C%5Cldots%2CR_%7Bu%7D%29%7D%7D%5C%5C%20%7B%7BW_%7B%5CDelta%20u%7D%3D%7B%5Cmathrm%7Bblkdiag%7D%7D%28R_%7B%5CDelta%20u%2C%5Cldots%2CR_%7B%5CDelta%20u%7D%29%7D%7D%7D%5C%5C%20%7B%7BW_%7By%7D%3D%7B%5Cmathrm%7Bblkdiag%7D%7D%28Q%2C%5Cldots%2CQ%29%7D%7D%5Cend%7Barray%7D%24

在这种情况下,分块对角矩阵重复 p 次,例如,预测范围内每一步重复一次。

您也可以选择使用标准形式和替代形式的组合。更多信息,请参阅 mpc 对象的权重属性。

约束条件 接下来,考虑输入、输入增量和输出的限制以及约束条件 ?≥ 0。

3b4b299c0fa945d89e42f918251fbbb9.png

?

注释

为减少计算量,控制器会自动消除无关的约束条件,如无限边界。因此,实时使用的约束集可能远小于本节建议的约束集。

与计算成本函数类似,可以将 u(k)、Δu(k)、y(k) 代入,得到

?

文章来源:https://blog.csdn.net/weixin_46300916/article/details/135174651
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。