此示例显示如何在不同的道路表面上运行车辆动态双车道更换机动,分析车辆偏航稳定性,并确定机动成功。
ISO 3888-2定义了双车道变道机动,用于测试车辆的避障性能。在测试中,司机:
加速直到车辆击中目标速度
松开油门踏板
转动方向盘沿着路径进入左车道
转动方向盘跟随路径回到右侧车道
通常情况下,视锥标志着车道边界。如果车辆和驾驶员能够在不撞到锥体的情况下完成机动,则车辆通过测试。
有关参考应用程序的更多信息,请参阅Double-Lane改变策略.
allowsetupdlc;
1.打开车道改变参考生成器块。默认情况下,使用这些参数设置操作:
纵向入口速度设定点- 35英里/小时
车辆宽度- 2米
横向参考位置断点和横向参考数据-指定横向参考轨迹作为纵向距离的函数的值
2.在可视化子系统中,打开3D引擎块。默认情况下,3D引擎参数设置为禁用.对于3D可视化引擎平台要求和硬件建议,请参阅3D可视化引擎要求和限制.
3.运行机动。随着仿真运行,查看车辆信息。
mdl =“DLCReferenceApplication”;SIM(MDL);
###启动串行模型参考模拟构建###成功更新模型参考仿真目标为:模型重建行动的原因 ========================================================================================== 动力传动系统代码生成和编译Driveline_msf。Mexw64不存在。PassVeh14DOF PassVeh14DOF_msf生成和编译的代码。Mexw64不存在。SiMappedEngineV生成和编译SiMappedEngineV_msf的代码。Mexw64不存在。构建时间:0h 4m 10.411s
在“车辆位置”窗口中,可以将车辆纵向距离作为函数查看,也可以将车辆横向距离作为函数查看。
在可视化子系统中,打开变道范围块,显示横向位移作为时间的函数。红色和橙色的线表示锥体的边界。蓝线表示参考轨迹,绿线表示实际轨迹。绿线确实与标记视锥细胞的红线很接近。
在Visualization子系统中,如果您启用了3D Engine块可视化环境,您可以在AutoVrtlEnv
窗户。
在三个不同摩擦系数的路面上运行参考应用程序。利用结果来分析偏航稳定性,并帮助决定成功机动。
1.在双车道变更引用应用程序模型DLCReferenceApplication中,打开Environment子系统。摩擦块参数恒定价值指定摩擦缩放系数。默认情况下,摩擦缩放系数是1.0
.参考应用程序使用系数来调整摩擦在每个时间步。
2.对速度、车道和ISO信号进行信号记录。您可以使用Simulink®编辑金宝app器,或者使用这些MATLAB®命令。保存模型。
启用变道参考发生器输出车道信号的信号记录。
mdl =“DLCReferenceApplication”;ph = get_param ('DLCReferenceApplication/Lane Change Reference Generator'那“PortHandles”);set_param (ph.Outport (1),“数据采集”那'上');
启用乘用车块出口信号的信号记录。
ph = get_param (“DLCReferenceApplication /客运车辆”那“PortHandles”);set_param (ph.Outport (1),“数据采集”那'上');
在Visualization子系统中,为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 = numExperiments:-1:1 in(idx) = 金宝appSimulink.SimulationInput(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- 12 -2020 13:57:25]平行工人的装载模型…[17-Dec-2020 13:57:45]运行模拟…[17-Dec-2020 13:59:19] Completed 1 of 3 simulation runs [17-Dec-2020 13:59:20] Completed 2 of 3 simulation runs [17-Dec-2020 13:59:19] Completed 3 of 3 simulation runs [17-Dec-2020 13:59:20] Completed 3 of 3 simulation runs [17-Dec-2020 13:59:19]运行时间是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%提取数据日志=得到(simout (idx),'logsout');sa = log.get (“方向盘角”) . values;唉= log.get ('横向加速') . values;Legend_Labels {idx} = ['lambdamu =',num2str(lambdamu(idx))];%绘图转向角与横向加速度绘图(sa.data,ay.data)持有在结尾%为绘图添加标签传奇(legend_labels“位置”那'最好的');标题('横向加速')包含(的转向角(度)) ylabel (“加速度(m / s ^ 2)”网格)在
2.提取车辆路径。绘制数据。结果与此图类似。它们表明,当摩擦缩放系数是时,最大的横向车辆位置发生0.9
.
数字为了idx = 1: numExperiments%提取数据日志=得到(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“位置”那'最好的');标题(“车辆路径”)包含(“Y位置[m]”) ylabel ('x位置[m]'网格)在
金宝appsimulink.simulationInpul.
|金宝appsimulink.simulationOutput.
[1] ISO 3888-2:2011。乘用车 - 严重车道变化机动的测试轨道.