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

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

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

分享條件編譯助力Simulink模型平臺化開發(fā)的相關(guān)介紹

MATLAB ? 來源:djl ? 作者:董淑成 ? 2019-09-16 17:22 ? 次閱讀

汽車行業(yè)流行平臺化開發(fā),希望通過一套軟件對付一系列車型,當然這一系列車型的軟件基本上一致,不同配置之間可能有很少一點差別,怎么辦?C語言開發(fā)中有條件編譯,同一份源代碼,可以通過設(shè)置不同的參數(shù),讓編譯出來不同的軟件,而無需編譯冗余的軟件。

使用模型開發(fā)算法,
是否也可以讓模型生成的代碼做到這一點呢?

回答是肯定的。

下面我們來看一個例子,例子中我們通過參數(shù)K來選擇編譯不同部分的算法。

分享條件編譯助力Simulink模型平臺化開發(fā)的相關(guān)介紹

雙擊打開Variant Subsystem,往這里面添加幾個Atomic Subsystem,分別命名為Algorithm1、Algorithm2、Algorithm3,如下圖:

分享條件編譯助力Simulink模型平臺化開發(fā)的相關(guān)介紹

Algorithm1、Algorithm2、Algorithm3里面的算法如下:

分享條件編譯助力Simulink模型平臺化開發(fā)的相關(guān)介紹

不同的是Algorithm1、Algorithm2、Algorithm3里面的Gain分別為1、2、3。

在Variant Subsystem模塊上,鼠標右鍵,選擇Block Parameters,設(shè)置如下圖所示:

分享條件編譯助力Simulink模型平臺化開發(fā)的相關(guān)介紹

最后,在Base Workspace或者data dictionary里使用參數(shù)類定義參數(shù)對象K,設(shè)置K的Storage Class為Define,同時指定頭文件為my_config.h。

好了,做完上述設(shè)置就可以生成如下的代碼了:

void mymodel_step(void)

{

#if K == 1

y = x;

#elif K == 2

y = 2.0 * x;

#elif K == 3

y = 3.0 * x;

#endif

}

注:假如我們給K賦值為2,模型就會出現(xiàn)最前面兩幅圖片里顯示的那樣,Variant Subsystem最上方的名字是Algorithm2,Variant Subsystem里面的3個Atomic Subsystem中Algorithm2是黑色的,另外兩個是灰色的。

需要注意的是:

代碼生成的時候,在Variant Subsystem模塊上鼠標右鍵,選擇Block Parameter,設(shè)置Variant control條件,同時,勾上Analyze all choices during update diagram and generate preprocessorconditionals;

Variant Subsystem內(nèi)部的連接關(guān)系是通過顏色表示的,黑色的就表明已經(jīng)連上了,不要試圖使用鼠標把這里的Inport、Outport和某個子系統(tǒng)上的端口硬連接,當然,你也是連不上的;

這三部分算法之間的差別非常小,可以使用Variant subsystem的方式實現(xiàn),如果算法差別的部分比較大,建議使用Model Variant實現(xiàn)。

往期 | 老胡專欄

為什么要基于模型設(shè)計?

自動代碼生成五大原則

什么樣的模型算正確的模型?

簡單說說MIL、SIL、PIL和HIL

自動生成的代碼支持哪些硬件平臺?

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 算法
    +關(guān)注

    關(guān)注

    23

    文章

    4612

    瀏覽量

    92901
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4788

    瀏覽量

    68616
  • 編譯
    +關(guān)注

    關(guān)注

    0

    文章

    657

    瀏覽量

    32872
收藏 人收藏

    評論

    相關(guān)推薦

    Triton編譯器在機器學習中的應用

    1. Triton編譯器概述 Triton編譯器是NVIDIA Triton推理服務平臺的一部分,它負責將深度學習模型轉(zhuǎn)換為優(yōu)化的格式,以便在NVIDIA GPU上高效運行。Trito
    的頭像 發(fā)表于 12-24 18:13 ?342次閱讀

    Triton編譯器與其他編譯器的比較

    的GPU編程框架,使開發(fā)者能夠編寫出接近手工優(yōu)化的高性能GPU內(nèi)核。 其他編譯器 (如GCC、Clang、MSVC等): 定位:通用編譯器,支持多種編程語言,廣泛應用于各種軟件開發(fā)場景
    的頭像 發(fā)表于 12-24 17:25 ?325次閱讀

    Triton編譯器功能介紹 Triton編譯器使用教程

    。以下是 Triton 編譯器的一些功能介紹和使用教程。 Triton 編譯器功能介紹 多語言支持 :Triton 支持多種編程語言,使得開發(fā)
    的頭像 發(fā)表于 12-24 17:23 ?351次閱讀

    Simulink模型仿真與分析技巧

    1. 模型構(gòu)建基礎(chǔ) 1.1 理解系統(tǒng)需求 在開始構(gòu)建模型之前,明確系統(tǒng)的需求和目標是至關(guān)重要的。這包括了解系統(tǒng)的動態(tài)特性、輸入輸出關(guān)系以及預期的性能指標。 1.2 選擇合適的模塊 Simulink
    的頭像 發(fā)表于 12-12 09:23 ?579次閱讀

    Simulink自定義模塊開發(fā)教程 Simulink 在控制系統(tǒng)中的應用

    在控制系統(tǒng)的設(shè)計和分析中,Simulink 提供了一個強大的工具集,允許工程師通過圖形化界面快速構(gòu)建和測試復雜的系統(tǒng)模型。然而,Simulink 的標準庫可能不包含所有特定的功能,這時就需要
    的頭像 發(fā)表于 12-12 09:21 ?357次閱讀

    大語言模型開發(fā)框架是什么

    大語言模型開發(fā)框架是指用于訓練、推理和部署大型語言模型的軟件工具和庫。下面,AI部落小編為您介紹大語言模型
    的頭像 發(fā)表于 12-06 10:28 ?125次閱讀

    MATLAB和Simulink助力智能底盤技術(shù)革新

    MATLAB 為工程師提供了一個強大的平臺,用于整車系統(tǒng)的虛擬化開發(fā)。通過這一平臺,工程師能夠高效地構(gòu)建和測試車輛模型,優(yōu)化控制算法,并在虛擬環(huán)境中進行全面的系統(tǒng)驗證。這不僅加速了
    的頭像 發(fā)表于 12-04 11:31 ?144次閱讀
    MATLAB和<b class='flag-5'>Simulink</b><b class='flag-5'>助力</b>智能底盤技術(shù)革新

    自動化AI開發(fā)平臺功能介紹

    自動化AI開發(fā)平臺集成了多種算法、工具和框架,旨在幫助開發(fā)者更快速、高效地設(shè)計、訓練、部署和管理AI模型。以下,AI部落小編將詳細介紹自動化
    的頭像 發(fā)表于 11-14 09:29 ?226次閱讀

    Matlab/Simulink/Stateflow建模開發(fā)及仿真測試

    matlab 模擬仿真 熟悉Matlab/Simulink/Stateflow建模開發(fā)及仿真測試,熟悉V模型開發(fā)流程。 熟悉自動代碼生成,能夠編寫或者配置自動代碼生成腳本。
    發(fā)表于 10-24 17:23

    FPGA仿真黑科技\"EasyGo Vs Addon \",助力大規(guī)模電力電子系統(tǒng)仿真

    仿真靈活性EasyGo FPGACoder是一種基于FPGA的快速算法開發(fā)技術(shù),能將用戶基于Simulink開發(fā)的算法快速實現(xiàn)在FPGA上,無需傳統(tǒng)的FPGA編譯過程,提高了FPGA的
    發(fā)表于 10-23 18:18

    linux開發(fā)板如何編譯curl

    準備開發(fā)環(huán)境 確保你的開發(fā)板已經(jīng)安裝了編譯 curl 所需的工具,包括 gcc 、 make 和可能的其他庫。如果開發(fā)板是交叉編譯環(huán)境(即
    的頭像 發(fā)表于 08-30 15:33 ?632次閱讀

    PerfXCloud大模型開發(fā)與部署平臺開放注冊

    PerfXCloud?介紹 PerfXCloud是澎峰科技為開發(fā)者和企業(yè)量身打造的AI開發(fā)和部署平臺。它專注于滿足大模型的微調(diào)和推理需求,為
    的頭像 發(fā)表于 07-02 10:27 ?381次閱讀
    PerfXCloud大<b class='flag-5'>模型</b><b class='flag-5'>開發(fā)</b>與部署<b class='flag-5'>平臺</b>開放注冊

    畢昇大模型應用開發(fā)平臺+浪潮信息AIStation,讓大模型定制更簡單

    北京2024年6月5日?/美通社/ -- 近日,畢昇大模型應用開發(fā)平臺與浪潮信息AIStation智能業(yè)務生產(chǎn)創(chuàng)新平臺完成兼容性互認證?;诋厱N和浪潮信息AIStation,用戶通過預
    的頭像 發(fā)表于 06-05 11:58 ?446次閱讀
    畢昇大<b class='flag-5'>模型</b>應用<b class='flag-5'>開發(fā)</b><b class='flag-5'>平臺</b>+浪潮信息AIStation,讓大<b class='flag-5'>模型</b>定制更簡單

    OpenHarmony開發(fā)學習:【源碼下載和編譯

    本文介紹了如何下載鴻蒙系統(tǒng)源碼,如何一次性配置可以編譯三個目標平臺(`Hi3516`,`Hi3518`和`Hi3861`)的編譯環(huán)境,以及如何將源碼
    的頭像 發(fā)表于 04-14 09:36 ?938次閱讀
    OpenHarmony<b class='flag-5'>開發(fā)</b>學習:【源碼下載和<b class='flag-5'>編譯</b>】

    NVIDIA AI Enterprise助力九州未來構(gòu)建MaaS平臺

    本案例中,九州未來的團隊基于NVIDIA AI Enterprise的全棧軟件套件,構(gòu)建其 MaaS 大模型一體化開發(fā)及部署平臺,該平臺同時支持云端部署和私有化部署,通過九州未來
    的頭像 發(fā)表于 01-10 17:24 ?1217次閱讀