基于MATLAB的双线变道仿真(matlab 双纽线)
双线变道仿真模型
这个参考应用程序代表了一个完整的车辆动力学模型,根据标准ISO 3888-2[4]进行了双车道变化的机动操作。你可以创建你自己的版本,建立一个框架来测试你的车辆在正常和极端驾驶条件下是否符合设计要求。使用参考应用程序来分析车辆的行驶和操控,并开发底盘控制。要进行车辆研究,包括偏航稳定性和侧向加速度限制,请使用该参考应用程序。
ISO 3888-2规定了测试车辆避障性能的双车道变换动作。在测试中,驾驶员。
加速直到车辆达到目标速度
松开加速器踏板
转动方向盘,沿着路径进入左侧车道
转动方向盘,跟随路径回到右车道
通常情况下,锥体标志着车道的边界。如果车辆和驾驶者能够在不撞到锥体的情况下完成操作,则车辆通过测试。
为了测试高级驾驶辅助系统(ADAS)和自动驾驶(AD)的感知、规划和控制软件,你可以在三维环境中运行这个动作。关于三维可视化引擎的平台要求和硬件建议,见三维可视化引擎要求和限制。
要创建并打开双车道变化参考应用项目的工作副本,请输入
vdynblksDblLaneChangeStart
本表总结了参考应用中的模块和子系统。一些子系统包含变量。
参考应用要素 | 描述 | 变量 |
变车道参照物生成器 | 为可视化子系统生成车道信号和轨迹信号 | |
驱动程序命令 | 实现参考应用程序用来生成加速、制动、齿轮和转向命令的驱动模型。 默认情况下,驱动命令子系统的变量是预测性驱动块。 | |
环境 | 风力和地面力 | |
控制器 | 为发动机控制单元(ECU)、变速器、防抱死制动系统(ABS)和主动差速器实施控制器。 | |
乘用车 | 工具: - 车身、悬挂和车轮 - 发动机 - 转向器、变速器、传动系统和制动器 | |
可视化 | 提供车辆轨迹、驾驶员反应和三维可视化。 |
要覆盖默认变量,在建模标签上,在设计部分,点击下拉。在常规部分,选择变量管理器。在变量管理器中,导航到你想使用的变量。右键单击并选择使用此选择进行覆盖。
车道变更参考资料生成器
使用车道变化参考生成器块来生成。
用于可视化子系统的车道信号 - 左右车道边界是车辆宽度参数的一个函数。
用于预测驾驶员块的速度和横向参考信号 - 使用横向参考位置断点和横向参考数据参数,指定横向参考轨迹作为纵向距离的函数。
要指定目标速度,使用纵向入口速度设定值参数。
驱动命令
驱动程序命令块实现了参考应用程序用来生成加速、制动、齿轮和转向命令的驱动程序模型。在默认情况下,如果你选择了 "参考生成器 "块的参数 "使用特定于演习的驱动程序、初始位置和场景",参考应用程序将为你指定的演习选择驱动程序。
车辆指令模式设置 | 执行 |
Longitudinal Driver | Longitudinal Driver block —纵向速度跟踪控制器。基于参考和反馈速度,该块产生归一化的加速和制动指令,这些指令可以从0到1变化。使用该块来模拟驾驶员的动态响应或产生跟踪纵向驱动周期所需的指令。 |
Predictive Driver | Predictive Driver block —产生归一化转向、加速和制动指令的控制器,用于跟踪纵向速度和横向参考位移。归一化指令可以在-1到1之间变化。该控制器使用单轨(自行车)模型进行最佳单点预览控制。 |
Open Loop | 实施一个开环系统,这样你就可以为恒定或基于信号的转向、加速、制动和档位指令输入配置参考应用 |
环境
环境子系统产生风和地面力。参考应用有这些环境变量。
环境 | 变量 | 描述 |
地面反馈 | 3D Engine | 使用车辆地形传感器块来实现3D环境中的光线追踪 |
Constant (default) | 实施恒定的摩擦值 |
控制器
控制器子系统产生发动机扭矩、变速器齿轮、制动压力和差压指令。
ECU
ECU控制器产生发动机扭矩指令。控制器通过将发动机扭矩指令限制在模型工作区变量EngRevLim所指定的值内,来防止发动机过高转速。默认情况下,该值为7000rpm。如果差速器扭矩指令超过了有限的发动机扭矩指令,ECU会将发动机扭矩指令设置为指令的差速器扭矩。
变速器控制
变速器控制器子系统产生变速器齿轮指令。该控制器包括这些变量。
变量 | 描述 |
Transmission Controller | 实施一个变速器控制模块(TCM),该模块使用Stateflow(R)逻辑,根据车辆加速度、轮速和发动机转速生成档位指令。 |
Driver - No Clutch | 开环传动控制。控制器将档位指令设定为档位请求。 |
PRNDL Controller (default) | 实施一个变速器控制模块(TCM),该模块使用Stateflow逻辑,根据车辆加速度、制动指令、车轮速度、发动机速度和档位要求,生成档位指令。 |
Paddles | 实施一个拨杆控制器,使用车辆的加速度和发动机转速来生成档位指令。 |
制动压力控制
制动控制器子系统实现了一个制动压力控制子系统来产生制动压力指令。制动压力控制子系统有这些变量。
变量 | 描述 |
Bang Bang ABS | 实施防锁死制动系统(ABS)反馈控制器,在两种状态之间切换以调节车轮滑移。砰砰控制使实际滑移和期望滑移之间的误差最小。对于期望的滑移,控制器使用mu-slip曲线达到峰值的滑移值。这个期望滑移值是最小制动距离的最佳值。 |
Open Loop (default) | 开环制动控制。控制器根据制动指令将制动压力指令设定为参考制动压力。 |
Five-State ABS | 当你模拟机动时,五状态ABS控制。五状态ABS控制器使用基于车轮减速和车辆加速的逻辑开关来控制每个车轮的制动压力。 考虑使用五状态ABS控制来防止车轮锁定,减少制动距离,或在机动过程中保持偏航稳定性。默认的ABS参数被设定为在摩擦系数比例系数为0.6的恒定道路上工作 |
主动差分控制
主动差分控制子系统产生差分压力指令。为了计算该指令,该子系统有这些变量。
变量 | 描述 |
Rear Diff Controller | 实施一个控制器,根据以下情况产生压差指令。 转向角 车辆俯仰、偏航和滚动 制动命令 车轮速度 档位 车辆加速 |
No Control (default) | 不执行控制器。将压差指令设为0。 |
乘用车
乘用车子系统有一个发动机、控制器和一个有四个轮子的车体。具体来说,该车辆包含这些子系统。
车身、悬架、车轮子系统 | 变量 | 描述 |
PassVeh7DOF | PassVeh7DOF | 有四个轮子的车辆。 车身有三个自由度(DOFs)--纵向、横向和偏航。 每个轮子有一个自由度--滚动 |
PassVeh14DOF | PassVeh14DOF (default) | 有四个轮子的车辆。 车身有六个DOFs - 纵向、横向、垂直和俯仰、偏航和滚动。 每个轮子有两个DOF--垂直和滚动。 |
发动机子系统 | 变量 | 描述 |
Mapped Engine | SiMappedEngine (default) | 匹配的火花点火(SI)发动机 |
转向、变速器、传动系统和制动子系统 | 变量 | 描述 | |
Driveline Ideal Fixed Gear | Driveline model | All Wheel Drive | 将传动系统配置为全轮、前轮、后轮或后轮主动差速驱动,并指定扭矩耦合器的类型。 |
Front Wheel Drive | |||
Rear Wheel Drive | |||
Rear Wheel Drive Active Differential (default) | |||
Transmission | Ideal (default) | 实现了理想的固定齿轮传动. | |
Brake Hydraulics | NA | 当控制器对一个油缸施加制动指令时,执行液压系统的启发式响应。包括前轮和后轮的偏置系数。该子系统将施加的压力转换为油缸阀芯位置。为了产生制动压力,阀芯向油缸的下游施加流量。 |
可视化
当你运行模拟时,可视化子系统提供驾驶员、车辆和响应信息。参考应用程序记录了机动过程中的车辆信号,包括转向、车辆和发动机速度以及侧向加速度。你可以使用模拟数据检查器来导入记录的信号并检查数据。
元素 | 描述 |
Driver Commands | 司机指令: 手轮角度 加速指令 制动命令 |
Vehicle Response | 车辆反应: 发动机速度 车辆速度 加速指令 |
Lane Change Scope block | 车辆侧向位移与时间的关系: 红线--标记右车道边界的锥体 橙线--标记左车道边界的锥体 蓝线--参考轨迹Green line — Actual trajectory |
Steer, Velocity, Lat Accel Scope block | SteerAngle —转向角与时间的关系 <xdot> —车辆纵向速度与时间的关系 <ay> —侧向加速度与时间的关系 |
Vehicle XY Plotter | 车辆纵向与横向的距离 |
ISO 15037-1:2006 block | 在模拟数据检查器中显示ISO标准测量信号,包括方向盘角度和扭矩,纵向和横向速度,以及侧滑角度 |
三维可视化
你可以选择启用或停用三维可视化环境。关于3D可视化引擎的平台要求和硬件建议,见3D可视化引擎要求和限制。在你打开参考应用程序后,在可视化子系统中,打开3D引擎块。设置这些参数。
3D Engine to Enabled.
Scene 到其中一个场景,例如 Straight road.
要在场景中定位车辆。
选择位置初始化方法。
Recommended for scene — 将车辆的初始位置设置为场景的推荐值
User-specified — 设置你自己的初始车辆位置
点击 Update the model workspaces with the initial values 以应用的值覆盖模型工作区中的车辆初始位置。
当你运行仿真时,在模型工作区中查看车辆的响应AutoVrtlEnv 窗口
Note
要打开和关闭AutoVrtlEnv窗口,请使用Simulink(R)运行和停止按钮。如果您手动关闭AutoVrtlEnv窗口,Simulink会以一个错误停止仿真。
当您启用三维可视化环境时,您不能将仿真回退。
为了顺利地改变摄像机的视图,请使用这些关键命令。
Key | Camera View | |
1 | Back left | View Animated GIF |
2 | Back | |
3 | Back right | |
4 | Left | |
5 | Internal | |
6 | Right | |
7 | Front left | |
8 | Front | |
9 | Front right | |
0 | Overhead |
对于额外的相机控制,请使用这些按键命令。
Key | Camera Control |
Tab | 在场景中的所有车辆之间循环查看。 View Animated GIF |
Mouse scroll wheel | 控制摄像机与车辆的距离 View Animated GIF |
L | 切换摄像机滞后效果的开启或关闭。当你启用滞后效果时,摄像机视图包括。 位置滞后,基于车辆的平移加速度 旋转滞后,基于车辆的旋转速度 这种滞后能够改善车辆整体加速度和旋转的可视化。 View Animated GIF |
F | 切换自由摄像机模式的开启或关闭。当你启用自由摄像机模式时,你可以用鼠标来改变摄像机的俯仰和偏航。这种模式使你能够使摄像机围绕车辆运行。 View Animated GIF |