田 真,張曼雪,董婷婷,郭永斌,金啟前,趙福全
(吉利汽車研究院,浙江,杭州 311228)
傳統的開發模式存在很多缺點,如開發人員間信息交流以文檔為基礎、代碼手寫、修訂錯誤較困難且代價較大。為了提高產品開發的效率,同時也減輕工程師的工作量,整車控制系統開發提出了V模式的開發流程。該流程的主要特點是開發、編程和測試,總是在同一環境下工作,整個開發過程都可以得到驗證。使用該模式可以加速和簡化開發流程,實時修訂開發過程中出現的錯誤。
模型單元測試在V模式的最初階段,對各個模塊的功能進行驗證。本文對某新能源車型整車控制系統仿真模型的核心功能模塊進行分析,同時分析測試方法,并根據測試用例,對模塊功能進行單元測試及驗證。
整車控制系統的V模式開發流程,主要包括控制方案的設計、離線仿真、快速控制原型、產品代碼生成、硬件在環仿真測試和標定,如圖1所示。
(1)建立對象數學模型。
(2)設計控制方案。
(3)以Matlab[2]為平臺建立模型并進行仿真分析。
(1)保留需要下載到dSPACE中的模塊。
(2)用硬件接口關系代替原來的邏輯連接。
(3)對I/O進行配置。
(1)自動生成代碼。
(2)自動下載到整車控制器硬件系統中。
硬件在環(Hardware-in-loop,HIL)即指由硬件控制器與模擬器之間形成一個以數據、信號進行交流的閉環測試系統。通過虛擬的整車駕駛環境的建立,與實際的控制器硬件之間建立循環系統,測試該控制器在虛擬環境下的各種功能。
基于CAN總線的標定協議(CAN Calibration Protocol,CCP)是一個連接開發工具和ECU的軟件接口協議,該協議定義了模塊標定、數據采集和存取flash中運行數據的方法,在電池管理系統中,可以利用CCP實現以下功能。
(1)實時在線測試。
(2)各傳感器檢測和標定。
(3)報警或出錯值的調整。
(4)程序下載。
單元測試的對象是模型的最小單位——模塊。單元測試應對模塊中所有的功能設置測試用例,對覆蓋度不足的測試用例進行補充及測試,校核單元測試結果,評估測試結果的正確性。通過單元測試用例,可以保證所建模型功能達到預期的運行結果。
以整車的轉矩管理模塊為例,其功能是將轉矩分配給發動機、發電機和電動機[3],對于純電動車型,此模塊決定如何對電機的轉矩輸出進行分配。因此有關的轉矩管理器子模塊決定了整車轉矩的分布,細分為運行模式判定、轉矩輸出管理等子模塊。單元測試針對最低層次的細分功能模塊進行測試及功能驗證。
本文以轉矩管理模塊中的TED子模塊為例,進行單元測試的舉例說明。TED為純電動模式轉矩模塊,其功能目標為以下兩點。
(1)如果純電動(state Electric Drive)使能,驅動電機為唯一車輛驅動裝置。
(2)發動機和ISG電機轉矩目標值為0,驅動目標轉矩發送至驅動電機控制-IPU。
在圖7所示的子模塊中,根據車輪處轉矩需求計算驅動電機轉矩值,同時轉矩的變化斜率受到限制。轉矩上升與下降的斜率限值對稱,在相應map中定義并可標定。電機轉矩限值可設為系統峰值限值或持續運行限值,并受限于加速踏板傳感器限制的車輪處轉矩需求值。
單元測試框架如圖8所示,包括測試信號輸入(simulate Input)、TED功能模塊(TST_TED_tqStateEdrive)、結果比較(compare Signals)和輸出信號確認(verify Signals)模塊。
(1)simulate Input模塊說明
simulate Input模塊輸入包含2組測試信號:Test Signals_R001/2,分別對應2組測試用例。通過switch中testcase選擇按照哪組測試用例進行測試。2組測試用例的輸入(testSig_Bus)均包含相同名稱的信號,并且信號分為兩部分,即包含所有的TED模塊的輸入信號和輸出目標信號。其中模塊的輸入信號部分輸入至TED功能模塊中作為功能模塊的輸入信號。
(2)TED功能模塊說明
此模塊應用了“模型引用”,對TED單元進行測試。“模型引用”方法適于獨立地進行單元測試。此模塊的輸出信號,即對應于輸入信號的功能模塊輸出結果,輸入至下一模塊進行結果對比分析。
(3)compare Signals模塊說明
此模塊為2個測試用例輸出結果的對比分析模塊,對testSig_Bus中設定的輸出目標結果與模型實際測試輸出結果進行對比,以測試模型單元的輸出是否符合預定的結果。
(4)verify Signals模塊說明
此模塊對測試過程進行確認,如果測試未通過則該模塊報錯,出錯原因可能是模塊本身有誤或測試用例設置不當,需要測試工程師排查錯誤。
測試目標:驅動電機轉矩需求輸出正確。
模型輸出的驅動電機轉矩需求值符合系統限值。當ted_bEmotSysPeakLimAcv_C(電機系統峰值限值標志位)標定為0時,驅動電機轉矩限定在scm_tqEmotNormLL(驅動電機轉矩下限)~scm_tqEmotNormUL(驅動電機轉矩上限)之內;當標定為1時,驅動電機轉矩限定在scm_tqEmotPeakLL(驅動電機峰值轉矩下限)~ scm_tqEmotPeakUL(驅動電機峰值轉矩上限)之內。此外,轉矩變化的斜率受限,斜率限值取決于前一個循環步長下由TMO(轉矩輸出管理)模塊輸出的電機轉矩需求的絕對值和車速。上升和下降斜率相等。根據模塊的功能定義,通過設定合適的模塊輸入值并進行仿真,監控模型輸出結果的狀態并與期望的結果進行對比。
測試用例設置:
ted_bEmotSysPeakLimAcv_C(電機系統峰值限值標志位)設置為0,scm_tqEmotNormLL(電機轉矩下限),scm_tqEmotNormUL(電機轉矩上限)分別設為50 N·m、-50 N·m。
其余與本測試無關,可設為1。
輸出目標值(驅動電機轉矩需求)設定如下。
測試過程:運行模型,對結果的目標期望值(testSig_Bus-test-Sig_ted_tqEmotReq)與模型輸出值[testResult_Bus-ted_tqEmot Req(驅動電機需求轉矩)]進行對比,當模型測試的輸出值符合設定的期望結果值時,輸出result值恒為1;當模型測試的輸出值不符合設定的期望結果值時,輸出result值在0.5 s時從1變至0;在模型中對assertion模塊進行設置,信號驗證模型中的聲明模塊,判斷輸入信號是否為0,如果輸入信號全為非0值,該模塊不動作,當測試未通過時,即對應用例端口為0時,則中斷模擬并顯示錯誤信息。如圖11所示,測試通過。
TED-Testcase2的基本信息如下。
測試目標:正確確定驅動電機轉矩限值,即來自DTR模型的轉矩上下限值dtr_tqWhlByAccPSenUL(車輪處轉矩上限)、dtr_tqWhlByAccPSenLL(車輪處轉矩下限)需轉化為驅動電機轉矩限值,并且電機轉矩的限值在系統限值scm_tqEmotPeakLL(驅動電機峰值轉矩下限)~scm_tqEmotPeakUL(驅動電機峰值轉矩上限)、scm_tqEmotNormLL(驅動電機正常轉矩下限)~scm_tqEmotNormUL(驅動電機轉矩上限)之內。當ted_bEmotSysPeakLimAcv_C(電機系統峰值限值標志位)標定為0時,驅動電機轉矩限定在scm_tqEmotNormLL~scm_tqEmotNormUL之內。
測試過程:對結果的目標期望值(test Sig_Bus-testSig_ted_tqEmotULtestSigted_TqEmotLL)分別與模型測試輸出(testResult_Bus-ted_tqEmotUL、ted_tqEmotLL)進行對比, 當對應值分別相等時,輸出result值恒為1,測試通過,否則測試未通過。在verify Signals模塊中對assertion模塊進行設置,當測試未通過時,則中斷模擬并顯示錯誤信息。
測試用例設置:設置的輸入參數數值如圖12所示,設置最大最小驅動電機限值、加速踏板最大最小轉矩需求和傳動比,其余數值對testcase2無影響,故可設置為1。
測試結果:測試結果如圖14所示,來自于DTR模型的轉矩上下限值 dtr_tqWhlByAccPSenUL、dtr_tqWhlByAcc-PSenLL(車輪處轉矩)轉化為驅動電機轉矩限值為-100~25N·m,系統限值scm_tqEmotNormLL(驅動電機正常轉矩下限)~scm_tq-EmotNormUL(驅動電機正常轉矩上限)為-50~50N·m,因此期望的上下限值testSig_ted_tqEmotUL(TED模塊輸出的電機轉矩上限)、testSig_ted_tqEmotLL(TED輸出的驅動電機轉矩下限)輸出結果設定為-50~25N·m。經測試,模型測試輸出結果ted_tqEmotUL、ted_tqEmotLL與期望值相等,因此測試結果為1,測試通過。
上面兩個測試用例覆蓋需要測試的需求測試點,可以對模塊功能進行驗證。

表1 文中縮寫定義表
本文結合純電動車的實例對基于V模式的開發流程進行了介紹,驗證了采用基于V模式的開發方式可以提高整車控制器的開發效率,同時減輕了工程師的工作量,并且保證了產品的穩定性和有效性。
單元測試在模型建立及仿真階段,通過測試對整車性能進行分析驗證,保證所建模型功能達到預期的運行結果以及下個階段的工作能夠順利進行。
[1]戴海峰,魏學哲,孫澤昌. V -模式及其在現代汽車電子系統開發中的應用[J].機電一體化,2006(6):20-24.Dai Haifeng,Wei Xuezhe,Sun Zechang.V-mode and Its Application in Development of Modern Automabile Electronics Systems[J]. Mechatronics,2006(6):20-24. (in Chinese)
[2]張志涌.精通MATLAB 6.5版[M].北京:北京航空航天大學出版社,2003.Zhang Zhiyong. MATLAB 6.5[M]. Beijing:Beihang University Press,2003. (in Chinese)
[3]EHSANI M,Gao Yimin,EMADI A.現代電動汽車、混合動力電動汽車和燃料電池車——基本原理、理論和設計[M].北京:機械工業出版社,2010.EHSANI M,Gao Yimin,EMADI A. Modern Electric,Hybrid Electric Vehcles and Fuel Cell Vehicles—Basic Principles,Theory and Design[M]Beijing:China Machine Press,2010. (in Chinese)