车道保持辅助系统
利用自适应模型预测控制器模拟车道保持辅助
- 库:
模型预测控制工具箱/自动驾驶
描述
的车道保持辅助系统block模拟了车道保持辅助(LKA)系统,该系统通过调整前转向角度,使自我车辆沿着直线或弯曲道路的中心行驶。该控制器减小了自我车辆相对车道中心线的横向偏差和相对偏航角。该控制块在满足转向角度约束的同时,利用自适应模型预测控制(MPC)计算最优控制动作。
若要自定义控制器,例如使用高级MPC功能或修改控制器初始条件,请单击创建党的子系统.
港口
输入
曲率
——道路曲率
标量|向量
道路曲率,指定为1 /R,在那里R是曲线的半径,单位是米。
道路曲率为:
当道路向全局坐标系的正Y轴弯曲时为正。
当道路向全局坐标系的负Y轴弯曲时为负。
直路为零。
该控制器将道路曲率建模为具有预览功能的测量扰动。你可以指定曲率为a:
标量信号——指定当前控制区间的曲率。控制器使用这个曲率值穿过预测视界。
长度小于或等于的向量信号预测地平线参数—指定穿过预测视界的当前和预测曲率值。如果向量的长度小于预测视界,那么控制器使用向量中的最终曲率值作为预测视界的剩余部分。
纵向速度
-自我车速
负的标量
自我车辆速度,单位为米/秒。
横向偏差
-自我车辆横向偏移
标量
自我车辆横向偏离车道中心线数米。横向偏差e1当自我载具在中心线的右边时为正,当自我载具在中心线的左边时为负。
相对偏航角
-从球道中心线的角度
标量
自我车辆纵轴角度以车道中心线为弧度,定义为:
在这里,θe自我载体角度和θc是中心线角,两个角都在全局坐标系中定义。
最小转向角
-最小前转向角
标量
以弧度为单位的最小前转向角约束。当运行时最小转向角度变化时使用此输入端口。
依赖关系
若要启用此端口,请选择对应的使用外部源参数。
最大转向角
-最大前转向角
标量
以弧度为单位的最大前转向角约束。使用这个输入端口时,最大转向角度变化在运行时。
依赖关系
若要启用此端口,请选择对应的使用外部源参数。
启用优化
-控制器优化使能信号
标量
控制器优化使能信号。当此信号为:
非零时,控制器进行优化计算并生成转向角控制信号。
零,控制器不执行优化计算。在这种情况下,转向角输出信号保持在优化被禁用时的值。控制器继续更新其内部状态估计。
依赖关系
要启用此端口,请选择使用外部信号来启用或禁用优化参数。
外部控制信号
-转向角度应用于自我车辆
标量
实际转向角度弧度应用到自我车辆。控制器利用该信号来估计自我车辆的模型状态。当应用于自我车辆的控制信号与模型预测控制器计算的最优控制信号不匹配时,使用此输入端口。这种不匹配可能发生在以下情况:
的车道保持辅助系统不是活动控制器。在控制器未激活时保持一个准确的状态估计可以防止控制器激活时控制信号的颠簸。
转向执行器失效,不能向自我车辆提供正确的控制信号。
依赖关系
要启用此端口,请选择使用外部控制信号在PFC和其他控制器之间进行无颠簸传输参数。
车辆动力学矩阵A
-自我车辆预测模型的状态矩阵
方阵
自我车辆预测模型的状态矩阵。状态矩阵中的行数对应预测模型中的状态数。这个矩阵一定是方阵。
定义的自我载具预测模型车辆动力学矩阵A,车辆动力学矩阵B,车辆动力学矩阵C必须是最小的。
依赖关系
要启用此端口,请选择用汽车模型参数。
车辆动力学矩阵B
-自我车辆预测模型的输入状态矩阵
列向量
自我车辆预测模型的输入-状态矩阵。该信号中的行数必须与中的行数匹配车辆动力学矩阵A.
定义的自我载具预测模型车辆动力学矩阵A,车辆动力学矩阵B,车辆动力学矩阵C必须是最小的。
依赖关系
要启用此端口,请选择用汽车模型参数。
车辆动力学矩阵C
-自我车辆预测模型状态输出矩阵
有两行的矩阵
自我车辆状态-输出矩阵预测模型。该信号中的列数必须与中的行数匹配车辆动力学矩阵A.
定义的自我载具预测模型车辆动力学矩阵A,车辆动力学矩阵B,车辆动力学矩阵C必须是最小的。
依赖关系
要启用此端口,请选择用汽车模型参数。
输出
转向角
-前转向角控制信号
标量
前转向角控制信号弧度产生的控制器。前转向角是前轮胎与车辆纵轴的夹角。转向角正对自我车辆的正侧向轴。
参数
参数选项卡
自我的车辆用汽车模型
-使用状态空间矩阵定义自我车辆模型
从
(默认)|在
选择此参数定义MPC控制器使用的自我车辆模型的状态空间矩阵。该模型是从前转向角(弧度)到横向速度(米/秒)和偏航角速度(弧度/秒)的线性模型。有关自我载具模型的更多信息,请参见自我车辆预测模型.
要定义初始内部模型,请指定一个,B,C状态矩阵。内部模型必须是一个没有直接馈通的最小实现一个,B,C必须是一致的。
通常,自我车辆转向模型是速度依赖的,因此,它会随时间变化。要在运行时更新内部模型,请使用车辆动力学,车辆动力学B,车辆动力学C输入端口。
选择此参数将清除使用车辆参数参数。
编程使用
块参数:ModelType |
类型:字符串,特征向量 |
默认值:“使用车辆参数” |
总质量
-自我车辆质量
1575
(默认)|阳性标量
自我车辆质量千克。
依赖关系
若要启用此参数,请选择使用车辆参数参数。
编程使用
块参数:VehicleMass |
类型:字符串,特征向量 |
默认值:“1575” |
偏航惯性矩
-关于自我载具垂直轴的转动惯量
2875
(默认)|阳性标量
自我车辆垂直轴的转动惯量,单位为Kg·m2.
依赖关系
若要启用此参数,请选择使用车辆参数参数。
编程使用
块参数:VehicleYawInertia |
类型:字符串,特征向量 |
默认值:“2875” |
从重心到前轮的纵向距离
-自我车辆的质心到前轮胎的距离
1.2
(默认)|阳性标量
自车质心到前轮胎的距离,以米为单位,沿车辆的纵轴测量。
依赖关系
若要启用此参数,请选择使用车辆参数参数。
编程使用
块参数:LengthToFront |
类型:字符串,特征向量 |
默认值:“1.2” |
从重心到后轮胎的纵向距离
-自我车辆的质心到后轮胎的距离
1.6
(默认)|阳性标量
自车质心到后轮胎的距离,以米为单位,沿车辆的纵轴测量。
依赖关系
若要启用此参数,请选择使用车辆参数参数。
编程使用
块参数:LengthToRear |
类型:字符串,特征向量 |
默认值:“1.6” |
前轮转弯刚度
-前轮胎硬度
19000
(默认)|阳性标量
前轮刚度N/rad,定义为前轮侧力与轮胎与车辆纵轴的夹角之间的关系。
依赖关系
若要启用此参数,请选择使用车辆参数参数。
编程使用
块参数:FrontTireStiffness |
类型:字符串,特征向量 |
默认值:“19000” |
后轮胎转弯刚度
-后轮胎硬度
33000
(默认)|阳性标量
后轮胎刚度N/rad,定义为后轮胎侧力与轮胎与车辆纵轴的夹角之间的关系。
依赖关系
若要启用此参数,请选择使用车辆参数参数。
编程使用
块参数:RearTireStiffness |
类型:字符串,特征向量 |
默认值:“33000” |
一个
-自我车辆预测模型初始状态矩阵
方阵
自我车辆预测模型的初始状态矩阵。状态矩阵中的行数对应预测模型中的状态数。这个矩阵一定是方阵。
初始自我载具预测模型由一个,B,C必须是最小的。
通常情况下,自我载体模型会随时间变化。要在运行时更新状态矩阵,请使用车辆动力学输入端口。
依赖关系
若要启用此参数,请选择用汽车模型参数。
编程使用
块参数:EgoModelMatrixA |
类型:字符串,特征向量 |
默认值:“(-4.4021,-12.4603,1.3913,-5.1868)” |
B
-自我车辆预测模型的初始输入状态矩阵
列向量
自我车辆预测模型的初始输入状态矩阵。该参数中的行数必须与中的行数匹配一个.
初始自我载具预测模型由一个,B,C必须是最小的。
通常情况下,自我载体模型会随时间变化。要在运行时更新输入到状态矩阵,请使用车辆动力学B输入端口。
依赖关系
若要启用此参数,请选择用汽车模型参数。
编程使用
块参数:EgoModelMatrixB |
类型:字符串,特征向量 |
默认值:“[24.1270,15.8609]” |
C
-自我车辆预测模型初始状态输出矩阵
有两行的矩阵
自我车辆预测模型的初始状态-输出矩阵。该参数中的列数必须与中的行数匹配一个.
初始自我载具预测模型由一个,B,C必须是最小的。
通常情况下,自我载体模型会随时间变化。要在运行时更新状态到输出矩阵,请使用车辆动力学C输入端口。
依赖关系
若要启用此参数,请选择用汽车模型参数。
编程使用
块参数:EgoModelMatrixC |
类型:字符串,特征向量 |
默认值:“[1,0,0,1]” |
初始纵向速度
-自我载具的初始速度
15
(默认)|阳性标量
当车道保持辅助启动时,自我车辆模型的初始速度以米/秒为单位。这个速度可能与实际的自我飞行器初始速度不同。
请注意
例如,一个非常小的初速度每股收益
,可以产生控制器工厂模型的非最小实现,导致错误。例如,为了防止这种错误,可以将初始速度设置为较大的值1 e - 3
.
编程使用
块参数:InitialLongVel |
类型:字符串,特征向量 |
默认值:“15” |
模型输入和输出之间的传输延迟
-自我车辆模型的总运输滞后
0
(默认)|非负标量
总运输延迟,τ,在自我车辆模型在秒。这种滞后包括执行器、传感器和通信滞后。对于每个输入输出通道,传输延迟的近似值为:
编程使用
块参数:TransportLag |
类型:字符串,特征向量 |
默认值:“0” |
最小转向角
-最小前转向角
-0.26
(默认)|标量之间-π/ 2
而且π/ 2
以弧度为单位的最小前转向角约束。
如果最小转向角度随时间变化,添加最小转向角通过选择输入端口到块使用外部源.
依赖关系
该参数必须小于最大转向角参数。
编程使用
块参数:MinSteering |
类型:字符串,特征向量 |
默认值:“-0.26” |
最大转向角
-最大前转向角
0.26
(默认)|标量之间-π/ 2
而且π/ 2
以弧度为单位的最大前转向角约束。
如果最大转向角度随时间变化,添加最大转向角通过选择输入端口到块使用外部源.
依赖关系
该参数必须大于最小转向角参数。
编程使用
块参数:MaxSteering |
类型:字符串,特征向量 |
默认值:“0.26” |
样品时间
-控制器采样时间
0.1
(默认)|阳性标量
控制器采样时间,以秒为单位。
编程使用
块参数:Ts |
类型:字符串,特征向量 |
默认值:“0.1” |
预测地平线
-控制器预测水平
10
(默认)|正整数
控制器预测水平步长。控制器预测时间是样本时间和预测水平的乘积。
编程使用
块参数:PredictionHorizon |
类型:字符串,特征向量 |
默认值:“30” |
控制器的行为
—闭环控制器性能
0.5
(默认)|标量之间0
而且1
闭环控制器的性能。默认的参数值提供了一个平衡的控制器设计。指定:
较小的值产生更健壮的控制器和更平滑的控制动作。
数值越大,控制器越积极,响应时间越快。
当修改该参数时,修改的内容会立即应用到该控制器上。
编程使用
块参数:ControllerBehavior |
类型:字符串,特征向量 |
默认值:“0.5” |
块选项卡
使用次优的解决方案
-在指定次数的迭代后应用次优解决方案
从
(默认)|在
将控制器配置为在指定的最大迭代次数之后应用次优解决方案,这将确保控制器的最坏情况执行时间。
有关更多信息,请参见次优的QP解决方案.
依赖关系
选择此参数后,指定最大迭代次数参数。
编程使用
块参数:次优的 |
类型:字符串,特征向量 |
默认值:“关闭” |
最大迭代次数
-最大优化迭代
10
(默认)|正整数
控制器优化迭代的最大次数。
依赖关系
若要启用此参数,请选择使用次优的解决方案参数。
编程使用
块参数:麦克斯特 |
类型:字符串,特征向量 |
默认值:“10” |
使用外部信号来启用或禁用优化
—添加用于启用优化的端口
从
(默认)|在
添加启用优化输入端口到块,选中此参数。
编程使用
块参数:optmode |
类型:字符串,特征向量 |
默认值:“关闭” |
使用外部信号在LKA和其他控制器之间进行无颠簸传输
—增加外部控制信号输入接口
从
(默认)|在
添加外部控制信号输入端口到块,选中此参数。
编程使用
块参数:trackmode |
类型:字符串,特征向量 |
默认值:“关闭” |
创建党的子系统
-创建自定义控制器
按钮
生成一个自定义LKA子系统,您可以为您的应用程序修改它。将定制控制器的控制器配置数据导出到MATLAB中®工作空间是一个结构。
您可以将自定义控制器子系统修改为:
修改默认MPC设置或使用高级MPC功能。
修改默认的控制器初始条件。
模型的例子
算法
自我车辆预测模型
默认的自我载具预测模型如下状态空间模型:
在这里:
VX是汽车的纵向速度。在模拟开始时,这个速度等于纵向速度的初始条件参数。在运行时,这个速度等于纵向速度输入信号。
米是总质量参数。
我Z是偏航惯性矩参数。
lF是从重心到前轮的纵向距离参数。
lR是从重心到后轮胎的纵向距离参数。
CF是前轮转弯刚度参数。
CR是后轮胎转弯刚度参数。
该模型的输入是以弧度为单位的转向角,输出是以米/秒为单位的横向速度和以弧度/秒为单位的偏航角速度。
要定义一个不同的自我载具预测模型,请选择用汽车模型参数,并指定初始状态空间模型。方法指定状态空间矩阵的运行时值车辆动力学,车辆动力学B,车辆动力学C输入信号。
该控制器通过对自我车辆动态模型的扩充来建立其内部预测模型。该增强模型将道路曲率作为测量的干扰输入信号。
初始条件
默认情况下,模型预测控制器对自我车辆假定以下初始条件:
纵向速度等于初始纵向速度参数。
横向速度为零。
转向角为零。
偏航角速度为零。
如果模型中的初始条件与这些条件不匹配,则转向角在模拟开始时,输出会出现一个初始凸起。
要修改控制器初始条件以匹配您的模拟,请通过块选项卡上,单击创建党的子系统.
扩展功能
C / c++代码生成
使用Simulink®Coder™生成C和c++代码。
PLC的代码生成
使用Simulink®PLC Coder™生成结构化文本代码。
版本历史
介绍了R2018a
MATLAB命令
你点击了一个对应于这个MATLAB命令的链接:
在MATLAB命令窗口中输入命令来运行该命令。Web浏览器不支持MATLAB命令。
您也可以从以下列表中选择网站:
如何获得最佳的网站性能
选择中国网站(中文或英文)以获得最佳的网站表现。其他MathWorks国家网站没有针对从您的位置访问进行优化。