汽車行業(yè)流行平臺化開發(fā),希望通過一套軟件對付一系列車型,當(dāng)然這一系列車型的軟件基本上一致,不同配置之間可能有很少一點(diǎn)差別,怎么辦?C語言開發(fā)中有條件編譯,同一份源代碼,可以通過設(shè)置不同的參數(shù),讓編譯出來不同的軟件,而無需編譯冗余的軟件。
使用模型開發(fā)算法,
是否也可以讓模型生成的代碼做到這一點(diǎn)呢?
回答是肯定的。
下面我們來看一個例子,例子中我們通過參數(shù)K來選擇編譯不同部分的算法。

雙擊打開Variant Subsystem,往這里面添加幾個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,同時指定頭文件為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模塊上鼠標(biāo)右鍵,選擇Block Parameter,設(shè)置Variant control條件,同時,勾上Analyze all choices during update diagram and generate preprocessorconditionals;
Variant Subsystem內(nèi)部的連接關(guān)系是通過顏色表示的,黑色的就表明已經(jīng)連上了,不要試圖使用鼠標(biāo)把這里的Inport、Outport和某個子系統(tǒng)上的端口硬連接,當(dāng)然,你也是連不上的;
這三部分算法之間的差別非常小,可以使用Variant subsystem的方式實(shí)現(xiàn),如果算法差別的部分比較大,建議使用Model Variant實(shí)現(xiàn)。
往期 | 老胡專欄
為什么要基于模型設(shè)計?
自動代碼生成五大原則
什么樣的模型算正確的模型?
簡單說說MIL、SIL、PIL和HIL
自動生成的代碼支持哪些硬件平臺?
-
算法
+關(guān)注
關(guān)注
23文章
4778瀏覽量
97713 -
代碼
+關(guān)注
關(guān)注
30文章
4959瀏覽量
73585 -
編譯
+關(guān)注
關(guān)注
0文章
692瀏覽量
35038
發(fā)布評論請先 登錄
小藝開放平臺平臺功能
Elektrobit EB civion平臺助力SDV 2.0智能座艙開發(fā)
PPEC Workbench 智能化開發(fā)平臺助力高校電力電子教學(xué)與科研
PPEC Workbench 平臺拓?fù)淙采w,滿足各類電源開發(fā)需求
Simulink模型測試典型問題分享——模型庫管理問題
汽車HIL測試系統(tǒng),歐美標(biāo)充電模型Simulink模型,開發(fā),有償
ArkUI-X在Android平臺動態(tài)化開發(fā)指南
【「零基礎(chǔ)開發(fā)AI Agent」閱讀體驗(yàn)】+Agent開發(fā)平臺
在任何平臺上使用PetaLinux的先決條件
KaihongOS操作系統(tǒng)FA模型與Stage模型介紹
如何實(shí)現(xiàn)MC33774IC在Simulink環(huán)境中使用基于模型的設(shè)計?
機(jī)智云推出集成Deepseek和豆包大模型的AIoT開發(fā)平臺
低代碼平臺:數(shù)字化時代的開發(fā)加速器與業(yè)務(wù)創(chuàng)新引擎
分享條件編譯助力Simulink模型平臺化開發(fā)的相關(guān)介紹
評論