此示例显示如何在不同的道路表面上运行车辆动态双车道更换机动,分析车辆偏航稳定性,并确定机动成功。
ISO 3888-2定义了双车道变道机动,以测试车辆的避障性能。在测试中,驾驶员:
加速直到车辆击中目标速度
松开油门踏板
转动方向盘沿着路径进入左车道
转动方向盘跟随路径回到右侧车道
通常,锥体标记车道边界。如果车辆和驾驶员可以在不击中锥体的情况下协商机动,则车辆通过测试。
有关参考应用程序的更多信息,请参阅双车道改变机动.
allowsetupdlc;
1.打开车道改变参考生成器块。默认情况下,使用这些参数设置操作:
纵向入口速度设定点- 35英里/小时
车辆宽度- 2米
横向参考位置断点和横向参考数据-指定横向参考轨迹作为纵向距离的函数的值
2.在可视化子系统中,打开3D引擎块。默认情况下,3D引擎参数设置为禁用.对于3D可视化引擎平台要求和硬件建议,请参阅3D可视化引擎要求和限制.
3.运行机动。随着仿真运行,查看车辆信息。
mdl ='dlcreferenceApplication';SIM(MDL);
###启动串行模型参考模拟构建###成功更新了模型参考仿真目标:PassVeh14DOF ###成功更新了模型参考仿真目标:SiMappedEngineV Build Summary simulation targets built:模型重建行动的原因 ========================================================================================== 动力传动系统代码生成和编译Driveline_msf。Mexw64并不存在。PassVeh14DOF生成并编译PassVeh14DOF_msf的代码。Mexw64并不存在。SiMappedEngineV代码生成和编译simappedengine_msf。Mexw64并不存在。建造时间:0小时4米10.411秒
在“车辆位置”窗口中,查看车辆纵向距离作为函数或横向距离。
在可视化子系统中,打开变道范围块,显示横向位移随时间的变化。红色和橙色的线表示圆锥体的边界。蓝线表示参考轨迹,绿线表示实际轨迹。绿色的线确实接近标示锥状体的红线。
在可视化子系统中,如果启用3D引擎块可视化环境,则可以查看车辆响应AutoVrtlEnv
窗户。
在三个不同摩擦系数的路面上运行参考应用程序。利用结果分析偏航稳定性,帮助决定机动的成功与否。
1.在双车道变道参考应用模型DLCReferenceApplication中,打开Environment子系统。摩擦块参数恒定价值指定摩擦缩放系数。默认情况下,摩擦缩放系数是1.0
.参考应用程序使用系数来调整摩擦在每个时间步长。
2.启用速度,通道和ISO信号的信号日志记录。您可以使用Simulink®编辑金宝app器,也可以使用这些MATLAB®命令。保存模型。
启用变道参考发生器输出车道信号的信号记录。
mdl ='dlcreferenceApplication';ph = get_param('DlcreferenceApplication / Lane更改参考生成器'那'porthandles');set_param (ph.Outport (1),“数据采集”那'在');
启用乘用车块出口信号的信号记录。
ph = get_param('DlcreferenceApplication /乘用车'那'porthandles');set_param (ph.Outport (1),“数据采集”那'在');
在可视化子系统中,为ISO块启用信号记录。
set_param([mdl'/可视化/ ISO 15037-1:2006'],'测量'那'使能够');
3.设置带有摩擦缩放系数的向量,lambdamu.
,你想调查。例如,检查摩擦缩放系数等于0.9
那0.95
, 和1.0
,在命令行输入:
lambdamu = [0.9,0.95,1.0];numexperiments =长度(lambdamu);
4.创建设置的仿真输入数组lambdamu.
等于摩擦常数块参数。
为了idx = num表明:-1:1在(idx)= simulink.sim金宝appulationInput(MDL)中;在(idx)=中(idx).setblockparameter([MDL)'/环境/摩擦'],......'价值',['那里(4,1)。*'num2str (lambdamu (idx))));结尾
5.设置模拟停止时间为25秒。保存模型并运行模拟。如果可以,使用并行计算。
set_param (mdl'停止'那'25') save_system (mdl)抽搐;simout = parsim (,'showsimulationManager'那'在');toc;
[17-Dec-2020 13:57:24]检查并行池的可用性…[17-Dec-2020 13:57:24]启动并行工作的Sim金宝appulink…[17-Dec-2020 13:57:25] Loading project on parallel workers…[17-Dec-2020 13:57:25]配置并行工作器上的模拟缓存文件夹…[17-Dec-2020 13:57:25]加载模型并行工人…[17-Dec-2020 13:57:45]运行模拟…[17- 12 -2020 13:59:11][17- 12 -2020 13:58:19]完成3次模拟运行中的1次[17- 12 -2020 13:58:20]完成3次模拟运行中的2次[17- 12 -2020 13:59:11]运行时间为120.449498秒。
6.仿真完成后,关闭模拟数据检测器窗口。
使用模拟数据检查器检查结果。您可以使用UI或,或者,命令行函数。
1.打开仿真数据检查器。在Simuli金宝appnk工具条上,在模拟标签,下面审查结果,点击数据检查.
在仿真数据检查器中,选择进口.
在里面进口对话框,清除logsout
.选择SIMOUT(1)
那SIMOUT(2)
, 和SIMOUT(3)
.选择进口.
使用模拟数据检查器检查结果。
2.或者,使用这些MATLAB命令创建6个绘图。前三个图标记上车道边界,UB.
,下车道边界,磅
和横向车辆距离,y
,每次运行。
接下来的三个地块提供横向加速度,ay.
,横向车辆距离,y
和横摆率,R.
,每次运行。
为了idx = 1: numExperiments%创建SDI运行对象SimoutRun(IDX)=金宝app Simulink.sdi.Run.Create;Simoutrun(IDX).name = ['lambdamu =',num2str(lambdamu(idx))];添加(SimoutRun(IDX),'vars',simout(idx));结尾sigcolor = (1 0 0);为了idx = 1: numExperiments%提取机动上下车道边界Ubsignal(IDX)= getsignalByIndex(SimoutRun(IDX),1);UBsignal(IDX).Linecolor = SigColor;lbsignal(idx)= getsignalbyIndex(SimoutRun(IDX),2);lbsignal(idx).linecolor = sigcolor;结尾sigcolor = [0 1 0; 0 0 1; 1 0 1];为了idx = 1: numExperiments%提取横向加速度,位置和横摆率ysignal (idx) = getSignalByIndex (simoutRun (idx), 27);ysignal (idx)。LineColor = sigcolor ((idx):);rsignal (idx) = getSignalByIndex (simoutRun (idx), 77);rsignal (idx)。LineColor = sigcolor ((idx):);asignal (idx) = getSignalByIndex (simoutRun (idx), 79);asignal (idx)。LineColor = sigcolor ((idx):);结尾金宝appsimulink.sdi.view simulink.sdi.setsubplotlayout(numoxperiments,2);为了idx = 1: numExperiments%绘制横向位置和车道边界plotoneubplot(Ubsignal(Idx),(Idx),1,true);plotonsubplot(Lbsignal(Idx),(Idx),1,true);plotoneubplot(ysignal(idx),(idx),1,true);结尾为了idx = 1: numExperiments%绘制横向加速度,位置和横摆率plotOnSubPlot (asignal (idx), 1、2,真的);plotOnSubPlot (ysignal (idx), 2, 2,真的);plotOnSubPlot (rsignal (idx)、3、2,真的);结尾
结果类似于这些图,表明车辆具有约的横摆率点
当摩擦缩放系数等于时,Rad /s1
.
要进一步探索结果,请使用这些命令从中提取横向加速度,转向角和车辆轨迹simout
目的。
1.提取横向加速度和转向角。绘制数据。结果与此图类似。它们表明,当摩擦缩放系数是时,会发生最大的横向加速度1
.
数字为了idx = 1: numExperiments%提取数据log = get(simout(idx),'logsout');sa = log.get(“方向盘角”) . values;唉= log.get ('横向加速') . values;Legend_Labels {idx} = ['lambdamu =',num2str(lambdamu(idx))];%绘图转向角与横向加速度绘图(sa.data,ay.data)持有在结尾%为绘图添加标签传奇(Legend_Labels,'地点'那'最好');标题('横向加速')xlabel(的转向角(度))ylabel('加速[m / s ^ 2]'网格)在
2.提取车辆路径。绘制数据。结果与此图类似。它们表明,当摩擦缩放系数是时,最大的横向车辆位置发生0.9
.
数字为了idx = 1: numExperiments%提取数据log = get(simout(idx),'logsout');x =日志{3}.Values.Body.InertFrm.Cg.Disp.X.Data;日志y = {3} .Values.Body.InertFrm.Cg.Disp.Y.Data;Legend_Labels {idx} = ['lambdamu =',num2str(lambdamu(idx))];%绘图车辆位置情节(y, x)在结尾%为绘图添加标签传奇(Legend_Labels,'地点'那'最好');标题('车道')xlabel('y位置[m]')ylabel('x位置[m]'网格)在
金宝appsimulink.simulationInpul.
|金宝appsimulink.simulationOutput.
[1] ISO 3888-2:2011。乘用车 - 严重车道变化机动的测试轨道.