主要内容

车道保持辅助系统

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

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

  • 车道保持辅助系统阻塞

描述

车道保持辅助系统block模拟车道保持辅助(LKA)系统,该系统通过调整前转向角度,使车辆沿着直线或弯曲道路的中心行驶。该控制器减少了车辆相对于车道中心线的横向偏差和相对偏航角。采用自适应模型预测控制(MPC),在满足转向角约束的同时计算出最优控制动作。

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

港口

输入

全部展开

道路曲率,指定为1 /R,在那里R是以米为单位的曲线半径。

道路曲率为:

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

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

  • 直线为零。

该控制器将道路曲率建模为带有预览功能的实测扰动。你可以指定曲率为a:

  • 标量信号——指定当前控制间隔的曲率。控制器在预测范围内使用这个曲率值。

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

单位:米/秒。

自我车辆横向偏离车道中心线米。横向偏移e1当自我载体在中心线的右边时为正,当自我载体在中心线的左边时为负。

自我车辆纵轴角度距车道中心线的弧度,定义为:

e 2 θ e θ c

在这里,θe自我载体角度和θc是中心线角,两个角都定义在全局坐标系中。

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

依赖关系

如果要启用该端口,请选择对应的使用外部资源参数。

最大前转向角度限制在弧度。使用此输入端口时,最大转向角度变化,在运行时。

依赖关系

如果要启用该端口,请选择对应的使用外部资源参数。

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

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

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

依赖关系

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

实际转向角度在弧度应用到自我车辆。控制器利用该信号来估计车辆模型状态。当应用于自我车辆的控制信号与模型预测控制器计算的最优控制信号不匹配时,使用此输入端口。这种不匹配可能发生在以下情况:

  • 车道保持辅助系统不是主控制器。当控制器处于非活动状态时,保持准确的状态估计可以防止控制器处于活动状态时控制信号的颠簸。

  • 转向执行器失效,不能向自我车辆提供正确的控制信号。

依赖关系

要启用此端口,请选择在PFC和其他控制器之间使用外部控制信号进行无扰动传输参数。

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

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

依赖关系

要启用此端口,请选择使用车辆模型参数。

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

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

依赖关系

要启用此端口,请选择使用车辆模型参数。

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

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

依赖关系

要启用此端口,请选择使用车辆模型参数。

输出

全部展开

前转向角控制信号在弧度由控制器产生。前转向角是指前轮胎与车辆纵轴的夹角。转向角是正的对自我车辆的正横向轴。

参数

全部展开

参数选项卡

自我的车辆

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

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

  • 总质量

  • 偏航惯性矩

  • 重心到前轮的纵向距离

  • 重心到后轮的纵向距离

  • 前轮胎过弯刚度

  • 后轮胎转弯刚度

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

选择此参数将清除使用车辆模型参数。

编程使用

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

选择此参数定义MPC控制器使用的自我车辆模型的状态空间矩阵。该模型是从前转向角(弧度)到横向速度(米/秒)和横摆角速度(弧度/秒)的线性模型。有关自我车辆模型的更多信息,请参见自我车辆预测模型

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

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

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

编程使用

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

自我车辆质量,单位为千克。

依赖关系

要启用此参数,请选择使用车辆参数参数。

编程使用

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

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

依赖关系

要启用此参数,请选择使用车辆参数参数。

编程使用

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

从自我车辆的质心到其前轮胎的距离,单位为米,沿车辆的纵轴测量。

依赖关系

要启用此参数,请选择使用车辆参数参数。

编程使用

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

从自我车辆的质心到其后轮的距离,单位为米,沿车辆的纵轴测量。

依赖关系

要启用此参数,请选择使用车辆参数参数。

编程使用

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

前轮胎刚度(N/rad),定义为前轮胎的侧力与轮胎与车辆纵轴的夹角之间的关系。

依赖关系

要启用此参数,请选择使用车辆参数参数。

编程使用

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

后轮胎刚度(N/rad),定义为后轮胎的侧力与轮胎与车辆纵轴的夹角之间的关系。

依赖关系

要启用此参数,请选择使用车辆参数参数。

编程使用

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

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

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

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

依赖关系

要启用此参数,请选择使用车辆模型参数。

编程使用

块参数: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)。这个速度可以不同于实际的初始速度。

请注意

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

编程使用

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

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

1 τ 年代 + 1

编程使用

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

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

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

依赖关系

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

编程使用

块参数:MinSteering
类型:字符串,字符向量
默认值:“-0.26”

最大前转向角度限制在弧度。

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

依赖关系

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

编程使用

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

控制器采样时间(秒)。

编程使用

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

控制器预测水平步骤。控制器预测时间是样本时间和预测范围的乘积。

编程使用

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

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

  • 值越小,控制器越健壮,控制动作越流畅。

  • 更大的值产生更积极的控制器,响应时间更快。

修改该参数后,修改内容立即应用到控制器上。

编程使用

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

块选项卡

将控制器配置为在指定的最大迭代次数之后应用次优解决方案,这将确保控制器的最坏执行时间。

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

依赖关系

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

编程使用

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

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

依赖关系

要启用此参数,请选择使用次优解参数。

编程使用

块参数:麦克斯特
类型:字符串,字符向量
默认值:“10”

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

编程使用

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

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

编程使用

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

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

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

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

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

算法

全部展开

扩展功能

C/ c++代码生成
使用Simulink®Coder™生成C和c++代码。金宝app

PLC代码生成
使用Simulink®PLC Coder™生成结构化文本代码。金宝app

版本历史

在R2018a中引入