日本无码免费高清在线|成人日本在线观看高清|A级片免费视频操逼欧美|全裸美女搞黄色大片网站|免费成人a片视频|久久无码福利成人激情久久|国产视频一二国产在线v|av女主播在线观看|五月激情影音先锋|亚洲一区天堂av

  • 手機(jī)站
  • 小程序

    汽車測(cè)試網(wǎng)

  • 公眾號(hào)
    • 汽車測(cè)試網(wǎng)

    • 在線課堂

    • 電車測(cè)試

基于Simulink的嵌入式系統(tǒng)自動(dòng)代碼生成淺談

2020-06-27 21:04:33·  來源:新能源汽車控制  
 
當(dāng)前,汽車電控軟件開發(fā)普遍遵循V流程,而自動(dòng)代碼生成是V流程中極其重要的一環(huán)。很多朋友后臺(tái)留言希望能介紹一下Simulink自動(dòng)代碼生成的相關(guān)內(nèi)容,腳友群里也有
當(dāng)前,汽車電控軟件開發(fā)普遍遵循V流程,而自動(dòng)代碼生成是V流程中極其重要的一環(huán)。
 
很多朋友后臺(tái)留言希望能介紹一下Simulink自動(dòng)代碼生成的相關(guān)內(nèi)容,腳友群里也有腳友咨詢自動(dòng)代碼生成相關(guān)的標(biāo)定量設(shè)置問題。在這個(gè)領(lǐng)域,腳主了解其實(shí)不多,不過可以拋磚引玉,把自己的理解寫出來,供大家一起交流學(xué)習(xí)。
這里就不談自動(dòng)代碼生成的背景、意義,直接介紹具體的操作步驟吧。
01
Simulink模型設(shè)置
首先,需要一個(gè)搭建完成的Simulink模型,如下圖所示,模型有一個(gè)子系統(tǒng)func1。
子系統(tǒng)func1內(nèi)部邏輯如下圖所示,兩輸入x1、x2的乘積再與一個(gè)參數(shù)r相乘,輸出y1。
 
對(duì)于模型的輸入輸出信號(hào)線,鼠標(biāo)雙擊信號(hào)線,即可編輯信號(hào)線名稱(一般與輸入或輸出接口名稱一致)。操作完成之后模型如下圖,信號(hào)線上有了對(duì)應(yīng)的名字。
 
然后選中某一條信號(hào)線右鍵選擇Properties,在彈出的對(duì)話框中勾選下圖紅框的選項(xiàng),把信號(hào)與信號(hào)對(duì)象關(guān)聯(lián)起來(信號(hào)對(duì)象會(huì)在下個(gè)步驟中定義),所有的輸入輸出都需要關(guān)聯(lián)上。
 
對(duì)于有多個(gè)子功能或者子系統(tǒng)的模型,不需要關(guān)聯(lián)所有的子系統(tǒng)輸入輸出信號(hào),只需要關(guān)聯(lián)上整個(gè)模型最前端的輸入信號(hào)和最后端的輸出信號(hào)以及希望觀測(cè)的中間信號(hào)。
02
數(shù)據(jù)對(duì)象定義
對(duì)于輸入輸出信號(hào)以及模型參數(shù),需要設(shè)置對(duì)應(yīng)的數(shù)據(jù)對(duì)象。
如下圖,在工具欄單擊打開Model Explorer,在base Workspace界面下再點(diǎn)擊Add,選擇Add Custom選項(xiàng)。
 
會(huì)彈出以下對(duì)話框中,選擇mpt.Signal,即成功添加一個(gè)信號(hào)對(duì)象,如果選擇mpt.Parameter。就可以添加一個(gè)參數(shù)對(duì)象。
 
mpt是Matlab自帶一個(gè)用于代碼生成的包,Signal/Parameter是mpt中的一個(gè)類,每一個(gè)類會(huì)定義合適的屬性,這樣引用類來創(chuàng)建對(duì)象就會(huì)很方便。
這里我們需要添加3個(gè)信號(hào)對(duì)象和1個(gè)參數(shù)對(duì)象,分別命名為x1、x2、y1、r,這樣就與步驟1中的模型信號(hào)名及模型參數(shù)關(guān)聯(lián)上了,通過改變信號(hào)或參數(shù)對(duì)象的屬性,就可以很方便地改變模型輸入輸出或參數(shù)定義。
設(shè)置完成之后的對(duì)象如下圖所示。這里重點(diǎn)關(guān)注一下,模型參數(shù)r的Storage class設(shè)置為ConstVolatile,這個(gè)設(shè)置可以保證最終單片機(jī)中的參數(shù)r可以實(shí)現(xiàn)在線標(biāo)定。其他設(shè)置暫時(shí)使用默認(rèn)即可,熟練以后可以繼續(xù)使用更多的設(shè)置來滿足其他個(gè)性化需求。
 
03
求解器配置
單片機(jī)上只能定步長(zhǎng)執(zhí)行,所以求解器一般設(shè)置為Fixed-step和discrete,步長(zhǎng)可以按需要設(shè)置,汽車電控軟件一般選擇10ms。
 
04
代碼自動(dòng)生成設(shè)置
對(duì)于嵌入式代碼生成,需要進(jìn)行代碼生成相關(guān)的配置。
還是在Configuration Parameters界面下,專門有一個(gè)代碼生成的選項(xiàng)Code Generation,如下圖。
 
這里可以重點(diǎn)關(guān)注的以下幾個(gè)設(shè)置。
如下圖,選擇ert.tlc作為System target file,這是標(biāo)準(zhǔn)的嵌入式代碼生成tlc;設(shè)置模型代碼生成的目標(biāo)優(yōu)先級(jí),如RAM、ROM、追溯性等等;勾選Generate code only;代碼生成啟動(dòng)按鈕Generate Code,或者使用快捷鍵Ctrl+B。
 
勾選代碼報(bào)告生成及自動(dòng)打開選項(xiàng)。
 
05
一鍵代碼生成
以上設(shè)置完成之后,可以Ctrl+B,啟動(dòng)自動(dòng)代碼生成,報(bào)告如下圖。
 
核心代碼在Model.C文件中,定義了輸入輸出信號(hào)x1、x2、y1以及參數(shù)r,Model_step函數(shù)中定義了模型的計(jì)算邏輯:y1 = x1 * x2 * r,與模型的邏輯完全一致。這個(gè)函數(shù)會(huì)放到對(duì)應(yīng)的10ms任務(wù)里面,周期性被調(diào)用執(zhí)行。
以上,簡(jiǎn)要介紹了嵌入式系統(tǒng)自動(dòng)代碼生成的基本步驟,代碼測(cè)試、數(shù)據(jù)管理、在線標(biāo)定等更多內(nèi)容后面繼續(xù)介紹。不妥之處,歡迎交流。
 
 
分享到:
 
反對(duì) 0 舉報(bào) 0 收藏 0 評(píng)論 0
滬ICP備11026917號(hào)-25