賈東明 朱若嶺
(河南交通職業(yè)技術(shù)學(xué)院,河南 鄭州 450000)
智能網(wǎng)聯(lián)汽車在投放市場前要進行測試,從而確認(rèn)其性能。但許多涉及汽車安全的新技術(shù),因其研發(fā)受到外界環(huán)境的影響和試驗安全的制約,難以有效地開展,而真實道路測試效率較慢。目前,很多車企都傾向于選擇自動駕駛仿真測試來測試新技術(shù)[1-3]。本研究以MATLAB 軟件為例,進行自動駕駛仿真測試中的自適應(yīng)巡航控制系統(tǒng)的仿真測試。
汽車自適應(yīng)巡航控制(ACC)系統(tǒng)是在L1 或L2級別就要實現(xiàn)的功能,也是更高級別的自動駕駛的基礎(chǔ)性功能[4-5]。其是指汽車在行駛過程中,通過安裝在汽車前部的車距傳感器來識別汽車前方的道路,同時通過速度傳感器來采集主車的車速信號。當(dāng)主車與前方車輛的間距小于或大于安全車距時,ACC 控制單元通過與制動系統(tǒng)、發(fā)動機控制系統(tǒng)(電動汽車為電機ECU)的協(xié)調(diào)動作,來改變制動力矩和發(fā)動機的輸出功率,從而對汽車行駛速度進行控制,使主車與前方車輛始終保持安全距離,避免追尾事故的發(fā)生,同時提高通行效率。
汽車自適應(yīng)巡航控制系統(tǒng)的工作模式有定速巡航模式、減速模式、跟隨模式、加速模式、停車模式和啟動模式等[6]。
①定速巡航模式。定速巡航模式是在主車探測到前方?jīng)]有車輛或兩車距離較遠(yuǎn)時,按駕駛員設(shè)定的車速進行行駛的模式。
②減速模式。當(dāng)主車探測到同車道前方有車輛,且車輛的行駛速度低于主車速度時,主車將進入減速模式。
③跟隨模式。當(dāng)主車在減速模式下達(dá)到設(shè)定的跟車距離后,前車速度依然低于主車設(shè)定的最高車速,主車將進入跟隨模式。
④加速模式。在跟隨模式下,當(dāng)前車突然加速或駛離本車道時,主車將進入加速模式。
⑤停車模式。在跟隨模式下,如果前車降低速度直至停車,則主車也將降低速度直至停車。
⑥啟動模式。在停車模式下,前車突然運行,主車也將啟動運行,并再次進入跟隨模式。
MATLAB 是美國MathWorks 公司研制的商業(yè)數(shù)學(xué)軟件。2017 年,MathWorks 公司又順勢推出了MATLAB 自動駕駛工具箱。
汽車仿真場景是指在模擬現(xiàn)實世界中,通過各種具體情況而搭建的、專門用于仿真的虛擬場景。在MATLAB 中有三種具體的場景搭建方式,即使用程序搭建的方式、使用圖形化界面搭建的方式、通過場景庫導(dǎo)入的方式。本研究使用場景庫導(dǎo)入的方式來搭建場景,然后生成程序,并分析各條重要指令的作用。
在MATLAB 命令窗口中輸入“drivingScenarioDesigner”指令,從而打開場景設(shè)計界面,并通過“Open”指令來打開“Prebuilt Scenario”,從而選擇不同的場景。場景庫分為五個不同的庫,選擇“Intersections”中的“EgoVehicleGoesStraight_BicycleFrom-LeftGoesStraight_Collision”場景??赏ㄟ^選擇“3D Display”來啟動3D 仿真模塊,點擊“Run”來運行此場景。
從本質(zhì)上講,導(dǎo)入的場景也是通過程序來運行的,且MATLAB 也提供了場景轉(zhuǎn)換的程序接口,轉(zhuǎn)換后的部分程序及指令如下所示。
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 條指令是用來構(gòu)建駕駛場景的指令,第2條和第5 條指令是用于構(gòu)建駕駛場景中兩條道路中間位置的指令,其中線坐標(biāo)分別為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條指令是用來確定車道數(shù)量的指令,第3 條指令用于生成雙向各兩條的車道,第6 條指令用于生成雙向各三條的車道,只是第6 條指令在生成車道的同時,也指定了車道的寬度為3.6 m。第4 條和第7 條指令是最終生成車道的指令,包括場景名稱、車道中線、車道數(shù)和車道名字等參數(shù)。通過以上指令,可在場景中生成相互垂直的兩條道路,且一條道路是四車道,另一條道路是六車道。
在MATLAB 中,simulink 的Adaptive Cruise Control System 模塊是專門為自適應(yīng)巡航仿真而設(shè)計的模塊。該模塊有5 個輸入和1 個輸出,5 個輸入分別為主車的設(shè)定速度、安全時間間隔、主車車速、與跟蹤車輛相對距離、與跟蹤車輛相對速度。此外,該模塊還可根據(jù)前車的行駛情況來自動調(diào)整主車的行駛速度以及與前車的距離。在滿足ACC 最基本要求的同時,通過模型預(yù)測算法來進行最優(yōu)控制。
使用simulink 建立的仿真模型如圖1 所示,模型分為3 個部分,分別是目標(biāo)車輛模型、感應(yīng)數(shù)據(jù)模型和主車模型。其中,主車模型除了有車輛模型外,還有自適應(yīng)巡航控制系統(tǒng)模塊。
圖1 自適應(yīng)巡航控制系統(tǒng)仿真模型
參數(shù)設(shè)定如下,仿真時間為100 s,仿真步長為0.1 s,目標(biāo)車輛初始位置為50 m,初始速度為25 m/s,主車初始位置為10 m,初始速度為20 m/s,巡航車速設(shè)定為30 m/s,間隔時間為1.4 s。仿真結(jié)果如圖2所示。
圖2 仿真結(jié)果
由圖2 可知,剛開始時,目標(biāo)車輛和主車距離較遠(yuǎn),主車全速加速前行。在3~10 s 內(nèi),主車的加速度降低,這是為了保持與目標(biāo)車輛的安全距離。10 s 后,目標(biāo)車輛與主車的車速雖然都有所增加,但均保持安全距離。在13 s 左右,兩車的實際距離大于安全距離,這是因為目標(biāo)車輛的速度雖然在增加,但主車已達(dá)到設(shè)定的速度(30 m/s),所以主車處于定速巡航階段。15 s 后主車的速度開始降低,但基于二者的安全距離足夠,所以主車并未減速,仍定速行駛。隨著目標(biāo)車輛的車速不斷降低,為了保持安全距離,主車的車速也開始降低。當(dāng)目標(biāo)車輛速度提升時,主車速度也隨之提升,并進入循環(huán)狀態(tài)。在整個控制過程中,實際相對距離始終大于安全距離,且當(dāng)實際距離大于巡航設(shè)定車速和間隔時間乘積后,主車便以設(shè)定好的速度(30 m/s)定速巡航。
智能網(wǎng)聯(lián)汽車在進行實車測試前都要進行仿真測試,仿真測試具有非凡意義。本研究先介紹了智能網(wǎng)聯(lián)汽車的概念及自動駕駛的分級情況。通過MATLAB 來構(gòu)建仿真場景,并說明場景構(gòu)建時所用到的各種指令及其作用。最后介紹了自適應(yīng)巡航系統(tǒng)的作用及工作原理,并通過MATLAB 自適應(yīng)巡航控制系統(tǒng)模塊的應(yīng)用,進行自適應(yīng)巡航系統(tǒng)的仿真測試。