崔夢潔 楊濤 劉在強 徐高祥 胡江舟
摘要: 本文旨在提出基于模型開發(fā)的汽車嵌入式軟件的模型質(zhì)量指標。當前,汽車電控系統(tǒng)產(chǎn)品的開發(fā)主要采用基于模型設計的開發(fā)過程。在此過程中,對開發(fā)的模型質(zhì)量進行評價,建立統(tǒng)一的評價標準,能夠更有效地把控軟件質(zhì)量,從而確保開發(fā)出的控制軟件符合規(guī)范要求、無設計缺陷,并完全滿足功能需求。
關鍵詞:嵌入式;模型開發(fā);質(zhì)量指標
中圖分類號:U467 DOI :10.20042/j.cnki.1009-4903.2024.01.009
0 引言
當前各大主機廠主要采用V 流程開發(fā)模式來開發(fā)汽車嵌入式電控單元。在這一開發(fā)過程中,基于模型設計的軟件開發(fā)及測試技術得到了廣泛應用。在控制策略模型的開發(fā)階段,依次進行MIL、SIL、PIL、HIL 等測試驗證,以確保軟件質(zhì)量的有效控制。這種開發(fā)模式相對于傳統(tǒng)開發(fā)方式,顯著提升了軟件開發(fā)效率,縮短了項目開發(fā)周期,從而增強了產(chǎn)品的競爭力。尤其是在模型測試階段,若進行完整充分的測試,可以解決絕大多數(shù)的軟件問題,有效降低后續(xù)的控制器臺架測試、實車測試等階段的測試成本,為后續(xù)測試環(huán)節(jié)提供基礎的軟件功能保障。
1 模型質(zhì)量評價方法
模型的開發(fā)質(zhì)量通過MIL 測試過程來衡量和評級。MIL測試即模型在環(huán)測試,被測對象是控制器的算法模型。在Simulink 模型中,我們建立控制算法模型和被控對象模型,將二者連接形成閉環(huán),進行模型層面的閉環(huán)測試。
模型測試的目的在于驗證控制模型是否滿足預期設計需求,同時對設計的模型進行規(guī)范性檢查,力求達到最優(yōu)配置,檢查模型設計的冗余和缺陷,評估模型質(zhì)量,以保障控制器軟件產(chǎn)品的開發(fā)質(zhì)量,確保所有問題在開發(fā)前期得到測試驗證。
該階段是在模型開發(fā)完成,運行仿真通過后進行的測試環(huán)節(jié),其目的在于對開發(fā)的功能模型進行規(guī)范性、功能性測試,確保模型合規(guī)、無設計缺陷、滿足完整功能需求。
基于以上要求,通過模型測試過程,我們可以評價模型的開發(fā)質(zhì)量,具體從模型的合規(guī)性、復雜度、覆蓋度、魯棒性、功能性等方面對模型質(zhì)量進行評價。
1.1 模型合規(guī)性評價
模型合規(guī)性是用于驗證模型是否符合編碼規(guī)范。編碼規(guī)范是開發(fā)工程師應該遵循的規(guī)則,涉及命名約定、建模外觀、信號數(shù)據(jù),以及建模模式、模型架構、代碼生成配置與已知的建模缺陷等。引入編碼標準有助于實現(xiàn)控制系統(tǒng)模型的簡單、共同理解,同時降低軟件維護成本。
1.2 模型復雜度評價
模型復雜度是衡量模型中各模塊的結構復雜程度,表現(xiàn)為獨立路徑的數(shù)量,即覆蓋所有可能情況所需的最少測試用例數(shù)。
復雜度高的模型判斷邏輯復雜,可能質(zhì)量低且難于測試和維護。
復雜度與程序中可能出現(xiàn)的錯誤和高的圈復雜度密切關系。復雜度指標的閾值約束有助于指導模型優(yōu)化,降低模型負載率。
復雜度度量的是程序中線性獨立路徑的數(shù)量。
降低模型復雜程度的方法包括:
(1) 模型重構:使用可重用庫重構重復部分,提高可維護性并降低設計復雜度。
(2) 模型邏輯更改:重新組織函數(shù)邏輯,改變算法控制;簡化條件表達式;簡化函數(shù)調(diào)用。
1.3 模型覆蓋度評價
模型覆蓋度基于分支路徑判斷,重點在于評估模型是否存在永不可達分支路徑,以在滿足功能前提下簡化設計,提高結構覆蓋。覆蓋度反映測試用例對模型邏輯結構路徑測試的完成程度,適用于結構測試用例。完整的結構測試用例應對模型或狀態(tài)機內(nèi)的每條路徑進行唯一條件測試,且與其他路徑條件不沖突。
模型覆蓋的類型主要包括決策覆蓋(DC)、條件覆蓋(CC)和改進覆蓋/ 決策覆蓋(MCDC)。這些方法用于度量模型結構覆蓋率,反映和識別未經(jīng)測試的模型設計、不可測試的設計以及一些非預期的模型設計。
1.4 模型魯棒性評價
模型魯棒性主要針對設計缺陷進行檢查評估,在仿真前檢測運行時和建模錯誤,如數(shù)據(jù)溢出、除零、數(shù)組越界、死邏輯、浮點錯誤等。采用形式化的檢測方法,在靜態(tài)環(huán)境下評價功能模型的基本模塊,重點檢測Add、增益、限幅、查表等模塊,確保模型健壯性。魯棒性驗證可防止數(shù)值邊界或錯誤使用導致的意外結果或仿真錯誤。
1.5 模型功能性評價
模型功能性評價驗證軟件實現(xiàn)的功能是否滿足功能規(guī)范及需求程度。功能性可細分為完備性和正確性。完備性指模型功能完整、齊全,應不少于且符合需求規(guī)定的明確和隱含功能。正確性指模型應得到正確或相符結果。功能性評價依據(jù)MIL測試結果,針對每種功能需求設計典型測試用例,評價實際結果與預期結果的符合程度。因此,測試用例的全面性、正確性、典型性及權威性是功能性評價的關鍵。功能是模型實現(xiàn)的基礎,模型功能性是模型最重要的質(zhì)量特征之一。
2 模型質(zhì)量實例應用
本文以某制動系統(tǒng)功能為例, 根據(jù)功能規(guī)范, 使用MATLAB 2022b 中的Simulink 進行仿真模型搭建。模型搭建完成后,采用上文所述的方法對模型的開發(fā)質(zhì)量進行測試。
2.1 模型質(zhì)量測試工具介紹
在本文中,我們利用Simulink 工具箱中的Simulink Test工具箱對模型功能性進行評價測試。
2.2 模型功能性測試
根據(jù)功能規(guī)范,制動功能的邏輯如下:
激活條件( 同時滿足) :
1) 當鑰匙ON 檔有效且車速大于0 ;
2) 制動使能信號有效。
執(zhí)行動作:
制動激活信號(BrkActSig) 置為有效。
退出條件( 滿足任一條件) :
1) 鑰匙ON 檔無效且車速小于3 ;
2) 制動使能信號無效。
退出動作:
制動激活信號(BrkActSig) 置為無效。
在模型功能性測試階段,我們搭建測試框架并編寫測試用例以驗證模型功能。具體測試用例如下:
測試步驟一:
在0.6~1.2 s 內(nèi),滿足激活條件,輸入鑰匙ON 檔有效信號,設置車速為10 m/s,同時提供有效的制動使能信號。
預期結果一:
在0.6~1.2 s 內(nèi),制動激活信號(BrkActSig) 設置為有效狀態(tài)。
測試步驟二:
在1. 2~1. 4 s 時,滿足退出條件一,輸入鑰匙ON 檔無效信號,并將車速降低至1 m/s。
預期結果二:
制動激活信號(BrkActSig) 應置為無效狀態(tài)。
測試步驟三:
在1.4~1.6 s 時,再次滿足激活條件,輸入鑰匙ON 檔有效信號,設置車速為8 m/s,并提供有效的制動使能信號有效。
預期結果三:
在1.4~1.6 s 內(nèi),制動激活信號(BrkActSig) 應再次置為有效狀態(tài)。
測試步驟四:
在1.6~2.0 s 時,滿足退出條件二,將制動使能信號設置為無效狀態(tài)。
預期結果四:
制動激活信號(BrkActSig) 應置為無效狀態(tài)。
如圖1,其中藍色為預期測試用例結果,棕色為實際輸出。
實際在測試結果中發(fā)現(xiàn)在1.6 s 時測試用例未通過,測試結果制動激活信號為有效。
通過分析測試用例,我們定位到問題根源在于使能子系統(tǒng)中Outport 模塊在默認禁用狀態(tài)下,其輸出會保持上一時刻的狀態(tài)。這導致了制動激活信號在使能子系統(tǒng)未使能后仍然保持有效。為了解決這一問題,我們將Outport 模塊的禁用時輸出設置為了重置,并設置了初始輸出為0,如圖2 所示。經(jīng)過模型修改后,我們重新進行了測試,結果顯示測試通過,如圖3 所示。
在完成模型的功能測試后,我們進一步進行了模型的功能測試覆蓋度評價。決策覆蓋度(DECISION) 用于分析模型中表示決策的元素,它是遍歷的條件與仿真總數(shù)的百分比。條件覆蓋度(CONDITION) 則用于判斷測試中的條件是否涵蓋了所有情況,當測試用例使模型中邏輯的每個輸入的條件在仿真期間至少一次滿足,至少一次不滿足,表示測試用例實現(xiàn)了完全覆蓋。
測試結果顯示,所有測試用例均被執(zhí)行并通過測試。如圖4 所示,決策覆蓋度為88%,條件覆蓋度為100%,改進覆蓋/ 決策覆蓋度為100%,這些指標均滿足測試覆蓋度的要求。
3 總結
本文所提出的基于模型設計的嵌入式軟件模型質(zhì)量指標,具有全面且細致的特點。這些指標從模型的規(guī)范性、功能完備性等多個維度進行綜合評價,從而實現(xiàn)對軟件模型質(zhì)量的準確評估。在具體的項目開發(fā)中,可以根據(jù)不同的開發(fā)目標,靈活設計相應的指標值,從而確保模型的開發(fā)質(zhì)量達到預定標準。這種做法不僅能夠保障整個項目的軟件質(zhì)量,也為后續(xù)的軟件更新迭代提供了堅實的質(zhì)量保障。
參考文獻
[1] 劉杰等編著.基于模型的設計MCU 篇[M].北京航空航天大學出版社.2011.1.
[2] 李軍龍.一種基于SIMULINK 模型的測試用例生成子系統(tǒng)的設計與實現(xiàn)[J].北京大學.2014.
[3] 李哲帥.基于ISO 26262 標準的高壓共軌ECU 控制模型設計及測試研究[J].浙江大學.2018.3.1.
[4] 李勇等.新能源商用車控制軟件質(zhì)量提升研究[J].客車技術與研究,2020(3):12-15.