目录

1 高速行驶车辆模型预测控制

1.1 面临的挑战与解决方案

1.1.1 高速车辆稳定性问题

1.1.2 解决方案

1.2 变步长离散化等效模型

1.2.1 阶段一:短步长离散化

1.2.2 阶段二:长步长离散化

1.3 基于横摆稳定约束的轨迹跟踪 MPC设计

1.3.1 横摆稳定包络线约束

1.3.2道路环境约束

1.3.3 执行机构饱和约束

1.3.4 构造模型预测控制器

2 Carsim / SIMULINK 联合仿真平台搭建

2.1 Carsim 配置

2.2 SIMULINK 实现

3 MATLAB 重点代码段解析

3.1 通过参考轨迹,更新车辆状态和边界

3.1.1 搜索全局路径上最近的点

3.1.2 用Bezier曲线插值

3.2 构建 MPC 矩阵

3.2.1 短步长等效模型

3.2.2 长步长等效模型

3.3 CVXGEN求解器设置

4 仿真结果分析

4.1 工况 1:干燥的沥青路面

4.2 工况 2:潮湿的沥青路面

4.3 工况 3:冰雪覆盖的路面

4.4 不同求解器性能分析


1 高速行驶车辆模型预测控制

当无人驾驶车辆高速行驶时,一旦进入失控或侧倾等失稳状态,很难通过制动减速来规避风险。面对这种情况,即使车载的稳定性控制系统能发挥作用,也经常无法恢复车辆的稳定行驶。但是如果能够充分利用无人驾驶车辆在信息处理和环境感知方面的能力,利用车辆动力学模型来预测其在未来一段时间内的行驶状态,进而事先生成满足横摆、侧滑和侧倾等非线性动力学约束的最优运动轨迹,并控制车辆在其操作性能之内跟踪所规划出的轨迹,则可以有效地减少或者避免交通事故。因此,研究基于模型预测控制的无人驾驶稳定性控制对实现其在复杂道路环境下的高速行驶有重要作用。

1.1 面临的挑战与解决方案

1.1.1 高速车辆稳定性问题

高速无人驾驶车辆的操纵稳定性分析存在两个方面的挑战。首先,需要根据无人驾驶车辆的动力学模型,寻找合理的控制边界,制定有效的操纵稳定性判据,实现对其操纵稳定性的在线评价;其次,这些操纵稳定性判据应该可以体现在性能评价函数中,并额能够通过评价函数的最优化,准确地反映无人驾驶车辆在横摆和侧滑等非线性动力学约束下的操纵稳定性。

模型预测控制算法在无人驾驶车辆的跟踪控制领域取得了显著的成果,然而它在高速情况下的稳定性控制方面还面临很多挑战,主要来自于车辆动力学模型复杂度和计算实时性之间的矛盾。一方面跟踪控制需要采用较高精度的车辆模型来保证预测的有效性;另一方面,必须对车辆高度非线性的模型及动力学安全约束进行等效简化,以降低优化求解的难度,提高跟踪控制的实时性。此外,相比于常规速度,高速条件下的无人驾驶车辆需要更长的预测距离来进行危险规避,如果一味的增大预测时域 Np,则会加剧算法求解的难度,不利于实时性,所以只能尝试通过增大采样间隔 T ,即更长的预测时域来增大预测距离,这种思路就是长步长离散化模型。

1.1.2 解决方案

从高速无人驾驶车辆进行路径跟踪控制的需求出发,首先介绍模型变步长的离散化方法、在实现更长的预测时域的同时,降低MPC优化求解的计算量,提高实时性;然后推导基于包络线的横摆稳定性判据,设计满足横摆稳定性约束的高速无人驾驶车辆路径跟踪控制器。

1.2 变步长离散化等效模型

将整个预测时域分为两个阶段,第一阶段使用短步长 ts 进行离散,从而保证离散后模型的精度;第二阶段使用长步长 tl 进行离散,在合理的模型精度和计算量下实现较长的预测时域。设整个预测时域为 Np,并在第 Ns 步分成短步长离散和长步长离散两个部分。

车辆横摆动力学模型

1.2.1 阶段一:短步长离散化

对于阶段一,即 k = 0,1, ... Ns,将横向动力学模型以 ts 为短步长,使用零阶保持器进行离散化。

短步长离散化

在步长较短的情况下,采用零阶保持器 进行离散化可以较为准确地拟合原曲线。但高速情况下需要感知到更远距离的路径,而预测时域总数一般是固定的,比如 Np = 15,此时必须增大采样间隔 T,从而在有限的预测时域内感知到更长的距离,所以长步长离散化是有必要的。

1.2.2 阶段二:长步长离散化

对于阶段二,即 k = Ns + 1, Ns + 2 , ... , Np,采样间隔改为长步长,此时零阶保持器则不再适用,因为零阶保持器 ZOH 会限定这部分的控制量在较长的预测周期 tl 内保持不变,如下图中的红色阶梯线所示。

零阶保持器和一阶保持器对比

可以看出,这种零阶的采样保持模式会使离散序列与原曲线产生较大的偏差,即可能存在失真的现象。针对这种情况,我们尝试采用一阶保持器 FOH,即假设控制量在一个长预测周期 tl 内的变化按照一定斜率增减,而不再是阶梯式的采样保持,从而更好地拟合原曲线,虽然 FOH 的结果仍然无法与原曲线完全重合,但仍在控制精度可接受的范围内。

长步长离散化动力学模型

1.3 基于横摆稳定约束的轨迹跟踪 MPC设计

MPC 控制器设计因素包括代价函数的设计以及约束的设计,并转换为二次规划的标准型即可求解。其中约束部分包含:横摆角速度和横向速度的相平面包络线约束、道路环境约束、执行机构饱和约束以及高速情况下的变步长离散等效模型约束。

1.3.1 横摆稳定包络线约束

基于横摆角速度-侧向速度的相平面能够很好地体现车辆的横摆特性以及对轮胎侧偏角的限制,适用于基于前轮主动转向的稳定性控制。下面选择横摆角速度和横向速度作为主要研究参数,通过分析车辆稳态行驶时的最大横摆角速度和轮胎最大侧偏力,推导基于包络线的横摆稳定性判据。

为了保证线性化轮胎模型的有效性,需要限制轮胎侧偏角的取值范围。由于当车辆发生横摆失稳时,后轴侧滑造成的危害比较大,即甩尾现象,因此通常对后轮侧偏角进行约束。首先回顾车辆横摆动力学模型:

在稳定横向控制中,对公式(2.22)做出简化,即令 Vy_dot = 0;φ_dot_dot=0

根据后轮的最大侧偏力约束,可以得到横摆角变化率的控制阈值:

横摆角变化率的控制阈值

根据公式(2.24),可以将后轮侧偏角的约束 αr_lim 转化为对车辆横向速度 Vy 的约束:

车辆横向速度的约束

基于约束公式(7.7)和(7.8),在横摆角、侧向速度的相平面内,基于包络线的横摆稳定性判据可以写成如下形式:

包络线的绘制:公式(7.7)可以看出横摆角速度的上下界为直线,与侧向速度取值无关。通过公式(7.8)可以看出,侧向速度的上下限取值与横摆角速度呈正相关:在边界 αr_lim 上,φ_dot 越大,响应的 Vy 取值也越大,但始终是一条带斜率的直线。

1.3.2道路环境约束

道路环境对高速车辆的约束主要表现为车辆轨迹必须保持在给定的可行区域内,并满足无碰撞的要求。高速车辆避障的功能可以通过在生成可行区域时考虑障碍物的影响来实现。将道路环境对车辆的轨迹约束表示为一系列横向偏差阈值的组合。

1.3.3 执行机构饱和约束

执行机构的约束即控制量前轮偏角和控制增量的约束,代表底层驱动能力,同时也影响乘坐舒适性。具体体现为前轮偏角的幅值约束和其在一个控制周期 ts 内的最大变化量。

| δf | ≤ δf,max                                                                 (7.12)

| Δδf | ≤ Δδf,max                                                             (7.13)

1.3.4 构造模型预测控制器

到目前为止已经考虑了所有的潜在约束条件,接下来是设计合理的目标函数,最后将目标函数和约束条件规范为求解器可识别的二次规划标准型。

首先明确求解前轮转角最优控制序列的问题,本质上就是一个凸优化问题,我们设计目标函数的思路就是将需要最小化的惩罚项体现在目标函数里,显然这里需要考虑以下几个惩罚项:

1、横向偏差 ey 的惩罚:抑制了高速无人驾驶车辆相对于参考路径的横向距离偏差,实现了路径跟踪。

2、航向偏差 的惩罚:约束小车的航向,使车身航向跟随道路切线方向。

3、控制增量 δf(k) - δf(k-1) 的约束,即平滑性:控制增量作为惩罚因子,概念不同于约束条件中的 Δδf,这里的惩罚项是考虑了惩罚系数的最优解,在求解过程中会平衡该惩罚项和其他惩罚项之间的权重。而约束条件中的 Δδf 是一个绝对数值,仅仅能保证 Δδf 不超过最大值。

4、松弛因子 Ssh 惩罚项:当高速车辆出现暂时滑移,即轮胎进入非线性区域,会导致横摆角速度或横向速度短暂跃出包络线约束范围,这并不必然导致车辆横摆角失稳,但一定会导致优化问题没有可行解(因为不再满足包络线的约束条件),所以需要增加一项包络线的松弛因子,该惩罚系数过大会导致包络线过于松弛,出现真正失稳失控的危险状况,同时过小也可能导致无最优解,同样会失控,所以需要调试来平衡各惩罚项的权重。

(d)短步长离散化等效模型

(e)长步长离散化等效模型

(f)包络线滑移约束

(g)道路环境约束

(h)控制量约束

(i)控制增量约束

MPC 参数

2 Carsim / SIMULINK 联合仿真平台搭建

2.1 Carsim 配置

车辆参数

工况设置

道路场景

链接 Simulink

输入通道设置

输出通道设置(38个)

以及

对应全称

以及

2.2 SIMULINK 实现

3 MATLAB 重点代码段解析

3.1 通过参考轨迹,更新车辆状态和边界

3.1.1 搜索全局路径上最近的点

3.1.2 用Bezier曲线插值

3.2 构建 MPC 矩阵

3.2.1 短步长等效模型

3.2.2 长步长等效模型

3.3 CVXGEN求解器设置

4 仿真结果分析

在多种道路条件和车速下进行了对比仿真实验,分别选取了干燥的沥青路面、潮湿的沥青路面和冰雪覆盖的路面三种典型道路。仿真测试道路包含了三个连续大曲率弯道,如下图示。

联合仿真测试道路

4.1 工况 1:干燥的沥青路面

干燥沥青路面的摩擦系数设为 0.85

不同车速下的横向跟踪误差对比

可以看出,高速无人驾驶的横向跟踪偏差始终保持在 0.5 m 以内。

不同车速下的前轮偏角对比

可以看出,前轮偏角始终处于执行机构的机械饱和约束范围内。

不同车速下的横向速度和横摆角速度的对比

可以看出,被控车辆的质心横向速度以及横摆角速度始终处于滑移包络线之内,即高速车辆符合操作稳定的状态,而且车速越低,车辆越稳定,与实际规律相符合,从而验证了轨迹跟踪控制器在干燥沥青路面的有效性。

Carsim 跟踪动画

4.2 工况 2:潮湿的沥青路面

潮湿的沥青路面摩擦系数设为 0.6。

4.3 工况 3:冰雪覆盖的路面

摩擦系数设为 0.3。

4.4 不同求解器性能分析

待补充

高速无人驾驶车辆防滑移MPC控制 学习笔记(未完结)相关推荐

  1. 无人驾驶车辆规划+轨迹跟踪控制学习笔记(1)

    综述 自动驾驶汽车有一个很有前途的未来,它可以使运输时间变得轻松,并使驾驶员能够参与其他活动,从而改变世界各地的日常生活.它们有可能大大减少由驾驶员的过失造成的撞车事故,包括驾驶积极.补偿过度.经验不 ...

  2. MPC控制学习笔记——输入权重对系统控制的影响

    起因:在学习MPC控制过程中,根据一个例题,验证了所学算法 例题:使用MPC控制一个简单的一阶系统 系统1: x(k+1)=0.8x(k)+0.1u(k)y(k)=x(k)x(k + 1) = 0.8 ...

  3. 运动学习与控制-学习笔记(三)——运动控制理论

    运动学习与控制-学习笔记(三)--运动控制理论 一.理解控制理论以及两个重要概念 1.Motor Control Theory 2.两个重要概念:Coordination,Degree of Free ...

  4. 滑模控制学习笔记(六)

    滑模控制学习笔记(六) 等效滑模控制 等效滑模控制器设计 等效控制设计 滑模控制设计 仿真实例 等效滑模控制   滑模控制率可由等效控制uequ_{eq}ueq​和切换鲁棒控制uswu_{sw}usw ...

  5. 电机控制学习笔记——PMSM数学模型

    电机控制学习笔记--PMSM数学模型 0 引言 1 电压方程和磁链方程 2 转矩方程和运动方程 参考文献 0 引言   要实现对永磁同步电机的精准控制,首先需要对永磁同步电机进行建模,获得其电压方程. ...

  6. 三相永磁同步电机的矢量控制学习笔记一

    三相永磁同步电机的矢量控制学习笔记1 一 内容 三相永磁同步电机CPMSM)是一个强搞合.复杂的非线性系统,为了能够更好地 设计先进的 PMSM 矢量控制算法,建立合适的数学模型就显得尤为重要.本次学 ...

  7. 滑模控制学习笔记(三)

    滑模控制学习笔记(三) 基于趋近律的滑模控制 几种典型的趋近律 等速趋近律 指数趋近律 幂次趋近律 一般趋近律 基于趋近律的控制器设计 仿真实例 状态空间模型建立 滑模控制器模型建立 仿真结果 基于趋 ...

  8. 滑模控制学习笔记(四)

    滑模控制学习笔记(四) 基于上界的滑模控制 系统描述 控制器设计 仿真实例 基于准滑动模态的滑模控制 仿真实例 基于上界的滑模控制 系统描述   考虑二阶非线性系统如下:θ¨=f(θ,θ˙)+g(θ, ...

  9. 滑模控制学习笔记(一)

    滑模控制学习笔记(一) 滑模控制基本理论 1.滑模变结构控制定义 2. 滑模面的参数设计 3.滑模消抖方式 4.滑模变结构控制理论研究方向 滑模控制基本理论 \quad\quad 滑模变结构控制在机器 ...

  10. 电机控制学习笔记——坐标变换

    电机控制学习笔记--坐标变换 0 前言 1 坐标系 2 Clarke变换(abc/ α \alpha α β \beta β变换) 2.1 恒幅值变换 2.2 恒功率变换 2.3 小结 3 Park变 ...

最新文章

  1. oracle中的数据集合操作
  2. springboot 启动类注解 @SpringBootApplication 和 @ComponentScan 的问题
  3. 自定义Checkbox让复选框居中对于RadioButton同样适用
  4. window下安装nvm、node.js、npm的步骤
  5. 0709-To Lower Case(转换成小写字母)
  6. zookeeper常见问题总结
  7. C#通过属性名字符串获取、设置对象属性值
  8. ESXi添加第三方驱动
  9. MCU芯片缺货涨价 国内厂商机遇和挑战并存
  10. labview与威纶通触摸屏ftp通讯
  11. android怎么实现记住密码功能,Android实现用户登录记住密码功能
  12. 常见的搜索引擎蜘蛛有哪些
  13. 三维扫描用于3D打印技术
  14. 网线水晶头RJ45制作方法
  15. 百度招聘的一个小彩蛋
  16. 【转】一亿与六百亿(云南,值么)
  17. html+css 基础知识大总结
  18. VB中随机数ab的比较大小
  19. Docker容器技术 |镜像原理 |数据卷 |数据卷容器
  20. linux中jpg与png相互转化

热门文章

  1. matlab建模和仿真实验,MATLAB-Simulink系统建模与仿真-实验报告
  2. 【AD】altium designer绘制原理图使用教程
  3. excel 比对字符
  4. 山东大学高频电子线路实验三 正弦波振荡器实验详解
  5. C#通过NOPI读写Excel,并插入图片,VS2019
  6. SVN下载项目到本地
  7. 断点下载的主要知识总结。
  8. 多智能体强化学习入门Qmix
  9. mysql主从 备份数据库脱敏_数据库脱敏有用吗?会不会损坏重要数据?
  10. 续上回 python 双色球 大乐透5注随机选号之排除历史开奖号码