主要内容

偏航稳定不同的路面

这个例子展示了如何运行车辆动力学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,真的);结束

结果类似于这些情节,这表明汽车的偏航率约为。6rad / 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]”网格)

另请参阅

|

引用

[1]ISO 3888 - 2: 2011。乘用车——试车跑道严重前馈策略

相关的例子

更多关于