这个例子展示了如何使用车辆动力学缓慢增加转向参考应用来分析转向角度和速度对车辆处理的影响。具体来说,你可以计算当你运行不同速度设定值的机动时的转向增益。
基于SAE J266中定义的恒速、变舵试验1,缓慢增加的转向机动有助于表征车辆的横向动力学。在测试中,司机:
加速直到车辆击中目标速度。
保持目标速度。
线性地增加从0度到最大角度的方向盘角度。
在规定的时间内保持方向盘的角度。
线性减少方向盘角度从最大角度到0度。
有关参考应用程序的更多信息,请参阅增长缓慢的转向动作。
创建和打开增加转向参考应用的工作副本。
打开慢慢地增加引导块。默认情况下,机动设置这些参数:
纵向速度定位点- 50英里每小时
手轮速度- 13.5度
最大方向盘角度- 270度
打开可视化子系统。默认情况下,3D引擎被设置为禁用3D可视化引擎。对于3D可视化引擎平台的要求和硬件建议,请参阅三维可视化引擎的要求。
使用默认设置运行该操作。在模拟运行时,查看车辆信息。
在本车位置的窗口,查看车辆的纵向距离为横向距离的函数。
在可视化子系统,打开偏航率和转向范围显示偏航率和转向角随时间变化的块:
黄线-偏航率
蓝线 - 转向角
蓝线显示出一个线性增加和减少的方向盘角度。
运行缓慢增加的方向盘角度参考应用程序与三个不同的速度设置点。
在缓慢增长的转向参考应用模型ISReferenceApplication
, 打开慢慢地增加引导块。的纵向速度设定点,xdot_r块参数设定车辆速度。默认情况下,速度50
英里每小时。
在可视化子系统,使这些模型元素信号记录。禁用3D可视化环境。您可以使用Simulink的金宝app®编辑或者,MATLAB®命令。保存模型。
模型元素 |
金宝appSimulink的主编 |
---|---|
VehFdbk尺寸。 |
|
ISO 15037-1:2006块 |
|
3D引擎块 |
|
可替代地,使用这些命令,以使信号记录,禁止所述3D可视化的环境中,并保存模型。
%打开模型MDL =“ISReferenceApplication”;open_system(MDL);为VehFdbk启用信号日志记录ph = get_param ('ISReferenceApplication /可视/ VehFdbk',“PortHandles”);set_param(ph.Outport,“数据采集”,'上');为ISO块启用信号日志记录set_param([MDL“可视化/ ISO 15037 - 1:2006”),“测量”,“启用”);%禁用3D环境set_param([MDL'/可视/ 3D引擎'),'engine3D',“禁用”);save_system (mdl)
设置速度设定点向量,xdot_r
,要进行调查。例如,在命令行上输入:
MDL =“ISReferenceApplication”;open_system(MDL);%定义的参数集来扫vmax = [40,50,60];tfinal = [60, 60, 60];numExperiments =长度(vmax);
创建一组设置的模拟输入xdot_r
等于慢慢地增加引导块参数。
对于idx = numexperiment:-1:1 in(idx) = S金宝appimulink.SimulationInput(mdl);在(idx) = (idx) .setBlockParameter (mdl' /慢慢增加引导的),“xdot_r”,num2str(VMAX(IDX)));在(IDX)=在(IDX).setModelParameter(“停止时间”,num2str(T最终(IDX)));结束
保存模型和运行模拟。如果可能,使用并行计算。
save_system(MDL);抽动;simout = parsim(在,“ShowSimulationManager”,'上');toc;
导入模拟结果对仿真数据检查。
在Simuli金宝appnk的编辑器工具栏上,单击数据检查按键。
在仿真数据检查,选择进口。在导入对话框中,接受默认值,然后选择进口。
在“导入”对话框中清除logsout
。选择simout (1)
,simout (2)
,simout(3)
。选择进口。
选择每一次运行。对于每次运行,右键单击以将结果重命名为与模拟相对应的速度。运行1对应于使用默认设置的模拟。
探索模拟数据检查的结果。为了表征转向,查看模拟结果的曲线图。例如,绘制纵向速度,方向盘角,横向加速度,纵向位置,X
和横向位置,ÿ
。结果类似于这些图,其中显示了运行2、3和4的结果。结果表明,当车辆速度为时,横向加速度最大40
英里每小时。
为了进一步探索的结果,使用这些命令来提取的横向加速度,转向角,并从车辆的行驶轨迹simout
对象。
提取的横向加速度和转向角。图中的数据。为了计算转向增益,适合一阶多项式的数据。
从simout对象%剧情的结果:横向加速度VS转向角数字对于idx = 1: numExperiments%提取数据日志= simout (idx) . get ('logsout');sa = log.get (“方向盘角度”). values;唉= log.get (“横向加速度”). values;firstorderfit = polyfit (sa.Data ay.Data 1);获得(idx) = firstorderfit (1);legend_labels {idx} = [num2str (vmax (idx)),' mph: Gain = 'num2str(获得(idx)),'M /(度秒2)'];%剧情操舵角的横向加速度图(sa.Data,ay.Data)保持在结束%的标签添加到地块传奇(legend_labels“位置”,'最好');标题(“横向加速度”)包含(的转向角(度))ylabel (“加速度(m / s ^ 2)”网格)在
结果与此类似的情节。
提取车辆路径。图中的数据。
%绘制车辆路径数字对于idx = 1: numExperiments%提取数据日志= simout (idx) . get ('logsout');VehFdbk = log.get('VehFdbk');x = VehFdbk.Values.Body.X;y = VehFdbk.Values.Body.Y;legend_labels {idx} = [num2str (vmax (idx)),“英里”];%绘制车辆定位轴(“平等”)图(y.Data,x.Data)保持在结束%的标签添加到地块传奇(legend_labels“位置”,'最好');标题(“车辆路径”)包含(“Y位置[m]”)ylabel ('X位置[米]'网格)在
结果与此类似的情节。
[1]SAE J266。稳态方向控制测试程序的乘用车和轻型卡车。宾夕法尼亚州沃伦代尔:SAE国际公司,1996年。
金宝appSimulink.SimulationInput
|金宝appSimulink.SimulationOutput
|polyfit