欢迎访问 生活随笔!

生活随笔

当前位置: 首页 >

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

发布时间:2023/12/10 70 豆豆
生活随笔 收集整理的这篇文章主要介绍了 生成路径 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代码生成之模型配置的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。