主要内容

车道保持辅助系统

使用自适应模型预测控制器模拟泳道保持辅助

  • 图书馆:
  • 模型预测控制工具箱/自动驾驶

  • 车道保持辅助系统阻塞

描述

车道保持辅助系统块模拟一个车道保持辅助(LKA)系统,该系统通过调节前转向角来使EGO沿着直或弯曲道路的中心行进。控制器降低了自助式车辆相对于车道中心线的横向偏差和相对偏航角。块使用自适应模型预测控制(MPC)来计算最佳控制动作,同时满足转向角约束。

要自定义控制器,例如使用高级MPC功能或修改控制器初始条件,单击创建党的子系统

港口

输入

展开全部

道路曲率,指定为1/R., 在哪里R.为曲线半径,单位为米。

道路曲率为:

  • 当道路向全球坐标系的正Y轴弯曲时为正。

  • 当道路向全球坐标系负Y轴弯曲时为负。

  • 直路零。

控制器将道路曲率模拟为具有预览的测量干扰。您可以将曲率指定为:

  • 标量信号 - 指定电流控制间隔的曲率。控制器在预测地平线上使用此曲率值。

  • 长度小于或等于的矢量信号预测地平线-指定当前和预测的曲率值跨越预测水平。如果向量的长度小于预测视界,则控制器使用向量中的最终曲率值来计算剩余的预测视界。

EGO车辆速度在M / s中。

自我车辆横向偏离米的中心线。

自车纵轴角度,以弧度计,从车道中心线。

最小的前转向角度限制弧度。当最小转向角度在运行时变化时,使用这个输入端口。

依赖性

要启用该端口,请选择使用外部来源最小转向角范围。

弧度的最大前转向角约束。当最大转向角在运行时变化时,使用此输入端口。

依赖性

要启用该端口,请选择使用外部来源最大转向角度范围。

控制器优化使能信号。当此信号是:

  • 非零,控制器执行优化计算并生成一个转向角控制信号。

  • 为0时,控制器不进行优化计算。在这种情况下转向角输出信号保持在禁用优化时的值。控制器继续更新其内部状态估计值。

依赖性

要启用此端口,请选择使用外部信号启用或禁用优化范围。

弧度的实际转向角适用于自我车辆。控制器使用该信号来估计自我车辆模型状态。当施加到EGO车辆的控制信号与由模型预测控制器计算的最佳控制信号不匹配时,使用此输入端口。例如,当以下时,可能会发生这种不匹配

  • 车道保持辅助系统不是主动控制器。当控制器未激活时,保持准确状态估计可防止控制器时控制信号中的凸起。

  • 转向致动器失败,并且不向EGO车辆提供正确的控制信号。

依赖性

要启用此端口,请选择在PFC和其他控制器之间使用外部控制信号进行无压力转移范围。

自我车辆预测模型的状态矩阵。状态矩阵中的行数对应于预测模型中的状态数。这个矩阵必须是平方的。

由此定义的自我车辆预测模型车辆动力学矩阵A车辆动力学矩阵B,车辆动力学矩阵C必须是最小的。

依赖性

要启用此端口,请选择用汽车模型范围。

自我车辆预测模型的输入状态矩阵。这个信号中的行数必须与信号中的行数匹配车辆动力学矩阵A

由此定义的自我车辆预测模型车辆动力学矩阵A车辆动力学矩阵B,车辆动力学矩阵C必须是最小的。

依赖性

要启用此端口,请选择用汽车模型范围。

自我车辆预测模型的状态 - 输出矩阵。此信号中的列数必须与行数匹配车辆动力学矩阵A

由此定义的自我车辆预测模型车辆动力学矩阵A车辆动力学矩阵B,车辆动力学矩阵C必须是最小的。

依赖性

要启用此端口,请选择用汽车模型范围。

输出

展开全部

由控制器产生的弧度中的前转向角控制信号。前转向角是前轮胎从车辆的纵向轴线的角度。转向角朝向自助载体的正横向轴线是正的。

参数

展开全部

参数选项卡

自我的车辆

通过指定自我车辆的属性,选择此参数来定义MPC控制器所使用的自我车辆模型。自我车辆模型是由前转向角到横向速度和偏航角速率的线性模型。有关更多信息,请参见自我车辆预测模型

要定义车辆模型,请指定以下块参数:

  • 总质量

  • 偏航惯性矩

  • 从重心到前轮胎的纵向距离

  • 从重心到后轮胎的纵向距离

  • 转弯前轮胎的刚度

  • 后轮胎的转弯刚度

有关自助式车辆模型的更多信息,请参阅自我车辆预测模型

选择此参数将清除用汽车模型范围。

程序使用

块参数:modeltype.
类型:字符串,字符向量
默认:“使用车辆参数”

选择此参数以定义MPC控制器使用的自我车辆模型的状态空间矩阵。该模型是从弧度的前转向角度到横向速度以米为单秒的横向速度,并且每秒弧度角度率的横向速度。有关自助式车辆模型的更多信息,请参阅自我车辆预测模型

要定义初始的内部模型,请指定一种B.,C状态矩阵。内部模型必须是一个最小的实现,没有直接的馈通,并且维度一种B.,C必须是一致的。

通常,自我车辆转向模型是速度依赖的,因此,它随时间而变化。要在运行时更新内部模型,请使用车辆动力学车辆动力学B,车辆动力学C输入端口。

选择此参数将清除使用车辆参数范围。

程序使用

块参数:modeltype.
类型:字符串,字符向量
默认:“使用车辆参数”

kg中的自我车辆质量。

依赖性

要启用该参数,请选择使用车辆参数范围。

程序使用

块参数:VehicleMass
类型:字符串,字符向量
默认:“1575”

车辆垂直轴的转动惯量,单位为Kg·m2

依赖性

要启用该参数,请选择使用车辆参数范围。

程序使用

块参数:VehicleYawInertia
类型:字符串,字符向量
默认:“2875”

从自我车辆质量到其前轮胎的距离以米,沿着车辆的纵向轴线测量。

依赖性

要启用该参数,请选择使用车辆参数范围。

程序使用

块参数:LengthToFront
类型:字符串,字符向量
默认:“1.2”

从汽车质心到后轮的距离,以米为单位,沿汽车纵轴测量。

依赖性

要启用该参数,请选择使用车辆参数范围。

程序使用

块参数:LEGHTTOREAR.
类型:字符串,字符向量
默认:“1.6”

N / RAD中的前轮胎刚度,定义为前轮胎上的侧向力与轮胎的角度与车辆的纵向轴线之间的关系。

依赖性

要启用该参数,请选择使用车辆参数范围。

程序使用

块参数:FrontTireStiffness
类型:字符串,字符向量
默认:“19000”

N / RAD中的后轮胎刚度,定义为后轮胎上的侧向力与轮胎的角度与车辆的纵向轴线之间的关系。

依赖性

要启用该参数,请选择使用车辆参数范围。

程序使用

块参数:后卫
类型:字符串,字符向量
默认:“33000”

自我车辆预测模型的初始状态矩阵。状态矩阵中的行数对应于预测模型中的状态数。这个矩阵必须是平方的。

初始的自我车辆预测模型定义一种B.,C必须是最小的。

通常情况下,自我汽车模型会随着时间的推移而变化。要在运行时更新状态矩阵,请使用车辆动力学输入端口。

依赖性

要启用该参数,请选择用汽车模型范围。

程序使用

块参数:Egomodelmatrixa.
类型:字符串,字符向量
默认:“[-4.4021,-12.4603; 1.3913,-5.1868]”

自我车辆预测模型的初始输入到状态矩阵。此参数中的行数必须与行数匹配一种

初始的自我车辆预测模型定义一种B.,C必须是最小的。

通常情况下,自我汽车模型会随着时间的推移而变化。要在运行时更新输入到状态矩阵,请使用车辆动力学B输入端口。

依赖性

要启用该参数,请选择用汽车模型范围。

程序使用

块参数:Egomodelmatrixb.
类型:字符串,字符向量
默认:“[24.1270; 15.8609]”

自我汽车预测模型的初始状态-输出矩阵。此参数中的列数必须与中的行数匹配一种

初始的自我车辆预测模型定义一种B.,C必须是最小的。

通常情况下,自我汽车模型会随着时间的推移而变化。要在运行时更新状态到输出矩阵,请使用车辆动力学C输入端口。

依赖性

要启用该参数,请选择用汽车模型范围。

程序使用

块参数:Egomodelmatrixc.
类型:字符串,字符向量
默认:“[1,0; 0,1]”

在m/s范围内启用车道保持辅助时自我车辆模型的初始速度。这个速度可以不同于实际自我车辆的初始速度。

笔记

例如,初始速度非常小每股收益,可以为控制器对象模型产生非最小实现,从而导致错误。例如,要防止这个错误,可以将初始速度设置为一个较大的值1E-3

程序使用

块参数:InitialLongvel.
类型:字符串,字符向量
默认:“15”

总运输滞后,τ,在自我车辆模型中以秒为单位。该滞后包括执行器,传感器和通信滞后。对于每个输入输出通道,传输滞后近似于:

1 τ S. + 1

程序使用

块参数:TransportLag
类型:字符串,字符向量
默认:“0”
车道保持控制器约束

最小的前转向角度限制弧度。

如果最小转向角度随时间而变化,则添加最小转向角通过选择来输入端口到块使用外部来源

依赖性

该参数必须小于最大转向角度范围。

程序使用

块参数:最薄的
类型:字符串,字符向量
默认:“-0.26”

弧度的最大前转向角约束。

如果最大转向角随时间变化,则添加最大转向角度通过选择来输入端口到块使用外部来源

依赖性

此参数必须大于最小转向角范围。

程序使用

块参数:最大限度
类型:字符串,字符向量
默认:“0.26”
模型预测控制器设置

控制器采样时间,以秒为单位。

程序使用

块参数:TS.
类型:字符串,字符向量
默认:“0.1”

控制器预测水平步长。控制器预测时间是采样时间和预测视界的乘积。

程序使用

块参数:PredictionHorizon
类型:字符串,字符向量
默认:“30”

闭环控制器的性能。默认参数值提供一个平衡的控制器设计。指定:

  • 较小的值产生更强大的控制器,具有更平滑的控制操作。

  • 较大的值会产生更具侵略性的控制器,响应时间更快。

修改该参数时,修改后的信息立即应用到控制器上。

程序使用

块参数:ControllerBehavior.
类型:字符串,字符向量
默认:“0.5”

块选项卡

配置控制器以在指定的最大迭代次数后应用次优解,保证控制器的最坏情况执行时间。

有关更多信息,请参见次优的QP解决方案

依赖性

选择此参数后,指定最大迭代次数范围。

程序使用

块参数:次优
类型:字符串,字符向量
默认:“关闭”

最大控制器优化迭代次数。

依赖性

要启用该参数,请选择使用次优解决方案范围。

程序使用

块参数:maxiter.
类型:字符串,字符向量
默认:“10”

要添加启用优化输入端口到块,选择此参数。

程序使用

块参数:OptMode.
类型:字符串,字符向量
默认:“关闭”

要添加外部控制信号输入端口到块,选择此参数。

程序使用

块参数:轨迹码头
类型:字符串,字符向量
默认:“关闭”

生成自定义LKA子系统,您可以修改应用程序。自定义控制器的控制器配置数据将导出到MATLAB®工作区作为结构。

您可以将自定义控制器子系统修改为:

  • 修改默认MPC设置或使用高级MPC功能。

  • 修改控制器默认初始条件。

算法

展开全部

扩展能力

C / C ++代码生成
使用Simulink®Coder™生成C和C ++代码。万博1manbetx

PLC代码生成
使用Simulink®PLC Coder™生成结构化文本代码。万博1manbetx

在R2018A介绍