您可以捐助,支持我们的公益事业。

1元 10元 50元





认证码:  验证码,看不清楚?请点击刷新验证码 必填



  求知 文章 文库 Lib 视频 iPerson 课程 认证 咨询 工具 讲座 Model Center   Code  
会员   
   
 
     
   
 订阅
  捐助
基于Simulink模型的嵌入式代码生成技术
 
  2602  次浏览      16
 2019-3-18
 
编辑推荐:
本文来自于csdn,文章将主要讨论如何通过Embedded Coder从Simulink/Stateflow模型生成嵌入式C代码,希望对您的学习有所帮助。

自动生成代码技术具有生成的代码效率高、一致性好、开发便捷等诸多优点,也正是因为这些优点使得这项技术已经成为汽车、航空航天、工业控制等领域嵌入式软件开发的主流方式。本次研讨会将主要讨论如何通过Embedded Coder从Simulink/Stateflow模型生成嵌入式C代码,如何通过数据对象定义C代码中的变量和参数,如何定制C代码的函数原型,如何控制C文件的生成,如何生成可以重用的C代码,如何对被引用的模型进行代码生成,如何进行代码和模型的等效性测试等话题。

simulink的c代码生成工具有3种:

Embedded coder:自动生成嵌入式系统的C/C++代码

Simulink coder:自动生成Simulink/Stateflow的C/C++代码

Matlab coder:自动生成Matlab的C/C++代码

下面是一个比较好的自动代码生成教学视频:simulink自动代码生成

视频主要内容如下:

1、使用simulink coder生成代码;

2、使用embedded coder生成代码;

然后对以上两种方式生成的C/C++代码进行管理,主要有以下应用场景:

1.使用数据对象进行数据管理;

2.代码生成的优化配置;

3.模型机算法函数原型的控制;

4.子系统算法函数以及文件的控制;

5.从自定义模块生成可重用代码;

6.平台化模型的代码生成;

7.代码的等效性测试(SIL: software in the loop)。

使用数据对象进行数据管理的过程如下:simulink代码生成通过数据对象进行数据管理。具体而言,就是先设置数据对象,然后将数据对象和模型参数关联,就可以通过配置数据对象影响代码生成。

这里的对象和平时所说的面向对象编程是同一个概念,类(class)有一个包,包里面又会包括几个类,而类里面会定义方法(method)和属性(property)。我们可以通过类去创建对象或者说派生对象,然后可以通过类里面的属性值去设置这些类派生对象的属性。

simulink里面有两个包:simulink package、mpt package(专门用于嵌入式代码生成)。

简单的基于simulink的嵌入式代码生成

这篇文章生成的是通用行的C代码,也就是将生成的代码直接加入工程中就可以使用,不存在控制器的差别

模型如下

第一步:设置解算器

固定步长,离散,0.01s运行一次算法

代码生成选项,选择ert.tlc,这个生成的嵌入式代码

代码生成页面

可以看见我们生成的代码中的变量是用结构体进行计算的,那么这么简单的算法,我们能否用平时习惯的变量方式去表示呢,答案是肯定的,这就需要我们进行数据的管理

二、数据管理

首先,双击信号线为信号线添加名称,那么我们就简单的对信号线命名为x,y,z。之后点击2选项

这里存储类型一定不能是auto.

之后代码生成crtl+b

 

   
2602 次浏览       16
 
相关文章

UML概览
UML图解:用例图(Use case diagram )
UML图解:活动图(activity diagram )
UML图解:类图(class diagram )
UML图解:对象图(object diagram)
UML图解:顺序图( sequence diagram )
 
相关文档

模型跟踪:跟踪图、矩阵、关系(建模工具EA)
自定义表格(Custom Table)在EA中的使用
元素的详情浏览控制
UAF 1.2规范解读(DMM 和 UAFML )
EA中支持的各种图表
EA中的界面原型建模
 
相关课程

UML与面向对象分析设计
UML + 嵌入式系统分析设计
业务建模与业务分析
基于SysML和EA进行系统设计与建模
基于模型的需求管理
业务建模 & 领域驱动设计