閆豐雨 李剛 張心怡 盧銘昊
(遼寧工業大學汽車與交通工程學院)

無人駕駛技術在減輕駕駛員操縱負擔和提高車輛行駛安全性方面具有重要意義,控制系統是其核心部分,也是開發難點之一[1]。在傳統開發中,無人駕駛控制程序設計與驗證通常要在實際場地或特定場景下進行反復調試,這種調試時常受到場地與天氣因素限制,且需要大量可視化數據,但數據采集與存儲并不容易,所以文章提出了一個集程序開發、仿真驗證和數據采集與存儲于一體的控制系統開發平臺[2]。該系統給工程師提供了一套完整的開發工具,可以幫助工程師完成程序開發調試,并且縮短開發周期。經過驗證,該平臺可以達到預期效果。
模型預測控制致力于將更長時間跨度、甚至于無窮時間的最優化控制問題,分解為若干個更短時間跨度,或者有限時間跨度的最優化控制問題,并且在一定程度上仍然追求最優解[3]。模型預測控制主要由預測模型、在線滾動優化和反饋校正3 個要素組成。本控制系統采用基于運動學模型的模型預測控制,模型預測控制原理,如圖1 所示。

圖1 模型預測控制原理圖
其中k、k+1 分別表示當前時刻、下一時刻,橫軸k+m 到k+p 范圍內為預測時域。曲線u,yp分別代表系統的輸出和當前狀態,而yp與y 軸和r(·)圍成的面積為系統的累計誤差。
航向跟蹤預估控制算法的基本思想是預測無人駕駛汽車的航向變化趨勢,并將其計入到控制偏差中,這樣航向角的變化就可以影響控制器的輸出,也就是無人駕駛汽車的前輪轉角[5]。當無人駕駛汽車開始根據控制指令進行運轉的時候,要經過一個采樣周期T,但是此時的無人駕駛汽車的航向已經改變,也就是控制指令執行的時候已經有了一個采樣周期的延時,而且,當采樣周期一定,無人駕駛汽車縱向速度或其他影響因素不同時,航向的變化量也是不同的[6]。
在Simulink 控制模型中將期望航向與實際航向之差作為控制器的輸入量,控制器控制輸出量為無人駕駛汽車的前輪轉角,無人駕駛汽車輸出縱向速度、當前航向以及前輪轉角,作為控制算法的反饋量,從而形成能夠實時反饋的閉環控制,如圖2 所示。

圖2 航向跟蹤預估控制邏輯圖
無人駕駛汽車智能控制系統平臺的硬件部分主要分為整車控制器和EBS 緊急制動系統。
整車控制器設計主要運行智能算法,通過CAN 總線通訊、RS485 通訊、RS232 串口通訊以及普通IO 口通訊對整車的執行部件進行智能控制。
整車控制器采用意法半導體的STM32F4 系列的芯片STM32F405RGT6,內核為ARM Cortex-M4。內核處理速度高,車輛信息處理迅速。該芯片不僅內核主頻高,而且還具有非常豐富的外設。例如有bxcan 控制器、nvic 中斷控制器、串口,DMA、SPI、IIC、GPIO 等。針對控制器的要求,會使用的功能主要集中在CAN 通訊,串口通訊及DMA,GPIO 等開關量控制,如圖3 所示。

圖3 整車控制器示意圖
CAN 通訊、485 通訊和232 通訊等多種通訊方式可以提高控制器的兼容性,方便匹配各種通訊方式的其他控制器來對整車進行控制。485 通訊主要使用AMD2483 芯片將芯片端口電平轉換為滿足485 通訊標準的通訊電平。485 通訊電路,如圖4 所示。

圖4 485 通訊單元電路原理圖
2.2.1 邏輯處理單元
邏輯處理單元主要由2 個74 系列或非門芯片對整車的供電狀態進行監控,當發生故障時,該芯片通過邏輯判斷出故障設備,并直接通過輸出電平變化來驅動繼電器控制電磁閥開關,直接觸發緊急制動機械系統實現停車。電路原理圖,如圖5 所示。

圖5 邏輯處理單元電路原理圖
2.2.2 狀態鎖存單元
該裝置不僅可以對故障進行判斷處理,而且還可以將故障狀態鎖存住,只有將整車關閉后,修復故障,才可以解除安全狀態。鎖存單元主要由3 個雙路繼電器搭成的鎖存電路實現功能,原理如圖6 所示。

圖6 鎖存單元電路原理圖
2.2.3 自身供電保護單元
如果處于無人駕駛狀態期間,EBS 自身供電出現故障,將無法監測整車的安全狀態,所以一定要對這種危險進行處理。在該裝置上添加了自身供電自檢,并通過電容放電的方式來給EBS 提供足夠的能量實現整車斷電并執行緊急停車。
2.2.4 機械氣缸制動驅動單元
當邏輯單元對故障進行判斷后,會輸出相應的錯誤電平控制繼電器電平變化,驅動電磁閥觸發氣缸,實現緊急停車。
無人駕駛汽車智能控制系統平臺軟件部分主要使用MATLAB/Simulink 進行設計,軟件部分主要包括Simulink 自定義模型庫和數據處理App,其中包括算法庫WicTeam-algorithm、硬件接口庫 WicTeam-Control-Interface 和模型仿真庫WicTeam-simulation 3 個自定義開發庫。Simulink 自定義開發庫,如圖7 所示。

圖7 Simulink 自定義模型庫顯示界面
上述軟件庫主要可以滿足正常無人駕駛程序設計,使用硬件接口庫完成硬件控制器中的快速原型程序的搭建,并使用STM32-MAT 和STM32cubeMX 聯合生成嵌入式代碼,然后部署到整車控制器中。這樣可以極大地加快無人駕駛賽車的開發進度。
用戶可以直接調用算法庫中的模型,搭配上用戶設計參數,這樣就可以優化控制程序,使程序達到最佳控制效果。
仿真庫主要可以驗證整個程序的運行效果,在場地不滿足調試需要的情況下,完成試驗仿真調試,并且可以在實車測試之前對整車程序進行仿真驗證。
除了3 個接口庫,本系統還設計了1 個數據處理App(WicTeam—HT),WicTeam—HT 可以將整車控制器中采集到的試驗數據讀取到軟件中,并進行繪圖處理,繪制出的二維曲線可以反映出整車在執行無人駕駛任務過程中的參數變化情況,其曲線如圖8所示。

圖8 WicTeam-HT 界面示意圖
WicTeam_HT 通過控制器USB 端口直接與電腦相連,連接后將控制器數據存儲模塊的數據導入到電腦中,這些數據以.xls 格式存儲在控制器存儲單元中。通過MATLAB 將表格內的數據讀取到工作空間中,然后使用數據處理App 繪制出當前數據的曲線圖。
無人駕駛汽車智能算法開發平臺包括硬件快速原型控制器、軟件算法、接口和仿真庫,并且添加了數據可視化展示平臺,整個平臺如圖9 所示。

圖9 無人駕駛汽車智能控制系統開發平臺
為了驗證文章中的軌跡點生成方法及軌跡跟蹤效果,在MATLAB 中編寫了M 語言,設定汽車軸距為2.8 m,分別以車速30 km/h、60 km/h 進行了驗證,由于設定的軌跡長度是一定的,所以30 km/h 形成的軌跡點比60 km/h 形成的軌跡點多一倍。設定汽車狀態輸入向量為(x,y,θ),其中 x 為車輛橫向位置,y 為車輛縱向位置,θ 為車輛當前航向角。設置汽車的初始狀態為(0,0,60°),向量中以 0.05 s 的軌跡點采樣時間,每2 個采樣點之間車輛模型分10 步運行,軌跡點和前輪轉角的仿真結果,如圖10 和圖11 所示。從圖10 可以看出,實際軌跡點和參考軌跡點的誤差很小,最大偏差為0.19 m。從圖11 可以看出,平滑的前輪轉角更符合車輛行駛穩定性。

圖10 仿真跟蹤軌跡點

圖11 前輪轉角仿真結果
從圖10 中可以看出,仿真路徑與實車測試路徑很相近,說明整個軟件在設計程序過程中的效果很理想。
經過仿真測試與實車測試之后,需要進行實車道路測試,整車控制器通過CAN 總線接收環境感知系統處理得到的參考路徑數據,控制算法程序解算出所需要的目標控制量,并發送給實車上的執行部件實現無人駕駛控制的實時性、響應性和精確性,如圖12 所示。采用現有的MPC 控制算法模型對汽車的轉向系統進行控制,從圖12 可以看出,感知系統規劃好路徑之后,無人駕駛汽車能夠穩定地跟蹤參考路徑行駛。

圖12 實車道路測試示意圖
本無人駕駛智能控制系統平臺進行了無人駕駛領域主流的控制算法的研究,開發了控制算法仿真環境,配置了可生成代碼的框架,使得使用者能夠根據自己的需求生成目標代碼,并與控制器底層接口代碼進行集成。自行設計完成控制器硬件電路板,通過仿真分析和試驗驗證的手段,驗證了所設計的無人駕駛汽車智能控制系統平臺能夠滿足使用者的開發需求,并且控制算法能夠安全穩定地在控制器里運行。平臺同時具有一定的可擴展性,使用者可以根據需求進行二次開發。無人駕駛汽車智能控制系統平臺對新型智能電動汽車的發展具有重要的參考價值,無人駕駛汽車控制方式是當今及未來無人駕駛汽車控制的發展方向,為無人駕駛汽車控制算法的開發和驗證,提供了可靠的仿真驗證平臺,并且縮短了開發周期,對未來無人駕駛汽車的發展具有一定的指導意義。