这个例子显示如何运行在不同的路面上的车辆动态双车道变更操作,分析车辆横摆稳定性,并确定演习的成功。
ISO 3888-21定义了双车道变更操作来测试车辆的障碍物躲避性能。在测试中,该驱动程序:
加速直到车辆击中目标速度
松开油门踏板
转方向盘遵循路径进入左侧车道
转方向盘遵循的路径返回到正确的车道
通常情况下,视锥细胞标记车道边界。如果车辆和驾驶员可以协商的动作而没有碰到一个圆锥体,车辆通过的考验。
有关参考应用程序的更多信息,请参阅双车道变更操作。
创建并打开双车道变换参考应用的工作副本。
打开车道变换基准发生器块。默认情况下,机动设置这些参数:
纵向入口速度设定值- 35英里每小时
车宽- 2米
横向参考位置断点和横向参考数据- 值,它说明横向参考轨迹作为纵向距离的函数
在可视化子系统,打开3D引擎块。默认情况下,3D引擎参数设置为残。对于3D可视化引擎平台的要求和硬件建议,请参阅三维可视化引擎的要求。
运行演习。作为模拟运行,查看车辆信息。
在本车位置的窗口,查看车辆的纵向距离为横向距离的函数。
在可视化子系统,打开车道改变范围块,用于显示横向位移作为时间的函数。
红线 - 锥标记车道边界
蓝线 - 参考轨迹
绿线 - 实际轨迹
绿线不来接近红线标记锥。
在可视化子系统,如果启用3D引擎方框可视化环境中,可以查看在车辆响应AutoVrtlEnv
窗口。
运行在具有不同摩擦系数的缩放三个表面的参考应用。使用结果来分析偏航稳定性和帮助确定演习的成功。
在双车道变换参考应用模型DLCReferenceApplication
,打开环境子系统。该摩擦块参数恒值指定摩擦比例系数。默认情况下,摩擦系数的缩放是1.0
。参考应用程序使用系数在每个时间步长来调整摩擦。
在可视化子系统,使能信号记录。您可以使用Simulink的金宝app®编辑或者,MATLAB®命令。保存模型。
模型元素 |
金宝appSimulink的主编 |
---|---|
VehFdbk运行轨迹 |
|
车道运行轨迹 |
|
ISO 15037-1:2006块 |
|
3D引擎块 |
|
可替代地,使用这些命令,以使信号记录和保存模型。
%打开模型MDL ='DLCReferenceApplication';open_system(MDL);%启用VehFdbk信号记录pH值= get_param('DLCReferenceApplication /可视/ VehFdbk','PortHandles');set_param(ph.Outport,'数据记录','上');%启用泳道信号记录pH值= get_param('DLCReferenceApplication /可视/里','PortHandles');set_param(ph.Outport,'数据记录','上');%启用ISO块信号记录set_param([MDL'/可视化/ ISO 15037-1:2006']'测量',“启用”);%禁用3D环境set_param([MDL'/可视/ 3D引擎']'engine3D',“已禁用”);save_system(MDL)
设置一个载体与摩擦系数缩放,lambdamu
,要进行调查。例如,为了检查摩擦系数缩放等于0.9
,0.95
和1.0
在命令行中输入:
MDL ='DLCReferenceApplication';open_system(MDL);%定义的参数集来扫lambdamu = [0.9,0.95,1.0];numExperiments =长度(lambdamu);
创建的模拟输入,设定的数组lambdamu
等于摩擦恒定块参数。
%创建Simulink.Simulatio金宝appnInputs的阵列对于IDX = numExperiments:-1:1(IDX)= Simu金宝applink.SimulationInput(MDL);在(IDX)=在(IDX).setBlockParameter([MDL“/环境/摩擦”]'值'['那些(4,1)。*',num2str(lambdamu(IDX))]);结束
在30秒设置仿真停止时间。保存模型和运行模拟。如果可能,使用并行计算。
set_param(MDL,“停止时间”,'30')save_system(MDL)抽动;simout = parsim(在,'ShowSimulationManager','上');TOC;
导入模拟结果对仿真数据检查。
在Simuli金宝appnk的编辑器工具栏上,单击数据检查按键。
在仿真数据检查,选择进口。
在导入对话框中,清除logsout
。选择simout(1)
,simout(2)
和simout(3)
。选择进口。
选择每次运行。对于每次运行,右击到运行重命名为摩擦比例系数对应于该模拟。
探索模拟数据检查的结果。
为了评估机动测试时的成功lambdamu
等于0.9,0.95和1.0,绘制上车道边界,
,较低的车道边界,
和横向车辆的距离,ÿ
。
该结果与这些情节,这显示了运行结果。结果表明,车辆的横向位置不接近车道边界。
为了评估该路面的横摆稳定性,情节横向加速度,AY
,横向车辆的距离,ÿ
,横摆角,PSI
和偏航率,[R
。
该结果与这些地块。结果表明,该车辆具有大约0.72弧度的横摆率/秒时的摩擦系数的缩放等于1。
为了进一步探索的结果,使用这些命令来提取的横向加速度,转向角,并从车辆的行驶轨迹simout
宾语。
提取的横向加速度和转向角。图中的数据。
从simout对象%剧情的结果:横向加速度VS转向角数字对于IDX = 1:numExperiments%提取数据日志= simout(IDX)获得('logsout');SA = log.get(“方向盘角度”).Values;AY = log.get(“横向加速度”).Values;legend_labels {IDX} = ['lambdamu =',num2str(lambdamu(IDX))];%剧情操舵角的横向加速度图(sa.Data,ay.Data)保持上结束%的标签添加到地块传说(legend_labels,'位置','最好');标题(“横向加速度”)xlabel(“转向角度[度]”)ylabel(“加速度[米/秒2]”)网格上
结果与此类似的情节。他们表明,当摩擦比例系数是出现最大横向加速度1
。
提取车辆路径。图中的数据。
数字对于IDX = 1:numExperiments%提取数据日志= simout(IDX)获得('logsout');VehFdbk = log.get('VehFdbk');X = VehFdbk.Values.Body.X;Y = VehFdbk.Values.Body.Y;legend_labels {IDX} = ['lambdamu =',num2str(lambdamu(IDX))];%绘制车辆定位图(y.Data,x.Data)保持上结束%的标签添加到地块传说(legend_labels,'位置','最好');标题(“车辆路径”)xlabel('Y位置[米]')ylabel('X位置[米]')网格上
结果与此类似的情节。它们表明,当摩擦比例系数是发生最大横向车辆位置0.9
。
金宝appSimulink.SimulationInput
|金宝appSimulink.SimulationOutput
[1] ISO 3888-2:2011。乘用车 - 的测试赛道为一个严重的车道变更操纵。