汽車行業(yè)流行平臺化開發(fā),希望通過一套軟件對付一系列車型,當(dāng)然這一系列車型的軟件基本上一致,不同配置之間可能有很少一點(diǎn)差別,怎么辦?C語言開發(fā)中有條件編譯,同一份源代碼,可以通過設(shè)置不同的參數(shù),讓編譯出來不同的軟件,而無需編譯冗余的軟件。
使用模型開發(fā)算法,
是否也可以讓模型生成的代碼做到這一點(diǎn)呢?
回答是肯定的。
下面我們來看一個(gè)例子,例子中我們通過參數(shù)K來選擇編譯不同部分的算法。
雙擊打開Variant Subsystem,往這里面添加幾個(gè)Atomic Subsystem,分別命名為Algorithm1、Algorithm2、Algorithm3,如下圖:
Algorithm1、Algorithm2、Algorithm3里面的算法如下:
不同的是Algorithm1、Algorithm2、Algorithm3里面的Gain分別為1、2、3。
在Variant Subsystem模塊上,鼠標(biāo)右鍵,選擇Block Parameters,設(shè)置如下圖所示:
最后,在Base Workspace或者data dictionary里使用參數(shù)類定義參數(shù)對象K,設(shè)置K的Storage Class為Define,同時(shí)指定頭文件為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個(gè)Atomic Subsystem中Algorithm2是黑色的,另外兩個(gè)是灰色的。
需要注意的是:
代碼生成的時(shí)候,在Variant Subsystem模塊上鼠標(biāo)右鍵,選擇Block Parameter,設(shè)置Variant control條件,同時(shí),勾上Analyze all choices during update diagram and generate preprocessorconditionals;
Variant Subsystem內(nèi)部的連接關(guān)系是通過顏色表示的,黑色的就表明已經(jīng)連上了,不要試圖使用鼠標(biāo)把這里的Inport、Outport和某個(gè)子系統(tǒng)上的端口硬連接,當(dāng)然,你也是連不上的;
這三部分算法之間的差別非常小,可以使用Variant subsystem的方式實(shí)現(xiàn),如果算法差別的部分比較大,建議使用Model Variant實(shí)現(xiàn)。
往期 | 老胡專欄
為什么要基于模型設(shè)計(jì)?
自動代碼生成五大原則
什么樣的模型算正確的模型?
簡單說說MIL、SIL、PIL和HIL
自動生成的代碼支持哪些硬件平臺?
-
算法
+關(guān)注
關(guān)注
23文章
4702瀏覽量
94938 -
代碼
+關(guān)注
關(guān)注
30文章
4891瀏覽量
70350 -
編譯
+關(guān)注
關(guān)注
0文章
676瀏覽量
33821
發(fā)布評論請先 登錄
ArkUI-X在Android平臺動態(tài)化開發(fā)指南
【「零基礎(chǔ)開發(fā)AI Agent」閱讀體驗(yàn)】+Agent開發(fā)平臺
如何實(shí)現(xiàn)MC33774IC在Simulink環(huán)境中使用基于模型的設(shè)計(jì)?
機(jī)智云推出集成Deepseek和豆包大模型的AIoT開發(fā)平臺
低代碼平臺:數(shù)字化時(shí)代的開發(fā)加速器與業(yè)務(wù)創(chuàng)新引擎

AI開發(fā)平臺模型怎么用
使用OpenVINO?條件編譯功能,壓縮Windows應(yīng)用體積

Triton編譯器與其他編譯器的比較
Triton編譯器功能介紹 Triton編譯器使用教程
Simulink模型仿真與分析技巧
Simulink自定義模塊開發(fā)教程 Simulink 在控制系統(tǒng)中的應(yīng)用
自動化AI開發(fā)平臺功能介紹
Matlab/Simulink/Stateflow建模開發(fā)及仿真測試
linux開發(fā)板如何編譯curl
PerfXCloud大模型開發(fā)與部署平臺開放注冊

評論