• 前文:模型预测控制MPC(1)—— 基础概念
  • 参考:模型预测控制(2022春)
  • 本文从偏控制的角度介绍无约束线性MPC方法,模型预测控制MPC(2)—— 无约束线性MPC_时域


文章目录

  • 1. 问题定义
  • 1.1 多步预测公式
  • 1.2 代价函数
  • 2. 求解优化问题
  • 3. 系统稳定性
  • 3.1 有限预测时域
  • 3.2 无限预测时域
  • 4. 无约束线性 MPC 和 LQR


1. 问题定义

  • 考虑一个离散线性时不变多输入输出系统(离散指时间离散,线性指系统动态可由线性方程描述,时不变指系统动态不随时间变化),环境转移如下
    模型预测控制MPC(2)—— 无约束线性MPC_MPC_02 由于是时不变系统,要求 模型预测控制MPC(2)—— 无约束线性MPC_无约束线性MPC_03
  • 定义 模型预测控制MPC(2)—— 无约束线性MPC_时域_04 表示从时刻 模型预测控制MPC(2)—— 无约束线性MPC_MPC_05 开始后第 模型预测控制MPC(2)—— 无约束线性MPC_模型预测控制_06 步的预测状态和动作。特别地,有 模型预测控制MPC(2)—— 无约束线性MPC_时域_07

1.1 多步预测公式

  • 在系统已知的情况下,可以如下进行多步预测
    模型预测控制MPC(2)—— 无约束线性MPC_模型预测控制_08 设预测时间步数为 模型预测控制MPC(2)—— 无约束线性MPC_MPC_09,多步预测结果可以写成更紧凑的矩阵形式
    模型预测控制MPC(2)—— 无约束线性MPC_MPC_10 其中 模型预测控制MPC(2)—— 无约束线性MPC_代价函数_11模型预测控制MPC(2)—— 无约束线性MPC_时域_12 分别为状态序列和动作序列,模型预测控制MPC(2)—— 无约束线性MPC_时域_13

1.2 代价函数

  • 首先把控制系统的示意图绘制如下

    在每个时刻 模型预测控制MPC(2)—— 无约束线性MPC_模型预测控制_14,由控制器产生动作 模型预测控制MPC(2)—— 无约束线性MPC_模型预测控制_15 输入被控系统,观测到系统转移至状态 模型预测控制MPC(2)—— 无约束线性MPC_MPC_16,在下一时刻计算其与参考值(目标)模型预测控制MPC(2)—— 无约束线性MPC_代价函数_17 的误差 模型预测控制MPC(2)—— 无约束线性MPC_代价函数_18
  1. 最优追踪效果:最小化控制过程的总误差,即最小化 mse 损失 模型预测控制MPC(2)—— 无约束线性MPC_MPC_19模型预测控制MPC(2)—— 无约束线性MPC_MPC_20 时为 模型预测控制MPC(2)—— 无约束线性MPC_时域_21
  2. 最小控制能耗:最小化控制过程的总输入,即最小化 mse 损失 模型预测控制MPC(2)—— 无约束线性MPC_MPC_22
  • 通常使用两个可调节的参数 模型预测控制MPC(2)—— 无约束线性MPC_无约束线性MPC_23 权衡两个目标损失,从而构造代价函数。单输入输出系统下形如
    模型预测控制MPC(2)—— 无约束线性MPC_模型预测控制_24 多输入输出系统下形如(这里使用某种二范数作为 mse 损失的广义形式),是两个二次型之和
    模型预测控制MPC(2)—— 无约束线性MPC_模型预测控制_25
  • 由 1.1 节有 模型预测控制MPC(2)—— 无约束线性MPC_时域_26,代入有
    模型预测控制MPC(2)—— 无约束线性MPC_时域_27

2. 求解优化问题

  • 我们在 1.1 节给出了环境模型已知情况下多步预测结果的数学表达式,然后基于它在 1.2 节给出了每一时刻 模型预测控制MPC(2)—— 无约束线性MPC_模型预测控制_14
  • 首先回顾代价函数表达式
    模型预测控制MPC(2)—— 无约束线性MPC_时域_29 注意式子中 模型预测控制MPC(2)—— 无约束线性MPC_代价函数_30 是测量得到的反馈,模型预测控制MPC(2)—— 无约束线性MPC_无约束线性MPC_31 都是常数矩阵,我们只能通过优化动作序列 模型预测控制MPC(2)—— 无约束线性MPC_MPC_32 来优化 模型预测控制MPC(2)—— 无约束线性MPC_代价函数_33。令 模型预测控制MPC(2)—— 无约束线性MPC_代价函数_33 关于 模型预测控制MPC(2)—— 无约束线性MPC_MPC_32 的梯度为 0,求解最优动作序列 模型预测控制MPC(2)—— 无约束线性MPC_时域_36
    模型预测控制MPC(2)—— 无约束线性MPC_模型预测控制_37
    注意这里要求 模型预测控制MPC(2)—— 无约束线性MPC_时域_38
  1. 模型预测控制MPC(2)—— 无约束线性MPC_无约束线性MPC_39 正定,模型预测控制MPC(2)—— 无约束线性MPC_无约束线性MPC_40 半正定

此时 模型预测控制MPC(2)—— 无约束线性MPC_MPC_41

  1. 模型预测控制MPC(2)—— 无约束线性MPC_无约束线性MPC_39 正定或半正定,模型预测控制MPC(2)—— 无约束线性MPC_无约束线性MPC_40 正定且 模型预测控制MPC(2)—— 无约束线性MPC_MPC_44 是满秩的

此时 模型预测控制MPC(2)—— 无约束线性MPC_MPC_41 正定,它和正定或半正定矩阵之和一定正定,正定矩阵可逆。模型预测控制MPC(2)—— 无约束线性MPC_无约束线性MPC_46 的形式第1节已经给出,当 模型预测控制MPC(2)—— 无约束线性MPC_无约束线性MPC_47

最后,利用一个方块单位阵把最优动作序列 模型预测控制MPC(2)—— 无约束线性MPC_无约束线性MPC_48 中的第一个动作 模型预测控制MPC(2)—— 无约束线性MPC_代价函数_49 取出来,就得到 模型预测控制MPC(2)—— 无约束线性MPC_模型预测控制_14 时刻需要执行的最优动作
模型预测控制MPC(2)—— 无约束线性MPC_模型预测控制_51

下面给出一个计算最优动作的示例。注意到无约束线性MPC不需要每步在线解优化问题,直接代入以上解析式计算即可

模型预测控制MPC(2)—— 无约束线性MPC_代价函数_52

  • 我们直接算出了 模型预测控制MPC(2)—— 无约束线性MPC_模型预测控制_53。观察 模型预测控制MPC(2)—— 无约束线性MPC_无约束线性MPC_54 的表达式,其中 模型预测控制MPC(2)—— 无约束线性MPC_无约束线性MPC_55 都是常值矩阵,因此 模型预测控制MPC(2)—— 无约束线性MPC_无约束线性MPC_56 也是常值矩阵,模型预测控制MPC(2)—— 无约束线性MPC_无约束线性MPC_57 就是当前状态 模型预测控制MPC(2)—— 无约束线性MPC_代价函数_58,我们可以利用这一点验证系统的稳定性

3. 系统稳定性

3.1 有限预测时域

  • 把第 2 节得到的最优动 模型预测控制MPC(2)—— 无约束线性MPC_MPC_59 作带回到环境模型 模型预测控制MPC(2)—— 无约束线性MPC_代价函数_60,得到每步都执行最优动作下的环境转移为
    模型预测控制MPC(2)—— 无约束线性MPC_模型预测控制_61 这是一个离散的线性闭环系统,线性系统的稳定性判别准则如下

    如图所示,我们只需要检查 模型预测控制MPC(2)—— 无约束线性MPC_代价函数_62 的特征值是否在单位圆内即可

前提是要求 模型预测控制MPC(2)—— 无约束线性MPC_MPC_63 是稳定的,这样 模型预测控制MPC(2)—— 无约束线性MPC_模型预测控制_64

  • 对于本文考虑的无约束线性 MPC 而言,使代价函数的最优的动作策略无法保证系统稳定

系统的稳定性是指系统在受到外部扰动或初始条件变化时,系统的状态不会无限制地增长或衰减,而是会在某个有限的范围内保持。换句话说,稳定的闭环系统会在一定的条件下保持一种平衡状态,而不会发散或者偏离目标(简单说就是状态 模型预测控制MPC(2)—— 无约束线性MPC_时域_65

  • 无约束线性 MPC 无法保证稳定性的原因,直观上可以理解为它建模的轨迹和优化的动作序列都是有限长度的,而对有限长度的轨迹预测可能无法真实地反映系统运动趋势,换句话说,随着预测时域 模型预测控制MPC(2)—— 无约束线性MPC_MPC_09 减少,更可能出现不稳定问题,如下例所示

3.2 无限预测时域

  • 当我们优化无限长度的动作序列,即 模型预测控制MPC(2)—— 无约束线性MPC_MPC_67(证明略)
  • 但是,简单地令 模型预测控制MPC(2)—— 无约束线性MPC_无约束线性MPC_68 会出现问题,虽然依然可以按第 2 节解出
    模型预测控制MPC(2)—— 无约束线性MPC_模型预测控制_51 但此时 模型预测控制MPC(2)—— 无约束线性MPC_无约束线性MPC_70 都是无限维了,这样我们就没法写程序来计算了。为了处理这个问题,我们要利用线性系统的性质:线性系统在最优代价函数关于时域的极限存在且有限,可以写作
    模型预测控制MPC(2)—— 无约束线性MPC_代价函数_71

给定任意使得离散系统 模型预测控制MPC(2)—— 无约束线性MPC_代价函数_72 稳定的矩阵 模型预测控制MPC(2)—— 无约束线性MPC_时域_73 和任意正定对称矩阵 模型预测控制MPC(2)—— 无约束线性MPC_代价函数_74,一定存在唯一的正定对称矩阵 模型预测控制MPC(2)—— 无约束线性MPC_时域_75 使得下式成立
模型预测控制MPC(2)—— 无约束线性MPC_MPC_76

  • 接下来利用以上结论证明无穷时域下最优代价函数 模型预测控制MPC(2)—— 无约束线性MPC_模型预测控制_77
    模型预测控制MPC(2)—— 无约束线性MPC_模型预测控制_78

Proof:
模型预测控制MPC(2)—— 无约束线性MPC_时域_79

  1. 第 3 行等号左边用到离散系统转移 模型预测控制MPC(2)—— 无约束线性MPC_时域_80
  2. 第 3 行等号右边用到 模型预测控制MPC(2)—— 无约束线性MPC_代价函数_81
  3. 由于 模型预测控制MPC(2)—— 无约束线性MPC_MPC_82模型预测控制MPC(2)—— 无约束线性MPC_无约束线性MPC_83 都定义为列向量,模型预测控制MPC(2)—— 无约束线性MPC_无约束线性MPC_84
  4. 第 4 行就是把第 3 行左右都从 模型预测控制MPC(2)—— 无约束线性MPC_MPC_85 时刻到 模型预测控制MPC(2)—— 无约束线性MPC_无约束线性MPC_86 求和,左边是 模型预测控制MPC(2)—— 无约束线性MPC_时域_87,这样后面全都加减相消了,只留下第一项 模型预测控制MPC(2)—— 无约束线性MPC_代价函数_88
  • 证明以上结论后,我们可以通过以下步骤,求解无限预测时域下的最优动作了:要求 模型预测控制MPC(2)—— 无约束线性MPC_代价函数_89 稳定,给定对称正定的 模型预测控制MPC(2)—— 无约束线性MPC_代价函数_74
  1. 找到任意线性反馈 模型预测控制MPC(2)—— 无约束线性MPC_时域_91 使得离散系统稳定(即 模型预测控制MPC(2)—— 无约束线性MPC_无约束线性MPC_92
  2. 根据 模型预测控制MPC(2)—— 无约束线性MPC_时域_93 求解李雅普诺夫方程 模型预测控制MPC(2)—— 无约束线性MPC_MPC_94,解得正定对称矩阵 模型预测控制MPC(2)—— 无约束线性MPC_时域_75
  3. 无限时域下的代价函数值可以如下转换,用有限时域内的代价函数值表示
    模型预测控制MPC(2)—— 无约束线性MPC_时域_96 注意第三行中减去一个 模型预测控制MPC(2)—— 无约束线性MPC_时域_65 关乎 模型预测控制MPC(2)—— 无约束线性MPC_代价函数_74 的二次型,增加一个 模型预测控制MPC(2)—— 无约束线性MPC_时域_65 关乎 模型预测控制MPC(2)—— 无约束线性MPC_时域_75 的二次型,这可以体现在矩阵 模型预测控制MPC(2)—— 无约束线性MPC_无约束线性MPC_40 中,而 模型预测控制MPC(2)—— 无约束线性MPC_无约束线性MPC_39 不变,即
    模型预测控制MPC(2)—— 无约束线性MPC_代价函数_103
  4. 优化 3 中 模型预测控制MPC(2)—— 无约束线性MPC_MPC_104 得到的控制策略一定可以保证系统稳定性,优化问题求解过程和第 2 节相同,最优策略为
    模型预测控制MPC(2)—— 无约束线性MPC_代价函数_105
  • 下面给出一个根据以上方法计算的例子


  • 进一步地,我们可以考察以上第 3 步中对时间划分时 模型预测控制MPC(2)—— 无约束线性MPC_MPC_106

模型预测控制MPC(2)—— 无约束线性MPC_模型预测控制_107

模型预测控制MPC(2)—— 无约束线性MPC_代价函数_108

4. 无约束线性 MPC 和 LQR

  • 无穷时域上,无约束线性MPC和LQR的求解结果其实是一样的
  1. 无约束线性 MPC 通过找到最优的动作序列 模型预测控制MPC(2)—— 无约束线性MPC_时域_109 来最小化代价函数,这等价于优化 模型预测控制MPC(2)—— 无约束线性MPC_MPC_110
  2. LQR 通过求解每一步最优的控制增益 模型预测控制MPC(2)—— 无约束线性MPC_MPC_111,构造动作 模型预测控制MPC(2)—— 无约束线性MPC_代价函数_112 执行来最小化代价函数,这等价于求解最优动作序列 模型预测控制MPC(2)—— 无约束线性MPC_时域_109
  • 因此,二者的优化目标其实是一样的,二者的优化结果也是一样的。但是无约束线性 MPC 仍有意义
  1. 有些场景下我们只关注有限时域内的控制过程,这时 LQR 没法解
  2. 约束 MPC 的稳定性分析是基于无约束 MPC 稳定性分析的