无人驾驶——4.控制之MPC模型预测控制
源自:《无人驾驶无人驾驶车辆模型预测控制》——龚建伟
参考:https://wenku.baidu.com/view/8e4633d519e8b8f67c1cb9fa.html
0.车辆模型

汽车的车轮转角为δf
分别做垂直于后轮和前轮的射线,这两根射线会交于O点,两轮模型会绕O点进行运动,在短时间dt内,可以认为O点不动。连接O点和汽车的质心成一条线段,实际汽车的运动方向v将垂直于该线段。运动方向ψ与车身方向所成的夹角β,这个角度一般称为偏航角。
β 可以由如下公式计算求得
假设t时刻的汽车的状态为xt,yt,经过dt时间后的t+1时刻,状态为xt+1,yt+1,则他们之间的关系为

根据以上理论即可在丢失定位信息后的短时间内,依靠自身的传感器信息,进行位置和位姿估计。
1.基本原理

已知(输入):一条期望参考轨迹;当前k时刻的测量值;
设计:预测模型
目标:预测未来一段时域内[k,k+Np],系统的输出
方法:对这段时域内施加一系列控制序列4(k+1时刻的值为实际控制量)
总结起来就是:预测模型;滚动优化;反馈校正
2.控制原理框图

控制过程:
- 预测模型+目标函数+约束条件——>最优控制序列——>被控平台
- 被控平台响应
- 获取状态观测值x(t)——>状态估计器(卡尔曼滤波器、粒子滤波等)——>回到第一步,循环
3.常用模型
3.1 动态矩阵控制DMC
3.2 模型算法控制MAC
3.3 广义预测控制GPC
4.模型算法控制 MAC
参考:https://www.cnblogs.com/yrm1160029237/p/10087315.html
http://www.docin.com/p-1186007480.html
目的:使系统的输出沿着预先给定的参考轨迹逐渐到达设定值。
算法组成:预测模型、反馈校正、参考轨迹、滚动优化
其预测模型输出由两部分组成:过去已知控制量产生的预测模型输出、由现在和未来控制量产生的预测模型输出。
4.1 MAC算法原理图


4.2 MAC在线计算程序流程图

1.模型
- 预测模型:
,P-预测时域;
假设:
,M—控制时域
于是,P步预测值:

从而:

- 反馈校正
当前过程的测量值-模型计算值的差,来修正:

- 设定值(目标点)跟踪——>参考轨迹

- 最优控制


5.动态矩阵控制 DMC
算法组成:阶跃响应模型预测、反馈校正、滚动优化
其预测模型输出由两部分组成:待求解的未知控制增量产生的输出值、过去控制量产生的已知输出初值。
DMC算法原理图:

DMC在线计算程序流程图:

MPC算法的特点
模型要求不高,不需要深入的了解过程内部机理;
适用约束条件、大纯滞后、非最小相位及非线性等过程;
滚动优化策略能弥补外部因素引起的不确定性,动态性能较好;
缺点:不能描述不稳定系统,不适用于不稳定对象;系统模型在线辨识比较困难。
参考:https://blog.csdn.net/sinat_41842926/article/details/82995065
6.滚动优化

参考:https://blog.csdn.net/AdamShan/article/details/79083755
7.反馈校正
7.1 KF/EFK
7.2 粒子滤波




无人驾驶——4.控制之MPC模型预测控制的更多相关文章
- 【控制】模型预测控制 MPC 【合集】Model Predictive Control
1.模型预测控制--运动学模型 2.模型预测控制--模型线性化 3.模型预测控制--模型离散化 4.模型预测控制--预测 5.模型预测控制--控制律优化二次型优化 6.模型预测控制--反馈控制 7.模 ...
- 一个模型预测控制(MPC)的简单实现
1 生活中的启示 情景如下:你们团队每天早晨开一次例会,主要会议内容是你汇报工作进度,领导根据工作目标和工作进度,制定当天的工作计划,你领到工作计划后开始工作.每天都这样周而复始,从领导的角度看,这件 ...
- MATLAB模型预测控制(MPC,Model Predictive Control)
模型预测控制是一种基于模型的闭环优化控制策略. 预测控制算法的三要素:内部(预测)模型.参考轨迹.控制算法.现在一般则更清楚地表述为内部(预测)模型.滚动优化.反馈控制. 大量的预测控制权威性文献都无 ...
- 再探 Ext JS 6 (sencha touch/ext升级版) 变化篇 (编译命令、滚动条、控制层、模型层、路由)
从sencha touch 2.4.2升级到ext js 6,cmd版本升级到6.0之后发生了很多变化 首先从cmd说起,cmd 6 中sencha app build package不能使用了,se ...
- 模型预测控制(MPC)简介
1.引言 在当今过程控制中,PID当然是用的最多的控制方法,但MPC也超过了10%的占有率.MPC是一个总称,有着各种各样的算法.其动态矩阵控制(DMC)是代表作.DMC采用的是系统的阶跃响应曲线,其 ...
- 模型预测控制 MPC
使用MPC的原因:
- OpenSceneGraph控制模型
OpenSceneGraph控制模型 转自:http://www.cppblog.com/eryar/archive/2012/05/28/176538.html 一.简介 对模型的控制就是修改模型的 ...
- 百度Apollo无人驾驶入门课程下载
本文提供 百度Apollo官网的无人驾驶入门课程下载,主要为视频文件. 视频数量:101个:文件格式:MP4:视频总时长:2小时40分钟:文件总大小:约1.13GB: 马上下载 关注公众号罗孚传说(R ...
- Apollo代码学习(七)—MPC与LQR比较
前言 Apollo中用到了PID.MPC和LQR三种控制器,其中,MPC和LQR控制器在状态方程的形式.状态变量的形式.目标函数的形式等有诸多相似之处,因此结合自己目前了解到的信息,将两者进行一定的比 ...
随机推荐
- Docker 介绍安装
简介: Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源. Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级.可移植的容器中,然后发布到任何流行 ...
- Linux脚本基础
1.文本编辑 命令模式快捷键命令 命令 作用 dd 删除(剪切)光标所在整行. 5dd 删除(剪切)从光标处开始的5行. yy 复制光标所在整行. 5yy 复制从光标处开始的5行. n 显示搜索命令定 ...
- 大数据框架对比:Hadoop、Storm、Samza、Spark和Flink——flink支持SQL,待看
简介 大数据是收集.整理.处理大容量数据集,并从中获得见解所需的非传统战略和技术的总称.虽然处理数据所需的计算能力或存储容量早已超过一台计算机的上限,但这种计算类型的普遍性.规模,以及价值在最近几年才 ...
- JedisPool的配置参数整理
JedisPool的配置参数大部分是由JedisPoolConfig的对应项来赋值的. maxActive:控制一个pool可分配多少个jedis实例,通过pool.getResource()来获取: ...
- deep learning (五)线性回归中L2范数的应用
cost function 加一个正则项的原因是防止产生过拟合现象.正则项有L1,L2 等范数,我看过讲的最好的是这个博客上的:机器学习中的范数规则化之(一)L0.L1与L2范数.看完应该就答题明白了 ...
- Codeforces Round #277.5 (Div. 2)D Unbearable Controversy of Being (暴力)
这道题我临场想到了枚举菱形的起点和终点,然后每次枚举起点指向的点,每个指向的点再枚举它指向的点看有没有能到终点的,有一条就把起点到终点的路径个数加1,最后ans+=C(路径总数,2).每两个点都这么弄 ...
- Linux C 编程内存泄露检测工具(一):mtrace
前言 所有使用动态内存分配(dynamic memory allocation)的程序都有机会遇上内存泄露(memory leakage)问题,在Linux里有三种常用工具来检测内存泄露的情況,包括: ...
- Java进阶知识点2:看不懂的代码 - 协变与逆变
一.背景 要搞懂Java中的协办与逆变,不得不从继承说起,如果没有继承,协变与逆变也天然不存在了. 我们知道,在Java的世界中,存在继承机制.比如MochaCoffee类是Coffee类的派生类,那 ...
- 【phpcms-v9】前台content模块中pc标签的调用说明
内容模块PC标签调用说明 模块名:content 模块提供的可用操作 操作名 说明 lists 内容数据列表 relation 内容相关文章 hits 内容数据点击排行榜 category 内容栏目列 ...
- HihoCoder1449 重复旋律6(后缀自动机)
描述 小Hi平时的一大兴趣爱好就是演奏钢琴.我们知道一个音乐旋律被表示为一段数构成的数列. 现在小Hi想知道一部作品中所有长度为K的旋律中出现次数最多的旋律的出现次数.但是K不是固定的,小Hi想知道对 ...