模型预测控制MPC

参考下面这三个链接,主要还是知识的整理

0 定义

  • 模型预测控制实际上是以优化方法来求解控制问题,或者说是以优化问题的求解来给出控制器的动作。
  • 它利用一个已有的模型系统当前的状态未来的控制量,来预测系统未来的输出,然后与我们期望的系统输出做比较,得到一个损失函数
    在这里插入图片描述
  • 由于上式中模型、当前状态、期望输出都是已知的,因此只有未来控制量一个自变量。采用二次规划的方法求解出某个未来控制量,使得损失函数最小,这个未来控制量的第一个元素就是当前控制周期的控制量。

1 Motivation

1.1 三个概念

  1. 模型
    1. 机理模型
    2. 基于数据的模型(例如用神经网络训练的一个model)
  2. 预测
    1. 模型就是用来预测的,预测的目的是为了更好的决策
  3. 控制
    1. 根据预测,作出决策

1.2 一些例子

  1. 例如你过马路的时候,会预测一下是否有车能撞到你,如果没有你就赶快过马路(控制动作)
    1. 大脑根据以往经验学到的模型来做预测
  2. 例如淘宝会预测商品未来7天的购买量,就要看如果说有一些商品缺货了的话就赶紧去调货或者生产(控制动作)
    1. 用神经网络,决策树等机器学习学习到的模型
  3. 例如物理学家用牛顿三大定律预测小行星运动轨迹,如果预测到小行星会撞击到地球的话,那就提前需要采取措施来避免小行星的撞击(控制动作)
    1. 用到的是机理模型

2 模型预测控制&最优控制&PID控制

2.1 最优控制

  • 还需要从别的地方找资料,这里只是概述
  • 最优控制强调的是“最优”,一般最优控制需要在整个时间域上进行求优化(这样才能保证最优性)
  • 最优控制常用解法有 1变分法,2极大值原理,3动态规划。
  • 最优控制由于过于强调最优性,而暴露出两个问题
    1. 对于非线性的 包含复杂约束的情况难以求解;
    2. 需要对系统的模型精确的知道。

2.2 模型预测控制 与 最优控制

  • 模型预测控制退而求其次,仅去考虑未来几个时间步,一定程度上牺牲了最优性。

2.3 模型预测控制与传统PID控制

  • 由于各个控制回路之间存在耦合关系,多输入多输出系统的PID参数的整定变得非常困难
  • PID的缺点
    1. PID控制器不具有“前瞻性”,在计算公式中有当前err,上个周期的err,及err累积和,但没有未来的err
    2. PID属于无模型控制,仅通过err控制进行控制器设计
  • MPC的优点
    1. 模型预测控制善于处理多输入多输出系统
      • 对于MIMO系统,PID需要为每个子系统单独设计PID控制器,由于存在耦合对于较大的系统难以实现
        在这里插入图片描述

      • MPC控制器可以较好控制MIMO系统

    2. 模型预测控制可以处理约束
      1. 安全性约束,上下阈值
    3. 模型预测控制是有向前考虑未来时间步的有限时域优化(一定的预测能力)
      • 最优控制要求在整个时间优化
      • 实际上模型预测控制采用了一个折中的策略,既不是像最优控制那样考虑这个时域,也不是完全的贪婪控制仅仅考虑当前,而是考虑未来的有限时间域。
  • 在流程工业1980s开始使用
  • 需要较好的处理器和较大的内存,因为每一步(time step)都需要大量的在线优化,存储大量的变量

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DZ6f6PfG-1649326826665)(https://s3-us-west-2.amazonaws.com/secure.notion-static.com/f6f5fb17-9b40-4b24-b338-a722d1f06590/Untitled.png)]

3 模型预测控制的实现

3.1 概述

  • 模型预测控制的实现是通过建立优化问题的模型,求解该优化问题来得到控制器的输出的

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Mc32ToA2-1649326826666)(https://s3-us-west-2.amazonaws.com/secure.notion-static.com/78f72fe9-edf2-45bb-b83e-e91b4cbe1430/Untitled.png)]

  • 模型预测控制需要在每一个时间步通过反复的预测+优化来求解优化问题,当得到优化问题最优解后再将这个解作为真正的控制器的输出作用给被控对象

  • 常见的优化问题的模型

    • 未来N步
    • 约束(1)表示被控对象的动态特征
    • 约束(2)(3)分别表示u y的上下限约束
      在这里插入图片描述
  • 很多MPC最后形成一个二次规划问题,所以MPC表面是控制,实际上是一个优化方法

  • “控制时域”和“预测时域”的概念
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8L2flRNo-1649326826666)(https://s3-us-west-2.amazonaws.com/secure.notion-static.com/622c1a62-cb5c-487f-80d6-3ace12b9da4c/Untitled.png)]

  • 如果不能直接测量系统的状态,需要State Estimator

    • Kalman Filters

3.2 MPC参数选择

  • 选择一个好的参数不仅影响MPC控制的性能,而且还会影响到MPC每一个timestep内进行在线优化的计算复杂度。

3.2.1 采样周期

  • 采样周期过大,则系统反应过慢导致难以及时进行修正控制,而采样周期过小,则会导致系统产生大量的在线优化计算,给系统带来较大的开销。

  • 因而建议采样周期设计采用开环响应时间(10~90%上升时间)的十分之一或二十分之一

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jNeLgL20-1649326826669)(https://s3-us-west-2.amazonaws.com/secure.notion-static.com/182b31a0-95ee-4c94-9be0-2900294d80e3/Untitled.png)]

3.2.2 预测范围(prediction horizon)

  • 预测范围指的是一次优化后预测未来输出的时间步的个数

  • 建议范围:在开环响应时间内采样20-30个样本的范围

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CEmnFeqJ-1649326826669)(https://s3-us-west-2.amazonaws.com/secure.notion-static.com/7d9b0558-dc79-4481-a2a3-7cfcde3dc122/Untitled.png)]

3.2.3 控制范围(control horizon)

  • 如下图 [k, k+m]范围为控制范围,之后的红色部分称为 held constant,其中控制范围是要通过优化器来进行优化的参数。

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5ItEob92-1649326826670)(https://s3-us-west-2.amazonaws.com/secure.notion-static.com/98378e7f-57be-4c93-8e4c-648d9cd66001/Untitled.png)]

  • 过小的控制范围,可能无法做到较好的控制,而较大的控制范围,比如与预测范围相等,则会导致只有前一部分的控制范围才会有较好的效果,而后一部分的控制范围则收效甚微,而且将带来大量的计算开销。

  • 下图说明,只有最近的控制动作才对预测的输出有明显作用

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PxiXXizw-1649326826671)(https://s3-us-west-2.amazonaws.com/secure.notion-static.com/8a095d86-4208-417c-be2a-6007c7a5d120/Untitled.png)]

  • 建议控制范围应该在**预测范围的1020%之间**,最小值为23个timestep时间步

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pEFcoWSn-1649326826672)(https://s3-us-west-2.amazonaws.com/secure.notion-static.com/eb31e84f-4532-462e-82e7-fdf1fb9f58e8/Untitled.png)]

3.2.4 约束

  • 对于约束,一般分为Hard约束和Soft约束,Hard约束是不可违背必须遵守的,在控制系统中,输入输出都可能会有约束限制,但是在设计时不建议将输入输出都给予Hard约束,因为这两部的约束有可能是有重叠的,导致优化器会产生不可行解。

  • 建议输出采用较小容忍度的Soft约束,而输入的话建议输入和输入参数变化率二者之间不要同时为Hard约束,可以一个Hard一个Soft。

    • Hard不能违反,Soft可以;比如Hard约束 是 刹车踩的幅度;Soft约束是速度

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LwcR0y8s-1649326826672)(https://s3-us-west-2.amazonaws.com/secure.notion-static.com/ee222bd2-0175-441f-9272-2a6d485dc27c/Untitled.png)]

  • 建议将输出设置为soft约束

3.2.5 权重

  • MPC有许多控制目标,比如希望输出尽可能地接近输入;控制器输出尽可能平滑

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fEdjPJFz-1649326826673)(https://s3-us-west-2.amazonaws.com/secure.notion-static.com/daefe375-1568-439a-8533-a205c41303d1/Untitled.png)]

  • 为了在多个控制目标中寻找一个平衡,需要为他们设置不同的权重

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lB0x7rVb-1649326826674)(https://s3-us-west-2.amazonaws.com/secure.notion-static.com/7da72350-67d6-4d68-b493-946045495977/Untitled.png)]

4 MPC分类

4.1 Linear MPC

  • 适用于非线性系统、线性约束、二次损失函数

  • 对于非线性系统,需要在不同的operating point处进行线性化处理

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VFfdapWq-1649326826674)(https://s3-us-west-2.amazonaws.com/secure.notion-static.com/779744c1-0448-4ff1-834d-c74edd40f669/Untitled.png)]

4.1.1 Adaptive MPC

  • 在 Adaptive MPC中,当operating condition发生变化的时候,需要进行一次近似线性化计算,在每个时间步中,使用其近似线性模型来更新内部的平台模型(plant model,比如飞控模型,自行车模型等)。

  • 在 Adaptive MPC中,在不同的operating point条件下,其优化问题的结构保持不变,即状态数量,约束数量不会随着operating condition而改变。

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NZrTGx0i-1649326826675)(https://s3-us-west-2.amazonaws.com/secure.notion-static.com/e865b467-8304-4f6e-a65a-fdccc4338241/Untitled.png)]

4.1.2 Gain-Scheduled MPC

  • 在 Gain-Scheduled MPC中,在不同的operating point条件下,其优化问题的结构会发生变化,需要为每一个operating point构建一个MPC控制器,且相互之间独立,其状态数量约束数量也可能不同。

  • 在 Gain-Scheduled MPC模式下,需要设计调度算法来切换不同的MPC模型

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-unhGCQsN-1649326826675)(https://s3-us-west-2.amazonaws.com/secure.notion-static.com/27e0feda-50a5-473d-a6d3-a651c03297c7/Untitled.png)]

4.1.3 二者区别

  • 在不同的operating point下优化问题的结构(状态、约束)是否发生变化

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gu6zC84p-1649326826676)(https://s3-us-west-2.amazonaws.com/secure.notion-static.com/97c76128-3bfd-432c-a1dd-86429f520117/Untitled.png)]

4.2 Non-Linear MPC

  • Non-Linear MPC相对强大,能够提供更准确的预测能力 与 决策支持,但是非线性优化的计算开销较大
  • 适用于 非线性系统、非线性约束、非线性损失函数

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UuszEt0m-1649326826677)(https://s3-us-west-2.amazonaws.com/secure.notion-static.com/5bd037cb-45f8-4316-a99d-87d7b01d12a4/Untitled.png)]

5 python库 do-mpc

https://github.com/do-mpc/do-mpc

  • a continuous ordinary differential equation (ODE, 常微分方程), a differential algebraic equation (DAE, 微分代数方程) or a discrete equation 离散方程
  • 模型参数
  • 17
    点赞
  • 152
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
### 回答1: 基于模型预测控制(MPC)的辅助驾驶系统(ADAS)中的自动紧急制动是通过利用MPC算法对车辆动力学模型进行预测和优化,实现对紧急情况下的自动制动操作。 首先,为了实现自动紧急制动,需要建立车辆动力学模型。该模型可以通过使用MATLAB仿真实现,结合车辆的动力学参数,如质量、惯性矩、摩擦系数等,以及环境参数,如道路条件、车辆间距等。通过这个模型,可以预测车辆在不同条件下的运动状态。 其次,在MPC算法中,需要定义目标函数和约束条件,以实现优化控制。目标函数是为了使车辆尽可能快地停下来,并且在刹车时保持稳定。约束条件可以是车辆的最大加速度限制、刹车灯亮起的时间限制等。 通过迭代算法,MPC可以根据当前车辆的状态和预测模型,计算出最佳的控制输入值,即刹车踏板的位置、刹车压力大小等。这些控制输入值可以通过车辆的控制系统,如刹车系统,来实现自动控制。 最后,通过使用MATLAB仿真,可以对MPC算法进行测试和调试,以保证其在不同情况下的正确性和稳定性。通过与实际车辆行驶情况的对比和评估,可以进一步优化和改进MPC算法,以实现更精确和可靠的自动紧急制动。 总之,基于模型预测控制的辅助驾驶系统中的自动紧急制动可以通过MATLAB仿真来实现。通过建立车辆动力学模型、定义目标函数和约束条件、使用迭代算法计算控制输入值,并通过仿真测试和调试,可以实现自动控制车辆的紧急制动操作。这样可以提高驾驶安全性,减少事故的发生。 ### 回答2: 基于模型预测控制(MPC)的辅助驾驶系统可以利用其优化控制特性来实现自动紧急制动,从而提高车辆的安全性能。 首先,我们需要利用传感器获取车辆的状态信息,如车速、加速度、转向角度等。这些信息将作为MPC控制器的输入。 在MPC控制器中,我们需要建立一个车辆动力学模型,以预测车辆在未来的运动状态。这可以通过利用已有的车辆动力学方程和运动学模型来进行建模,并使用MATLAB进行仿真实现。 利用已经建立的车辆模型,在每个控制周期开始时,我们可以根据当前车辆状态和目标状态来生成一个优化问题。这个优化问题的目标是最小化车辆与目标状态之间的差距,并满足一些约束条件,如车辆的加速度、制动力等。 通过求解这个优化问题,我们可以得到MPC控制器的输出,即控制量。对于自动紧急制动,控制量可以是制动力的大小。 根据MPC控制器的输出,我们可以实施自动紧急制动,将制动力传递给车辆的制动系统,从而迅速减速并停止车辆。这样可以有效地避免与前方障碍物发生碰撞。 在MATLAB仿真实现中,我们可以通过调整MPC控制器的参数和车辆模型的初始状态来进行模拟。通过反复的实验和优化,可以得到满足性能要求的自动紧急制动策略。 综上所述,基于模型预测控制的辅助驾驶系统可通过MATLAB仿真实现自动紧急制动的功能,提高驾驶安全性。这种控制方法可以根据车辆动力学模型和优化求解算法来预测车辆未来的运动状态,并及时采取紧急制动措施,确保车辆与障碍物之间的安全距离,减少事故的发生。 ### 回答3: 基于模型预测控制(MPC)的辅助驾驶系统是一种利用数学建模和预测控制算法,可以实现自动紧急制动的技术。这种技术的实现是通过对车辆动力学模型的建模和预测,预测车辆的运动轨迹和行为,并根据预测结果采取相应的控制策略来实现紧急制动。 基于MPC的辅助驾驶系统需要进行多项功能的实现。首先,需要对车辆的动力学模型进行建模,将车辆的质量、惯性力、摩擦力等因素考虑在内。其次,需要通过传感器获取车辆的状态信息,例如车辆的速度、加速度、转向角度等。然后,通过这些信息和动力学模型,可以对车辆的未来运动轨迹进行预测,并判断是否存在紧急制动的需求。 在预测的基础上,MPC算法根据预测结果制定紧急制动的控制策略。具体来说,该算法会计算出最优的制动力,保证在最短的时间内将车辆停下来,并确保车辆的稳定性和安全性。最后,通过控制器将计算得出的制动力输入到车辆的制动系统中,实现自动紧急制动。 在MATLAB仿真实现时,可以利用MATLAB的工具包进行车辆动力学模型的建模和MPC算法的编写。通过编写相应的代码,可以模拟车辆的运动、预测和控制过程,并进行仿真实验。在实验中可以调整参数和策略,优化控制效果,并验证MPC辅助驾驶系统的性能。 综上所述,基于模型预测控制的辅助驾驶系统可以通过车辆动力学模型和预测控制算法实现自动紧急制动。MATLAB仿真是一种有效的方法进行系统设计和性能验证。通过该技术,可以提高驾驶安全性,减少交通事故的发生。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值