女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

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

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

3天內不再提示

關于一種實現條件編譯的建模方法分析和介紹

MATLAB ? 來源:djl ? 作者:董淑成 ? 2019-09-16 15:21 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

上次介紹過可以使用Variant Subsystem或者Model Variant實現帶有條件編譯的代碼(條件編譯助力Simulink模型平臺化開發)。最近了解到,從MATLAB R2016a開始,又有一種新的方式可以實現C代碼中的條件編譯。這就是Variant Sourc模塊的使用。

關于一種實現條件編譯的建模方法分析和介紹

假設有如下模型:

關于一種實現條件編譯的建模方法分析和介紹

雙擊Variant Source模塊,可以看到如下配置界面:

關于一種實現條件編譯的建模方法分析和介紹

不難看出,除了要定義Simulink Variant對象K1、K2之外,還需要勾上Analyze all choices during update diagram and generate prepropcessor conditionals選項。顯然,如果K==1條件成立,則Port 1分支對應的代碼被編譯,如果K==2,則Port 2分支對應的代碼被編譯。這里的K可以定義為Simulink Parameter對象,Storage Class定義為Define(Custom),并且需要指定宏定義的文件。

如此設置之下,得到的模型算法實現函數如下:

voidtestvariantSource_step(void)

{

real_T rtb_VariantMerge_For_Variant_So;

#ifK1

rtb_VariantMerge_For_Variant_So = u1 + u2;

#endif

#ifK2

rtb_VariantMerge_For_Variant_So = u3 + u4;

#endif

y = rtb_VariantMerge_For_Variant_So;

}

這種方式實現帶有條件編譯的代碼也非常簡單,條件編譯的好處可以通過控制宏定義K控制需要編譯哪部分代碼,那么,如果不設置條件編譯呢?

上述模型中,如果不再勾選Analyze all choices during update diagram and generate prepropcessor conditionals選項,我們得到如下代碼:

voidtestvariantSource_step(void)

{

y = u1 + u2;

}

代碼中只有當前參數條件下有效算法的代碼。

跟上次介紹的條件編譯相比,實現方式不同,應用場景也可能不同,如何取舍,這里就不去分析了。但是,在基于模型的開發模式下,到底在模型級別上做選擇,還是通過C代碼級別的條件編譯做選擇,這是個值得我們思考的問題。

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

    關注

    30

    文章

    4900

    瀏覽量

    70724
  • 編譯
    +關注

    關注

    0

    文章

    679

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    PanDao:實際約束條件下成像系統的初始結構的生成

    “First Time Right”(FTR)方法,能夠基于給定的規格與約束生成多樣化的約束成像系統。結合PanDao這創新的光學制造技術(OFT)分析軟件,可對面向量產的系統快速完成設計、
    發表于 05-07 08:57

    VirtualLab Fusion案例:K域和X域中的系統建模

    為了準確快速地模擬光在復雜光學系統中的傳播,VirtualLab Fusion使用了一種“連接場解算器”方法,該方法包括在兩個域(空間和空間頻率)中實現特定的電磁場解算器。在本周的時事
    發表于 01-15 08:56

    VirtualLab:系統建模分析

    ,系統建模分析器。本文檔介紹該工具的使用方法。 系統建模分析器 如何運行
    發表于 01-14 09:45

    使用OpenVINO?條件編譯功能,壓縮Windows應用體積

    cmake -DENABLE_INTEL_GPU=OFF 便可以取消 GPU plugin 庫的編譯。除此以外 OpenVINO 還提供了條件編譯功能,用于針對特定模型進行運行庫壓縮,接下來就讓我們
    的頭像 發表于 01-13 10:26 ?541次閱讀
    使用OpenVINO?<b class='flag-5'>條件</b><b class='flag-5'>編譯</b>功能,壓縮Windows應用體積

    VirtualLab Fusion:系統建模分析

    ,系統建模分析器。本文檔介紹該工具的使用方法 系統建模分析器 如何運行
    發表于 01-04 08:45

    仿真分析誤差來源及減少建模誤差的方法

    建模誤差 建模誤差是仿真分析中最常見的誤差來源之。它主要源于物理系統與其數學模型之間的差異。在建模
    的頭像 發表于 12-24 09:52 ?1814次閱讀
    仿真<b class='flag-5'>分析</b>誤差來源及減少<b class='flag-5'>建模</b>誤差的<b class='flag-5'>方法</b>

    VirtualLab:系統建模分析

    ,系統建模分析器。本文檔介紹該工具的使用方法。 系統建模分析器 如何運行
    發表于 12-19 12:36

    一種面向飛行試驗的數據融合框架

    天地氣動數據致性,針對某外形飛行試驗數據開展了典型對象的天地氣動數據融合方法研究。結合數據挖掘的隨機森林方法,本文提出了一種面向飛行試驗的數據融合框架,通過引入地面風洞試驗氣動數據,
    的頭像 發表于 11-27 11:34 ?844次閱讀
    <b class='flag-5'>一種</b>面向飛行試驗的數據融合框架

    一種利用CSD16327Q3實現企業固態硬盤鉭電容短路保護的方法

    電子發燒友網站提供《一種利用CSD16327Q3實現企業固態硬盤鉭電容短路保護的方法.pdf》資料免費下載
    發表于 10-25 10:22 ?0次下載
    <b class='flag-5'>一種</b>利用CSD16327Q3<b class='flag-5'>實現</b>企業固態硬盤鉭電容短路保護的<b class='flag-5'>方法</b>

    一種簡單高效配置FPGA的方法

    本文描述了一種簡單高效配置FPGA的方法,該方法利用微處理器從串行外圍接口(SPI)閃存配置FPGA設備。這種方法減少了硬件組件、板空間和成本。
    的頭像 發表于 10-24 14:57 ?1615次閱讀
    <b class='flag-5'>一種</b>簡單高效配置FPGA的<b class='flag-5'>方法</b>

    linux驅動程序的編譯方法是什么

    Linux驅動程序的編譯方法主要包括兩: 與內核編譯編譯成獨立的內核模塊 。以下是對
    的頭像 發表于 08-30 14:46 ?1246次閱讀

    linux驅動程序的編譯方法有哪兩

    Linux驅動程序的編譯方法主要可以歸納為兩: 手動編譯 和 使用內核構建系統(Makefile)自動編譯 。 1. 手動
    的頭像 發表于 08-30 14:39 ?1532次閱讀

    LIDAR激光雷達逆向建模能用到revit當中嗎

    LIDAR激光雷達逆向建模一種利用激光雷達技術獲取物體表面數據,然后通過計算機軟件進行建模方法。在建筑行業中,這種方法可以用于建筑物的三
    的頭像 發表于 08-29 17:23 ?953次閱讀

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

    放大電路是電子技術中非常重要的組成部分,它廣泛應用于信號處理、通信、測量等領域。對于放大電路的分析,通常可以分為直流分析和交流分析情況。下面我們將
    的頭像 發表于 08-07 10:08 ?1291次閱讀

    一種無透鏡成像的新方法

    使用OAM-HHG EUV光束對高度周期性結構進行成像的EUV聚光顯微鏡 為了研究微電子或光子元件中的納米級圖案,一種基于無透鏡成像的新方法可以實現近乎完美的高分辨率顯微鏡。 層析成像是一種
    的頭像 發表于 07-19 06:20 ?765次閱讀
    <b class='flag-5'>一種</b>無透鏡成像的新<b class='flag-5'>方法</b>