源自:《无人驾驶无人驾驶车辆模型预测控制》——龚建伟

参考: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 粒子滤波

最新文章

  1. Full Gc经历分析
  2. CDN 学习笔记
  3. linux一些常用配置
  4. 以 Composer 的方式在 PhpStorm 中添加代码审查工具 Code Sniffer
  5. Java方法的封装
  6. 一次完整的HTTP事务分析
  7. c++11 其他特性(一)
  8. hdu 1142 A Walk Through the Forest
  9. WordPress 邮箱防抓取
  10. Win7怎样禁用自带IE浏览器
  11. golang关于一些新手不注意会出现的小问题
  12. MySQL数据库 Event 定时执行任务.
  13. String 类
  14. 《Servlet与JSP核心编程》读书笔记
  15. javascript 正则表达式补充
  16. flutter获取状态栏高度
  17. css和css3弹性盒模型实现元素宽度(高度)自适应
  18. [java]类初始化挺有意思的题目
  19. Hessian的使用以及理解
  20. centos7 与 archlinux用户 安装 python3模块 pytaglib

热门文章

  1. maven笔记(maven使用与安装,eclipse中maven的配置,maven项目的创建)
  2. [转载]java读写word文档,完美解决方案
  3. 分布式事务_02_2PC框架raincat源码解析-启动过程
  4. kvm-控制台登陆配置
  5. Ajax做无刷新分页
  6. 从零开始的acm竞赛生涯
  7. LeetCode Continuous Subarray Sum
  8. 【LeetCode】003. Longest Substring Without Repeating Characters
  9. 七、python沉淀之路--集合
  10. [转]使用Flexible实现手淘H5页面的终端适配