最近一直在忙于FCU控制器的模型搭建,空闲之余也想分享一下自己对Simulink建模过程中的一些想法,从接触simulink到应用simulink大约已经两年多了,随着接触时间,慢慢发现simulink在模型搭建方面真的是非常的方面。今天我就和大家分享一下simulink模型搭建完成时如何进行自动代码的生成,如何进行相关的配置。

1.嵌入式代码生成器的要求和限制

1.1 RTW嵌入式代码生成器程序以离散时间运行,用户的模型必须使用如下Solver选项:

Solver type: fixed-step
Algorithm: discrete (no continuous states)

1.2 嵌入式实时目标(ERT)不支持的模块

2.具体操作步骤

2.1 建模过程已经完成,模型符合上述代码生成的要求。

2.2 仿真参数的设置(simulink环境下)

(1)在模型工具栏中,选择Simulation ->> Configuration Parameters;

打开配置参数对话框,点击对话框的Solver面板,设置下面几项参数,如图所示:
① Start time:0.0;
② Stop time:inf;

③ Type:Fixed-step;
④ Solver:discrete(no continuous states);
⑤ Fixed-step size(fundamental sample time):设置为步长time_step(此变量由m 文件赋
值,此处也可直接赋值,如0.01)。

(2) 点击对话框的Optimization 面板,Parameter structure 选择Hierarchical,其他选项如图
所示进行勾选。

(3) 点击对话框的Hardware Implementation面板,可设置硬件属性。 在Device vender选择Infineon,在Device type处选择设备类型C16x,XC16x(此处以Infineon C166 系列为例),其他选项为默认值,如图所示。

(4) 点击对话框的Real-Time Workshop选项面板,在此面板中设置参数:
① 点击Browse按钮打开System target file browser,用户可以在列表中选择目标文件,设置System target file为ert.tlc(用于生成嵌入式代码),默认为grt.tlc,此时可选择后面Browse按键选择ERT文件,如图6所示。当用户选择好系统目标文件,Real-TimeWorkshop会自动设置Template makefile和Make command选项,如图所示。点击Setobjectives…,选中Available objectives中的Execution efficiency(其他选项亦可选,此处用于设置后期模型检测的目标),点击右向箭头使其进入Selected-objectives prioritized中。其它选项如图所示。

② 设置Report中的选项,以便在生成代码的同时可自动生成报告,目的是在后面生成代码的过程中同时会生成一个报告。

③ 设置Interface面板,Target function library选择C89/C90(ANSI),Utility functiongeneration选择Auto。

④ 设置Templates面板,选择Generate an example main program 将生成一个应用程序的模板范例。

⑤ 设置Code Placement面板,将File packing format选为Compact(代码文件为紧凑类型),其他为默认选项。

(5) 参数设置完成之后进行检查,回到Real-Time Workshop,单击Check Model。在弹出的对话框中选择想要生成的模块。

检查完成之后会出现对话框,如果Code Generation Objectives中出现红色错误则必须进行修改,出现黄色警告则根据具体情况进行修改。

3.代码生成

参数设置及检测修改完成之后,鼠标右键单击该模块,选择Real-Time Workshop->>Build Subsystem,得到对话框。(需要注意得是如果是针对整个模型进行代码生成则不需要右键单击,而是在Real-Time Workshop中直接单击最下面的Build即可生成整个模型的代码)。

单击Build,生成的同时生成一个html报告,可在此报告中查看相关模块代码及代码变量信息等,并且在matlab的Current Forder窗口下生成了一个同名的文件夹,打开后可以找到生成的.c文件,该文件即为模块所对应的代码。

Matlab/Simulink 自动代码生成详细步骤相关推荐

  1. Matlab/Simulink 自动代码生成 基于模型设计学习教程(1)---- 环境配置

    在接触不断开发深入STM32的时候,我经常在直接用C语言编写一个很发杂的算法,比如PID控制,傅里叶变换,卡尔曼滤波之类的基本需要的算法,然而对于一个初学者来说,编写这样的算法,费时费劲,甚至不一定能 ...

  2. MATLAB/Simulink自动代码生成(二)

    前言: 上一篇文章详细学习了如何通过Simulink建立系统模型,进而生成嵌入式代码.本文通过实例进一步加深对代码自动生成的理解和应用. 一.建立系统框图 为了方便起见,在这里我们实现一个的简单算法, ...

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

    Simulink自带了种类繁多.功能强大的模块库,在基于模型设计的开发流程下,Simulink不仅通过仿真可以进行早期设计的验证,还可以生成C/C++.PLC等代码直接应用于PC.MCU.DSP等平台 ...

  4. Matlab/Simulink 自动代码生成 基于模型设计学习教程(2)---- 闪烁灯实验

    首先我们来搭建我们第一个模型 将选中的模块拖到左边的模型当中 我们再来看一下原理图,可以看见PC13是我们的指示灯 我们来设置 Digital Output模块,选中PC13,并将Sample tim ...

  5. Simulink自动代码生成:生成代码的基本设置

      Simulink自动代码生成也被称作基于模型开发(BMD),相比于传统的手写代码方式能够尽量减少人为错误.模型本身可以用于仿真,单元测试等,更便于提前发现逻辑错误.同时只要约定好模型接口,就可以多 ...

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

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

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

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

  8. matlab amesim 版本,高版本amesim—matlab联合仿真设置详细步骤.pdf

    高版本amesim-matlab联合仿真设置详细步骤 高版本AMESim-MATLAB 联合仿真设置详细步骤 说明:现以AMESimR12 .MATLAB2010a 为例说明,其他版本类似. 1.版本 ...

  9. Simulink自动代码生成

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

最新文章

  1. host ntrip 千寻rtk_什么是千寻知寸cors账号?它提供的定位服务精度如何?使用时需要注意哪些问题?...
  2. 我的世界1.7.2 java_我的世界Java版1.7版本种子分享
  3. How to Enable Trace or Debug for APIs executed as SQL Script Outside of the Applications ?
  4. Twitter Heron 实时流处理系统简介
  5. Qt的MDI中多个子窗口响应一个菜单事件的优雅实现(动态slot)
  6. leetcode 427. Construct Quad Tree | 427. 建立四叉树(分治法)
  7. SpringBoot2.x 整合websocket 消息推送,单独发送信息,群发信息
  8. mysql用shell建100多字段表并导入
  9. 支付宝芝麻分多少算正常?分高有什么好处?
  10. angular学习笔记(九)-css类和样式2
  11. python.pandas数据清洗(数据填充与条件删除)
  12. 发送邮件的python脚本
  13. 神经网络软件有哪些,神经网络分析软件
  14. Your app declares support for audio in the UIBackgroundModes key in your Info.plist 错误
  15. Android Studio创建app问题: Install repository and sync project等
  16. Win10多用户远程桌面软件RDP Wrapper Library下载安装教程和解决Win10 1809(OS build17763)not supported问题
  17. 家电三巨头的集体突围
  18. 深度学习之 人脸识别(3) 摄像头识别人脸 实例
  19. php中微妙函数,时间换算,秒、毫秒、微妙
  20. 第三方Android应用市场横向对比大测评

热门文章

  1. 通信标准4之非连续接收DRX
  2. C#读写配置文件(config.ini)入门
  3. 游戏思考17:寻路引擎recast和detour学习二:recast导航网格生成流程\源码剖析流程\局限性,附录计算点线面举例代码
  4. 星辰和大海都需要门票,诗和远方也很贵
  5. SCAU 计算智能 暴力美学(二)
  6. 两数之和 暴力美学 哈希表
  7. python螺旋输出矩阵_飘逸的python - 打印螺旋矩阵
  8. 枪战英雄为什么不显示服务器,枪战英雄Unity3D插件安装常见问题说明
  9. 华为matebook13重装系统后指纹解锁功能失效的解决办法
  10. 个人软件测试工程师前景理解