在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

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

3天內不再提示

關于利用C代碼實現條件控制的分析和研究

MATLAB ? 來源:djl ? 2019-09-17 11:40 ? 次閱讀

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

Simulink模型中是如何實現的呢?

又如何配置生成代碼呢?

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

條件控制邏輯

要得到:

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庫里對應的模塊,如Switch;在Chart里則根據邏輯來構造流程圖;而在MATLAB Function模塊里則直接寫m腳本。

if-else實例

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

如圖使用三種方式來實現條件判斷的算法

關于利用C代碼實現條件控制的分析和研究

如上圖,對于Simulink來說,if-else可以使用Signal Routing庫里的Switch模塊。而在Chart中,則畫出對應的流程圖即可,如下圖:

關于利用C代碼實現條件控制的分析和研究

MATLAB Function則更簡單,直接寫m腳本。

關于利用C代碼實現條件控制的分析和研究

代碼生成基本配置

求解器:定步長—離散求解器

系統目標文件:ert.tlc

3. 新建數據對象

打開Model Explorer,點擊菜單的Add,在Base Workspace里定義輸入、輸出信號同名的數據對象。通過數據對象來控制這些信號在將來生成C代碼時的定義和聲明。

關于利用C代碼實現條件控制的分析和研究

4. 信號關聯

在信號線上右鍵,將信號與Base Workspace的數據對象關聯在一起。鼠標操作的方式,可以參考之前的帖子里的菜單截圖。因為這里的信號略多,一條一條信號線的點擊鼠標,略麻煩,所以可以使用命令的方式來實現:

關于利用C代碼實現條件控制的分析和研究

此時,第一張模型截圖中信號線上的藍色小叉子就會出現,表示已經關聯了。

5. 生成代碼

Ctrl+B,生成代碼。

如前面所設置的,三個模塊都會得到同樣的if-else的代碼:

關于利用C代碼實現條件控制的分析和研究

接下來看Switch的情況。

Switch實例

1. MATLAB Function

比較簡單,跟之前一樣按照m語言的語法寫代碼即可。

2. Stateflow Chart

而對于Stateflow Chart來說,如果不熟悉流程圖的畫法,可以使用向導自動生成特定的邏輯結構,作為參考:

關于利用C代碼實現條件控制的分析和研究

在向導對應的框內填入內容,然后自動生成后邊的流程圖,可以根據自己的需要再進行調整。Stateflow里面,中括號里的是條件判斷語句,大括號里的是執行語句。

關于利用C代碼實現條件控制的分析和研究

其實從結構上來講,得到的流程圖和之前的if-else是類似,它其實也完全可以用 if-else if-else的C代碼來表示。而實際上,它生成的代碼也會是這樣:

關于利用C代碼實現條件控制的分析和研究

只不過呢,因為下圖所示的選擇項是會默認勾選上的:

關于利用C代碼實現條件控制的分析和研究

所以生成的代碼就會變成Switch的模式:

關于利用C代碼實現條件控制的分析和研究

Signal Routing里有個Multiport Switch可以用來表達Switch的效果。另外,還有來自Port & Subsystem庫里的Switch Case模塊。

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

關于利用C代碼實現條件控制的分析和研究

條件控制語句:

對于MATLAB Function,就是直接寫對應的m腳本;

對于Stateflow,就是對應不同形式的流程圖;

對于Simulink,就是使用對應的模塊。

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

    關注

    2

    文章

    834

    瀏覽量

    29650
  • C代碼
    +關注

    關注

    1

    文章

    90

    瀏覽量

    14607
收藏 人收藏

    評論

    相關推薦

    基于STM32C8T6控制,FSR402壓力傳感器+oled屏幕顯示代碼

    基于STM32C8T6控制,FSR402壓力傳感器+oled屏幕顯示代碼
    發表于 04-14 15:06 ?2次下載

    永磁同步電機矢量控制策略分析

    本文通過矢量控制策略采用 id=0 控制方案快速準確地控制轉矩,實現調速系統具有較高的動態性能。并利用了 Matlab 工具對永磁同步電機矢
    發表于 03-20 12:57

    智能電動輪椅控制系統的研究與設計

    具體原理進行分析,最后在MATLAB平臺上完成改進雙閉環調速系統的仿真實現。文章總共分為五章內容,具體結構下載以下附件查閱~~~*附件:20250307_智能電動輪椅控制系統的研究與設
    發表于 03-07 15:17

    如何利用MES系統進行產能分析呢?

    利用MES系統進行產能分析是一個涉及數據收集、處理、分析和結果呈現的全過程。對生產過程加以監控,充分利用MES數據采集分析
    的頭像 發表于 02-21 12:10 ?244次閱讀
    如何<b class='flag-5'>利用</b>MES系統進行產能<b class='flag-5'>分析</b>呢?

    分析C語言代碼結構的設計問題

    分析一個C語言代碼結構的設計問題。 這段代碼,使用了兩次malloc,分別給 p1 和 p2 申請了內存。用完后,內存釋放,防止內存泄漏。 大家覺得,這樣的
    的頭像 發表于 02-11 09:31 ?259次閱讀

    怎么提升單片機代碼執行效率

    ? 提升單片機代碼執行效率需要從多個方面入手,包括代碼優化、硬件資源利用、編譯器設置、中斷處理優化以及其他技巧等。在實際應用中,需要根據具體需求和硬件條件綜合考慮這些因素,以
    的頭像 發表于 01-10 11:06 ?398次閱讀

    Flexus X 實例 C#/.Net Core 結合(git 代碼管理、docker 自定義鏡像)快速發布部署 - 讓你的項目飛起來~

    與 Docker 容器化部署,實現代碼高效管理與無縫遷移。即刻行動,讓您的 Web 服務更加穩定、高效,領跑數字化轉型之路! ???本實驗深入演示了如何在 Ubuntu 環境中,利用 Git 進行版本控制管理
    的頭像 發表于 12-25 21:15 ?416次閱讀
    Flexus X 實例 <b class='flag-5'>C</b>#/.Net Core 結合(git <b class='flag-5'>代碼</b>管理、docker 自定義鏡像)快速發布部署 - 讓你的項目飛起來~

    技術干貨驛站 ▏深入理解C語言:掌握C語言條件判斷,從if到switch的應用

    在編程中,條件判斷語句是控制程序流程的核心元素之一。它們使得程序能夠根據不同的輸入和狀態,做出相應的決策。特別是在C語言中,條件判斷語句的使用極為廣泛,涵蓋了從簡單的if語句到更復雜的
    的頭像 發表于 11-09 01:10 ?695次閱讀
    技術干貨驛站 ▏深入理解<b class='flag-5'>C</b>語言:掌握<b class='flag-5'>C</b>語言<b class='flag-5'>條件</b>判斷,從if到switch的應用

    hex文件如何查看原c語言代碼

    是處理器可以直接執行的指令,而 C 語言代碼則是人類可讀的高級編程語言代碼。 然而,如果你想要從 .hex 文件中獲取一些有用的信息或者對程序進行分析,你可以考慮以下幾種方法: 反匯編
    的頭像 發表于 09-02 10:37 ?3897次閱讀

    利用CLB實現基于硬件的同步整流控制

    電子發燒友網站提供《利用CLB實現基于硬件的同步整流控制.pdf》資料免費下載
    發表于 08-31 09:44 ?1次下載
    <b class='flag-5'>利用</b>CLB<b class='flag-5'>實現</b>基于硬件的同步整流<b class='flag-5'>控制</b>

    實現不失真測量應滿足哪些條件

    實現不失真測量是科學研究和工程實踐中的一個重要問題。不失真測量是指在測量過程中,測量結果能夠真實、準確地反映被測量對象的特性,不受測量方法、測量設備、測量環境等因素的影響。為了實現不失真測量,需要
    的頭像 發表于 08-19 14:24 ?2226次閱讀

    實現有源逆變必須滿足哪些條件

    實現有源逆變,即讓一個電力電子裝置在輸出端產生與輸入端電壓同頻率、同相位的電流,同時能夠向電網回饋能量,需要滿足一定的條件。以下是對實現有源逆變所需滿足條件
    的頭像 發表于 08-14 10:31 ?3855次閱讀

    利用Swap模式實現代碼回滾操作

    前面介紹了MCUboot的基礎知識,您可通過上方鏈接回顧歷史文章,上次介紹了Swap模式,本次著重介紹利用Swap模式實現代碼回滾操作。在某些應用場景中,可能新版本的Firmware存在bug而需要返回至上一次的固件。
    的頭像 發表于 06-19 15:45 ?1625次閱讀
    <b class='flag-5'>利用</b>Swap模式<b class='flag-5'>實現代碼</b>回滾操作

    實現智能制造的重要條件是什么

    智能制造是工業4.0的核心,它通過高度集成的信息技術和自動化技術,實現生產過程的智能化、自動化和網絡化。實現智能制造的重要條件有很多,以下是一些關鍵因素的詳細分析: 技術創新 技術創新
    的頭像 發表于 06-07 15:42 ?2256次閱讀

    HarmonyOS實戰開發-合理選擇條件渲染和顯隱控制

    開發者可以通過條件渲染或顯隱控制兩種方式來實現組件在顯示和隱藏間的切換。本文從兩者原理機制的區別出發,對二者適用場景分別進行說明,實現相應適用場景的示例并給出性能對比數據。 原理機制
    發表于 05-10 15:16
    主站蜘蛛池模板: 爆操欧美 | 欧美激情一欧美吧 | 日韩一级片在线观看 | 午夜美女写真福利写视频 | аⅴ天堂中文在线网 | 色综合视频在线观看 | 九色在线 | www.999精品视频观看免费 | 日本加勒比高清一本大道 | 伊人久久亚洲综合天堂 | 1024手机在线看片 | 免费在线看黄色 | 思思久99久女女精品 | 色多多网站 | 717影院理论午夜伦不卡久久 | 色综合美国色农夫网 | 亚洲精品播放 | 成 人 在 线 免费 8888 www | 777影院| 人人看人人看人做人人模 | 久久久久国产精品免费看 | 国产女人视频免费观看 | 黄色免费大全 | 小雪被撑暴黑人黑人与亚洲女人 | 欧美成人午夜片一一在线观看 | 久久澡人人澡狠狠澡 | 久久久鲁| 视频在线免费观看网址 | 色操网 | 美女扒开尿口给男人桶动态图 | 精品三级三级三级三级三级 | 日本一卡二卡3卡四卡网站精品 | 欧美xxxx色视频在线观看 | 黄网免费 | 成人国产在线视频 | 久久精品影视 | 久久性色 | 999国产精品| 秋霞特色大片18入口私人高清 | 成人永久免费视频网站在线观看 | 日韩毛片在线看 |