- 前文:模型预测控制MPC(1)—— 基础概念
- 参考:模型预测控制(2022春)
- 本文从偏控制的角度介绍无约束线性MPC方法,
文章目录
- 1. 问题定义
- 1.1 多步预测公式
- 1.2 代价函数
- 2. 求解优化问题
- 3. 系统稳定性
- 3.1 有限预测时域
- 3.2 无限预测时域
- 4. 无约束线性 MPC 和 LQR
1. 问题定义
- 考虑一个离散线性时不变多输入输出系统(离散指时间离散,线性指系统动态可由线性方程描述,时不变指系统动态不随时间变化),环境转移如下
由于是时不变系统,要求 - 定义 表示从时刻 开始后第 步的预测状态和动作。特别地,有
1.1 多步预测公式
- 在系统已知的情况下,可以如下进行多步预测
设预测时间步数为 ,多步预测结果可以写成更紧凑的矩阵形式
其中 和 分别为状态序列和动作序列,
1.2 代价函数
- 首先把控制系统的示意图绘制如下
在每个时刻 ,由控制器产生动作 输入被控系统,观测到系统转移至状态 ,在下一时刻计算其与参考值(目标) 的误差
- 最优追踪效果:最小化控制过程的总误差,即最小化 mse 损失 , 时为
- 最小控制能耗:最小化控制过程的总输入,即最小化 mse 损失
- 通常使用两个可调节的参数 权衡两个目标损失,从而构造代价函数。单输入输出系统下形如
多输入输出系统下形如(这里使用某种二范数作为 mse 损失的广义形式),是两个二次型之和 - 由 1.1 节有 ,代入有
2. 求解优化问题
- 我们在 1.1 节给出了环境模型已知情况下多步预测结果的数学表达式,然后基于它在 1.2 节给出了每一时刻
- 首先回顾代价函数表达式
注意式子中 是测量得到的反馈, 都是常数矩阵,我们只能通过优化动作序列 来优化 。令 关于 的梯度为 0,求解最优动作序列
注意这里要求
- 正定, 半正定
此时
- 正定或半正定, 正定且 是满秩的
此时 正定,它和正定或半正定矩阵之和一定正定,正定矩阵可逆。 的形式第1节已经给出,当
最后,利用一个方块单位阵把最优动作序列 中的第一个动作 取出来,就得到 时刻需要执行的最优动作
下面给出一个计算最优动作的示例。注意到无约束线性MPC不需要每步在线解优化问题,直接代入以上解析式计算即可
- 我们直接算出了 。观察 的表达式,其中 都是常值矩阵,因此 也是常值矩阵,故 就是当前状态 ,我们可以利用这一点验证系统的稳定性
3. 系统稳定性
3.1 有限预测时域
- 把第 2 节得到的最优动 作带回到环境模型 ,得到每步都执行最优动作下的环境转移为
这是一个离散的线性闭环系统,线性系统的稳定性判别准则如下
如图所示,我们只需要检查 的特征值是否在单位圆内即可
前提是要求 是稳定的,这样
- 对于本文考虑的无约束线性 MPC 而言,使代价函数的最优的动作策略无法保证系统稳定
系统的稳定性是指系统在受到外部扰动或初始条件变化时,系统的状态不会无限制地增长或衰减,而是会在某个有限的范围内保持。换句话说,稳定的闭环系统会在一定的条件下保持一种平衡状态,而不会发散或者偏离目标(简单说就是状态
- 无约束线性 MPC 无法保证稳定性的原因,直观上可以理解为它建模的轨迹和优化的动作序列都是有限长度的,而对有限长度的轨迹预测可能无法真实地反映系统运动趋势,换句话说,随着预测时域 减少,更可能出现不稳定问题,如下例所示
3.2 无限预测时域
- 当我们优化无限长度的动作序列,即 (证明略)
- 但是,简单地令 会出现问题,虽然依然可以按第 2 节解出
但此时 都是无限维了,这样我们就没法写程序来计算了。为了处理这个问题,我们要利用线性系统的性质:线性系统在最优代价函数关于时域的极限存在且有限,可以写作
给定任意使得离散系统 稳定的矩阵 和任意正定对称矩阵 ,一定存在唯一的正定对称矩阵 使得下式成立
- 接下来利用以上结论证明无穷时域下最优代价函数
Proof:
- 第 3 行等号左边用到离散系统转移
- 第 3 行等号右边用到
- 由于 和 都定义为列向量,
- 第 4 行就是把第 3 行左右都从 时刻到 求和,左边是 ,这样后面全都加减相消了,只留下第一项
- 证明以上结论后,我们可以通过以下步骤,求解无限预测时域下的最优动作了:要求 稳定,给定对称正定的
- 找到任意线性反馈 使得离散系统稳定(即 )
- 根据 求解李雅普诺夫方程 ,解得正定对称矩阵
- 无限时域下的代价函数值可以如下转换,用有限时域内的代价函数值表示
注意第三行中减去一个 关乎 的二次型,增加一个 关乎 的二次型,这可以体现在矩阵 中,而 不变,即 - 优化 3 中 得到的控制策略一定可以保证系统稳定性,优化问题求解过程和第 2 节相同,最优策略为
- 下面给出一个根据以上方法计算的例子
- 进一步地,我们可以考察以上第 3 步中对时间划分时
4. 无约束线性 MPC 和 LQR
- 无穷时域上,无约束线性MPC和LQR的求解结果其实是一样的
- 无约束线性 MPC 通过找到最优的动作序列 来最小化代价函数,这等价于优化
- LQR 通过求解每一步最优的控制增益 ,构造动作 执行来最小化代价函数,这等价于求解最优动作序列
- 因此,二者的优化目标其实是一样的,二者的优化结果也是一样的。但是无约束线性 MPC 仍有意义
- 有些场景下我们只关注有限时域内的控制过程,这时 LQR 没法解
- 约束 MPC 的稳定性分析是基于无约束 MPC 稳定性分析的