王貴勇, 陳 余, 姚國仲, 鄧冬榮, 申立中
(昆明理工大學 云南省內燃機重點實驗室,云南 昆明 650500)
硬件在環(huán)(Hardware-in-the-Loop,HIL)測試是發(fā)動機電子控制單元(Electronic Control Unit,ECU)V開發(fā)模式中保證質量的關鍵一步[1],測試用例作為HIL測試的測試規(guī)章,規(guī)定了被測ECU各功能的測試過程及評判規(guī)則,是HIL測試中不可或缺的一部分,在測試前需要完成測試用例的開發(fā)。
目前,國內外對HIL測試用例開發(fā)的研究主要有兩個方面:① 隨著汽車電控技術與新能源汽車產業(yè)的迅速發(fā)展,HIL測試逐漸從傳統(tǒng)的對發(fā)動機ECU的測試轉變?yōu)閷嚿砜刂破?、自動變速箱控制單元、新能源汽車整車控制器與電池管理系統(tǒng)等的測試[2-5],相應的測試用例需要根據測試對象功能特性的不同重新開發(fā);② 隨著發(fā)動機ECU控制功能越來越多,測試用例成倍增加,為了保證高效、高質的HIL測試,普遍采用自動化測試,這就要求測試用例在開發(fā)過程中能夠快速生成與自動執(zhí)行[6-7]。上述研究內容可概括為對測試用例類型、生成方法、執(zhí)行方式等方面的橫向擴展,即實現(xiàn)了測試用例開發(fā)廣度上的研究創(chuàng)新。在測試用例測試深度方面通過對各高校及科研機構相關文獻的研究分析可知,目前國內無論是傳統(tǒng)內燃機ECU的測試用例還是新能源汽車整車控制器的測試用例,普遍采用黑盒測試思想開發(fā)[8-10]。黑盒測試用例在HIL測試時關注ECU對外總體控制功能是否正常而不考慮輸入信號在ECU內部功能模塊中的控制過程。隨著柴油機ECU控制策略越來越復雜,內部功能模塊越來越多,在當前高效、高質的V開發(fā)模式要求下,HIL的測試目的便不能僅停留在對ECU總體控制功能測試層面,而是要將測試深入至ECU各功能模塊中,顯然黑盒測試用例在這樣的測試目的下測試深入程度不足。因此,面對當前測試程度不斷深入的ECU HIL測試目的,需要將新測試思想融入HIL測試及其用例開發(fā)中,使基于新思想開發(fā)出的測試用例能夠將測試深入至ECU各功能模塊內部。
在研究了灰盒測試與柴油機ECU HIL黑盒測試用例開發(fā)方法的基礎上,從基于灰盒的ECU HIL測試目的出發(fā),將灰盒測試思想應用于測試需求分析和測試用例設計兩個開發(fā)階段,提出了一種基于灰盒測試的HIL測試用例開發(fā)方法,并以柴油機ECU起動工況噴油量計算模塊為對象進行了方法應用與實驗驗證。對比黑盒測試用例,灰盒測試用例可為ECU HIL測試增加更多測試點與監(jiān)控參數,對提高ECU控制模塊內部測試錯誤發(fā)現(xiàn)率、保障ECU開發(fā)質量具有一定意義。
灰盒測試是一種介于黑、白盒測試之間的測試,不僅關注被測對象輸入、輸出及響應關系,也關注被測對象內部運行情況[11]。這種關注不像白盒測試那樣完整、詳細,只是基于對被測對象內部細節(jié)的有限認知,通過對被測對象內部關鍵功能點、參數實施監(jiān)控來判斷運行情況。圖1為灰盒測試原理。
圖1 灰盒測試原理
HIL測試目的決定了采用何種測試思想進行測試及用例開發(fā),黑、白、灰盒3種測試思想是根據各自特點從完全不同的角度考慮測試,因而對測試對象具有不同的測試深度。處于V開發(fā)模式階段的ECU,軟硬件質量還不穩(wěn)定,HIL測試的目的是根據虛擬柴油機各運行工況完成ECU各控制模塊的功能驗證。
基于黑盒的HIL測試能夠滿足上述測試目的,測試時將各控制模塊當做一個個黑盒進行測試,只考慮輸入信號本身及其組合關系是否滿足功能要求以及輸出信號是否與輸入信號控制關系正確,而不考慮功能實現(xiàn)的具體過程[12]。隨著柴油機電控功能越來越多,柴油機ECU需要在短時間內對大量變化迅速的信號進行接受與處理,這些信號一部分來自外部傳感器輸入,另一部分則屬于ECU控制模塊內部參數。黑盒測試用例因其本身特點無法對ECU控制模塊內部參數及功能點進行測試,故測試點及評價參數不夠完善,測試出現(xiàn)問題時難以精準定位故障。
基于白盒的HIL測試同樣能滿足HIL測試目的,白盒測試用例把ECU各控制模塊的實現(xiàn)過程及路徑剖析的較為全面、透徹,因而能對ECU控制模塊內所有功能點及參數進行監(jiān)控,測試深度較深。但白盒測試用例測試點多且復雜,測試時毫無側重點可言,測試數據及評價參數將非常繁雜,總體測試時間會極大地延長,影響測試效率。
為了實現(xiàn)柴油機ECU HIL測試目的且在保證HIL測試效率的同時將測試深入到ECU各控制模塊內部,從灰盒測試角度對ECU HIL進行測試考慮。根據灰盒測試特點,灰盒測試用例在HIL測試時能夠對柴油機ECU各控制模塊內部關鍵功能點及運行參數進行監(jiān)控,可對ECU控制功能的內部實現(xiàn)情況進行判斷,測試不通過時測試人員可快速追蹤關鍵功能點的實現(xiàn)情況,并根據運行參數準確定位故障模塊,測試深度符合V開發(fā)模式階段要求。
基于灰盒的柴油機ECU HIL測試目的決定了測試用例開發(fā)須基于灰盒測試,圖2為柴油機ECU HIL灰盒測試用例開發(fā)方法,灰盒測試思想主要應用于測試需求分析和測試用例設計兩部分。
圖2 柴油機ECU HIL灰盒測試用例開發(fā)方法
HIL測試成敗的關鍵在于ECU在虛擬柴油機各運行工況下各功能控制模塊是否都得到了功能驗證[13]。柴油機ECU HIL黑盒測試用例開發(fā)方法從ECU與柴油機聯(lián)系的外部輸入輸出信號方面進行測試需求分析,由此確定輸入輸出信號測試點,灰盒測試用例開發(fā)方法在此基礎上,測試需求分析時還對ECU各功能控制模塊相應控制策略進行研究分析,從中找到影響各模塊運行的內部關鍵功能點及參數并設置測試點進行測試、監(jiān)控。測試用例設計階段是對測試需求分析結果中各測試點充分運用黑、白盒測試的各種具體測試用例設計方法以確定測試點中諸如控制變量、測試步驟等測試用例的基本要素,規(guī)劃測試流程與確定測試判斷準則,最終實現(xiàn)對測試點細化與擴充完成測試用例編寫的過程。
在柴油機ECU HIL灰盒測試用例開發(fā)方法中,測試需求分析過程是一個難點,在此階段測試用例開發(fā)人員需要從錯綜復雜、相互關聯(lián)的ECU控制策略體系中找到影響當前測試模塊運行的關鍵功能點、內部參數與外部輸入信號,并分析柴油機不同運行工況以確定測試條件與測試場景。相比較黑盒測試用例開發(fā)方法,這就要求測試用例開發(fā)人員除了要熟悉各類測試方法與測試技術,還要對ECU各功能模塊控制策略及ECU控制柴油機過程、原理有深入認識。
柴油機起動工況較為短暫,因而對ECU在此工況下功能控制的可靠性及穩(wěn)定性有一定要求[14]。分析ECU起動工況控制策略體系可知,其內部起動噴油量計算模塊是影響該工況正常運行的關鍵模塊,因此本文使用灰盒測試用例開發(fā)方法對該模塊進行HIL測試用例開發(fā)與方法驗證。
2.1.1 ECU控制策略分析
圖3為起動噴油量計算模塊控制策略。由圖3可知,在該控制策略中,冷卻液溫度是影響起動噴油量計算的關鍵外部輸入信號,起動噴油量是關鍵外部輸出信號,同時起動基本轉矩、起動修正轉矩和起動需求轉矩是該模塊關鍵內部參數,起動基本轉矩、起動轉矩修正MAP插值與起動需求轉矩邏輯加運算是該模塊內關鍵功能點。根據灰盒測試思想,需要對上述關鍵外部輸入、輸出信號及關鍵內部參數、功能點設置對應測試點進行監(jiān)控。
圖3 起動噴油量計算模塊控制策略
2.1.2 功能點-測試點轉化
測試點是指測試用例要驗證的功能點。功能點-測試點轉化是根據被測ECU控制模塊中各功能點、關鍵內外部參數對該模塊的作用與影響,將測試點提取出來的過程。
分析圖3可知,ECU采集冷卻液溫度傳感器信號判斷柴油機溫度以確定當前起動環(huán)境溫度條件。冷機起動時ECU將控制增大噴油量,以保證可靠的冷起動;熱機起動時為避免冒黑煙等現(xiàn)象,ECU將控制適當減少噴油量[15]。因此對于輸入信號冷卻液溫度與輸出信號起動噴油量,需要從灰盒測試中黑盒一面出發(fā),設置冷卻液溫度信號采集測試與起動噴油量邊界輸入測試。
柴油機ECU控制策略基于轉矩控制架構,即轉矩的需求量對噴油量起到決定性作用[16]。故本例中起動噴油量由起動需求轉矩決定,而起動需求轉矩由起動基本轉矩與起動修正轉矩決定。分析圖3可知,該計算模塊內起動基本轉矩MAP插值、起動修正轉矩MAP插值、起動需求轉矩邏輯加運算3個功能點是影響起動基本轉矩、起動修正轉矩和起動需求轉矩3個關鍵內部轉矩生成的關鍵功能點,因此從灰盒測試中白盒一面出發(fā),在該計算模塊內設置MAP查詢及邏輯判斷測試對上述3個關鍵功能點和內部轉矩進行監(jiān)測。MAP查詢測試是對控制模塊各輸入信號在曲線或MAP圖中根據一定插值法查詢相應輸出參數后,驗證輸出參數是否正確的測試[17]。邏輯判斷測試是控制模塊中各內部參數根據控制策略進行相加等邏輯運算后,驗證輸出參數是否正確的測試。表1為本例測試需求分析結果。
表1 起動噴油量計算模塊測試需求分析結果
通過上述分析可知,若運用黑盒測試思想對ECU起動噴油量計算模塊進行測試需求分析,則將僅有表1中冷卻液溫度信號采集測試與起動噴油量邊界輸入測試2個測試點,測試評價參數僅有外部關鍵輸入信號冷卻液溫度和關鍵外部輸出信號起動噴油量。采用灰盒測試思想對該模塊進行測試需求分析,可得表1中5個測試點,測試評價參數除包含黑盒測試的關鍵外部輸入輸出信號外,還增加了該模塊內3個關鍵轉矩,由此可見灰盒測試用例能夠增加被測模塊中測試點及評價參數。
2.2.1 設計方法確定
本例選取黑盒測試的場景法、等價類劃分法、邊界值分析法與白盒測試的基本路徑測試法作為灰盒測試用例的具體設計方法。
使用場景法設計的測試用例能夠根據不同的測試條件模擬被測ECU控制模塊在實際運行時各種功能場景,本例運用此法設計測試用例控制CRUISE M虛擬柴油機模型處于起動工況進行ECU HIL測試,將冷卻液溫度設為測試輸入信號,發(fā)動機轉速信號由虛擬柴油機模型運行輸入,大氣壓力信號由ECU板上大氣壓力傳感器提供。
臺架試驗一般將冷卻液溫度分為低于20 ℃、20~90 ℃與高于90 ℃ 3個區(qū)間,以對應柴油機冷機、常溫和熱機3種起動溫度條件,同時《汽車發(fā)動機性能試驗方法GB/T 18297—2001》要求柴油機低溫起動試驗需在263 K(-10.15 ℃)的環(huán)境溫度下進行[18],又因柴油機冷卻液冰點一般為-30 ℃,沸點為110 ℃,故本例使用等價類劃分法在冷卻液冰點與沸點之間劃分出4個有效等價類以對應柴油機3種起動溫度條件,冷卻液溫度高于其沸點時設置一個無效等價類以測試冷卻液溫度為非正常溫度范圍時ECU各功能點的運行情況,并從各等價類中選取若干具有代表性的冷卻液溫度作為測試輸入信號,這樣就將原本需要進行窮舉輸入的測試信號轉變?yōu)榱溯斎肷倭看硇缘臏y試信號。
測試經驗表明,大量錯誤發(fā)生在輸入或輸出范圍的邊界上[19],故本例使用邊界值分析法彌補等價類劃分法沒有對各等價類邊界值測試的不足。表2為包含等價類劃分及其邊界值代表溫度值的冷卻液溫度輸入信號表。測試用例將依次設定虛擬柴油機模型中冷卻液溫度為表2中13個代表溫度值作為輸入信號進行測試,方便、快速地模擬不同起動溫度條件。
表2 冷卻液溫度輸入信號 單位:℃
2.2.2 測試流程規(guī)劃
本例使用基本路徑測試法對圖3中各功能點實現(xiàn)順序及輸入信號控制流程進行分析。在HIL測試平臺自檢、激勵測試通過后,首先應完成冷卻液溫度信號采集測試以保證ECU能準確無誤接收測試輸入信號;然后進行不同冷卻液溫度測試輸入信號下的起動噴油量邊界輸入測試以保證該模塊總體控制功能正常;在此基礎上,將測試深入該控制模塊內部,進行起動基本轉矩MAP及起動轉矩修正MAP查詢測試,以完成對兩個MAP插值功能點及起動基本轉矩、起動修正轉矩兩個內部關鍵參數的監(jiān)測;在保證上述兩轉矩無誤后,進行起動需求轉矩邏輯判斷測試以完成對起動需求轉矩的監(jiān)測。根據上述分析過程可得到如圖4所示的測試流程。
圖4 測試流程
2.2.3 測試判斷準則確定
測試判斷準則是測試用例執(zhí)行時對測試點中測試數據的總體評判規(guī)則,測試點是否通過測試、測試用例是否繼續(xù)執(zhí)行均由此控制[20]。測試用例預期結果是各測試點中控制變量在當前測試步驟定義的測試場景下應達到狀態(tài)的詳細描述,是測試判斷準則在標準測試用例文檔中的具體化數據。表3為各測試點測試判斷準則。
表3 測試點測試判斷準則
2.2.4 測試用例編寫
表4為基于以上分析所編寫的起動噴油量計算測試用例,將表中測試用例基本要素進行轉換后填入如圖5所示的標準測試用例Excel文檔中,然后通過HIL測試程序中測試腳本直接讀取該文檔并執(zhí)行,實現(xiàn)測試用例對柴油機ECU起動噴油量計算模塊HIL測試。
圖5 標準測試用例Excel文檔
表4 起動噴油量計算測試用例
測試平臺是開展測試的基礎,也是測試用例得以執(zhí)行、驗證的根本保證,本文使用的HIL測試平臺基于PC系統(tǒng)方案搭建,實時處理器選用多功能可重配置I/O設備USB-7845R。測試程序使用LabVIEW編程軟件自主開發(fā),虛擬柴油機模型使用 CRUISE M仿真軟件搭建。測試數據由HIL測試程序中CAN通信模塊調用INCA軟件使用CCP通信協(xié)議自ECU測量點中讀取、判斷。
測試平臺提供的ECU硬件在環(huán)測試環(huán)境如圖6所示,其中,PC上位機負責運行HIL測試程序讀取測試用例文件進行運行參數調整及測試控制,使用通用串行總線將這些數據傳至實時處理器。實時處理器中FPGA模塊依據虛擬柴油機模型運行參數通過底層BIT程序發(fā)生ECU運行所需傳感器信號并經信號I/O接口送至被測ECU,ECU將根據輸入信號工作并輸出控制信號與CAN通信信號,同時實時處理器與PC上位機將分別采集控制信號與通信信號,以完成虛擬柴油機模型閉環(huán)運行與測試數據采集。
圖6 ECU硬件在環(huán)測試環(huán)境
HIL測試程序依據測試流程對ECU進行測試,若ECU能通過各測試點測試,則判定ECU被測模塊功能正常。若測試過程中出現(xiàn)某測試點失敗,則HIL測試程序將中斷測試并在測試用例文檔中定位出測試失敗步驟,同時在HIL測試程序人機交互界面顯示失敗的測試數據與測試設置參數,等待測試人員介入確認失敗原因及確定測試是否繼續(xù)。
表5為冷卻液溫度信號采集測試結果,從中分析可知13個冷卻液溫度設定值與ECU識別值兩者最大、最小偏差均在允許偏差內,測試點通過,ECU冷卻液溫度信號采集功能正常,可進行起動噴油量邊界輸入測試。
表5 冷卻液溫度信號采集測試結果 單位:℃
圖7為起動噴油量邊界輸入測試結果,冷卻液溫度80 ℃以上的5條起動噴油量曲線與80 ℃曲線基本重合,故未在圖中繪出。由圖7可知,輸入13個冷卻液溫度信號,ECU在完整起動時間內均能正確計算控制輸出相應起動噴油量,且冷機起動噴油量比熱機多,符合ECU在不同起動溫度條件下靈活調整起動噴油量大小的功能控制原則,此測試點通過。
圖7 起動噴油量邊界輸入測試結果
MAP查詢及邏輯判斷測試數據較多,此處僅選擇冷卻液溫度為-10 ℃時的測試數據舉例分析,表6為基本起動轉矩、起動轉矩修正MAP查詢測試結果,表7為起動需求轉矩邏輯判斷測試結果。結果表明在該冷卻液溫度下,ECU通過MAP查詢計算輸出的基本起動轉矩輸出值、起動修正轉矩輸出值與MAP標準值誤差始終保持在允許誤差1%內,MAP查詢測試點均通過;起動需求轉矩值輸出值等于基本起動轉矩輸出值、起動修正轉矩輸出值之和且與標準值誤差始終保持在允許誤差0.2%內,起動需求轉矩邏輯判斷測試點通過。
表6 基本起動轉矩、起動轉矩修正MAP查詢測試結果
表7 起動需求轉矩邏輯判斷測試結果
實際測試時將表2中13個冷卻液代表溫度值作為CRUISE M虛擬柴油機仿真模型中冷卻液溫度輸入信號輸入,ECU在各冷卻液溫度下起動基本轉矩、起動轉矩修正MAP查詢測試與起動需求轉矩邏輯判斷測試均能通過,故判定被測ECU起動噴油量計算模塊中MAP查詢、邏輯判斷功能正常。綜合分析起動噴油量計算測試用例中各測試點測試數據與結果,可判定被測ECU起動噴油量計算模塊正常。
從基于灰盒測試的柴油機ECU HIL測試目的出發(fā),提出了一種基于灰盒的柴油機ECU HIL測試用例開發(fā)方法,使用此法對柴油機ECU起動噴油量計算模塊進行了測試用例開發(fā)并導入HIL測試平臺進行了測試,測試數據表明被測ECU起動噴油量計算模塊關鍵輸入輸出信號功能控制正常,同時該計算模塊內各功能點均能通過測試,起動基本轉矩、起動修正轉矩及起動需求轉矩3個控制模塊內部關鍵參數與其標準值誤差始終在允許誤差范圍內。由此可知,被測ECU起動噴油量計算模塊在灰盒測試用例搭建的測試場景中通過測試,從而判定該計算模塊工作正常。
此例驗證了基于灰盒的柴油機ECU HIL測試用例開發(fā)方法的適用性,使用此法開發(fā)的灰盒測試用例不僅能對柴油機ECU總體控制功能進行測試,還能對ECU控制模塊內部關鍵功能點及參數實施監(jiān)測,從而更好地進行全面深入的HIL測試,快速準確地跟蹤控制模塊的故障,保障V開發(fā)流程中柴油機ECU質量。