周蘇 許科榮 支雪磊
(同濟大學,上海 201804)
主題詞:無線控制 四輪獨立驅動 ZigBee
輪轂電機驅動電動汽車結構簡單、質量輕、體積小、傳動效率高,在此基礎上進一步引入四輪獨立轉向技術,就形成了四輪獨立驅動/轉向電動汽車[1-3]。通常,車型開發過程中的初期測試不要求高速、遠距離,但考慮到安全問題(尤其是在無人駕駛控制策略的樣本學習期間),不適合由測試人員在測試底盤上直接進行實車操作。因此,有必要設計一套無線控制系統,使四輪獨立驅動/轉向電動汽車在無線控制下完成相應的行駛任務。
近年來,國內外研究人員開發了各種無線控制系統解決方案。晁楠[4]和喻濤[5]利用ZigBee無線網絡各自實現了對小車的控制;Saputra H M等[6]采用2.4 GHz頻段通信方式實現了無人機械車的無線控制;Barankova I等[7]利用ZigBee通信技術實現了鐵路運輸車輛的自動控制;魯哲等[8]利用ZigBee無線網絡為自動導引車(Automated Guided Vehicle,AGV)設計了無線通信系統。
本文根據四輪獨立驅動/轉向電動汽車開發階段的實車測試需求,選用ZigBee作為無線通信模塊,設計上位機控制軟件,用Python編程語言編寫車載信息處理單元的主程序,開發無線控制系統,并進行臺架和實車測試。
系統主要由通信模塊(無線通信模塊和CAN通信模塊)、信息處理單元和上位機控制軟件構成,如圖1所示。信息處理單元將接收到的上位機控制信息轉成對應的CAN控制指令發送至整車控制器(Vehicle Controller Unit,VCU),完成整車控制。同時,VCU的狀態消息也可以通過CAN總線,經信息處理單元轉換后,由無線模塊發送到上位機。

圖1 系統模塊框圖
上位機控制軟件和信息處理單元的核心邏輯是支撐整個系統的基礎。為滿足快速開發、便捷調試的需求,采用Raspberry Pi作為信息處理單元的硬件平臺,采用Python編程語言實現無線模塊和CAN模塊的基本配置,并根據無線通信協議和CAN模塊手冊編寫了相應的通信代碼。同時,信息處理單元的主程序用于實現無線消息與CAN消息之間的互相轉換與收發。上位機的控制軟件采用LabVIEW設計,實現了控制消息(模式、加速、轉向、制動等)的輸入與發送和狀態消息(速度、電量、電流等)的接收與顯示。為保證系統信息傳輸的準確性,在收發數據的過程中加入了循環冗余碼校驗機制。
ZigBee技術具有數據通信可靠性高、實時性強、同步性好和控制網絡范圍可擴展等優點,其無線通信網絡新增節點的典型網絡參與時間為30 ms,節點從休眠狀態激活進入工作狀態的典型時延為15 ms,處于工作狀態的節點的典型存取時間為15 ms[9]。本文涉及的系統控制對報文收發時間間隔的要求為50 ms,因此,Zig?Bee技術可以滿足實時性的要求。此外,本文所涉及車輛無線控制系統的設計目標是實現200 m以內的無線雙向通信(控制數據發送以及狀態數據接收)和快速組網等。綜合以上考慮,選擇ZigBee作為系統的無線通信方式。
CAN總線控制器采用MCP2515,收發器采用TJA1050。選用的模塊支持CAN V2.0B技術規范,通信速率為1 Mb/s,還支持標準和擴展數據幀及遠程幀、0~8字節長的數據字段,可以滿足系統需求。
采用Python編程語言實現信息處理單元的主要邏輯,包括主要通信模塊的初始化、ZigBee消息收發循環和CAN消息收發循環。
3.2.1 主程序邏輯
信息處理單元需要同時收發ZigBee消息和CAN消息。主程序利用Threading模塊多線程控制消息收發,其中主線程在通信模塊初始化完成后進行ZigBee消息收發,子線程進行CAN消息收發,2個線程間通過全局變量進行互通。工作流程如圖2所示。

圖2 信息處理單元主程序工作流程
3.2.2 ZigBee消息收發循環
ZigBee模塊采用串口控制,因此,ZigBee無線消息收發等效于讀寫串口消息。其基本思路是輪詢,即先判斷處理來自串口的數據,再判斷處理需要發到串口的數據,通過這兩個過程形成大循環,實現ZigBee無線消息收發。代碼邏輯如圖3所示。

圖3 ZigBee無線消息處理邏輯
3.2.3 CAN消息收發循環
CAN消息收發循環中存在2個判斷,分別用于判斷是否收到新的CAN消息和是否存在待發送的CAN消息,如圖4所示。
處理CAN消息發送的子函數時,首先需判斷待發送的數據是否合法,本文選用G(X)=X8+X5+X3+X2+X+1作為循環冗余碼校驗多項式。驗證通過則將數據通過CAN發送出去,否則不執行CAN發送。

圖4 CAN消息處理邏輯
上位機通過LabVIEW編寫,利用其VISA串口通信工具對ZigBee模塊進行數據讀寫。VISA本身不具備編程能力,它是一個高層應用程序編程接口(Application Programming Interface,API),通過調用底層驅動程序實現對模塊的編程[10]。特殊點在于VISA串口讀寫均以字符串形式進行,因此,需要將控制量和狀態量定義為單字節或多字節數據,通過字符數組的方式將這些數據串連起來,再通過控件將其轉為字符串類型。
3.3.1 上位機的控制邏輯
上位機需要實現對ZigBee模塊無線消息的收發,處理用戶輸入的控制數據,處理并顯示通過ZigBee傳送的來自CAN總線的狀態數據。上位機基本工作流程如圖5所示。首先初始化串口通信,為處理無線消息做準備,同時進行前面板及全局變量的初始化。隨后進行大循環,其主要實現前面板的操作響應和內容顯示,終止條件是用戶給出終止信號。對前面板響應的同時,另有2個支路進行串口數據的收發,與前面板進行數據交互,分別進行各自的數據處理。

圖5 上位機的基本工作流程
3.3.2 上位機的控制界面及程序框圖
用LabVIEW搭建的上位機通常由前面板和程序框圖構成,一般為多線程并行。根據程序框圖的構建情況,程序運作流程可以是串行、并行或者用戶事件觸發、時間觸發等。根據上位機的基本工作流程繪制上位機控制界面,如圖6所示。
該控制界面主要實現控制數據輸入和狀態數據顯示功能。輸入的控制數據包括啟動、停止按鈕,模式選擇框和加速(Acceleration)、轉向(Steering)、制動(Breaking)3個滑動軸。所有控制模式包括上電、驅動、制動、倒車、停車(Park)、原地轉向(順時針、逆時針)、側行、緊急關機(ERROR)。顯示的狀態數據包括車速(Speed)、電池電量、電流以及驅動電機狀態反饋和轉向電機狀態反饋。
依照上位機的控制邏輯對該界面編程后得到對應的上位機程序框圖,如圖7所示。
將信息處理單元及相關通信模塊安裝在四輪獨立驅動/轉向電動汽車上,如圖8所示。通電后,該系統能正常工作。利用車載VCU的在線測試工具MotoHawk可以便捷地進行CAN報文的實時收發測試。經測試,上位機和信息處理單元的收發功能均正常工作,未經正確循環冗余碼校驗處理的數據無法通過信息處理單元傳送到CAN總線或上位機。
由于轉向舵機與車輪均存在安裝誤差,在測試整體功能前需要對車輪進行標定。與此同時,通過轉向標定還可以測試上位機對車輪控制的準確性。轉向舵機控制脈沖寬度調制(Pulse Width Modulation,PWM)信號,實現對車輪轉角的控制。車輪安裝后,左前輪和右后輪的轉向范圍為-45°~90°,右前輪和左后輪的轉向范圍為-90°~45°。通過上位機界面的轉向滑動軸對車輪進行控制,每次標定都針對單一車輪進行,其他輪被設置屏蔽。標定結果如表1所示。
臺架測試主要測試模式切換、轉向角度變化、驅動、制動等功能能否正常實現。經測試,所有功能均能正常工作,符合預期。其中原地轉向模式的臺架測試如圖9所示。
在四輪獨立驅動/轉向電動汽車其他相關設備安裝就緒后,對該無線控制系統進行了實車測試,如圖10所示。

圖7 上位機的程序框圖

圖8 信息處理單元及相關通信模塊

表1 車輪轉向角標定結果 %

圖9 臺架測試(原地轉向模式)
上位機通過無線控制系統給出的控制指令數據與GPS實際測得的車速數據存在一定差異,因此在實車測試過程中進行了車速測量和標定的工作。測試時,分別設定目標車速為1 km/h、2 km/h、3 km/h、4 km/h、5 km/h、6 km/h,采集控制器獲得的無線指令數據和GPS測速儀數據。其中2 km/h和4 km/h目標下的測試數據如圖11所示。

圖10 實車測試
根據測試的數據,在不同的速度下,取相同時間點的GPS測量速度均值,以此對應關系作為待標定的數據,如表2所示。
根據表2所示的數據,進行多項式曲線擬合,結果為F(X)=0.159 6X2+0.893 5X+0.126 4。對該多項式進行驗證,以無線控制系統給出的控制指令數據作為輸入,得出擬合標定后的結果,與GPS的數據進行對比。其中2 km/h和4 km/h目標下的標定結果對比如圖12所示。
根據上述數據,可得擬合多項式計算后的數據誤差率。以不同目標速度下的均值計算得到的結果如表3所示。結果顯示,同組別內,速度較低時(1 km/h、2 km/h)未經標定的數據更加準確,速度較高時標定后的數據誤差率更低。

圖11 不同目標車速下的測試數據

表2 待標定的數據 km/h

圖12 不同目標車速下的標定結果對比

表3 擬合標定后的結果對比
由實車測試結果可知,無線控制系統能夠將控制指令準確地發送給VCU。通過監控數據的對比可知,車輛能夠較好地跟隨由無線控制系統給定的車速。
本文設計了用于四輪獨立驅動/轉向電動汽車的無線控制系統,包括上位機控制軟件、信息處理單元和通信模塊,實現了ZigBee無線消息和CAN消息的互相轉換,并加入了循環冗余碼檢驗保證了通信安全性。經轉向標定、臺架測試和實車測試,該無線控制系統可以正常工作,可用于智能駕駛或無人駕駛車載環境典型樣本的收集和控制策略學習。