日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

生成路径 vs 设置_Simulink代码生成之模型配置

發(fā)布時間:2023/12/10 编程问答 54 豆豆
生活随笔 收集整理的這篇文章主要介紹了 生成路径 vs 设置_Simulink代码生成之模型配置 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

歡迎關(guān)注我的微信公眾號【新能源動力電池與BMS】,頭條號:【阿Q在江湖】;所有文章資料會在公眾號首發(fā)。

本文已同步錄制視頻講解:Simulink代碼生成之模型配置_視頻教程 - 知乎。

PS:前段時間,傳出美國禁用一些高校使用正版Matlab軟件,有些人說是否有可替代的軟件?Python替代Matlab軟件m語言編寫的部分功能似乎問題不大,不過Simulink呢?似乎還沒有可替代的吧?

Simulink是Matlab中非常獨(dú)特而重要的一個建模工具,能夠通過圖形化模塊快速建模并仿真,同時可自動生成C代碼,下載到硬件中,使得復(fù)雜系統(tǒng)的算法仿真與開發(fā)變的非常高效(比如汽車行業(yè)、航空航天都已廣泛使用Simulink建模仿真與開發(fā))。要生成嵌入式C代碼需要提前將模型進(jìn)行一些參數(shù)配置。下面列舉模型配置的一些步驟。

必須配置項(xiàng)

1. 打開模型參數(shù)配置面板(Configuration parameters)

在菜單欄打開上圖圖標(biāo)或者快捷鍵Ctrl+E,打開模型配置參數(shù)面板。

2. 解算器設(shè)置(Solver)

? 解算器類型(Type):

路徑:Solver-->>Solver options-->>Type

默認(rèn)是變步長(Variable-step),需要設(shè)置為固定步長(Fixed-step)。因?yàn)榍度胧酱a是要下載到硬件中實(shí)時執(zhí)行,硬件的時鐘源都是晶振提供的穩(wěn)定時鐘源,所以解算器必須采用固定步長。

? 解算器算法選擇(Solver):

路徑:Solver-->> Solver options -->> Solver

這里選擇discrete算法

? 步長(Fixed-step size):

路徑:Solver-->>Additional options-->> Fixed-step size

根據(jù)需要一般要選擇一個固定數(shù)值,其單位為秒。步長是相鄰兩個采樣點(diǎn)之間的時間間隔,相當(dāng)于模型中算法的最小單位調(diào)用周期。這里選擇0.1,即100ms采樣一次。

3. Code Generation

? 系統(tǒng)目標(biāo)文件(Target selection)

路徑:Code Generation-->>Target selection-->> System Target file

這里一般選擇與嵌入式相關(guān)的系統(tǒng)目標(biāo)文件,如ert.tlc;如果選擇autosar.tlc,那么會生成符合autosar接口標(biāo)準(zhǔn)的車規(guī)級代碼。

? 編譯過程(Build process)

路徑:Code Generation-->> Build process

因?yàn)槲覀冎粸榱丝瓷傻腃代碼,這里勾選generate code only

4. 硬件設(shè)備選擇(Device vendor)

路徑:Hardware Implementation -->>Device vendor/ Device type

這里選擇的是你要將代碼下載到的硬件MCU/DSP的型號。

優(yōu)化項(xiàng)

1. 信號與參數(shù)(Signal and Parameters)

路徑:Optimization -->> Signal and Parameters-->>Code generation

勾選Inline invariant signals.提高生成的C代碼可讀性,將模型常量直接代入,如果不勾選則是變量代替。根據(jù)實(shí)際情況確定是否要勾選。

2. 代碼打包文件

路徑:Code Generation -->> Code Placement-->>Code Packaging

控件選擇Compact,這樣打包生成的C代碼文件數(shù)量少而緊湊一些。

3. State-flow優(yōu)化配置

本案例沒有使用State-flow展示,但是狀態(tài)機(jī)的應(yīng)用是很廣泛的。

路徑:Optimization -->> Stateflow-->>Code generation

勾選兩項(xiàng),是將代碼的整數(shù)換算成位運(yùn)算,提高計(jì)算效率。比如BMS很多狀態(tài)機(jī)都是位運(yùn)算。

模型案例

生成C代碼

菜單欄找到代碼生成圖標(biāo)點(diǎn)擊(或快捷鍵Ctrl+B)

生成的C代碼主函數(shù)分為三部分結(jié)構(gòu),初始化函數(shù)、rt_onestep被定時中斷調(diào)用(即本模型的算法函數(shù))、終止函數(shù)。

上圖為模型算法函數(shù),中斷定時調(diào)用。

總結(jié)

以上列舉了Simulink自動生成嵌入式代碼幾個基礎(chǔ)的必要配置以及一些優(yōu)化代碼的方法。當(dāng)然生成的C代碼與手寫的相比,可讀性還是比較差的,其實(shí)還有一些方法設(shè)置可以改善生成代碼的可讀性,留待下次再分享。以上僅供參考。

本文已同步錄制視頻講解:Simulink代碼生成之模型配置_視頻教程 - 知乎。

歡迎關(guān)注我的微信公眾號/知乎專欄:【新能源動力電池與BMS】,頭條號:【阿Q在江湖】

總結(jié)

以上是生活随笔為你收集整理的生成路径 vs 设置_Simulink代码生成之模型配置的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。