欢迎关注我的微信公众号【新能源动力电池与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代码生成之模型配置相关推荐

  1. java core 生成路径_core文件生成和路径设置

    在程序崩溃时,内核会生成一个core文件,即程序最后崩溃时的内存映像,和程序调试信息. 之后可以通过gdb,打开core文件察看程序崩溃时的堆栈信息,可以找出程序出错的代码所在文件和函数. 1.cor ...

  2. 设置Linux core file生成路径

    core文件生成路径: 输入可执行文件运行命令的同一路径下. 若系统生成的core文件不带其他任何扩展名称,则全部命名为core.新的core文件生成将覆盖原来的core文件. 1)/proc/sys ...

  3. Simulink代码生成(二)——代码生成时模型的配置方法及操作流程

    Simulink代码生成(二)--代码生成时模型的配置方法及操作流程 文章目录 Simulink代码生成(二)--代码生成时模型的配置方法及操作流程 一.模型 二.代码生成设置 1.步长选择 2.系统 ...

  4. 【simulink专题】matlab 2022a如何生成A2L文件设置

    前言 在我们使用的Simulink建模过程中,会使用标定量,最终在模型设置中勾选ASAP2 Interface设置后生成A2l文件达到查看标定量的目的,但是最近有小伙伴发现,在新版MATLAB 202 ...

  5. autoware使用rosbag数据生成路径点并进行路径规划(七)

    autoware使用rosbag数据生成路径点并进行路径规划(七) 第一步启动autoware和播放数据包 $ cd ~/autoware.ai $ source install/setup.bash ...

  6. python使用lassocv生成影像组学(radiomic)模型的系数表

    python使用lassocv生成影像组学(radiomic)模型的系数表 目录 python使用lassocv生成影像组学(radiomic)模型的系数表 #lassocv模型构建

  7. 简述一下生成对抗网络GAN(Generative adversarial nets)模型?

    简述一下生成对抗网络GAN(Generative adversarial nets)模型? 生成对抗网络GAN是由蒙特利尔大学Ian Goodfellow在2014年提出的机器学习架构. 要全面理解生 ...

  8. 怎么修改云服务器项目路径,云服务器tomcat的项目路径怎么设置

    云服务器tomcat的项目路径怎么设置 内容精选 换一换 华为云提供两种连接方式通过MySQL客户端连接实例:非SSL连接和SSL连接.其中,SSL连接实现了数据加密功能,具有更高的安全性.登录弹性云 ...

  9. 所选驱动器不再有效,继续安装之前,请先检查安装路径的设置

    用VS2010打开VS2008写的VB.NET程序,但打不开:后来一想,我VB.NET都没有安装:于是来将VB.NET,但添加VB.NET,点击"更新"后弹出错误"所选驱 ...

最新文章

  1. asp打印html,asp.net教程之利用ASP在浏览器上打印输出
  2. access查询女教师所有的信息_【9月3日报名必看】教师资格证报名如何查询报名成功及修改报名信息?...
  3. linux epoll 模型详解
  4. python avg_python闭包
  5. WordPress 主题教程 #5c:日志元数据
  6. js循环出来的数据补全_加推实战之数据预测
  7. 20.Azure备份Azure上的虚拟机(中)
  8. 在线URL转sitemap工具
  9. python能处理数据的优点_Python在数据处理方面的优缺点
  10. 串口通讯---实现 PC 端之间串口连接传输文件
  11. 7. gdal进行遥感影像的16位转8位和百分比截断增强(看这篇就够了)
  12. python装饰器和异常处理_装饰器异常处理-面向对象编程-Python教程自动化开发_Python视频教程...
  13. 转载 GIS地图知识
  14. 小米电视怎么看cctv?安装电视家教你锁定2022世界杯“观赛位”
  15. 华北理工计算机学院官网,2019上半年华北理工大学计算机等级考试报名通知
  16. URLRewrite实现url地址伪静态化
  17. CF1611E1 Escape The Maze (easy version)+ CF1611E2 Escape The Maze (hard version)
  18. 自定义字体在HTML项目中的使用
  19. DataGrid列自定义显示(模板)
  20. 有道云笔记Windows版不显示图片

热门文章

  1. C++中两个数交换不引进中间变量的方法
  2. ubuntu安装pytorch镜像修改及下载
  3. 南方科技大学计算机交换生,国际合作 – 合作交流分类 – 南方科技大学生物医学工程系...
  4. C++11系列学习之四----auto
  5. 华为mate30怎么申请鸿蒙内测,华为新系统启动内测,mate30系列尝鲜,网友:羡慕...
  6. VS2017 调用Tesseract
  7. OO第三单元总结:JML
  8. Linux命令(七)Linux用户管理和修改文件权限
  9. Java命令学习系列(零)——常见命令及Java Dump介绍
  10. python until语句_详解Lua中repeat...until循环语句的使用方法