模型预测控制(MPC)算法原理
模型预测算法是在欧美等国家兴起的应用于工业领域的一种优化控制算法。目前经过多年的发展,在工业领域、智能控制领域等都有应用。随着算法的理论的完善,其已经成为工业领域内经常使用的一种经典算法。虽然在各个领域算法的应用存在差异。但他们都遵循预测模型、滚动优化、和反馈校正的基本原理。并且,近年来在汽车工业尤其是在车辆智驾驶技术上,模型预测算法的应用越来越受欢迎。很多科研机构利用了模型预测的原理进行了智能车辆的轨迹跟踪控制研究,下面将详细阐述模型预测算法的原理。
(1)预测模型
预测模型是模型预测控制的基础,它能够通过控制系统中被控平台提供的当前系统状态信息,再加上未来的控制输入变量,预测到未来的被控平台的状态。预测模型的形式没有确定的形式要求,可以是状态空间方程、传递函数也可以是阶跃响应模型、脉冲响应模型模糊模型等。根据被控对象和需要预测的状态选择合适的预测模型,对于车辆方向而言,模型预测控制选择状态空间模型比较合适。
(2)滚动优化
预测控制中的优化与通常的离散最优控制算法不同,不是采用一个不变的全局最优目标,而是采用滚动式的有限时域优化策略。在每一采样时刻,根据该时刻的优化性能指标,求解该时刻起有限时段的最优控制率。计算得到的控制作用序列也只有当前值是实际执行的,在下一个采样时刻又重新求取最优控制率。也就是说,优化过程不是一次离线完成的,而是反复在线进行的,即在每一采样时刻,优化性能指标只涉及从该时刻起到未来有限的时间,而到下一个采样时刻,这一优化时段会同时向前推移。
通过滚动优化策略,始终在实际的基础上建立新的优化目标,兼顾了对未来有限时域内的理想优化和实际不确定性的影响。这要比建立在理想条件下的传统最优控制更加实际和有效。
(3) 反馈校正
**预测控制求解的是一个开环优化问题。**在预测控制中,采用预测模型进行过程输出值的预估只是一种理想的方式,对于实际过程,由于存在非线性、时变、模型失配和干扰等不确定因素,使基于模型的预测不可能准确地与实际相符。因此,在预测控制中,通过输出的测量值与模型的预估值进行比较,得出模型的预测误差,再利用模型预测误差来校正模型的预测值,从而得到更为准确的将来输出的预测值。正是这种由模型加反馈校正的过程,使预测控制具有很强的抗干扰和克服系统不确定的能力。不断根据系统的实际输出对预测输出做出修正,使滚动优化不但基于模型,而且利用反馈信息,构闭环优化控制。
跟据上面所提三要素,模型预测算法的控制原理如上图 所示。控制过程中,存在一条期望的参考轨迹。在整个控制时域中,令 k 时刻为当前时刻。控制器结合当前系统的测量值和预测模型,预测未来一段时域内 [K,k+p](也被称为预测时域)系统的输出。通过求解满足目标函数以及各种约束的优化问题,得到 [K,K+M](这段时间为控制时域,控制时域的时间段要比预测时域时间段要短)时域内的一系列控制变量序列。并将该时控制系列中的第一个元素作为被控对象的实际控制量,当来到下一时刻 k +1时重复上述过程。如此滚动的完成一个个带约束的优化问题。以此实现对被控对象的持续控制。
模型预测控制器原理框图如上图所示,包含了 MPC 控制器、被控车辆、状态估计三个基本模块。其中,MPC 控制器结合预测模型、目标函数和约束条件进行最优化求解。得到当前时刻的最优控制序列,将其输入到被控平台中,被控平台执行接受到的控制指令,然后将当前时刻的状态量观测值输入给状态估计器。而状态估计器将会对于那些没有办法直接观测的状态量进行估计,如地面附着系数。将状态量输入到 MPC 控制器,再次进行最优化求解,得到下一时刻被控平台所需的控制变量。如此循环,构成了完整的模型预测控制过程。
模型预测控制(MPC)算法原理相关推荐
- 模型预测控制_模型预测控制(MPC)算法之一MAC算法
引言 随着自动驾驶技术以及机器人控制技术的不断发展及逐渐火热,模型预测控制(MPC)算法作为一种先进的控制算法,其应用范围与领域得到了进一步拓展与延伸.目前提出的模型预测控制算法主要有基于非参数模型的 ...
- 【附C++源代码】模型预测控制(MPC)公式推导以及算法实现,Model Predictive control介绍
2022年的第一篇博客,首先祝大家新年快乐! 提示:本篇博客主要集中在对MPC的理解以及应用.这篇博客可以作为你对MPC控制器深入研究的一个开始,起到抛砖引玉,带你快速了解其原理的作用. 这篇博客将介 ...
- 无人车系统(十一):轨迹跟踪模型预测控制(MPC)原理与python实现【40行代码】
前面介绍的PID,pure pursuit方法,Stanley方法都只是利用当前的系统误差来设计控制器.人们对这些控制器的设计过程中都利用了构建模型对无人车未来状态的估计(或者说利用模型估计未来的运动 ...
- 基于模型预测控制MPC的光伏并网系统设计|太阳能发电|模型预测控制
本课题提出一种基于最大功率点跟踪与有限集模型预测控制结合的光伏并网逆变策略,首先,针对模型预测控制算法在电网模型预测与控制时域中实时性不足等问题,引用快速求解MATMPC工具箱,降低MPC算法的单轮运 ...
- 【控制control】机器人运动控制器----基于模型预测控制MPC方法
系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 TODO:写完再整理 文章目录 系列文章目录 前言 一.模型预测控制(MPC)的介绍及构成 1.介绍 2.构成 二.模型 ...
- 基于模型预测控制(MPC)的悬架系统仿真分析
目录 前言 1.悬架系统 2.基于MPC的悬架系统仿真分析 2.1 simulink模型 2.2仿真结果 2.2.1 随机C级路面 2.2.2 正弦路面 2.3 结论 3 总结 前言 模型预测控制是无 ...
- Apollo代码学习(六)—模型预测控制(MPC)_follow轻尘的博客-CSDN博客_mpc代码
Apollo代码学习(六)-模型预测控制(MPC)_follow轻尘的博客-CSDN博客_mpc代码
- 基于扩展卡尔曼滤波EKF和模型预测控制MPC,自动泊车场景建模开发
基于扩展卡尔曼滤波EKF和模型预测控制MPC,自动泊车场景建模开发,文复现. MATLAB 基于扩展卡尔曼滤波EKF和模型预测控制MPC,自动泊车场景建模开发,文复现. MATLAB(工程项目线上支持 ...
- 了解模型预测控制2--什么是模型预测控制(MPC)
本节,我们将讨论模型预测控制器的工作原理. 在控制问题中,控制器的目标是计算被控对象的输入,使得被控对象输出遵循期望的参考信号.模型预测控制器计算此输入的策略是预测未来. ...
- Apollo代码学习(六)—模型预测控制(MPC)
Apollo代码学习-模型预测控制 前言 模型预测控制 预测模型 线性化 单车模型 滚动优化 反馈矫正 总结 前言 非专业选手,此篇博文内容基于书本和网络资源整理,可能理解的较为狭隘,起点较低,就事论 ...
最新文章
- 【linux】Valgrind工具集详解(十三):Helgrind(线程错误检测器)
- zabbix之rpm简单快速安装详解
- Define and Publish Platform Events
- python函数对变量的作用域_python函数变量作用域如何理解使用?
- javaone_JavaOne 2014:会议与合同利益冲突
- MongoDB身份验证
- SpringBoot-拦截器
- 判断某个字符出现的次数
- paip.解决Invalid byte 2 of 2-byte UTF-8 sequence.
- java版Spring Cloud+VR全景+直播短视频带货+三级分销+b2b2c多商家入驻前后端分离商城源码
- 08-05-09pe_xscan 增加IE版本检测
- 20个必不可少的Python第三方库(存干货分享)!
- 快速取消PPT中所有动画效果
- sublime的注意事项
- 人体大脑是如何产生压力的,脑体的机制变化过程
- 【Python】pyecharts 数据可视化模块
- Docker的基本使用
- Realm学习(二)
- 三万字、91道MySQL面试题(收藏版)
- 如何使用css实现三角形?