偏航稳定不同的路面
这个例子展示了如何运行车辆动力学double-lane改变策略在不同的路面,分析车辆偏航稳定,并决定操作成功。
ISO 3888 - 2定义了double-lane改变机动车辆的避障性能进行测试。在测试时,司机:
加速,直到车辆速度达到一个目标
释放加速踏板
把方向盘向左边的车道跟随路径
转方向盘跟随路径回到正确的车道
通常,锥马克车道边界。如果车辆和司机可以协商策略没有触及锥,车辆通过了测试。
参考应用程序的更多信息,请参阅Double-Lane改变策略。
helpersetupdlc;
运行一个Double-Lane改变策略
1。打开车道改变参考发生器。默认情况下,策略与这些参数设置:
纵向入口速度定位点- 35英里每小时
车辆宽度- 2米
横向参考位置断点和横向参考数据——值指定横向参考轨迹的纵向距离的函数
2。在可视化子系统,打开3 d引擎块。默认情况下,3 d引擎参数设置为禁用。三维可视化引擎平台需求和硬件建议,看到虚幻引擎模拟环境要求和限制。
3所示。运行操作。当模拟运行时,查看车辆信息。
mdl =“DLCReferenceApplication”;sim (mdl);
# # #开始连续模型参考模拟构建# # #成功更新了模型参考模拟目标:动力传动系统# # #成功更新了模型参考模拟目标:PassVeh14DOF # # #成功更新了模型参考模拟目标:SiMappedEngineV构建总结模拟目标构建:模型重建行动的原因= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =动力传动系统代码生成和编译Driveline_msf。mexw64并不存在。PassVeh14DOF PassVeh14DOF_msf代码生成和编译。mexw64并不存在。SiMappedEngineV SiMappedEngineV_msf代码生成和编译。mexw64并不存在。3 3模型建立(0模型已经更新)构建持续时间:0 h 5米53.725秒
车辆位置窗口,查看车辆纵向距离函数或外侧的距离。
在可视化子系统,打开巷变化范围块显示侧向位移作为时间的函数。红色和橙色线标志着锥边界。蓝线标志着参考轨迹和绿线是实际的轨迹。绿线是接近红线标志着锥。
在可视化子系统,如果你使3 d引擎块可视化环境中,您可以查看车辆响应的
AutoVrtlEnv
窗口。
扫描表面摩擦
运行应用程序的引用在三个不同的路面摩擦比例系数。使用结果来分析偏航稳定和帮助确定策略的成功。
1。double-lane改变参考应用程序模型DLCReferenceApplication、开放环境子系统。摩擦块参数恒定值指定摩擦比例系数。默认情况下,摩擦比例系数1。0
。参考应用程序使用调整摩擦系数在每个时间步。
2。启动信号记录速度、车道和ISO的信号。您可以使用仿真软件®编辑器,或者金宝app或者,这些MATLAB®命令。保存模型。
启用信号日志记录的车道改变参考信号发生器输出港巷。
mdl =“DLCReferenceApplication”;ph = get_param (“DLCReferenceApplication /车道改变参考发生器”,“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 = numExperiments: 1:1 (idx) = Si金宝appmulink.SimulationInput (mdl);在(idx) = (idx) .setBlockParameter (mdl/环境/摩擦的),…“价值”,(”的(4,1)*’num2str (lambdamu (idx))));结束
5。设置仿真停止时间在25岁。保存模型和运行模拟。如果可用,使用并行计算。
set_param (mdl“StopTime”,“25”)save_system (mdl)抽搐;simout = parsim (,“ShowSimulationManager”,“上”);toc;
(27 - 12月- 2021 16:12:24)检查可用性平行池……开始平行池(parpool)使用“本地”概要文件…连接到平行池(工人数量:6)。[27 - 12月- 2021 16:13:44]开始仿真软件并行工人……金宝app(27 - 12月- 2021 16:14:19)加载项目并行的工作……(27 - 12月- 2021 16:14:19)配置模拟缓存文件夹在平行的工人……(27 - 12月- 2021 16:14:33)加载模型并行的工作……(27 - 12月- 2021 16:16:41)运行模拟……(27 - 12月- 2021 16:18:46)完成1 3模拟运行[27 - 12月- 2021 16:18:47]完成2 3模拟运行[27 - 12月- 2021 16:18:47]完成3 3模拟运行(27 - 12月- 2021 16:18:47)清理平行工人……运行时间是418.851685秒。
6。模拟完成后,关闭仿真数据检查器窗口。
使用模拟数据检查分析的结果
使用模拟数据检查员来检查结果。您可以使用UI,或者命令行功能。
1。检查员打开模拟数据。在仿真软件将来金宝app发布的模拟选项卡,在审查结果,点击数据检查。
在仿真数据检查,选择进口。
在进口对话框,
logsout
。选择simout (1)
,simout (2)
,simout (3)
。选择进口。
使用模拟数据检查员来检查结果。
2。另外,使用这些MATLAB命令创建6块。前三个情节马克上车道边界,乌兰巴托
,降低车道边界,磅
车辆横向距离,Y
每次运行。
接下来的三块提供侧向加速度,唉
,车辆横向距离,Y
偏航率,r
每次运行。
为idx = 1: numExperiments%创建sdi运行对象simoutRun (idx)金宝app = Simulink.sdi.Run.create;simoutRun (idx) . name = (“lambdamu = 'num2str (lambdamu (idx)));add (simoutRun (idx),“var”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。视图Sim金宝appulink.sdi.setSubPlotLayout (numExperiments, 2);为idx = 1: numExperiments%绘制横向位置和车道边界plotOnSubPlot (ubsignal (idx), (idx), 1, true);plotOnSubPlot (lbsignal (idx), (idx), 1, true);plotOnSubPlot (ysignal (idx), (idx), 1, true);结束为idx = 1: numExperiments%绘制横向加速度,位置,偏航率plotOnSubPlot (asignal (idx), 1、2,真的);plotOnSubPlot (ysignal (idx), 2, 2,真的);plotOnSubPlot (rsignal (idx)、3、2,真的);结束
结果类似于这些情节,这表明汽车的偏航率约为。6
rad / s时,摩擦比例系数=1
。
进一步分析
进一步探索结果,使用这些命令提取横向加速度,转向角和车辆的轨迹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.SimulationInput
|金宝appSimulink.SimulationOutput
引用
[1]ISO 3888 - 2: 2011。乘用车——试车跑道严重前馈策略。