乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      怎樣生成我想要的C代碼系列 | Simulink子系統(tǒng)如何生成單獨(dú)的子函數(shù)?

       whx1237 2016-12-23

      作者簡(jiǎn)介

      柚籽,MATLAB中文論壇(http://www.) 超級(jí)版主,MATLAB/Simulink高級(jí)應(yīng)用工程師,同濟(jì)大學(xué)機(jī)械電子工程專(zhuān)業(yè)碩士學(xué)位,專(zhuān)注于物理系統(tǒng)的建模仿真,在論壇回答問(wèn)題超過(guò)1700個(gè),分享大量Simulink應(yīng)用學(xué)習(xí)資源。

      我們寫(xiě) C 代碼的時(shí)候,為了主程序結(jié)構(gòu)清晰,通常會(huì)把具有獨(dú)立功能的代碼變成子函數(shù)的形式。類(lèi)似的,為了 Simulink 模型結(jié)構(gòu)清晰,我們?cè)谀P屠镆步?jīng)常會(huì)用把具一片實(shí)現(xiàn)某種功能的模塊變成子系統(tǒng)的形式。

      那么,如果我希望這些 Simulink 子系統(tǒng)在自動(dòng)代碼生成時(shí),也能真的生成單獨(dú)的子函數(shù),該如何配置呢?

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

      把某個(gè)子系統(tǒng)編程函數(shù)調(diào)用
      • 要得到:

        • 自動(dòng)生成代碼時(shí),讓某個(gè) Simulink 子系統(tǒng)的算法生成單獨(dú)子函數(shù)形式。

      • 怎么做:

        • 把該子系統(tǒng)變?yōu)樵酉到y(tǒng) (Atomic Subsystem),并配置子系統(tǒng)的代碼生成選項(xiàng)。

      舉個(gè)例子

      1. 模型

      • 這是在前一篇帖子最后用到的一個(gè)模型。MATLAB Function 里面寫(xiě)了一個(gè)循環(huán)語(yǔ)句,并在循環(huán)內(nèi)部調(diào)用了外部子系統(tǒng) func

      • 它所生成的代碼如下圖??梢钥吹?Simulink 子系統(tǒng) func 在生成代碼后,具體的 C 代碼并不會(huì)平鋪在主程序里。它而是作為一個(gè)函數(shù)調(diào)用的形式出現(xiàn)的的 func( )

      2. 設(shè)置

      • 這是因?yàn)閷?duì)該模塊的屬性做了設(shè)置,如下圖。

      • 首先右鍵點(diǎn)擊模型,打開(kāi) Block Parameters 界面,首先要在 Main 的頁(yè)面將子系統(tǒng)勾選為Atomic Subsystem。只不過(guò)在這個(gè)案例模型里,由于 func 是觸發(fā)子系統(tǒng),默認(rèn)就是 Atomic 的。

      • 然后,點(diǎn)開(kāi)出現(xiàn)的 Code Generation 頁(yè)面,將 Function packaging 配置為 Nonresusable function,主函數(shù)調(diào)用它時(shí)通過(guò)全局變量來(lái)傳遞數(shù)據(jù)(總之不選擇 Inline 和 Auto)。


      • 也可以設(shè)置為 Reusable ,這時(shí)主程序調(diào)用它的時(shí)候,會(huì)通過(guò)傳參的方式來(lái)進(jìn)行數(shù)據(jù)傳遞。最后生成的代碼如下圖

      • 模型的默認(rèn)設(shè)置是 Auto,所以在這種情況下,代碼生成工具會(huì)把這個(gè)子系統(tǒng)的算法代碼寫(xiě)在主程序里,而不會(huì)采用函數(shù)調(diào)用的方式,如下圖:

      總結(jié)

      如果希望某個(gè)子系統(tǒng)的 C 代碼單獨(dú)生成一個(gè)子函數(shù),那么:

      1. 把子系統(tǒng)配置為元胞子系統(tǒng)(Atomic Subsystem);

      2. 設(shè)置 Code Generation 屬性為 Reusable  或者 NonReusable。

      另外,不僅可以將子系統(tǒng)的代碼放在單獨(dú)的子函數(shù)里,還可以配置放在單獨(dú)的文件(在配置菜單里指定文件名即可)里。

        本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶(hù)發(fā)布,不代表本站觀(guān)點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評(píng)論

        發(fā)表

        請(qǐng)遵守用戶(hù) 評(píng)論公約

        類(lèi)似文章 更多