车道保持辅助系统
使用自适应模型预测控制器模拟lane-keeping援助
库:
模型预测控制工具箱/自动驾驶
描述
的车道保持辅助系统块模拟车道保持辅助系统(党的)使一个自我中心的汽车旅行直或弯曲的道路通过调整前转向角。控制器的横向偏差和相对偏航角降低自我车辆的车道中心线。块计算最优控制的行为同时满足转向角约束使用自适应模型预测控制(MPC)。
定制你的控制器,例如使用高级MPC功能或修改控制器初始条件,点击创建党的子系统。
例子
港口
输入
曲率- - - - - -道路曲率
标量|向量
道路曲率,指定为1 /R,在那里R在米的半径曲线。
道路曲率:
积极的道路曲线向积极的Y轴全球坐标系统。
-当道路曲线向- Y轴的全球坐标系统。
零的直路。
控制器模型的道路曲率测量扰动与预览。您可以指定曲率作为:
标量信号——指定的电流控制间隔的曲率。控制器使用这个曲率值预测地平线。
矢量信号长度小于或等于预测地平线参数指定当前和预测的曲率值预测地平线。如果向量的长度小于预测地平线,然后控制器使用最后的曲率值向量中剩下的预测地平线。
纵向速度- - - - - -自我的车辆速度
负的标量
自我车辆速度米/秒。
横向偏差- - - - - -自我车辆横向偏差
标量
自我车辆横向偏差米中心线的车道。横向偏差e1是积极的自我车辆时右边的中心线和消极的自我车辆时左边的中心线。
相对偏航角- - - - - -角从车道中心线
标量
自我车辆纵轴角弧度的中心线,定义为:
在这里,θe是自我车辆角度和θc中心线的角度,这两个角度定义在全局坐标系。
最小转向角- - - - - -最低前转向角
标量
最低前转向角约束的弧度。使用这个输入端口时的最小转向角在运行时不同。
依赖关系
要启用这个端口,选择相应的使用外部源参数。
最大转向角- - - - - -最大转向角前
标量
最大转向角约束的弧度。使用这个输入端口时,在运行时最大转向角的变化。
依赖关系
要启用这个端口,选择相应的使用外部源参数。
启用优化- - - - - -控制器优化启动信号
标量
控制器优化启动信号。当这个信号是:
非零,控制器执行优化计算和生成一个转向角控制信号。
零,控制器不执行优化计算。在这种情况下,转向角输出信号仍在价值优化时禁用。控制器继续更新其内部状态估计。
依赖关系
要启用这个端口,选择使用外部信号来启用或禁用优化参数。
外部控制信号- - - - - -转向角应用于自我
标量
实际转向角弧度应用于自我。控制器使用这个信号估计自我车辆模型。使用这个输入端口,当控制信号应用于自我车辆不匹配最优控制信号计算模型预测控制器。这种不匹配可能发生时,例如:
的车道保持辅助系统不是主动控制器。维护一个精确的状态估计时,控制器不积极防止颠簸在控制信号控制器变得活跃。
转向传动机构失败,不提供正确的控制信号到自我。
依赖关系
要启用这个端口,选择使用外部控制信号之间的无扰转移PFC和其他控制器参数。
车辆动力学矩阵- - - - - -自我状态矩阵的预测模型
方阵
自我状态矩阵的预测模型。系统状态矩阵的行数对应的状态数的预测模型。这个矩阵必须广场。
自我预测模型所定义的车辆动力学矩阵,车辆动力学矩阵B,车辆动力学矩阵C必须是最小的。
依赖关系
要启用这个端口,选择用汽车模型参数。
车辆动力学矩阵B- - - - - -Input-to-state矩阵自我预测模型
列向量
Input-to-state矩阵自我预测模型。在这个信号的行数必须匹配的行数车辆动力学矩阵。
自我预测模型所定义的车辆动力学矩阵,车辆动力学矩阵B,车辆动力学矩阵C必须是最小的。
依赖关系
要启用这个端口,选择用汽车模型参数。
车辆动力学矩阵C- - - - - -State-to-output矩阵自我预测模型
矩阵的两行
State-to-output矩阵自我预测模型。这个信号的列数必须匹配的行数车辆动力学矩阵。
自我预测模型所定义的车辆动力学矩阵,车辆动力学矩阵B,车辆动力学矩阵C必须是最小的。
依赖关系
要启用这个端口,选择用汽车模型参数。
输出
转向角- - - - - -前转向角控制信号
标量
前转向角弧度由控制器产生控制信号。前面的转向角的角度是前轮胎纵轴的车辆。转向角为正走向自我的积极横向轴车辆。
参数
参数选项卡
自我的车辆用汽车模型- - - - - -使用整数矩阵定义自我的车辆模型
从
(默认)|在
选择该参数定义了状态矩阵的自我MPC控制器所使用的车辆模型。这个模型是线性模型从前面转向角的弧度横向速度米/秒和偏航角速率弧度每秒。自我车辆模型的更多信息,见自我车辆预测模型。
定义初始的内部模型,指定一个,B,C状态矩阵。内部模型必须最小实现,没有直接引线,和的尺寸一个,B,C必须是一致的。
通常,自我车辆转向模型是数值,因此,它随着时间的变化。更新内部模型在运行时,使用车辆动力学,车辆动力学B,车辆动力学C输入端口。
选择这个参数了使用车辆参数参数。
编程使用
块参数:ModelType |
类型:字符串,特征向量 |
默认值:“使用车辆参数” |
总质量- - - - - -自我汽车质量
1575年
(默认)|积极的标量
自我汽车质量公斤。
依赖关系
要启用该参数,选择使用车辆参数参数。
编程使用
块参数:VehicleMass |
类型:字符串,特征向量 |
默认值:“1575” |
偏航惯性矩- - - - - -自我车辆垂直轴的转动惯量
2875年
(默认)|积极的标量
自我车辆垂直轴的惯性矩公斤·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- - - - - -最初的自我input-to-state矩阵预测模型
列向量
最初的自我input-to-state矩阵预测模型。在这个参数的行数必须匹配的行数一个。
最初的自我定义的预测模型一个,B,C必须是最小的。
通常,自我车辆模型随着时间的不同而不同。在运行时更新input-to-state矩阵,使用车辆动力学B输入端口。
依赖关系
要启用该参数,选择用汽车模型参数。
编程使用
块参数:EgoModelMatrixB |
类型:字符串,特征向量 |
默认值:“[24.1270,15.8609]” |
C- - - - - -最初的自我state-to-output矩阵预测模型
矩阵的两行
最初的自我state-to-output矩阵预测模型。这个参数的列数必须匹配的行数一个。
最初的自我定义的预测模型一个,B,C必须是最小的。
通常,自我车辆模型随着时间的不同而不同。在运行时更新state-to-output矩阵,使用车辆动力学C输入端口。
依赖关系
要启用该参数,选择用汽车模型参数。
编程使用
块参数:EgoModelMatrixC |
类型:字符串,特征向量 |
默认值:“[1,0,0,1]” |
初始纵向速度- - - - - -自我的初始速度
15
(默认)|积极的标量
自我车辆模型的初始速度,当lane-keeping协助启用m / s。这个速度可以不同于实际的自我车辆初始速度。
请注意
例如,一个非常小的初始速度每股收益
,可以产生一个nonminimal控制器装置模型的实现,导致一个错误。为了防止这个错误,设置初始速度为更大的值,例如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 |
类型:字符串,特征向量 |
默认值:“关闭” |
使用外部信号之间的无扰转移党的和其他控制器- - - - - -添加外部控制信号输入端口
从
(默认)|在
添加外部控制信号输入端口,选择该参数。
编程使用
块参数:trackmode |
类型:字符串,特征向量 |
默认值:“关闭” |
创建党的子系统- - - - - -创建自定义控制器
按钮
生成一个定制的党的子系统,您可以为您的应用程序修改。自定义控制器的控制器配置数据导出到MATLAB®工作空间结构。
您可以修改自定义控制器子系统:
修改默认MPC设置或者使用高级MPC功能。
修改默认的控制器的初始条件。
算法
自我车辆预测模型
默认的自我车辆状态空间模型预测模型如下:
在这里:
VX是汽车的纵向速度。在模拟的开始,这速度等于初始条件为纵向速度参数。在运行时,这个速度等于纵向速度输入信号。
米是总质量参数。
我Z是偏航惯性矩参数。
lF是前轮胎纵向距离重心参数。
lR是纵向重心距离后方轮胎参数。
CF是转弯前轮胎的刚度参数。
CR是转弯后轮胎的刚度参数。
这个模型的输入是弧度的转向角,和输出是横向速度米/秒和偏航角速率弧度每秒。
定义一个不同的自我车辆预测模型,选择用汽车模型状态空间模型参数,并指定初始。然后,指定运行时状态方程矩阵的值使用车辆动力学,车辆动力学B,车辆动力学C输入信号。
控制器创建其内部预测模型,向自我的车辆动力学模型。增广模型包括道路曲率测量扰动输入信号。
初始条件
默认情况下,模型预测控制器假定以下自我车辆的初始条件:
纵向速度等于初始纵向速度参数。
横向速度为零。
转向角为零。
偏航角速率为零。
如果在你的模型初始条件这些条件不匹配,转向角输出可以表现出一个初始碰撞的模拟。
修改控制器初始条件来匹配你的仿真,创建一个自定义lane-keeping控制系统,在块选项卡上,单击创建党的子系统。
扩展功能
C / c++代码生成
使用仿真软件生成C和c++代码®编码器™。金宝app
PLC的代码生成
使用仿真软件生成结构化文本代码®PLC编码器™。金宝app
版本历史
介绍了R2018a
MATLAB命令
你点击一个链接对应MATLAB命令:
运行该命令通过输入MATLAB命令窗口。Web浏览器不支持MATLAB命令。金宝app
你也可以从下面的列表中选择一个网站:
表现最好的网站怎么走吗
选择中国网站(中文或英文)最佳站点的性能。其他MathWorks国家网站不优化的访问你的位置。