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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

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

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

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

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

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

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

必須配置項

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

在菜單欄打開上圖圖標或者快捷鍵Ctrl+E,打開模型配置參數面板。

2. 解算器設置(Solver)

? 解算器類型(Type):

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

默認是變步長(Variable-step),需要設置為固定步長(Fixed-step)。因為嵌入式代碼是要下載到硬件中實時執行,硬件的時鐘源都是晶振提供的穩定時鐘源,所以解算器必須采用固定步長。

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

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

這里選擇discrete算法

? 步長(Fixed-step size):

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

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

3. Code Generation

? 系統目標文件(Target selection)

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

這里一般選擇與嵌入式相關的系統目標文件,如ert.tlc;如果選擇autosar.tlc,那么會生成符合autosar接口標準的車規級代碼。

? 編譯過程(Build process)

路徑:Code Generation-->> Build process

因為我們只為了看生成的C代碼,這里勾選generate code only

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

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

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

優化項

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

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

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

2. 代碼打包文件

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

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

3. State-flow優化配置

本案例沒有使用State-flow展示,但是狀態機的應用是很廣泛的。

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

勾選兩項,是將代碼的整數換算成位運算,提高計算效率。比如BMS很多狀態機都是位運算。

模型案例

生成C代碼

菜單欄找到代碼生成圖標點擊(或快捷鍵Ctrl+B)

生成的C代碼主函數分為三部分結構,初始化函數、rt_onestep被定時中斷調用(即本模型的算法函數)、終止函數。

上圖為模型算法函數,中斷定時調用。

總結

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

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

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

總結

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

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。