Simulink是美國Mathworks公司推出的一種強大的可視化仿真工具,現已應用到包括汽車、航空、工業自動化等領域。Simulink不僅提供了多種特定功能的模塊,還提供Simulink Function,Function Caller等模塊,便于用戶在開發過程中,定制化一些常用函數,擺脫了Simulink中固有Block的功能限制,有效的提升了開發效率。
這個功能無疑十分強大,但這卻給測試工作提出了很大的挑戰:受軟件開發架構限制,Function的定義可能放置在軟件底層,以便于上層軟件進行多次調用。但當用戶對上層軟件的單元層級進行測試時,往往面臨著無法調用底層定義的Function的窘態(有槍無彈)。此外,當客戶在測試底層單元模塊時,由于Function只有定義沒有被調用,往往無法對Function的內部邏輯進行測試(有彈無槍)。
針對這兩種測試場景,自動化的軟件動態測試工具——TPT提供了便捷的解決方案。
圖1模型
有槍無彈:
顧名思義,空有Function Caller而沒有Function。如圖1所示,如果要測試Calculate這個單元,這個單元調用了Function,而Function卻定義在更底層,針對這種情況,TPT支持函數的插樁,提供Function Caller的接口,模擬函數的返回值。
TPT支持函數的插樁,在對這種只有Caller沒有Function的層級(如圖2)進行測試時,非常高效。在TPT的Platform Configuration中提供了這樣的選項:Simulink Functions,如圖3:
圖2單元模塊內部結構
圖 3 Simulink Functions
回到圖4平臺配置窗口,加載好模型后 Import模型接口, TPT將以 server形式識別 callFunc函數,如圖5。
圖 4 Import模型接口、參數
圖 5識別callFunc函數
該函數會被直接加載到 Functions中, 以便于在編寫測試用例時調用。
圖 6 callFunc被加載到Functions中
可以在 Declaration Editor中添加一個 channel形式的本地變量return_Func模擬函數的返回值,然后編寫圖 8所示用例來驗證:
圖 7添加channel本地變量
圖 8測試用例
運行結果和信號曲線如下圖所示,compare是簡單的評估,結果可見模型的輸出符合期望,由信號曲線可以觀察到local量的值即函數的輸出值。
圖 9測試結果
圖 10 Signal Viewer觀測結果
有彈無槍:
上述方法并不能測到函數內部的邏輯,而實際上函數可以定義在模型的底層,如圖1所示的模型wind_drag,Function定義在底層,沒有對應的Function Caller,這就是有“彈”而無“槍”了。在單元測試階段想要測試該函數的邏輯,因其沒有相關的接口信息,測試工作無疑非常困難。
圖 11被測函數邏輯
自動化測試工具TPT提供了m文件的接口,可以在配置測試環境或者測試執行過程中進行一些預處理,這就為測試該函數邏輯提供了絕佳的途徑。
圖 12 TPT提供的m文件接口
此處用m腳本編寫一個函數,可以在TPT中實現對Function的調用。該函數主要有兩個參數:
參數1:測試層級,可直接用TPT環境變量’${tpt.matlab.block.name}’
參數2:被調函數,例如:' F = wind_drag(Density,Speed) '
可以在 TPT\Platform Configuration\Original Model中可以編寫相應的代碼來加載m文件,并使用simulink_function_caller函數對模型中的SimulinkFunction進行調用,這無疑大大提升了測試的效率。
圖 13 m文件加載及函數調用
圖 14模型中自動配置FunctionCaller
依次在TPT中配置測試環境,導入接口時即可發現模型中出現了Simulink Function調用的相關接口信息。上一步中加載的m文件,實現了自動創建所測Function對應接口信息,以及Function Caller模塊的功能,這些新建的模塊和Function在同一層級,這樣就能夠對Simulink Function邏輯進行測試。
圖 15導入接口信息
編寫測試用例來測試該函數:
圖 16測試用例
該函數是簡單的計算風阻的函數,,其中C取0.3,S取2.05,編寫評估驗證該用例:
圖 17測試評估
測試結果顯示模型輸出與函數運算結果一致:
圖 18測試結果
兩者的信號曲線也是完全重合:
圖 19信號曲線
總結
本文介紹了使用TPT測試Simulink Function模塊的兩種方案,TPT還支持MATLAB Function的測試。
PikeTec公司是全球知名的基于模型的嵌入式系統測試工具TPT的軟件供應商,總部位于德國柏林。北匯信息作為PikeTec在中國的獨家合作伙伴,致力于幫助中國客戶提升嵌入式控制系統的開發效率。目前,TPT已被眾多國內知名主機廠和零部件企業認可,在新能源(VCU/BMS/MCU)以及ADAS等領域中被廣泛應用。
-
TPT
+關注
關注
0文章
23瀏覽量
7010
發布評論請先 登錄
相關推薦
評論