91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

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

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

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

關(guān)于利用C代碼實(shí)現(xiàn)條件控制的分析和研究

MATLAB ? 來(lái)源:djl ? 2019-09-17 11:40 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

條件控制在C代碼中常用的諸如if-else, Switch-Case來(lái)表達(dá),那么:

Simulink模型中是如何實(shí)現(xiàn)的呢?

又如何配置生成代碼呢?

點(diǎn)擊末尾的 “閱讀原文” 下載本文的案例模型

條件控制邏輯

要得到:

if (u1 > u2)

{

y1 = u1;

}

else

{

y1 = u2;

}

或者

switch (u1)

{

case 2:

y1 = u2;

break;

case 3:

u3;

break;

default:

y1 = u4;

break;

}

怎么做:

Simulink框圖模型里使用Signal Routing以及Ports&Subsystem庫(kù)里對(duì)應(yīng)的模塊,如Switch;在Chart里則根據(jù)邏輯來(lái)構(gòu)造流程圖;而在MATLAB Function模塊里則直接寫(xiě)m腳本。

if-else實(shí)例

1. 新建一個(gè)簡(jiǎn)單的Simulink模型

如圖使用三種方式來(lái)實(shí)現(xiàn)條件判斷的算法

關(guān)于利用C代碼實(shí)現(xiàn)條件控制的分析和研究

如上圖,對(duì)于Simulink來(lái)說(shuō),if-else可以使用Signal Routing庫(kù)里的Switch模塊。而在Chart中,則畫(huà)出對(duì)應(yīng)的流程圖即可,如下圖:

關(guān)于利用C代碼實(shí)現(xiàn)條件控制的分析和研究

MATLAB Function則更簡(jiǎn)單,直接寫(xiě)m腳本。

關(guān)于利用C代碼實(shí)現(xiàn)條件控制的分析和研究

代碼生成基本配置

求解器:定步長(zhǎng)—離散求解器

系統(tǒng)目標(biāo)文件:ert.tlc

3. 新建數(shù)據(jù)對(duì)象

打開(kāi)Model Explorer,點(diǎn)擊菜單的Add,在Base Workspace里定義輸入、輸出信號(hào)同名的數(shù)據(jù)對(duì)象。通過(guò)數(shù)據(jù)對(duì)象來(lái)控制這些信號(hào)在將來(lái)生成C代碼時(shí)的定義和聲明。

關(guān)于利用C代碼實(shí)現(xiàn)條件控制的分析和研究

4. 信號(hào)關(guān)聯(lián)

在信號(hào)線上右鍵,將信號(hào)與Base Workspace的數(shù)據(jù)對(duì)象關(guān)聯(lián)在一起。鼠標(biāo)操作的方式,可以參考之前的帖子里的菜單截圖。因?yàn)檫@里的信號(hào)略多,一條一條信號(hào)線的點(diǎn)擊鼠標(biāo),略麻煩,所以可以使用命令的方式來(lái)實(shí)現(xiàn):

關(guān)于利用C代碼實(shí)現(xiàn)條件控制的分析和研究

此時(shí),第一張模型截圖中信號(hào)線上的藍(lán)色小叉子就會(huì)出現(xiàn),表示已經(jīng)關(guān)聯(lián)了。

5. 生成代碼

Ctrl+B,生成代碼。

如前面所設(shè)置的,三個(gè)模塊都會(huì)得到同樣的if-else的代碼:

關(guān)于利用C代碼實(shí)現(xiàn)條件控制的分析和研究

接下來(lái)看Switch的情況。

Switch實(shí)例

1. MATLAB Function

比較簡(jiǎn)單,跟之前一樣按照m語(yǔ)言的語(yǔ)法寫(xiě)代碼即可。

2. Stateflow Chart

而對(duì)于Stateflow Chart來(lái)說(shuō),如果不熟悉流程圖的畫(huà)法,可以使用向?qū)ё詣?dòng)生成特定的邏輯結(jié)構(gòu),作為參考:

關(guān)于利用C代碼實(shí)現(xiàn)條件控制的分析和研究

在向?qū)?duì)應(yīng)的框內(nèi)填入內(nèi)容,然后自動(dòng)生成后邊的流程圖,可以根據(jù)自己的需要再進(jìn)行調(diào)整。Stateflow里面,中括號(hào)里的是條件判斷語(yǔ)句,大括號(hào)里的是執(zhí)行語(yǔ)句。

關(guān)于利用C代碼實(shí)現(xiàn)條件控制的分析和研究

其實(shí)從結(jié)構(gòu)上來(lái)講,得到的流程圖和之前的if-else是類似,它其實(shí)也完全可以用 if-else if-else的C代碼來(lái)表示。而實(shí)際上,它生成的代碼也會(huì)是這樣:

關(guān)于利用C代碼實(shí)現(xiàn)條件控制的分析和研究

只不過(guò)呢,因?yàn)橄聢D所示的選擇項(xiàng)是會(huì)默認(rèn)勾選上的:

關(guān)于利用C代碼實(shí)現(xiàn)條件控制的分析和研究

所以生成的代碼就會(huì)變成Switch的模式:

關(guān)于利用C代碼實(shí)現(xiàn)條件控制的分析和研究

Signal Routing里有個(gè)Multiport Switch可以用來(lái)表達(dá)Switch的效果。另外,還有來(lái)自Port & Subsystem庫(kù)里的Switch Case模塊。

下圖就是它們的用法。感興趣的可以下載模型生成代碼看看。

關(guān)于利用C代碼實(shí)現(xiàn)條件控制的分析和研究

條件控制語(yǔ)句:

對(duì)于MATLAB Function,就是直接寫(xiě)對(duì)應(yīng)的m腳本;

對(duì)于Stateflow,就是對(duì)應(yīng)不同形式的流程圖;

對(duì)于Simulink,就是使用對(duì)應(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)投訴
  • 邏輯
    +關(guān)注

    關(guān)注

    2

    文章

    834

    瀏覽量

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

    關(guān)注

    1

    文章

    90

    瀏覽量

    15192
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    講解C語(yǔ)言代碼實(shí)現(xiàn)過(guò)程

    重點(diǎn)講解C語(yǔ)言代碼實(shí)現(xiàn)過(guò)程,算法的C語(yǔ)言實(shí)現(xiàn)過(guò)程具有一般性,通過(guò)PID算法的C語(yǔ)言
    發(fā)表于 01-21 07:58

    分析嵌入式軟件代碼的漏洞-代碼注入

    及其后代衍生產(chǎn)品)很不擅長(zhǎng)發(fā)現(xiàn)這樣的漏洞,因?yàn)橄胍?b class='flag-5'>實(shí)現(xiàn)精確的查找漏洞就需要完成整個(gè)程序的路徑敏感分析。 提升嵌入式代碼分析工具 最近出現(xiàn)的先進(jìn)的靜態(tài)
    發(fā)表于 12-22 12:53

    C語(yǔ)言單元測(cè)試在嵌入式軟件開(kāi)發(fā)中的作用及專業(yè)工具的應(yīng)用

    一、C語(yǔ)言在嵌入式開(kāi)發(fā)中的現(xiàn)狀與重要性 C語(yǔ)言在嵌入式開(kāi)發(fā)領(lǐng)域仍然占據(jù)主導(dǎo)地位,根據(jù)Barr集團(tuán)的研究,目前95%的嵌入式系統(tǒng)代碼采用C
    發(fā)表于 12-18 11:46

    C/C++條件編譯

    條件編譯是一種在編譯時(shí)根據(jù)條件選擇性地包含或排除部分代碼的處理方法。在 C/C++ 中,條件編譯
    發(fā)表于 12-05 06:21

    基于芯源CW32 MCU的LED閃爍示例及代碼分析

    準(zhǔn)備: 芯源CW32開(kāi)發(fā)板 一個(gè)LED 電阻及基礎(chǔ)連接線 開(kāi)發(fā)環(huán)境:我使用的是Keil作為開(kāi)發(fā)環(huán)境,同時(shí)利用官方提供的CW32庫(kù)函數(shù),這使得代碼更加簡(jiǎn)潔清晰。 代碼實(shí)現(xiàn):這段
    發(fā)表于 12-04 06:52

    Airship研究:無(wú)代碼原生應(yīng)用體驗(yàn)使購(gòu)買(mǎi)頻次翻倍(增長(zhǎng)140%),為假日季盈利增長(zhǎng)開(kāi)辟新路徑

    ”(Experience Impact)研究分析了超過(guò)1000個(gè)零售類應(yīng)用內(nèi)體驗(yàn)和17億次設(shè)備會(huì)話,量化了利用無(wú)代碼和AI驅(qū)動(dòng)工具優(yōu)化端到端客戶旅程(而非僅發(fā)送信息)所產(chǎn)生的影響——這
    的頭像 發(fā)表于 11-27 16:34 ?1036次閱讀

    C語(yǔ)言的編程技巧

    設(shè)計(jì),分層開(kāi)發(fā)代碼,便于理解和維護(hù)。 ?8、避免使用GOTO語(yǔ)句?:盡管GOTO語(yǔ)句在某些情況下仍然有用,但現(xiàn)代編程更傾向于使用函數(shù)和循環(huán)控制結(jié)構(gòu),以提高代碼的可讀性和維護(hù)性。 ?9、利用
    發(fā)表于 11-27 06:46

    電壓放大器驅(qū)動(dòng)液滴微流控芯片關(guān)鍵功能實(shí)現(xiàn)研究

    控制條件,可以對(duì)液滴進(jìn)行多樣化的操控,以滿足不同研究和應(yīng)用場(chǎng)景需求。在生物醫(yī)學(xué)領(lǐng)域,液滴具有廣泛的應(yīng)用價(jià)值,可以視為一個(gè)獨(dú)立的微反應(yīng)器,具有微納尺度體積,容易高通量操作,非常適用于大樣本下的生化檢測(cè)和
    的頭像 發(fā)表于 07-30 14:24 ?757次閱讀
    電壓放大器驅(qū)動(dòng)液滴微流控芯片關(guān)鍵功能<b class='flag-5'>實(shí)現(xiàn)</b><b class='flag-5'>研究</b>

    Perforce QAC產(chǎn)品簡(jiǎn)介:面向C/C++的靜態(tài)代碼分析工具(已通過(guò)SO 26262認(rèn)證)

    Perforce QAC專為C/C++開(kāi)發(fā)者打造,支持多種編碼規(guī)范、功能安全標(biāo)準(zhǔn)(ISO 26262)等,廣泛用于汽車(chē)、醫(yī)療、嵌入式開(kāi)發(fā)領(lǐng)域,可幫助快速識(shí)別關(guān)鍵缺陷、提升代碼質(zhì)量、實(shí)現(xiàn)
    的頭像 發(fā)表于 07-10 15:57 ?1304次閱讀
    Perforce QAC產(chǎn)品簡(jiǎn)介:面向<b class='flag-5'>C</b>/<b class='flag-5'>C</b>++的靜態(tài)<b class='flag-5'>代碼</b><b class='flag-5'>分析</b>工具(已通過(guò)SO 26262認(rèn)證)

    無(wú)刷直流電機(jī)雙閉環(huán)串級(jí)控制系統(tǒng)仿真研究

    以來(lái)伴隨著永磁材料技術(shù)、計(jì)算機(jī)及控制技術(shù)等支撐技術(shù)的快速發(fā)展及微電機(jī)制造工藝水平的不斷提高,永磁無(wú)刷直流電動(dòng)機(jī)在高性能中、小伺服驅(qū)動(dòng)領(lǐng)域獲得廣泛應(yīng)用并日趨占據(jù)主導(dǎo)地位嗎。一直以來(lái),研究人員都比較關(guān)注利用
    發(fā)表于 07-07 18:36

    無(wú)刷直流電機(jī)改進(jìn)型直接轉(zhuǎn)矩控制研究

    摘要:研究了120”導(dǎo)通方式下的無(wú)刷直流電機(jī)直接轉(zhuǎn)矩控制策略。通過(guò)分析了無(wú)刷直流電機(jī)轉(zhuǎn)矩特性知道,只要保持定子磁鏈幅值恒定并控制其旋轉(zhuǎn)速度就可使電機(jī)獲得快速轉(zhuǎn)矩動(dòng)態(tài)響應(yīng)性能。對(duì) 120
    發(fā)表于 06-27 16:45

    三相異步電機(jī)直接轉(zhuǎn)矩控制的圓形磁鏈研究

    產(chǎn)生PWM波,并通過(guò)改變轉(zhuǎn)速給定值,得出在不同給定條件下的仿真結(jié)果,并用濾波器對(duì)定子電流進(jìn)行濾波,最后對(duì)仿真結(jié)果進(jìn)行了具體分析。這對(duì)中小功率電機(jī)控制系統(tǒng)實(shí)際開(kāi)發(fā)應(yīng)用等方面有一定的實(shí)用價(jià)值。 純分享帖,需要者
    發(fā)表于 06-16 21:50

    如何利用EPR分析USB PD?

    嗨,英飛凌社區(qū), 我一直在研究 USB PD 3.1,根據(jù)我找到的信息,EPR 是 USB PD 3.1 規(guī)范的一部分。 我對(duì)使用CY4500 EZ-PD協(xié)議分析儀很感興趣,但我在以下鏈接中發(fā)現(xiàn)它不
    發(fā)表于 05-21 06:40

    基于STM32C8T6控制,F(xiàn)SR402壓力傳感器+oled屏幕顯示代碼

    基于STM32C8T6控制,F(xiàn)SR402壓力傳感器+oled屏幕顯示代碼
    發(fā)表于 04-14 15:06 ?8次下載

    永磁同步電機(jī)矢量控制策略分析

    本文通過(guò)矢量控制策略采用 id=0 控制方案快速準(zhǔn)確地控制轉(zhuǎn)矩,實(shí)現(xiàn)調(diào)速系統(tǒng)具有較高的動(dòng)態(tài)性能。并利用了 Matlab 工具對(duì)永磁同步電機(jī)矢
    發(fā)表于 03-20 12:57