主要内容

车道保持辅助系统

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

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

  • 车道保持辅助系统阻塞

描述

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

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

港口

输入

全部展开

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

道路曲率为:

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

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

  • 直路为零。

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

  • 标量信号——指定当前控制区间的曲率。控制器使用这个曲率值穿过预测视界。

  • 长度小于或等于的向量信号预测地平线参数—指定穿过预测视界的当前和预测曲率值。如果向量的长度小于预测视界,那么控制器使用向量中的最终曲率值作为预测视界的剩余部分。

自我车辆速度,单位为米/秒。

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

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

e 2 θ e θ c

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

以弧度为单位的最小前转向角约束。当运行时最小转向角度变化时使用此输入端口。

依赖关系

若要启用此端口,请选择对应的使用外部源参数。

以弧度为单位的最大前转向角约束。使用这个输入端口时,最大转向角度变化在运行时。

依赖关系

若要启用此端口,请选择对应的使用外部源参数。

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

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

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

依赖关系

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

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

  • 车道保持辅助系统不是活动控制器。在控制器未激活时保持一个准确的状态估计可以防止控制器激活时控制信号的颠簸。

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

依赖关系

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

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

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

依赖关系

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

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

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

依赖关系

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

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

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

依赖关系

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

输出

全部展开

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

参数

全部展开

参数选项卡

自我的车辆

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

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

  • 总质量

  • 偏航惯性矩

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

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

  • 前轮转弯刚度

  • 后轮胎转弯刚度

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

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

编程使用

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

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

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

通常,自我车辆转向模型是速度依赖的,因此,它会随时间变化。要在运行时更新内部模型,请使用车辆动力学车辆动力学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必须是最小的。

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

依赖关系

若要启用此参数,请选择用汽车模型参数。

编程使用

块参数: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]”

当车道保持辅助启动时,自我车辆模型的初始速度以米/秒为单位。这个速度可能与实际的自我飞行器初始速度不同。

请注意

例如,一个非常小的初速度每股收益,可以产生控制器工厂模型的非最小实现,导致错误。例如,为了防止这种错误,可以将初始速度设置为较大的值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++代码。

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

版本历史

介绍了R2018a

Baidu
map