Matlab Code Generation with Embedded Coder — Simulink模型生成c/cpp代码

本文介绍了如何使用Embedded Coder将Simulink模型转换为C++代码。首先,需要安装Embedded Coder插件,并在Simulink的Model Settings中配置模型,如设置求解器为定步长离散求解器,目标文件为ert.tlc。然后,通过Embedded Coder App选择System Target File为ert.tlc,并按照提示生成代码。可能遇到的问题包括代数环问题和Subsystem非atomic,解决方法是添加unit delay和调整Block Parameters设置。
AI助手已提取文章相关产品:

小白在工作中需要将Simulink model转换成C++代码,于是参考了网上的资料记录一下这个过程。

工具

在Matlab中可以生成代码的工具有:

  • Matlab Coder
  • Simulink Coder
  • Embedded Coder

Matlab Coder一般是用来将脚本文件生成c代码;Simulink Coder是自动从Simulink/Stateflow模型生成c代码,且不能用于嵌入式系统;Embedded Coder可自动生成可应用于嵌入式系统的c代码,而且支持自定义代码风格以及代码优化。
在这里插入图片描述
此处使用Embedded Coder生成cpp代码,需要先安装Embedded Coder插件。

生成代码的步骤

  1. 在生成代码之前需要进行一些设置,在Simulink窗口的MODELING界面下点击Model Settings打开配置界面
    在这里插入图片描述
    在Solver界面,将求解器设置为定步长离散求解器(如果模型里包含连续的状态的话选离散求解器会生成失败),
    在这里插入图片描述
    在Code Generation界面,将目标文件设为ert.tlc,
    在这里插入图片描述
    也可以勾选Code Generation/Report界面下的Create code generation report和Open report automatically,这样可以查看生成的报告。
    在这里插入图片描述
  2. 在Simulink APPS中找到并点击Embedded Coder;
    在这里插入图片描述
  3. 选择Embedded C++ Code下拉菜单中的Select System Target File,然后在弹出的界面选择ert.tlc。
    在这里插入图片描述
    在这里插入图片描述
  4. 点击Embedded C++ Code旁边的Quick Start,按照提示一步步的执行,如果都没有报错,即可成功生成代码,如果有报错就按照错误提示信息进行修改即可。

可能出现的问题

  1. 代数环问题,使用ashow显示代数环的位置,在反馈回路添加unit delay即可。
  2. Subsystem不是atomic,在Block Parameters中设置即可。

参考链接

链接1: 使用ashow命令寻找模型中的代数环
链接2: 什么是代数环

您可能感兴趣的与本文相关内容

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值