RM新时代网站-首页

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

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

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

關(guān)于Stateflow實(shí)現(xiàn)循環(huán)邏輯的相關(guān)分析和介紹

MATLAB ? 來(lái)源:djl ? 2019-09-17 10:35 ? 次閱讀

循環(huán)邏輯

要得到:

y1 = 0;

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

{

y1 = u1[inx] + y1;

}

或者

while(flag && (num_iter <= 100)

{

flag = func ();

num_iter ++;

}

怎么做:

Stateflow 有相應(yīng)的流程圖向?qū)Э梢灾苯邮褂?,自?dòng)生成對(duì)應(yīng)的流程圖結(jié)構(gòu)。

For循環(huán)

1. 模型

在 Stateflow 里有各種控制流的構(gòu)造向?qū)?,如下圖。如果對(duì) Stateflow 的流程圖構(gòu)建不熟悉的話(huà),可以使用它來(lái)自動(dòng)生成,再在它的基礎(chǔ)上進(jìn)行修改:

關(guān)于Stateflow實(shí)現(xiàn)循環(huán)邏輯的相關(guān)分析和介紹

從而得到所需要的框圖:

關(guān)于Stateflow實(shí)現(xiàn)循環(huán)邏輯的相關(guān)分析和介紹

2. 數(shù)據(jù)

定義 Stateflow 模塊的端口和本地變量,輸入端口 u1,輸出端口 yy1,以及本地變量 inx 如下:

關(guān)于Stateflow實(shí)現(xiàn)循環(huán)邏輯的相關(guān)分析和介紹

在 Base Workspace 里定義輸入輸出信號(hào) u1,yy1 的 Data Object:

關(guān)于Stateflow實(shí)現(xiàn)循環(huán)邏輯的相關(guān)分析和介紹

3. 關(guān)聯(lián)

在信號(hào)線(xiàn)上右鍵,設(shè)置信號(hào)屬性,勾選 “Signal name must resolve to Simulink signal object”,將信號(hào)與 Base Workspace 的數(shù)據(jù)對(duì)象關(guān)聯(lián)在一起。關(guān)聯(lián)輸入輸出信號(hào)后,會(huì)看到如圖的藍(lán)色小叉子:

關(guān)于Stateflow實(shí)現(xiàn)循環(huán)邏輯的相關(guān)分析和介紹

4. 代碼

Ctrl+B,它所自動(dòng)生成的代碼:

關(guān)于Stateflow實(shí)現(xiàn)循環(huán)邏輯的相關(guān)分析和介紹

While循環(huán)

1. 模型

下圖就通過(guò)向?qū)?gòu)造的,得到跟 for 循環(huán)類(lèi)似的流程圖:

關(guān)于Stateflow實(shí)現(xiàn)循環(huán)邏輯的相關(guān)分析和介紹

這里的func作為一個(gè) 事件Event ,觸發(fā)外面的 function call 子系統(tǒng) func 計(jì)算flag:

關(guān)于Stateflow實(shí)現(xiàn)循環(huán)邏輯的相關(guān)分析和介紹

2. 數(shù)據(jù)

Stateflow 內(nèi)的數(shù)據(jù)定義如下圖,輸入端口名稱(chēng) u1,輸出端口名稱(chēng) yy2,本地變量 num_iter。flag 由外部函數(shù) func 來(lái)更新而作為輸入。另外, func 事件觸發(fā)調(diào)用外部的 func 函數(shù)。( inx 這里沒(méi)有用)

關(guān)于Stateflow實(shí)現(xiàn)循環(huán)邏輯的相關(guān)分析和介紹

在 Base Workspace 里定義相應(yīng)的數(shù)據(jù)對(duì)象。因?yàn)檫@個(gè) Simulink 模型的信號(hào)線(xiàn)上已經(jīng)命名為 u2,所以定義的數(shù)據(jù)對(duì)象名稱(chēng)要跟信號(hào)線(xiàn)的名字一致: u2,yy2,flag。

并設(shè)置 flag 的初始值為 true。將數(shù)據(jù)對(duì)象與 Simulink 信號(hào)線(xiàn)關(guān)聯(lián)。

關(guān)于Stateflow實(shí)現(xiàn)循環(huán)邏輯的相關(guān)分析和介紹

3. 生成代碼

Ctrl+B,生成的代碼如下圖所示。設(shè)置了 func()子系統(tǒng)的屬性,把它變成一個(gè)子函數(shù)來(lái)調(diào)用。沒(méi)有截圖顯示,但是func() 函數(shù)里修改了全局變量 flag 的值。

關(guān)于Stateflow實(shí)現(xiàn)循環(huán)邏輯的相關(guān)分析和介紹

代碼正常生成,但此時(shí)會(huì)得到如下的警告:

關(guān)于Stateflow實(shí)現(xiàn)循環(huán)邏輯的相關(guān)分析和介紹

也就是說(shuō),我們之前對(duì)數(shù)據(jù)對(duì)象 flag 所設(shè)置的初始值是沒(méi)用的,會(huì)被模型中 func 子系統(tǒng)的輸出端口 Out1 的初始值所覆蓋。

默認(rèn)情況下 Out1 端口的初始值為 0 ,所以看下圖的初始化函數(shù)里, flag 被初始化為 false,我們之前所設(shè)置的初始值 true 沒(méi)有發(fā)生作用。

關(guān)于Stateflow實(shí)現(xiàn)循環(huán)邏輯的相關(guān)分析和介紹

主程序里的 while(flag&(inx<100)) 都不會(huì)被執(zhí)行。這個(gè)問(wèn)題,通過(guò)仿真也會(huì)測(cè)出來(lái)。

所以,需要雙擊 func 子系統(tǒng)的 Out1 端口,設(shè)置初始值為 true,仿真才能得到正確的結(jié)果。同時(shí),也會(huì)最后得到下面的初始化代碼。

關(guān)于Stateflow實(shí)現(xiàn)循環(huán)邏輯的相關(guān)分析和介紹

do while循環(huán)

使用流程圖的向?qū)?,選擇 do while 模式,把 Chart 里面的流程圖改改就行了。另外,被調(diào)用的 func 函數(shù),也可以寫(xiě)在 Chart 里面。

Stateflow 有相應(yīng)的流程圖向?qū)Э梢灾苯邮褂?,自?dòng)生成對(duì)應(yīng)的流程圖結(jié)構(gòu)。

聲明:本文內(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)投訴
  • 輸出信號(hào)
    +關(guān)注

    關(guān)注

    0

    文章

    280

    瀏覽量

    11858
  • 初始化
    +關(guān)注

    關(guān)注

    0

    文章

    50

    瀏覽量

    11850
收藏 人收藏

    評(píng)論

    相關(guān)推薦

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

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

    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

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

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

    分析組合邏輯電路的設(shè)計(jì)步驟

    和可靠性。 需求分析 需求分析是設(shè)計(jì)組合邏輯電路的第一步,也是最重要的一步。在這個(gè)階段,我們需要明確電路的功能、輸入輸出信號(hào)、性能要求等。需求分析的目的是確保電路設(shè)計(jì)滿(mǎn)足實(shí)際應(yīng)用的需求
    的頭像 發(fā)表于 07-30 14:39 ?685次閱讀

    multisim中邏輯分析儀怎么連接

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

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

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

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

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

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

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

    如何實(shí)現(xiàn)PLC的自動(dòng)化控制邏輯

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

    邏輯分析儀的使用說(shuō)明

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

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

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

    arduino中while循環(huán)怎么跳出

    執(zhí)行某段代碼的情況。然而,如何在合適的時(shí)機(jī)跳出 while 循環(huán)是一個(gè)需要注意的問(wèn)題。本文將詳細(xì)介紹 Arduino 中 while 循環(huán)的基本概念,以及如何使用不同的技巧跳出該循環(huán)來(lái)
    的頭像 發(fā)表于 02-14 16:22 ?2557次閱讀

    循環(huán)指令loop規(guī)定循環(huán)次數(shù)

    循環(huán)指令是計(jì)算機(jī)編程中非常重要的概念,它允許程序重復(fù)執(zhí)行一段代碼塊,使得程序可以更有效地處理大量數(shù)據(jù)和重復(fù)性任務(wù)。在本文中,我們將詳盡、詳實(shí)、細(xì)致地介紹循環(huán)指令的相關(guān)概念、語(yǔ)法和應(yīng)用場(chǎng)
    的頭像 發(fā)表于 02-14 16:10 ?1642次閱讀

    邏輯非運(yùn)算——NOT電路分析

    NOT門(mén)可以將輸入的邏輯狀態(tài)進(jìn)行反轉(zhuǎn)。當(dāng)需要將邏輯信號(hào)反轉(zhuǎn)為相反的狀態(tài)時(shí),NOT門(mén)可以很方便地實(shí)現(xiàn)這一功能。
    的頭像 發(fā)表于 02-03 10:59 ?3476次閱讀
    <b class='flag-5'>邏輯</b>非運(yùn)算——NOT電路<b class='flag-5'>分析</b>

    g81循環(huán)指令參數(shù)

    G81循環(huán)指令是在數(shù)控機(jī)床中常用的一種循環(huán)加工指令,通過(guò)該指令可以實(shí)現(xiàn)機(jī)床在一個(gè)指定區(qū)域內(nèi)的循環(huán)加工操作。本文將詳盡、詳實(shí)、細(xì)致地介紹G81
    的頭像 發(fā)表于 01-14 16:08 ?4559次閱讀
    RM新时代网站-首页