色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

3天內不再提示

Simulink Test Sequence場景測試和代碼生成步驟

冬至子 ? 來源:鳴鳴鑼的小屋 ? 作者:Maxwell Luo ? 2023-07-22 10:02 ? 次閱讀

圖片

Simulink是基于時間序列的仿真系統,因此在我們進行單元測試的時候,往往會輸入一組時間相關的數據,通過Signal Builder、Signal Editor我們可以做到快速地創建一組時間序列數據。但是有的時候,我們更加關注軟件某些時刻的行為,且測試的觸發取決于一定的先決條件。這個時候,我們就需要基于場景的測試了。在Simulink中,Test Sequence/Test Assessment就很好地滿足了這一需求。我們今天主要聚焦于使用Test Sequence完成場景測試的編輯,以及對Test Sequence進行代碼生成。

使用Test Sequence

首先創建一個簡單的模型,實現一個簡單的功能:把輸入乘以2之后再輸出。這里我們可以選擇通過創建Harness來測試,在創建時勾選使用Test Sequence來驅動。

圖片

圖片

但是我們這里不選擇自動創建,而是手動創建Test Sequence,這樣我們能夠更好地體會它的功能。

新建一個測試專用的模型,并把待測試的目標模型引用進來,再創建一個空白的Test Sequence模塊。可以從引用模型的接口看到,該模型需要一個函數調用和一個輸入數據進行驅動。我們在Test Sequence模塊中完成這一工作。

圖片

打開Test Sequence模塊,可以看到左側欄是一些標識符的定義,右側就是場景編輯界面。每一條測試都是由步驟名、步驟動作、轉移條件、下一步驟組成,操作起來很像狀態機,語句也都是MATLAB語言,非常自然。

圖片

下面嘗試編輯一個場景:初始時(t=0),輸入賦值為0;t = 1時刻,輸入賦值為1,同時調用一次Step函數;t = 5時刻,輸入賦值為2,同時調用一次Step函數。我們第一次寫出來的Test Sequence如下所示。

圖片

連接好測試模型,設置為離散求解器,步長為0.2,仿真時間為10s,記錄輸出值以及事件。

圖片

運行仿真,查看Sequence Viewer如下。遺憾地發現,Step函數并沒有像我們預期的那樣,在1s和5s時刻運行一遍。這是因為Simulink還是基于時間序列的仿真,并不能真的只在1s和5s各自運行一次。Test Sequence只是提供了一些方便的場景編輯功能,在上面那種寫法中,Simulink維持了Step在每個時刻進行調用的設置。對于數據也是同樣的道理,雖然用戶只設置了一次,但是往后的仿真時間步會延續該次設置值,并持續產生數據。

圖片

因此,正確的寫法應該是如下所示。這樣能夠保證,Step函數真的只在期望的時刻發生調用了。

圖片

圖片

對Test Sequence生成代碼

Test Sequence模塊無疑是非常好用的工具,那么是否可以應用到SIL的測試場景中呢?答案是可以的。Test Sequence模塊可以生成代碼,這樣我們就可以得到一個C代碼的測試驅動程序。我們把上述Test Sequence模塊拷貝到一個新的Simulink模型中,并進行如下的配置,就可以生成我們想要的驅動代碼形式了。

圖片

這里注意以下幾點:

  1. Test Sequence模塊既輸出了信號,也輸出了函數調用,如果希望能夠在代碼中看到函數調用,就必須構造一個Function Call Subsystem和Function Caller來承接這個函數調用,如下所示。

圖片

  1. 對于輸出的信號如果有特殊的接口形式要求(比如某個全局變量,或者接口函數),那么可以通過Simulink自定義存儲類來實現,綁定此信號線和一個Simulink.Signal對象。像下面這樣,可以讓輸出為一個全局變量x;也可以是一個標準的RTE接口。

圖片

圖片

  1. 要注意驅動模型的仿真步長一定要和被測對象進行匹配。因為本Test Sequence模塊是放在一個定速率模型中,其運行節奏是由步長決定的,代碼生成中也可以看到,Test Sequence中所謂t == 1 ,after( 1 , sec)也都會轉換到相應的步長上。因此如果步長配置錯誤會導致測試驅動的節奏錯誤。(額外提一點,包含Test Sequence的模型配置成導出函數模型或AUTOSAR模型的話,在生成代碼上有困難。)

圖片

圖片

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

    關注

    14

    文章

    1033

    瀏覽量

    84901
  • MATLAB語言
    +關注

    關注

    0

    文章

    12

    瀏覽量

    8753
  • simulink仿真
    +關注

    關注

    0

    文章

    75

    瀏覽量

    8721
  • sequence
    +關注

    關注

    0

    文章

    23

    瀏覽量

    2953
  • 求解器
    +關注

    關注

    0

    文章

    79

    瀏覽量

    4696
收藏 0人收藏

    評論

    相關推薦
    熱點推薦

    基于base test如何來構造測試用例

    在設計仿真用例時,有限制條件的激勵相比漫無目的的仿真更加有效的找出RTL的bug。因此,同一份測試方案,不同的sequence往往代表著不同的test_case。真正的測試用例都是基于
    的頭像 發表于 09-19 09:16 ?2624次閱讀

    CCS打開simulink生成的dsp代碼

    simulink生成DSP代碼,并成功下載到板子上后,用CCS選中生成代碼文件確卻不能打開,這是為什么?
    發表于 10-29 18:33

    Simulink模型生成代碼

    本文首先通過一個簡單的Simulink模型生成代碼,然后將代碼copy到一個STM32工程中去編譯軟件。最后將軟件下載到STM32F407中,通過串口輸出
    發表于 08-11 07:56

    通過一個簡單的Simulink模型生成代碼

    本文首先通過一個簡單的Simulink模型生成代碼,然后將代碼copy到一個Arduino路徑中去編譯軟件。最后將軟件下載到Arduino Uno中,通過串口輸出
    發表于 08-18 06:22

    手把手教你SIMULINK代碼生成

    FrancisZhao:專欄文章列表以及一些說明?zhuanlan.zhihu.comFrancisZhao:手把手教你代碼生成(下):SIMULINK代碼
    發表于 08-18 06:03

    請問simulink代碼如何生成2020a?

    請問simulink代碼如何生成2020a?
    發表于 11-22 06:38

    MATLAB/SIMULINK生成嵌入式代碼有哪些步驟

    昨天參加了Mathworks公司在東南大學舉辦的關于MATLAB的培訓,內容是關于MATLAB/SIMULINK的嵌入式代碼生成以及物理建模,在這里把代碼
    發表于 12-16 07:16

    基于Simulink代碼生成過程是怎樣的?

    基于Simulink代碼生成過程是怎樣的?
    發表于 02-18 07:46

    Simulink 自動代碼生成原理分享

    多出來一些目標系統可以選擇。自定義目標系統是為了讓Simulink生成代碼能根據用戶的需要,與底層驅動做集成。我們首先需要了解Simulink目標編譯的流程,如下圖,
    發表于 05-31 11:19

    MathWorks推出新款代碼生成工具Simulink

      MathWorks 今日宣布 Simulink 代碼生成工具箱已通過 Embedded Coder 嵌入到 Freescale 的新款 Motor Control Development Toolbox 中。該工具箱包括
    發表于 04-26 08:39 ?1406次閱讀

    MBD的Simulink使用技巧:Simulink代碼生成的基本概念(1)

    MATLAB/Simulink中一共提供三個代碼生成的工具
    的頭像 發表于 07-13 15:11 ?3406次閱讀
    MBD的<b class='flag-5'>Simulink</b>使用技巧:<b class='flag-5'>Simulink</b><b class='flag-5'>代碼</b><b class='flag-5'>生成</b>的基本概念(1)

    MBD的Simulink使用技巧:詳解代碼生成中的模型與代碼(2)

    上一篇文章中提到,生成嵌入式代碼,必須選擇定步長求解器。實際中,生成嵌入式代碼幾乎不會使用Simulink模型庫中的連續模型,往往需要通過最
    的頭像 發表于 07-13 15:13 ?6610次閱讀
    MBD的<b class='flag-5'>Simulink</b>使用技巧:詳解<b class='flag-5'>代碼</b><b class='flag-5'>生成</b>中的模型與<b class='flag-5'>代碼</b>(2)

    利用Simulink自動生成STM32串口代碼

    功能:利用Simulink自動生成STM32串口代碼,在Keil中編譯后直接下載到主芯片,實現串口通訊的功能。
    的頭像 發表于 10-25 17:04 ?2268次閱讀
    利用<b class='flag-5'>Simulink</b>自動<b class='flag-5'>生成</b>STM32串口<b class='flag-5'>代碼</b>

    simulink自動生成ROS代碼

    當我們用simulink完成控制程序的搭建后,我們期望下一次可以直接對ROS進行控制,而不是每次都需要啟動matlab和simulink,因此我們可以使用simulink代碼
    的頭像 發表于 11-15 17:53 ?1095次閱讀
    <b class='flag-5'>simulink</b>自動<b class='flag-5'>生成</b>ROS<b class='flag-5'>代碼</b>

    Simulink自動生成代碼現階段的學習筆記

    在車載控制器的軟件開發中,simulink的身影幾乎隨處可見,主要是在控制算法和控制邏輯的實現。平時看同事點點點就生成代碼了,看起來很簡單,但是實際操作起來確各種磕磕絆絆。 下面記錄了一下
    的頭像 發表于 04-17 10:56 ?4683次閱讀
    <b class='flag-5'>Simulink</b>自動<b class='flag-5'>生成</b><b class='flag-5'>代碼</b>現階段的學習筆記
    主站蜘蛛池模板: 一品道门在线观看免费视频 | 日韩中文字幕欧美在线视频 | 92国产精品午夜免费福利视频 | 黄色888 | 娇妻在床上迎合男人 | 99re久久热在线视频 | 国产人妻人伦精品A区 | 激情内射亚州一区二区三区爱妻 | 国拍自产精品福利区 | 一区一区三区产品 | 99久久久无码国产精精品 | 寂寞骚妇女被后入式抽插 | 久久国内精品 | 中文字幕一区久久久久 | 国产成人精品一区二区三区视频 | 国产精品亚洲AV毛片一区二区三区 | 久久视热频国只有精品 | 黑人玩弄极品人妻系列 | 真实处破女全过程完免费观看 | 一区视频免费观看 | 亚洲成在人线视频 | 131美女爱做视频午夜剧场 | 天天色天天干天天 | 日产精品久久久久久久蜜殿 | 耽肉高h喷汁呻吟 | 久久re热在线视频精99 | 4484在线观看视频 | 国产成人精品久久久久婷婷 | 色琪琪丁香婷婷综合久久 | 亞洲人妻AV無碼在線視頻 | 一级毛片皇帝 宫女 | 国产午夜精品自在自线之la | av免费网站不卡观看 | 护士的下面又湿又紧10P | 亚洲日本香蕉视频观看视频 | 亚洲人成人毛片无遮挡 | 武侠古典久久亚洲精品 | 国内久经典AAAAA片 | 少妇久久久久久被弄高潮 | 久久国产视频网站 | 网址在线观看你懂我意思吧免费的 |

    電子發燒友

    中國電子工程師最喜歡的網站

    • 2931785位工程師會員交流學習
    • 獲取您個性化的科技前沿技術信息
    • 參加活動獲取豐厚的禮品