衡阳派盒市场营销有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Simulink Function模塊竟然可以這樣測

北匯信息POLELINK ? 2022-08-04 14:41 ? 次閱讀

Simulink是美國Mathworks公司推出的一種強大的可視化仿真工具,現已應用到包括汽車、航空、工業自動化等領域。Simulink不僅提供了多種特定功能的模塊,還提供Simulink Function,Function Caller等模塊,便于用戶在開發過程中,定制化一些常用函數,擺脫了Simulink中固有Block的功能限制,有效的提升了開發效率。

這個功能無疑十分強大,但這卻給測試工作提出了很大的挑戰:受軟件開發架構限制,Function的定義可能放置在軟件底層,以便于上層軟件進行多次調用。但當用戶對上層軟件的單元層級進行測試時,往往面臨著無法調用底層定義的Function的窘態(有槍無彈)。此外,當客戶在測試底層單元模塊時,由于Function只有定義沒有被調用,往往無法對Function的內部邏輯進行測試(有彈無槍)。

針對這兩種測試場景,自動化的軟件動態測試工具——TPT提供了便捷的解決方案。

poYBAGLrWJmAP1ukAABNdGfGtl4332.png

圖1模型

有槍無彈:

顧名思義,空有Function Caller而沒有Function。如圖1所示,如果要測試Calculate這個單元,這個單元調用了Function,而Function卻定義在更底層,針對這種情況,TPT支持函數的插樁,提供Function Caller的接口,模擬函數的返回值。

TPT支持函數的插樁,在對這種只有Caller沒有Function的層級(如圖2)進行測試時,非常高效。在TPT的Platform Configuration中提供了這樣的選項:Simulink Functions,如圖3:

pYYBAGLrWLyAAfNHAABH-KQYTVE401.png

圖2單元模塊內部結構

pYYBAGLrWNCAIK0QAAE43T8UauE659.png

圖 3 Simulink Functions

回到圖4平臺配置窗口,加載好模型后 Import模型接口, TPT將以 server形式識別 callFunc函數,如圖5。

poYBAGLrWNyAdaDLAAEsUPUT16o404.png

圖 4 Import模型接口、參數

pYYBAGLrWOWABevvAADtSP7OhMs583.png

圖 5識別callFunc函數

該函數會被直接加載到 Functions中, 以便于在編寫測試用例時調用。

pYYBAGLrWPaAZDENAACVshqy1X8003.png

圖 6 callFunc被加載到Functions中

可以在 Declaration Editor中添加一個 channel形式的本地變量return_Func模擬函數的返回值,然后編寫圖 8所示用例來驗證:

pYYBAGLrWQKACHVAAACrvmX6XxQ134.png

圖 7添加channel本地變量

poYBAGLrWQqASnQ9AADhoN1Ldjk726.png

圖 8測試用例

運行結果和信號曲線如下圖所示,compare是簡單的評估,結果可見模型的輸出符合期望,由信號曲線可以觀察到local量的值即函數的輸出值。

poYBAGLrWRWAFleUAACxagqfYlA845.png

圖 9測試結果

pYYBAGLrWR2AN0MLAAEbW0wcis0819.png

圖 10 Signal Viewer觀測結果

有彈無槍:

上述方法并不能測到函數內部的邏輯,而實際上函數可以定義在模型的底層,如圖1所示的模型wind_drag,Function定義在底層,沒有對應的Function Caller,這就是有“彈”而無“槍”了。在單元測試階段想要測試該函數的邏輯,因其沒有相關的接口信息,測試工作無疑非常困難。

poYBAGLrWSuAIwWiAABQk6Eh0CY957.png

圖 11被測函數邏輯

自動化測試工具TPT提供了m文件的接口,可以在配置測試環境或者測試執行過程中進行一些預處理,這就為測試該函數邏輯提供了絕佳的途徑。

pYYBAGLrWTWAW_9nAAEm3ynXg-Q034.png

圖 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進行調用,這無疑大大提升了測試的效率。

pYYBAGLrWa6AGw8iAAB6kUc1hdI655.png

圖 13 m文件加載及函數調用

pYYBAGLrWbmARhZ8AABHR8vcXAI545.png

圖 14模型中自動配置FunctionCaller

依次在TPT中配置測試環境,導入接口時即可發現模型中出現了Simulink Function調用的相關接口信息。上一步中加載的m文件,實現了自動創建所測Function對應接口信息,以及Function Caller模塊的功能,這些新建的模塊和Function在同一層級,這樣就能夠對Simulink Function邏輯進行測試。

poYBAGLrWcKAcHQBAADEYiZv43o099.png

圖 15導入接口信息

編寫測試用例來測試該函數:

pYYBAGLrWdCAFDyGAADCKZG9TW4717.png

圖 16測試用例

該函數是簡單的計算風阻的函數,,其中C取0.3,S取2.05,編寫評估驗證該用例:

poYBAGLrWeOAO_81AACUfm2SMf0956.png

圖 17測試評估

測試結果顯示模型輸出與函數運算結果一致:

pYYBAGLrWfmABNAWAAC4z1MuiCM317.png

圖 18測試結果

兩者的信號曲線也是完全重合:

pYYBAGLrWgOAXeLBAAFCUCWlQ_k692.png

圖 19信號曲線

總結

本文介紹了使用TPT測試Simulink Function模塊的兩種方案,TPT還支持MATLAB Function的測試。

PikeTec公司是全球知名的基于模型的嵌入式系統測試工具TPT的軟件供應商,總部位于德國柏林。北匯信息作為PikeTec在中國的獨家合作伙伴,致力于幫助中國客戶提升嵌入式控制系統的開發效率。目前,TPT已被眾多國內知名主機廠和零部件企業認可,在新能源(VCU/BMS/MCU)以及ADAS等領域中被廣泛應用。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • TPT
    TPT
    +關注

    關注

    0

    文章

    23

    瀏覽量

    7010
收藏 人收藏

    評論

    相關推薦

    Simulink與 Simscape的結合使用

    。用戶可以利用 Simulink 進行系統建模、仿真、測試和驗證,以及生成代碼。 Simscape 簡介 Simscape 是一個用于創建基于物理的模型的仿真環境。它提供了一個庫,包含各種物理組件,如機械、電氣、液壓和熱力系統等。Simscape 允許用戶以直觀的方式構建
    的頭像 發表于 12-12 09:31 ?525次閱讀

    Simulink與 MATLAB 的結合使用 Simulink中的信號處理方法

    在工程和科學研究中,信號處理是一個重要的領域,涉及到信號的采集、分析、處理和生成。MATLAB 提供了豐富的信號處理工具箱,而 Simulink 提供了一個直觀的圖形界面,使得復雜的信號處理系統可以
    的頭像 發表于 12-12 09:25 ?498次閱讀

    Simulink模型仿真與分析技巧

    1. 模型構建基礎 1.1 理解系統需求 在開始構建模型之前,明確系統的需求和目標是至關重要的。這包括了解系統的動態特性、輸入輸出關系以及預期的性能指標。 1.2 選擇合適的模塊 Simulink
    的頭像 發表于 12-12 09:23 ?1088次閱讀

    Simulink自定義模塊開發教程 Simulink 在控制系統中的應用

    自定義模塊來擴展其功能。 1. 理解 Simulink 和控制系統 Simulink 是一個動態系統建模、仿真和分析的環境,它允許用戶通過拖放預構建的模塊來構建模型??刂葡到y是工程學的
    的頭像 發表于 12-12 09:21 ?608次閱讀

    Matlab R2016b創建STM32H743ZIT6控制工程當從Simulink庫中拖入TIMx模塊出現報錯的原因?

    Matlab R2016b創建STM32H743ZIT6控制工程當從Simulink庫中拖入GPIO和ADC模塊到模型中時都沒有問題 但是拖入TIMx模塊出現提下列提示,并且反復蹦出,無法繼續進行
    發表于 04-25 07:00

    Vivado 使用Simulink設計FIR濾波器

    領域都有著廣泛的應用。 Vivado自帶的FIR濾波器IP核已經很好用,這里借FIR濾波器的設計,介紹Simulink圖形設計編程方法。Simulink可以使設計更直觀,使硬件資源得到更為高效的利用
    發表于 04-17 17:29

    路燈竟然可以這樣玩-智慧路燈

    在日常生活我們大家很會忽視路燈這個物體,通常只是把它當作是普通的照明之物。如果是在以前的話,這么理解沒有錯,但是隨著科技的發展以及智慧城市的興起,路燈不再是普通的照明之物,而是被賦予了更多的使命的智能電器。
    的頭像 發表于 04-10 14:20 ?371次閱讀

    MathWorks宣布推出MATLAB和Simulink的2024a版本

    MathWorks宣布推出MATLAB和Simulink的2024a版本
    的頭像 發表于 04-07 14:03 ?720次閱讀
    MathWorks宣布推出MATLAB和<b class='flag-5'>Simulink</b>的2024a版本

    電路仿真軟件simulink的工作原理

    Simulink是MATLAB的一個模塊,它采用圖形化的方式來創建動態系統模型并進行仿真分析。Simulink的工作原理主要基于模塊化的建模和仿真方式。
    的頭像 發表于 03-29 15:21 ?1868次閱讀

    電路仿真軟件simulink使用方法

    Simulink是MATLAB的一個重要組件,用于進行動態系統的建模和仿真。
    的頭像 發表于 03-29 14:25 ?2838次閱讀

    TPT的Dashboard 儀表盤功能便捷實現Simulink模型的手動測試#simulink

    Simulinksimulink模塊
    北匯信息POLELINK
    發布于 :2024年03月06日 11:36:23

    verilog task和function區別

    verilog中的task和function都是用于實現模塊中的可重復的功能,并且可以接收參數和返回結果。但是它們在編寫和使用上有一些區別。下面將詳細介紹task和function的區
    的頭像 發表于 02-22 15:53 ?1185次閱讀

    verilog function函數的用法

    Verilog 中被廣泛用于對電路進行模塊化設計,以簡化和組織代碼。 本文將詳細介紹 Verilog 函數的用法,并探討函數在硬件設計中的重要性和實際應用場景。 一. Verilog 函數概述 Verilog 函數通過提供一種結構化的方式來組織代碼,并可以根據需要重復使
    的頭像 發表于 02-22 15:49 ?6045次閱讀

    verilog中function和task的區別

    在Verilog中,Function和Task是用于模塊化設計和重用代碼的兩種重要元素。它們允許開發人員將復雜的操作分解為更小的功能單元,并在需要時調用它們。雖然Function和Task在某些方面
    的頭像 發表于 02-22 15:40 ?2037次閱讀

    simulink常用模塊有哪些 simulink模塊執行順序

    Simulink是一個基于圖形的仿真環境,廣泛應用于動態系統和控制設計的多領域建模和仿真。
    的頭像 發表于 02-18 17:18 ?4841次閱讀
    澳门百家乐娱乐城网址| 百家乐水浒传| 百家乐那里最好| 保时捷娱乐| 买百家乐官网程序| 百家乐注册送免费金| 大发888充值100| 百家乐官网美女真人| 庞博百家乐官网的玩法技巧和规则| 百家乐官网游戏| 太阳城网上娱乐| 金域百家乐官网的玩法技巧和规则| 迪威百家乐娱乐场| 足球波胆| 赌场百家乐官网打法| 娱乐百家乐的玩法技巧和规则 | 百家乐官网赌经| 诚信百家乐平台| 大发888游戏下载官网免费 | 百家乐磁力录| 大发888 188| 新奥博百家乐官网娱乐城| 百家乐永利娱乐网| 崇义县| KTV百家乐官网的玩法技巧和规则| 皇家百家乐的玩法技巧和规则| 百家乐官网终端下载| 太阳会百家乐现金网| 利来娱乐网| 做生意摆放风水| 鼎盛娱乐城开户| 百家乐官网正负计算| 大发888游戏平台 黄埔网| 百家乐官网智能分析软| 网上百家乐优博| 云博备用网址| 做生意讲究风水吗| 博彩通评级| 百家乐的关键技巧| 周口市| 澳门百家乐怎洋赢钱|