0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

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

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

關(guān)于實現(xiàn)邏輯循環(huán)的方法分析和介紹

MATLAB ? 來源:djl ? 作者:柚籽 ? 2019-09-17 11:24 ? 次閱讀

C代碼中常用的循環(huán)控制語句有諸如for 、while以及do while。那么,這種循環(huán)邏輯在Simulink模型中是如何實現(xiàn)的呢?

Simulink里有三種建模手段:

Simulink 框圖

Stateflow Chart

MATLAB Function

先來看看如何使用Simulink 框圖來表達這種循環(huán)邏輯。

點擊末尾的 “閱讀原文” 下載本文的案例模型

循環(huán)邏輯

要得到:

y1 = 0;

for(inx = 0; inx <10; inx++)

{

y1 = u1[inx] + y1;

}

或者

while(flag && (num_iter <= 100)

{

flag = func ();

num_iter ++;

}

怎么做:

在 Simulink的Port & Subsystem庫里,有IF-ELSE以及While模塊。

For循環(huán)實例

1. 新建一個簡單的Simulink模型

首先來看For循環(huán),這是從Port & Subsystem庫里拖出來的For Iterator模塊:

關(guān)于實現(xiàn)邏輯循環(huán)的方法分析和介紹

雙擊它,搭建內(nèi)部如下圖:

關(guān)于實現(xiàn)邏輯循環(huán)的方法分析和介紹

代碼生成之前所需要的配置、數(shù)據(jù)對象的構(gòu)造以及信號關(guān)聯(lián)等等,這些任務(wù)與之前所述一樣,此處就不再重復(fù)說了。

5. 生成代碼

Ctrl+B,生成代碼。

如前面所設(shè)置的,可以看到下圖所生成的For循環(huán)的C代碼:

關(guān)于實現(xiàn)邏輯循環(huán)的方法分析和介紹

While循環(huán)實例

在Port & Subsystem庫里的While Iterator模塊,實現(xiàn)while循環(huán)的功能。從這個模型的端口來看,在這個循環(huán)里根據(jù)輸入u2來計算輸出y2的值,如下圖。

關(guān)于實現(xiàn)邏輯循環(huán)的方法分析和介紹

在這個While Iterator子系統(tǒng)內(nèi)部,則是具體的while循環(huán)的內(nèi)容,如下圖。

While Iterator模塊,是這個循環(huán)的條件模塊,可以設(shè)置最大的循環(huán)次數(shù),同時cond為while的循環(huán)條件。而在上部的累加計算框圖,則是 while 循環(huán)的內(nèi)容。

關(guān)于實現(xiàn)邏輯循環(huán)的方法分析和介紹

生成代碼,如下圖。圖中的func函數(shù)就是框圖func子系統(tǒng)所生成的函數(shù)。內(nèi)部做了一些更新flag的計算。另外可以看到累加框圖生成的代碼:y2 += u2。

關(guān)于實現(xiàn)邏輯循環(huán)的方法分析和介紹

do while循環(huán)實例

這個就簡單了,直接把上圖中的 while Iterator 模塊雙擊設(shè)置為 do while 的模式就行了。

其他

生成代碼結(jié)束之后,如果繼續(xù)編譯鏈接生成 exe 文件時,會有一個有意思的錯誤如下。有興趣的可以去查看 math.h 的函數(shù)定義。

關(guān)于實現(xiàn)邏輯循環(huán)的方法分析和介紹

在Simulink的Port & Subsystem庫里,有IF-ELSE以及While相應(yīng)的子系統(tǒng)模塊實現(xiàn)循環(huán)算法。

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

    關(guān)注

    2

    文章

    833

    瀏覽量

    29472
  • 循環(huán)
    +關(guān)注

    關(guān)注

    0

    文章

    92

    瀏覽量

    15976
  • C代碼
    +關(guān)注

    關(guān)注

    1

    文章

    89

    瀏覽量

    14302
收藏 人收藏

    評論

    相關(guān)推薦

    邏輯異或和邏輯或的比較分析

    邏輯異或(Exclusive OR,簡稱XOR)和邏輯或(OR)是數(shù)字邏輯和編程中兩種基本的邏輯運算,它們各自具有獨特的功能和應(yīng)用場景。以下是對邏輯
    的頭像 發(fā)表于 11-19 09:48 ?353次閱讀

    關(guān)于LRU(Least Recently Used)的邏輯實現(xiàn)

    湊巧看到一個有關(guān)LRU(Least Recently Used)的邏輯實現(xiàn),其采用矩陣方式進行實現(xiàn),看起來頗有意思,但文章中只寫方法不說原理,遂來研究下。LRU(Least Rece
    的頭像 發(fā)表于 11-12 11:47 ?243次閱讀
    <b class='flag-5'>關(guān)于</b>LRU(Least Recently Used)的<b class='flag-5'>邏輯</b><b class='flag-5'>實現(xiàn)</b>

    邏輯分析儀的常見故障及解決方法

    邏輯分析儀作為數(shù)字電路信號分析的關(guān)鍵工具,其穩(wěn)定運行對于確保測試結(jié)果的準確性至關(guān)重要。然而,在使用過程中,可能會遇到一些常見故障。以下是對這些故障及其解決方法的詳細探討,以及一些預(yù)防故
    的頭像 發(fā)表于 10-12 15:43 ?621次閱讀

    淺談邏輯分析儀的技術(shù)原理和應(yīng)用領(lǐng)域

    或時序)開始捕獲信號。這些觸發(fā)條件可以根據(jù)工程師的需求進行設(shè)置,以實現(xiàn)靈活的信號捕獲和分析。 信號分析:存儲的信號數(shù)據(jù)可以通過邏輯分析儀的軟
    發(fā)表于 09-12 15:04

    時序邏輯電路的功能表示方法有哪些

    復(fù)雜邏輯功能的關(guān)鍵組成部分。它們能夠存儲信息,并根據(jù)輸入信號和當前狀態(tài)產(chǎn)生輸出。時序邏輯電路的設(shè)計和分析對于理解和實現(xiàn)數(shù)字系統(tǒng)至關(guān)重要。 2. 時序
    的頭像 發(fā)表于 08-28 11:41 ?658次閱讀

    時序邏輯電路的五種描述方法

    時序邏輯電路是數(shù)字電路中的一種重要類型,它具有存儲和處理信息的能力。時序邏輯電路的描述方法有很多種,不同的方法適用于不同的設(shè)計和分析場景。以
    的頭像 發(fā)表于 08-28 11:39 ?1327次閱讀

    對放大電路的分析方法介紹

    放大電路是電子技術(shù)中非常重要的組成部分,它廣泛應(yīng)用于信號處理、通信、測量等領(lǐng)域。對于放大電路的分析,通??梢苑譃橹绷?b class='flag-5'>分析和交流分析兩種情況。下面我們將介紹這兩種
    的頭像 發(fā)表于 08-07 10:08 ?638次閱讀

    multisim中邏輯分析儀怎么連接

    在這篇文章中,我們將詳細介紹如何在Multisim中使用邏輯分析儀(Logic Analyzer)。Multisim是一款功能強大的電子電路仿真軟件,它可以幫助我們設(shè)計、仿真和測試各種電子電路。
    的頭像 發(fā)表于 07-18 09:15 ?2097次閱讀

    邏輯分析儀multisim的應(yīng)用

    電子電路。 邏輯分析儀是一種用于測試和分析數(shù)字電路的儀器,它可以捕獲和顯示數(shù)字信號的波形,幫助用戶診斷電路問題。Multisim中也包含了邏輯分析
    的頭像 發(fā)表于 07-18 09:13 ?902次閱讀

    24M的邏輯分析儀怎么用的

    24M邏輯分析儀是一種用于數(shù)字信號測試和分析的儀器,它可以幫助工程師和技術(shù)人員對數(shù)字信號進行捕獲、存儲、顯示和分析。以下是關(guān)于24M
    的頭像 發(fā)表于 07-17 16:40 ?599次閱讀

    組合邏輯控制器的基本概念、實現(xiàn)原理及設(shè)計方法

    廣泛應(yīng)用于計算機、通信、控制等領(lǐng)域。 本文將詳細介紹組合邏輯控制器的基本概念、實現(xiàn)原理、設(shè)計方法、應(yīng)用場景等方面的內(nèi)容,以幫助讀者全面了解組合邏輯
    的頭像 發(fā)表于 06-30 10:26 ?2084次閱讀

    組合邏輯控制器是用什么實現(xiàn)

    組合邏輯控制器是一種用于控制和管理復(fù)雜系統(tǒng)中各個組件之間交互的邏輯設(shè)備。它可以應(yīng)用于各種領(lǐng)域,如計算機科學(xué)、通信、自動化控制等。在這篇文章中,我們將詳細探討組合邏輯控制器的實現(xiàn)
    的頭像 發(fā)表于 06-30 10:11 ?508次閱讀

    如何實現(xiàn)PLC的自動化控制邏輯

    地提高了生產(chǎn)效率和設(shè)備運行的穩(wěn)定性。本文將詳細介紹如何實現(xiàn)PLC的自動化控制邏輯,包括PLC的基本概念、編程工具、邏輯實現(xiàn)
    的頭像 發(fā)表于 06-15 16:44 ?1187次閱讀

    邏輯分析儀的使用說明

    系統(tǒng)的運行狀況。本使用說明旨在詳細介紹邏輯分析儀的基本功能、使用方法、操作技巧及注意事項,以助于用戶更好地利用該儀器進行數(shù)字系統(tǒng)的調(diào)試和分析
    的頭像 發(fā)表于 05-16 15:37 ?2720次閱讀

    arduino如何停止loop循環(huán)

    退出這個循環(huán)。本文將詳細介紹如何在Arduino中停止loop循環(huán)。 在Arduino中,可以通過使用一個布爾變量或條件語句來實現(xiàn)停止loop循環(huán)
    的頭像 發(fā)表于 02-14 16:24 ?4546次閱讀