0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
电子发烧友
开通电子发烧友VIP会员 尊享10大特权
海量资料免费下载
精品直播免费看
优质内容免费畅学
课程9折专享价
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Simulink Function模塊竟然可以這樣測(cè)

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

Simulink是美國(guó)Mathworks公司推出的一種強(qiáng)大的可視化仿真工具,現(xiàn)已應(yīng)用到包括汽車、航空、工業(yè)自動(dòng)化等領(lǐng)域。Simulink不僅提供了多種特定功能的模塊,還提供Simulink Function,F(xiàn)unction Caller等模塊,便于用戶在開(kāi)發(fā)過(guò)程中,定制化一些常用函數(shù),擺脫了Simulink中固有Block的功能限制,有效的提升了開(kāi)發(fā)效率。

這個(gè)功能無(wú)疑十分強(qiáng)大,但這卻給測(cè)試工作提出了很大的挑戰(zhàn):受軟件開(kāi)發(fā)架構(gòu)限制,F(xiàn)unction的定義可能放置在軟件底層,以便于上層軟件進(jìn)行多次調(diào)用。但當(dāng)用戶對(duì)上層軟件的單元層級(jí)進(jìn)行測(cè)試時(shí),往往面臨著無(wú)法調(diào)用底層定義的Function的窘態(tài)(有槍無(wú)彈)。此外,當(dāng)客戶在測(cè)試底層單元模塊時(shí),由于Function只有定義沒(méi)有被調(diào)用,往往無(wú)法對(duì)Function的內(nèi)部邏輯進(jìn)行測(cè)試(有彈無(wú)槍)。

針對(duì)這兩種測(cè)試場(chǎng)景,自動(dòng)化的軟件動(dòng)態(tài)測(cè)試工具——TPT提供了便捷的解決方案。

poYBAGLrWJmAP1ukAABNdGfGtl4332.png

圖1模型

有槍無(wú)彈:

顧名思義,空有Function Caller而沒(méi)有Function。如圖1所示,如果要測(cè)試Calculate這個(gè)單元,這個(gè)單元調(diào)用了Function,而Function卻定義在更底層,針對(duì)這種情況,TPT支持函數(shù)的插樁,提供Function Caller的接口模擬函數(shù)的返回值。

TPT支持函數(shù)的插樁,在對(duì)這種只有Caller沒(méi)有Function的層級(jí)(如圖2)進(jìn)行測(cè)試時(shí),非常高效。在TPT的Platform Configuration中提供了這樣的選項(xiàng):Simulink Functions,如圖3:

pYYBAGLrWLyAAfNHAABH-KQYTVE401.png

圖2單元模塊內(nèi)部結(jié)構(gòu)

pYYBAGLrWNCAIK0QAAE43T8UauE659.png

圖 3 Simulink Functions

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

poYBAGLrWNyAdaDLAAEsUPUT16o404.png

圖 4 Import模型接口、參數(shù)

pYYBAGLrWOWABevvAADtSP7OhMs583.png

圖 5識(shí)別callFunc函數(shù)

該函數(shù)會(huì)被直接加載到 Functions中, 以便于在編寫(xiě)測(cè)試用例時(shí)調(diào)用。

pYYBAGLrWPaAZDENAACVshqy1X8003.png

圖 6 callFunc被加載到Functions中

可以在 Declaration Editor中添加一個(gè) channel形式的本地變量return_Func模擬函數(shù)的返回值,然后編寫(xiě)圖 8所示用例來(lái)驗(yàn)證:

pYYBAGLrWQKACHVAAACrvmX6XxQ134.png

圖 7添加channel本地變量

poYBAGLrWQqASnQ9AADhoN1Ldjk726.png

圖 8測(cè)試用例

運(yùn)行結(jié)果和信號(hào)曲線如下圖所示,compare是簡(jiǎn)單的評(píng)估,結(jié)果可見(jiàn)模型的輸出符合期望,由信號(hào)曲線可以觀察到local量的值即函數(shù)的輸出值。

poYBAGLrWRWAFleUAACxagqfYlA845.png

圖 9測(cè)試結(jié)果

pYYBAGLrWR2AN0MLAAEbW0wcis0819.png

圖 10 Signal Viewer觀測(cè)結(jié)果

有彈無(wú)槍:

上述方法并不能測(cè)到函數(shù)內(nèi)部的邏輯,而實(shí)際上函數(shù)可以定義在模型的底層,如圖1所示的模型wind_drag,F(xiàn)unction定義在底層,沒(méi)有對(duì)應(yīng)的Function Caller,這就是有“彈”而無(wú)“槍”了。在單元測(cè)試階段想要測(cè)試該函數(shù)的邏輯,因其沒(méi)有相關(guān)的接口信息,測(cè)試工作無(wú)疑非常困難。

poYBAGLrWSuAIwWiAABQk6Eh0CY957.png

圖 11被測(cè)函數(shù)邏輯

自動(dòng)化測(cè)試工具TPT提供了m文件的接口,可以在配置測(cè)試環(huán)境或者測(cè)試執(zhí)行過(guò)程中進(jìn)行一些預(yù)處理,這就為測(cè)試該函數(shù)邏輯提供了絕佳的途徑。

pYYBAGLrWTWAW_9nAAEm3ynXg-Q034.png

圖 12 TPT提供的m文件接口

此處用m腳本編寫(xiě)一個(gè)函數(shù),可以在TPT中實(shí)現(xiàn)對(duì)Function的調(diào)用。該函數(shù)主要有兩個(gè)參數(shù):

參數(shù)1:測(cè)試層級(jí),可直接用TPT環(huán)境變量’${tpt.matlab.block.name}’

參數(shù)2:被調(diào)函數(shù),例如:' F = wind_drag(Density,Speed) '

可以在 TPT\Platform Configuration\Original Model中可以編寫(xiě)相應(yīng)的代碼來(lái)加載m文件,并使用simulink_function_caller函數(shù)對(duì)模型中的SimulinkFunction進(jìn)行調(diào)用,這無(wú)疑大大提升了測(cè)試的效率。

pYYBAGLrWa6AGw8iAAB6kUc1hdI655.png

圖 13 m文件加載及函數(shù)調(diào)用

pYYBAGLrWbmARhZ8AABHR8vcXAI545.png

圖 14模型中自動(dòng)配置FunctionCaller

依次在TPT中配置測(cè)試環(huán)境,導(dǎo)入接口時(shí)即可發(fā)現(xiàn)模型中出現(xiàn)了Simulink Function調(diào)用的相關(guān)接口信息。上一步中加載的m文件,實(shí)現(xiàn)了自動(dòng)創(chuàng)建所測(cè)Function對(duì)應(yīng)接口信息,以及Function Caller模塊的功能,這些新建的模塊和Function在同一層級(jí),這樣就能夠?qū)imulink Function邏輯進(jìn)行測(cè)試。

poYBAGLrWcKAcHQBAADEYiZv43o099.png

圖 15導(dǎo)入接口信息

編寫(xiě)測(cè)試用例來(lái)測(cè)試該函數(shù):

pYYBAGLrWdCAFDyGAADCKZG9TW4717.png

圖 16測(cè)試用例

該函數(shù)是簡(jiǎn)單的計(jì)算風(fēng)阻的函數(shù),,其中C取0.3,S取2.05,編寫(xiě)評(píng)估驗(yàn)證該用例:

poYBAGLrWeOAO_81AACUfm2SMf0956.png

圖 17測(cè)試評(píng)估

測(cè)試結(jié)果顯示模型輸出與函數(shù)運(yùn)算結(jié)果一致:

pYYBAGLrWfmABNAWAAC4z1MuiCM317.png

圖 18測(cè)試結(jié)果

兩者的信號(hào)曲線也是完全重合:

pYYBAGLrWgOAXeLBAAFCUCWlQ_k692.png

圖 19信號(hào)曲線

總結(jié)

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

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

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • TPT
    TPT
    +關(guān)注

    關(guān)注

    0

    文章

    25

    瀏覽量

    7167
收藏 0人收藏

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    UPS(不間斷電源)故障頻發(fā)?原因竟然這樣

    UPS(不間斷電源)故障頻發(fā)?原因竟然這樣
    的頭像 發(fā)表于 04-19 13:53 ?211次閱讀
    UPS(不間斷電源)故障頻發(fā)?原因<b class='flag-5'>竟然</b>是<b class='flag-5'>這樣</b>

    如何實(shí)現(xiàn)MC33774IC在Simulink環(huán)境中使用基于模型的設(shè)計(jì)?

    我想熟悉如何實(shí)現(xiàn)MC33774IC 在 Simulink 環(huán)境中使用基于模型的設(shè)計(jì)。 盡管 MATLAB 提供了一些示例文件,但它們似乎是最終版本。要更深入地了解如何配置MC33774,我正在尋找一個(gè)教程,該教程解釋了如何從頭開(kāi)始在 Simulink 中設(shè)置和添加必要的
    發(fā)表于 04-10 08:05

    如何在Simulink中啟用ADC校準(zhǔn)?

    如何在 Simulink 中啟用 ADC 校準(zhǔn)? V4.2.0 產(chǎn)品發(fā)布報(bào)告指出,它在塊中可用。但我在 ADC 配置塊中找不到任何選項(xiàng)。
    發(fā)表于 03-31 07:50

    測(cè)量ADS1274的DOUT[5:8],竟然和地是通的,這是怎么回事?

    測(cè)量ADS1274的DOUT[5:8],竟然和地是通的,這是怎么回事? 是芯片的問(wèn)題?
    發(fā)表于 02-13 08:21

    ADS8361輸入不接的時(shí)候,輸出端的時(shí)序竟然有波形出來(lái),是哪里的問(wèn)題?

    我現(xiàn)在在使用這款A(yù)DS8361采集芯片,請(qǐng)問(wèn),當(dāng)輸入不接的時(shí)候,輸出端的時(shí)序竟然有波形出來(lái),有6萬(wàn)多,我感覺(jué)是不是芯片有問(wèn)題?當(dāng)沒(méi)有輸入信號(hào),輸出端竟然有波形,而且還是一個(gè)很寬的高電平,但是每20個(gè)脈沖,輸出端波形一致,感覺(jué)是不是哪里出問(wèn)題了?請(qǐng)大牛解答下,謝謝!
    發(fā)表于 12-20 08:06

    ADS8568為什么可以采樣到8路信號(hào)的值?

    ; 發(fā)現(xiàn):使用一個(gè)數(shù)組AD來(lái)記錄AD轉(zhuǎn)換結(jié)果 用for(i=0;i<8;i++) {AD=ADS8568;} 這樣的語(yǔ)句,竟然可以采到8路通道的AD采樣結(jié)果。 這是為什么呢?ADS8568
    發(fā)表于 12-20 07:08

    Simulink與 Simscape的結(jié)合使用

    。用戶可以利用 Simulink 進(jìn)行系統(tǒng)建模、仿真、測(cè)試和驗(yàn)證,以及生成代碼。 Simscape 簡(jiǎn)介 Simscape 是一個(gè)用于創(chuàng)建基于物理的模型的仿真環(huán)境。它提供了一個(gè)庫(kù),包含各種物理組件,如機(jī)械、電氣、液壓和熱力系統(tǒng)等。Simscape 允許用戶以直觀的方式構(gòu)建
    的頭像 發(fā)表于 12-12 09:31 ?1548次閱讀

    Simulink中的狀態(tài)機(jī)建模方法 Simulink數(shù)據(jù)可視化與分析功能

    1. Simulink中的狀態(tài)機(jī)建模方法 1.1 理解狀態(tài)機(jī)的基本概念 在開(kāi)始建模之前,了解狀態(tài)機(jī)的基本概念是必要的。狀態(tài)機(jī)由以下幾個(gè)部分組成: 狀態(tài)(States) :系統(tǒng)可能處于的不同條件或情況
    的頭像 發(fā)表于 12-12 09:27 ?2704次閱讀

    Simulink與 MATLAB 的結(jié)合使用 Simulink中的信號(hào)處理方法

    在工程和科學(xué)研究中,信號(hào)處理是一個(gè)重要的領(lǐng)域,涉及到信號(hào)的采集、分析、處理和生成。MATLAB 提供了豐富的信號(hào)處理工具箱,而 Simulink 提供了一個(gè)直觀的圖形界面,使得復(fù)雜的信號(hào)處理系統(tǒng)可以
    的頭像 發(fā)表于 12-12 09:25 ?1287次閱讀

    Simulink模型仿真與分析技巧

    1. 模型構(gòu)建基礎(chǔ) 1.1 理解系統(tǒng)需求 在開(kāi)始構(gòu)建模型之前,明確系統(tǒng)的需求和目標(biāo)是至關(guān)重要的。這包括了解系統(tǒng)的動(dòng)態(tài)特性、輸入輸出關(guān)系以及預(yù)期的性能指標(biāo)。 1.2 選擇合適的模塊 Simulink
    的頭像 發(fā)表于 12-12 09:23 ?2219次閱讀

    Simulink自定義模塊開(kāi)發(fā)教程 Simulink 在控制系統(tǒng)中的應(yīng)用

    自定義模塊來(lái)擴(kuò)展其功能。 1. 理解 Simulink 和控制系統(tǒng) Simulink 是一個(gè)動(dòng)態(tài)系統(tǒng)建模、仿真和分析的環(huán)境,它允許用戶通過(guò)拖放預(yù)構(gòu)建的模塊來(lái)構(gòu)建模型。控制系統(tǒng)是工程學(xué)的
    的頭像 發(fā)表于 12-12 09:21 ?1971次閱讀

    PCM2704的ROM編程好了,竟然是亂碼,為什么?

    簡(jiǎn)單的講,就是一個(gè)PCM2704的芯片,插入U(xiǎn)SB后會(huì)有一個(gè)顯示的名稱,在驅(qū)動(dòng)中 PCM2704的數(shù)據(jù)表中提示可以用外部ROM將名稱隨便改掉 于是我用了一枚24C01按照PCM2704的數(shù)據(jù)表中
    發(fā)表于 11-05 08:04

    Matlab/Simulink/Stateflow建模開(kāi)發(fā)及仿真測(cè)試

    matlab 模擬仿真 熟悉Matlab/Simulink/Stateflow建模開(kāi)發(fā)及仿真測(cè)試,熟悉V模型開(kāi)發(fā)流程。 熟悉自動(dòng)代碼生成,能夠編寫(xiě)或者配置自動(dòng)代碼生成腳本。
    發(fā)表于 10-24 17:23

    升壓模塊可以升電流嗎

    升壓模塊(Boost Converter)是一種電子電路,主要用于將輸入電壓提升到更高的輸出電壓。它不能直接升電流,但可以通過(guò)調(diào)整輸出電壓來(lái)間接影響電流的大小。 1. 升壓模塊的工作原理 升壓
    的頭像 發(fā)表于 09-29 16:50 ?2166次閱讀

    simulink動(dòng)態(tài)系統(tǒng)建模仿真-第9章

    電子發(fā)燒友網(wǎng)站提供《simulink動(dòng)態(tài)系統(tǒng)建模仿真-第9章.ppt》資料免費(fèi)下載
    發(fā)表于 07-26 11:47 ?1次下載

    電子發(fā)燒友

    中國(guó)電子工程師最喜歡的網(wǎng)站

    • 2931785位工程師會(huì)員交流學(xué)習(xí)
    • 獲取您個(gè)性化的科技前沿技術(shù)信息
    • 參加活動(dòng)獲取豐厚的禮品