(一)车辆建模

两自由度车辆模型为:

考虑恒定不变,则上述模型可以看作一个输入为、状态变量为的控制系统,可以表示为:

对于参考轨迹,可以表示为:

将(2)式在处泰勒展开,并忽略高次项,有:

,式(4)-(3)可得:

对上式进行离散化处理,可得:

所以,

记:

则(7)式可以写为:

由于系统矩阵A和输入矩阵B的元素随时间变化,所以上述系统是一个线性时变系统。

(二) LQR控制算法仿真

根据上一篇博文的分析,LQR设计步骤如下:

1)根据工程经验和性能分析,确定矩阵Qf、Q和R;

2)倒序求解P;

3)计算反馈矩阵K;

4)正序求解u(k)。

基于第一部分的车辆运动学模型,运用python对LQR控制算法进行仿真,跟踪一个圆形轨迹的仿真结果如下图所示。

具体仿真总结如下:

1)R矩阵的选取

如果不对控制量(前轮转角)进行限制,R需要选择较大的值,比如这里选择86能达到较好的跟踪效果(见上图);如果R选择较小的值,比如取1,跟踪效果就会很差,如下图所示。

此时,如果对控制量(前轮转角)进行限幅处理,可以提升跟踪效果,如下图所示。

所以,选取较大的R可以减小控制量。

2)Q矩阵的选取

有资料指出:较大的Q可以得到较快的调节速度。

目前仿真下来还没有摸清楚Q选取的规律,只能说Q不能太大、也不能太小。

3)Qf矩阵的选取

将Qf取为0,也能达到较好的跟踪效果,如下图所示。如果对终端误差不作限制,Qf可以取为0。

路径跟踪之LQR控制算法相关推荐

  1. 路径跟踪—基于车辆运动学方程的离散时间LQR控制仿真

    文章目录 前言 一.运动学模型 二.建模仿真 总结 更新 前言 路径跟踪,轨迹跟踪的算法有基于运动学和基于动力学的,其中LQR算法基于车辆动力学网上有很多,毕竟百度开源了apollo,该算法通过简单改 ...

  2. [运动控制算法]Pure Pursuit纯路径跟踪算法

    纯路径跟踪 Pure Pursuit是一种用于路径跟踪的控制算法.它通过计算角速度控制机器人从当前位置移到机器人前方的某个预瞄点.假定线速度是恒定的,当然可以随意更改机器人的线速度.该算法会根据机器人 ...

  3. 自动驾驶路径跟踪控制——驾驶员预瞄模型

    文章目录 1. 驾驶员预瞄控制概述 1.1 第一个得到应用的驾驶员模型(Crossover模型) 1.2 预瞄概念的诞生 1.3 驾驶员模型环节 1.4 补偿跟踪模型 1.5 预瞄跟踪模型 1.6 速 ...

  4. 斯坦福大学:极限工况下的无人驾驶路径跟踪|厚势汽车

    来源: 同济智能汽车研究所 责任编辑:啜小雪 文章译自 2017 年美国控制年会的会议论文 原标题:Path-Tracking for Autonomous Vehicles at the Limit ...

  5. 无人驾驶车辆路径跟踪的增量式PID控制

    路径跟踪是无人车研究方向的一项关键技术.路径跟踪控制算法是指能够使无人车按照预设路径,安全稳定行驶的控制方法. 建立无人车路径跟踪模型 预设无人车在A.B两点间,当前位置为D点,航向为hF 可以得到B ...

  6. 路径跟踪算法之PID路径跟踪与PP跟踪

    路径跟踪算法之PID路径跟踪与PP跟踪 1路径跟踪原理 2 常见的路径跟踪算法 2.1 Pure puresuit(pp)纯跟踪 2.2 PID 跟踪 1路径跟踪原理 在运用好的路径规划算法,规划好一 ...

  7. 基于Carsim和simulink联合仿真的路径跟踪测试

    Hi 今天和大家分享一下利用carsim和simulink联合仿真的路径跟踪测试,算法采用基于预瞄点的PID控制算法. Carsim中Home界面如下: 一,Vehicle 首先是车辆模型,这里采用默 ...

  8. 路径与轨迹、路径规划与轨迹规划、路径跟踪与轨迹跟踪

    对于无人车辆来说,全局路径点只要包含空间位置信息即可,也可以包含姿态信息,而不需要与时间相关,但局部规划时,则可以考虑时间信息.这里规定轨迹点也是一种路径点,即当路径点信息中加入时间约束,就可以被称为 ...

  9. 路径跟踪与轨迹跟踪概念

    以既定路线为例子 路径跟踪中的路径即为参考路线也是全局路线. 轨迹跟踪中的轨迹:即当前点与目标点之间的运动轨迹. 可以将轨迹跟踪看做是局部路径.相当于做完路径规划算法之后的产生的路径.

  10. 机器人导航——路径跟踪

    要完成一套完整的机器人路径规划,并完成其物理实验并非一件简单的事情. 参考:http://wenku.baidu.com/link?url=n11mP6EDlM78NZYZ4yQYXzmzPeBV6B ...

最新文章

  1. Linux Kernel/optee/ATF等操作系统的异常向量表的速查
  2. groovy怎样从sql语句中截取表名_《SQL基础教程》学习笔记
  3. win8, VS2013 .NET 4.5在哪找svcutil.exe?
  4. jre for mac 删除_在 Mac 的 Docker Desktop 中运行 K8s
  5. 一个神奇的数字货币,终结了南非小哥每天步行20公里的烦恼
  6. 一道常被人轻视的前端JS面试题
  7. Python写数据结构:双向循环链表
  8. Android系统签名文件
  9. 探索硅谷奇迹的本质--周末荐书之《硅谷之谜》
  10. 基于图的广度优先搜索策略(耿7.11)
  11. html js聊天对话源码,javascript实现简易聊天室
  12. 智慧灯杆智能网关喷雾降尘系统
  13. 用声卡实现的存储示波器
  14. STM32F4时钟系统
  15. 【中亦安图】小机上运行Oracle需要注意的进程调度bug(1)
  16. c语言一维数组n个元素求和,C++编程一维数组元素求和?
  17. 【PMP考试最新解读】第七版《PMBOK》应该如何备考?(含最新资料)
  18. matlab做的脑网络分析,eeg脑网络分析
  19. python mqtt库_如何在 Python 中使用 MQTT
  20. failed to respond问题查找

热门文章

  1. 【Unity游戏开发基础】如何做可以调整音量的UI滚动条组件
  2. 三星或将80%手机生产转至越南
  3. [转] 如何轻松愉快地理解条件随机场(CRF)?
  4. Flutter 2.5正式版发布,带来重大更新
  5. Android性能优化典范-第2季
  6. ubuntu服务器系统分区大小,服务器Ubuntu系统分区教程
  7. 融易宝项目之EasyExcel和数据字典的使用
  8. 计算机绘图说课视频,电气工程制图说课ppt课件
  9. 车牌号上的省会简称;uni-app组件,vue组件通用,小程序可模仿
  10. OpenDDS系列(1) —— OpenDDS 简介