贾东明 朱若岭
(河南交通职业技术学院,河南 郑州 450000)
智能网联汽车在投放市场前要进行测试,从而确认其性能。但许多涉及汽车安全的新技术,因其研发受到外界环境的影响和试验安全的制约,难以有效地开展,而真实道路测试效率较慢。目前,很多车企都倾向于选择自动驾驶仿真测试来测试新技术[1-3]。本研究以MATLAB 软件为例,进行自动驾驶仿真测试中的自适应巡航控制系统的仿真测试。
汽车自适应巡航控制(ACC)系统是在L1 或L2级别就要实现的功能,也是更高级别的自动驾驶的基础性功能[4-5]。其是指汽车在行驶过程中,通过安装在汽车前部的车距传感器来识别汽车前方的道路,同时通过速度传感器来采集主车的车速信号。当主车与前方车辆的间距小于或大于安全车距时,ACC 控制单元通过与制动系统、发动机控制系统(电动汽车为电机ECU)的协调动作,来改变制动力矩和发动机的输出功率,从而对汽车行驶速度进行控制,使主车与前方车辆始终保持安全距离,避免追尾事故的发生,同时提高通行效率。
汽车自适应巡航控制系统的工作模式有定速巡航模式、减速模式、跟随模式、加速模式、停车模式和启动模式等[6]。
①定速巡航模式。定速巡航模式是在主车探测到前方没有车辆或两车距离较远时,按驾驶员设定的车速进行行驶的模式。
②减速模式。当主车探测到同车道前方有车辆,且车辆的行驶速度低于主车速度时,主车将进入减速模式。
③跟随模式。当主车在减速模式下达到设定的跟车距离后,前车速度依然低于主车设定的最高车速,主车将进入跟随模式。
④加速模式。在跟随模式下,当前车突然加速或驶离本车道时,主车将进入加速模式。
⑤停车模式。在跟随模式下,如果前车降低速度直至停车,则主车也将降低速度直至停车。
⑥启动模式。在停车模式下,前车突然运行,主车也将启动运行,并再次进入跟随模式。
MATLAB 是美国MathWorks 公司研制的商业数学软件。2017 年,MathWorks 公司又顺势推出了MATLAB 自动驾驶工具箱。
汽车仿真场景是指在模拟现实世界中,通过各种具体情况而搭建的、专门用于仿真的虚拟场景。在MATLAB 中有三种具体的场景搭建方式,即使用程序搭建的方式、使用图形化界面搭建的方式、通过场景库导入的方式。本研究使用场景库导入的方式来搭建场景,然后生成程序,并分析各条重要指令的作用。
在MATLAB 命令窗口中输入“drivingScenarioDesigner”指令,从而打开场景设计界面,并通过“Open”指令来打开“Prebuilt Scenario”,从而选择不同的场景。场景库分为五个不同的库,选择“Intersections”中的“EgoVehicleGoesStraight_BicycleFrom-LeftGoesStraight_Collision”场景。可通过选择“3D Display”来启动3D 仿真模块,点击“Run”来运行此场景。
从本质上讲,导入的场景也是通过程序来运行的,且MATLAB 也提供了场景转换的程序接口,转换后的部分程序及指令如下所示。
1 scenario=drivingScenario (′Sample Time′,0.025);
2 roadCenters=[159 24 0;51 24 0];
3 laneSpecification=lanespec([2 2]);
4 road(scenario,roadCenters,′Lanes′,lane-Specification,′Name′,′Road′);
5 roadCenters=[110 79 0;110-30 0];
6 laneSpecification=lanespec ([3 3],′Width′,[3.6 3.6 3.6 3.6 3.6 3.6]);
7 road(scenario,roadCenters,′Lanes′,lane-Specification,′Name′,′Road1′);
第1 条指令是用来构建驾驶场景的指令,第2条和第5 条指令是用于构建驾驶场景中两条道路中间位置的指令,其中线坐标分别为x1=159、y1=24、z1=0,x1′=51、y1′=24、z1′=0 和x2=110、y2=79、z2=0,x2′=110、y2′=-30、z2′=0。两条中线相互垂直的两条路,即普通的十字路口。第3条和第6条指令是用来确定车道数量的指令,第3 条指令用于生成双向各两条的车道,第6 条指令用于生成双向各三条的车道,只是第6 条指令在生成车道的同时,也指定了车道的宽度为3.6 m。第4 条和第7 条指令是最终生成车道的指令,包括场景名称、车道中线、车道数和车道名字等参数。通过以上指令,可在场景中生成相互垂直的两条道路,且一条道路是四车道,另一条道路是六车道。
在MATLAB 中,simulink 的Adaptive Cruise Control System 模块是专门为自适应巡航仿真而设计的模块。该模块有5 个输入和1 个输出,5 个输入分别为主车的设定速度、安全时间间隔、主车车速、与跟踪车辆相对距离、与跟踪车辆相对速度。此外,该模块还可根据前车的行驶情况来自动调整主车的行驶速度以及与前车的距离。在满足ACC 最基本要求的同时,通过模型预测算法来进行最优控制。
使用simulink 建立的仿真模型如图1 所示,模型分为3 个部分,分别是目标车辆模型、感应数据模型和主车模型。其中,主车模型除了有车辆模型外,还有自适应巡航控制系统模块。
图1 自适应巡航控制系统仿真模型
参数设定如下,仿真时间为100 s,仿真步长为0.1 s,目标车辆初始位置为50 m,初始速度为25 m/s,主车初始位置为10 m,初始速度为20 m/s,巡航车速设定为30 m/s,间隔时间为1.4 s。仿真结果如图2所示。
图2 仿真结果
由图2 可知,刚开始时,目标车辆和主车距离较远,主车全速加速前行。在3~10 s 内,主车的加速度降低,这是为了保持与目标车辆的安全距离。10 s 后,目标车辆与主车的车速虽然都有所增加,但均保持安全距离。在13 s 左右,两车的实际距离大于安全距离,这是因为目标车辆的速度虽然在增加,但主车已达到设定的速度(30 m/s),所以主车处于定速巡航阶段。15 s 后主车的速度开始降低,但基于二者的安全距离足够,所以主车并未减速,仍定速行驶。随着目标车辆的车速不断降低,为了保持安全距离,主车的车速也开始降低。当目标车辆速度提升时,主车速度也随之提升,并进入循环状态。在整个控制过程中,实际相对距离始终大于安全距离,且当实际距离大于巡航设定车速和间隔时间乘积后,主车便以设定好的速度(30 m/s)定速巡航。
智能网联汽车在进行实车测试前都要进行仿真测试,仿真测试具有非凡意义。本研究先介绍了智能网联汽车的概念及自动驾驶的分级情况。通过MATLAB 来构建仿真场景,并说明场景构建时所用到的各种指令及其作用。最后介绍了自适应巡航系统的作用及工作原理,并通过MATLAB 自适应巡航控制系统模块的应用,进行自适应巡航系统的仿真测试。