Simulink自动代码生成也被称作基于模型开发(BMD),相比于传统的手写代码方式能够尽量减少人为错误。模型本身可以用于仿真,单元测试等,更便于提前发现逻辑错误。同时只要约定好模型接口,就可以多人协作,每个人单独开发一个功能模块缩短了开发周期,最终将每个人生成的代码集成到一起就可以构成一个完整的工程。因此,基于模型开发的方式受到很多大公司的欢迎,尤其是车企更是将其作为首要的开发方式。

目录

  • 一. 新建一个简单的模型
  • 二. 更改模型配置参数
  • 三. 自动生成代码
  • 四. 总结

一. 新建一个简单的模型

  笔者使用的是MALAB2020a,以前用的MATLAB2016b及MATLAB018b也基本差不多,只是最新版本多了一些功能。打开MATLAB/Simulink,新建一个简单的计算模型,实现以下功能:
Y1=(X1+X2)∗X3Y1 = (X1+X2) * X3 Y1=(X1+X2)X3
  所搭建的模型如下:

二. 更改模型配置参数

  首先打开Model configuration parameters,对模型配置参数进行设置。

  (1)对求解器进行设置,对于生成代码而言第三步不是必须的,求解器的类型也可以根据实际情况而定,但定步长(Fixed-step)是必须的。

  (2)对硬件进行设置,我现在所使用的是TI公司的C2000系列芯片(以前做模型开发时用的是车规级芯片TC275),硬件芯片根据自己的实际情况进行选择。


  (3)进行代码生成配置,系统目标文件选择嵌入式代码,语言为C语言。

  (4)在代码生成选项卡下选择报告,可以自动生成代码报告,这一步不是必须的,不影响代码生成,但有助于我们查看代码,因此还是做如下设置比较好。

  至此,代码生成最基本的配置已经完成,接下来就可以进行代码生成了。

三. 自动生成代码

  (1)MATLAB2020a与以前的版本有所不同,代码生成功能在APPS选项卡下,打开APPS,选择Embedded Coder就会出现C CODE选项卡。

  (2)进入C CODE选项,选择Build,也可以使用快捷键Ctrl+D进行编译,检查模型是否有错误。

  (3)编译后发现错误,原因是模型不在工作目录下。

  (4)将Simulink模型保存到CodeGeneration文件夹下,并命名为Calculation(命名随意,不要含有违规字符即可),然后将MATLAB工作目录换成CodeGeneration所在路径,如图所示。

  (5)在此Build将不会再出现错误,然后进行代码生成,选择步骤(2)图片中的第二步,也可以使用快捷键Ctrl+B进行代码生成,代码生成后如下图。

  (6)选择Calculation.c可以看到实现了我们所需要的函数功能,变量的声明在.h文件中,读者可自行查看。

  (7)生成的代码全部在Calculation_ert_rtw文件夹下,此文件夹是系统自动生成的,前缀是根据搭建的模型来定的,后面是系统默认添加的。

四. 总结

  以上就是生成代码的基本步骤,注意这里仅仅讲解了基本配置,更复杂的配置及代码优化将在后续的系列文章中进行详细的讲解。不进行其它配置,这样的代码无法用于实际项目中,如何使得代码按照自己想要的样子生成,这才是自动代码生成的关键。

Simulink自动代码生成:生成代码的基本设置相关推荐

  1. Simulink自动代码生成:数据字典的建立及代码优化

      在上一节<Simulink自动代码生成:生成代码的基本设置>的基础上,我们来对模型进行优化,使得生成的代码更能满足实际的需求,没看过我上一篇文章的可以点开如下链接:   Simulin ...

  2. 一文弄通STM32F103基于simulink自动代码生成CAN/USART/GPIO/TIM(stm32cubemx+stm32target+matlab2018b)

    一文弄通STM32F103基于simulink自动代码生成CAN/USART/GPIO/TIM(stm32cubemx+stm32target+matlab2018b) 写在前面 1.stm32cub ...

  3. Simulink自动代码生成(一)

      一个simulink模型能够生成代码首先要满足的条件: 1:确保模型仿真的正确性2:将需要的输入和输出改成input和output模块3:离散化模型,设置求解器为离散,固定步长 满足上面条件后,接 ...

  4. Simulink自动代码生成

    Simulink学习笔记(二)--Simulink自动代码生成(一) Simulink学习笔记(三)--Simulink自动代码生成(二)

  5. Simulink自动代码生成3——优化生成的代码(optimizing generated code)

    代码优化综述 使用simulink代码生成之后,如果需要进一步对执行效率或者内存优化,可以看下面提到的方法.具体可从以下几个方面考虑: remove initialization code remov ...

  6. Simulink自动代码生成2——生成嵌入式代码(generating embedded code)

    写在前面,一个小tips:用低版本打开高版本slx的方法如下,这个方法不是万能的,可能会引发一些错误,谨慎使用. 目录 1. 代码生成的常用界面 2. 代码基本结构 代码文件的主结构 主循环函数 生成 ...

  7. Simulink自动代码生成:原子子系统(Atomic Subsystem)

      在前两节的基础上我们继续来学习代码的优化,没看过我前两篇文章的可以先去看一下,否则可能觉得模型出现的很突兀.这一节我们来学习原子子系统,废话不多说,我们直接开始学习,看完了这一篇你就会明白什么是原 ...

  8. Matlab/Simulink 自动代码生成详细步骤

    最近一直在忙于FCU控制器的模型搭建,空闲之余也想分享一下自己对Simulink建模过程中的一些想法,从接触simulink到应用simulink大约已经两年多了,随着接触时间,慢慢发现simulin ...

  9. Simulink 自动代码生成原理

    如下图,Simulink模型会先变成一个文本式的 .rtw 模型描述文件,然后再变成 .c,.h,最后编译为最终目标文件. 典型的 Simulink 用户通常都是,用Simulink设计好算法后,做到 ...

最新文章

  1. LeetCode Online Judge 题目C# 练习 - Minimum Path Sum
  2. shell中的变量赋值
  3. ansys中的柱坐标与直角坐标关系
  4. 笔记-信息化与系统集成技术-智慧城市建设参考模型
  5. 怎么查看自己linux实验环境,Linux实验
  6. Python实训day13am【Python网络爬虫综合大作业PPT】
  7. 2025年公有云或将服务中国过半数字经济
  8. 如何进行MaxCompute 用户认证?
  9. 我的世界java版tis,我的世界1.7.10~1.8.8 9tis-3d回到汇编的时代mod
  10. MySQL命令之mysqlhotcopy -- 热备份
  11. nvarchar(2048)能写多少个字符_我的拼多多店一个标题能带来多少的免费流量?三个字“非常多”...
  12. Webpack入门教程十四
  13. EF BB BF的问题
  14. CTFHub | HG泄露
  15. 手把手教您:iOS 6.1~6.12 完美越狱教程
  16. CDN是什么?如何用Cloudflare CDN加速网站
  17. 在Ubuntu 8.10 中安装使用新一代输入法ibus Deb包下载
  18. matlab 三角函数 积化和差,三角函数积化和差与和差化积公式
  19. 关于在线银行卡支付限额问题 解决方案
  20. Java 编程语言单词汇总(建议收藏)

热门文章

  1. 股票的委托价、成交价与成本价的关系
  2. 考研概统真题思考 联合概率密度和条件概率密度问题
  3. 11 人利用 bug 获利 652 万:被判
  4. 标准正态分布函数的近似计算
  5. LaTeX中的浮动体
  6. html div元素浮动,CSS实现元素浮动和清除浮动的方法
  7. Vue Router详细教程
  8. matlab如何转换哑变量,SPSS教程:手把手教你设置哑变量及解读结果!
  9. 从键盘输入一批字符,以@结束,按要求加密并输出。
  10. java流媒体服务EasyMedia