在車載控制器的軟件開發(fā)中,simulink的身影幾乎隨處可見,主要是在控制算法和控制邏輯的實(shí)現(xiàn)。平時(shí)看同事點(diǎn)點(diǎn)點(diǎn)就生成代碼了,看起來很簡(jiǎn)單,但是實(shí)際操作起來確各種磕磕絆絆。
下面記錄了一下步驟作為現(xiàn)階段的學(xué)習(xí)筆記吧。
一、建立任務(wù)
Matlab的版本為R2014。下圖是一個(gè)簡(jiǎn)單的模型,其中Signal為模型輸入接口變量,Act為模型輸出接口變量,每個(gè)Task中的內(nèi)容均一樣。
接口配置需要注意其數(shù)據(jù)類型和Storage Class,兩者影響生成代碼中的變量的聲明。在Storage type qualifier中可以加入其他的限定符。
這里將Signal全部設(shè)定為Double類型的Imported Entern類型,將Act全部設(shè)定為Exported Global類型。
二、環(huán)境配置
在Simlink模型窗口中選擇Simulation | Modele Configuration Parameters命令,彈出如下圖所示的參數(shù)設(shè)置對(duì)話框。在左邊的目錄樹中我們關(guān)心的項(xiàng)有Solver,Hardware Implementation,Code Generation.
1. Sover 配置
Type選項(xiàng)需要配置成定步長(zhǎng)。步長(zhǎng)時(shí)間和任務(wù)調(diào)度周期一致。仿真終止時(shí)間設(shè)置為inf。其他參數(shù)為默認(rèn)。
2. Hardware配置
根據(jù)自己的開發(fā)環(huán)境,選擇相應(yīng)的目標(biāo)板。
3. Code Generation配置
第一頁(yè)勾選Generate code only,其它為默認(rèn)。
在Reprot中勾選生成報(bào)告和自動(dòng)打開報(bào)告。
將Interface中data exchange的勾去掉,并將Interface設(shè)置為None。配置完畢后點(diǎn)Apply和OK。
三、代碼生成
在模型界面Bulid Modle即可自動(dòng)生成代碼。由于我們勾選了報(bào)告生成,代碼生成完畢后會(huì)自動(dòng)彈出報(bào)告。
其中ModelFiles和DataFiles中的5個(gè)文件就是和我們模型結(jié)構(gòu)緊密相關(guān)的文件。其它的也是運(yùn)行必須的Mabltab數(shù)據(jù)類型聲明文件。一并拷貝到我們的工程環(huán)境編譯即可。
四、封裝成函數(shù)及優(yōu)先級(jí)設(shè)置
打開Demo_1.h和Demo_1_Pricat.h可以看到我們定義的輸出變量和出入變量。
生成代碼時(shí)除了我們的任務(wù)函數(shù)外,Matlab自動(dòng)生成了初始化的和終止函數(shù)。
我們?cè)谀P椭形覀兌x了三個(gè)Task,但如果不另外配置,生成代碼時(shí)默認(rèn)只生成一個(gè)函數(shù)。如果需要打包到獨(dú)立的函數(shù)和文件中,需要做如下配置。
在Task模塊上點(diǎn)右鍵,選擇Block Parameters,勾選treat as acomic unit.
在Code Generation一欄,設(shè)置任務(wù)的重入屬性,函數(shù)名,文件名信息。
右鍵選擇Block Properties,在Priority一欄中設(shè)置Task優(yōu)先級(jí)ID,該值越小,則任務(wù)的執(zhí)行次序越靠前。
這里我將Task1~3的優(yōu)先級(jí)分別設(shè)置為2,1,3。
以下是自動(dòng)生成代碼后的任務(wù)順序。生成了Task的.c和.h文件。任務(wù)執(zhí)行順序也按照優(yōu)先級(jí)順序執(zhí)行。
審核編輯:黃飛
-
控制器
+關(guān)注
關(guān)注
112文章
16361瀏覽量
178046 -
Simulink
+關(guān)注
關(guān)注
22文章
535瀏覽量
62399 -
代碼
+關(guān)注
關(guān)注
30文章
4788瀏覽量
68612
原文標(biāo)題:Simulink自動(dòng)生成代碼筆記
文章出處:【微信號(hào):eng2mot,微信公眾號(hào):汽車ECU開發(fā)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論