模型预测控制MPC(1)—— 基础概念

1. 历史沿革

  • 我本科做机器人的时候接触过一点控制,主要做了大量 PID 在嵌入式控制系统的应用;硕士期间研究方向是强化学习。在我调研 MPC 的过程中,发现它同时出现在最优控制和强化两个领域的教程中(好像更偏控制一点)。为了更好地理解这些方法在 big picture 中的定位,稍微梳理一下这些学科间的关系是有必要的

1.1 控制论

  • 控制论这一学科起源于 1948 年维纳的著作《控制论》,在这部奠基性质的论著中,维纳将控制论定义为关于在动物和机器中控制与通信的科学

    这里有几个关键词:动物机器控制通信,可见控制论早期是一个非常高层次的学科,它研究的核心问题是非常底层的且本质的,以至于可在多个相差甚远的学科之间共通

  • 控制论的几个核心思想

    • 一切通信和控制系统都包含有信息传输信息处理的过程
    • 控制论研究上具有统计属性。通信和控制系统接收的信息带有某种随机性质并满足一定统计分布,通信和控制系统本身的结构也必须适应这种统计性质,能对一类统计上预期的输入产生出统计上令人满意的动作
    • 信息反馈在控制系统中具有基础性地位
      1. 一个通信系统总能根据人们的需要传输各种不同的思想内容的信息
      2. 一个自动控制系统必须根据周围环境的变化自行调整自己的运动
  • 控制论用抽象的方式揭示了一切控制系统的信息传输和信息处理的特性和规律,研究用不同的控制方式达到不同控制目的可能性和途径,而不涉及具体信号的传输和处理。由于所关注问题的本质性,控制论后续在生物、工程、经济、军事等多个方面得到了进一步研究,发展出当今一系列重要学科

1.2 最优控制与强化学习

  • 工程控制论是控制论的一个重要分支,由钱学森于 1954 年创立的,它是受控工程系统的分析、设计和运行的理论。最优控制又是工程控制论的一个重要分支,它研究如何设计和实现系统的最优控制策略,以在给定约束条件下最大化或最小化某种性能指标

    最优控制的核心思想是通过对系统的数学模型进行建模,将控制问题转化为一个最优化问题,通过求解这个最优化问题来得到最优的控制策略。最优控制方法可以应用于各种动态系统,包括连续时间系统和离散时间系统。

  • 人工智能是计算机科学邻域的一个重要分支,它在多个方面受到控制论的影响和启发,特别是在强化学习这个分支中。主要体现在以下几个方面
    1. 动态系统建模:控制论强调对动态系统的建模和分析,这和强化学习考虑的智能体和环境的动态交互过程是想通的
    2. 状态空间表示:在强化学习中 MDP 状态-动作-奖励的表示方式与控制论中的状态空间表示相似
    3. 控制器设计与优化:在强化学习中涉及到对策略空间的搜索和优化。控制论中的优化技术,如动态规划、模型预测控制等,为强化学习中的策略学习提供了重要的方法和思想。特别是其中模型预测控制(MPC)可以视作一种Model-based类强化学习方法
    4. 稳定性和鲁棒性分析:控制论强调系统的稳定性和鲁棒性分析,这些稳定性分析方法和鲁棒控制思想为强化学习中的算法设计和性能分析提供了重要的参考和借鉴
  • 最后,可以用下图将 MPC 和 Model-based RL 在各学科中的地位呈现出来
    在这里插入图片描述

2. 模型预测控制

  • 模型预测控制(Model predict control, MPC)代表这样一种思想:智能体在交互过程中学习环境的状态转移,仅对环境建模,不对策略显示建模。在每个时刻,MPC 基于当前环境观测,利用环境模型进行多步规划,并选择第一步的动作执行。
    • 从控制角度看,MPC 中 k 时刻的动作决定了 k+1 时刻的观测,这带来了反馈,因此其属于一种闭环控制方法
    • 从强化学习角度看,MPC 学习一个环境模型,然后利用它帮助智能体训练和决策,属于一种 Model-based 方法
  • MPC 的交互过程如下图所示
    在这里插入图片描述
    1. 基于当前环境信息,基于学到的环境模型进行多步预测
    2. 基于某种性能指标,对整条预测轨迹进行优化。这里本质是通过求解约束优化问题来优化动作序列
    3. 执行最优动作序列中的第一个动作
    4. 在下一个时刻重复以上三步,直到环境终止
  • MPC 可以形式化定义如下:在 k k k 时刻,基于初始状态 s k s_k sk 和学到的环境模型 P ^ ( s ′ ∣ s , a ) \hat{P}(s'|s,a) P^(ss,a) 预测并优化动作序列 a k , a k + 1 , . . . a_k, a_{k+1},... ak,ak+1,...,使得预测的多步(设为 H H H 步)轨迹
    τ k : k + H = { s k , a k , s k + 1 , a k + 1 . . . } s . t . s i + 1 ∼ P ^ ( ⋅ ∣ s i , a i ) \tau_{k:k+H} = \{s_k, a_k, s_{k+1}, a_{k+1}...\}\quad s.t. \quad s_{i+1} \sim \hat{P}(·|s_i, a_i) τk:k+H={sk,ak,sk+1,ak+1...}s.t.si+1P^(si,ai) 在性能指标 r ( s , a ) r(s,a) r(s,a) 下的累积和最大,得到最优预测动作序列
    a k : k + H ∗ = arg max ⁡ τ k : k + H ∑ i = k H r ( s i , a i ) = { a k ∗ , a k + 1 ∗ , . . . a k + H ∗ } a^*_{k:k+H} = \argmax_{\tau_{k:k+H}}\sum_{i=k}^H r(s_i, a_i) = \{a_k^*, a_{k+1}^*,...a_{k+H}^*\} ak:k+H=τk:k+Hargmaxi=kHr(si,ai)={ak,ak+1,...ak+H} 然后选择动作序列中的第一个动作 a k ∗ a_k^* ak 执行,接下来在 k + 1 k+1 k+1 时刻重复以上操作得到 a k + 1 ∗ a^*_{k+1} ak+1 执行

    控制领域常用 x x x 表示状态,用 u u u 表示动作,用 l l l 表示性能指标。本文使用偏向强化学习的写法,用 s , a , r s,a,r s,a,r 表示状态观测、动作和奖励函数

  • 从控制角度看
    • MPC 相比其他控制方法的优势
      1. 由于在每一步求解一个(约束)优化问题,可以自然地引入约束(e.g. 动作范围;状态安全性;经济性…)
      2. 每个时刻根据当前状态重新优化轨迹,环境估计良好的前提下可以做到近似的最优控制
    • MPC 相比其他控制方法的劣势
      1. 需要在线求解(约束)优化问题,对于某些系统计算成本较高
  • 26
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
MPC(Model Predictive Control)模型预测控制是一种控制方法,它利用系统的数学模型来预测未来一段时间内的系统行为,并根据这些预测结果制定最优控制策略。在MPC中,Python被广泛应用于实现和调试控制算法。Python工具箱do-mpc是一个开源工具箱,用于健壮模型预测控制(MPC)和移动视域估计(MHE)。它提供了有效的非线性系统表示和解决控制问题的方法,包括处理不确定性和时间离散化。 另外,在Coursera的自动驾驶车辆课程的最终项目中,也使用了MPC模型预测控制。该项目涉及MPC模型预测控制原理的推导和Python实现,用于实现自动驾驶车辆的轨迹跟踪功能。 MPC的核心思想是构建一个四维的时空模型,在这个模型的基础上求解最优控制器。通过将三维空间模型和时间结合起来,得到系统在未来有限时间步的控制序列。然而,由于构建的模型与真实系统模型之间存在误差,所以更远未来的控制输出对系统控制的价值较低,因此MPC只执行输出序列中的第一个控制输出。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [do-mpc:模型预测控制python工具箱](https://download.csdn.net/download/weixin_42097914/18297275)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [driving car Part1 Final Project——自动驾驶轨迹跟踪之MPC模型预测控制原理推导及Python实现](https://blog.csdn.net/weixin_39199083/article/details/116723353)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [无人车系统(十一):轨迹跟踪模型预测控制(MPC)原理与python实现【40行代码】](https://blog.csdn.net/u013468614/article/details/103519721)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

云端FFF

所有博文免费阅读,求打赏鼓励~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值