主要内容

偏航稳定不同的路面

这个例子展示了如何运行车辆动力学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是最新的。构建总结0 3模型建立(3模型已经更新)构建持续时间:0 h 0米5.7447秒

  • 车辆位置窗口,查看车辆纵向距离函数或外侧的距离。

  • 在可视化子系统,打开巷变化范围块显示侧向位移作为时间的函数。红色和橙色线标志着锥边界。蓝线标志着参考轨迹和绿线是实际的轨迹。绿线是接近红线标志着锥。

  • 在可视化子系统,如果你使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;
(05 - 1月- 2023 09:06:25)检查可用性平行池……(05 - 1月- 2023 09:06:25)开始仿真软件并行金宝app工人……(05 - 1月- 2023 09:06:27)加载项目并行的工作……(05 - 1月- 2023 09:06:27)配置模拟缓存文件夹在平行的工人……(05 - 1月- 2023 09:06:27)加载模型并行的工作……(05 - 1月- 2023 09:06:56)运行模拟……(05 - 1月- 2023 09:08:45)完成1 3模拟运行[05 - 1月- 2023 09:08:45]完成2 3模拟运行(05 - 1月- 2023 09:08:46)完成3的模拟运行(05 - 1月- 2023 09:08:46)清理平行工人……运行时间是152.193850秒。

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) = getSignalsByName (simoutRun (idx),“车道改变参考发生器:1. leftbnd”);ubsignal (idx)。LineColor = sigcolor;lbsignal (idx) = getSignalsByName (simoutRun (idx),“车道改变参考发生器:1. rightbnd”);lbsignal (idx)。LineColor = sigcolor;结束sigcolor = [0 1 0 0 0 1; 1 0 1];idx = 1: numExperiments%提取横向加速度,位置,偏航率ysignal (idx) = getSignalsByName (simoutRun (idx),“乘用车:1. body.inertfrm.cg.disp.y”);ysignal (idx)。LineColor = sigcolor ((idx):);rsignal (idx) = getSignalsByName (simoutRun (idx),“乘用车:1. body.bdyfrm.cg.angvel.r”);rsignal (idx)。LineColor = sigcolor ((idx):);asignal (idx) = getSignalsByName (simoutRun (idx),“乘用车:1. body.bdyfrm.cg.acc.ay”);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,真的);结束

结果类似于这些情节,这表明汽车的偏航率约为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”);xValues = getSignalsByName (simoutRun (idx),“乘用车:1. body.inertfrm.cg.disp.x”). values;yValues = getSignalsByName (simoutRun (idx),“乘用车:1. body.inertfrm.cg.disp.y”). values;x = xValues.Data;y = yValues.Data;legend_labels {idx} = [“lambdamu = 'num2str (lambdamu (idx)));%绘制车辆位置情节(y, x)结束%将标签添加到情节传奇(legend_labels“位置”,“最佳”);标题(“车辆路径”)包含(“Y位置[m]”)ylabel (“X位置[m]”网格)

另请参阅

|

引用

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

相关的例子

更多关于