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

文章目录

  • Simulink代码生成(二)——代码生成时模型的配置方法及操作流程
  • 一、模型
  • 二、代码生成设置
    • 1、步长选择
    • 2、系统目标文件设置
    • 3、生成代码打开测试报告
    • 4、保存代码生成过程rtw文件
    • 5、代码解析

一、模型

示例模型为简单选择模型。

二、代码生成设置

1、步长选择

由于要生成嵌入式代码下载到开发板中,而我们的开发板都是采用定步长工作的,所以生成代码时也要选择定步长。

2、系统目标文件设置

系统目标文件是指导代码生成过程的总括。系统目标文件可以规定生成代码的全局结构,以匹配所支持的目标芯片群及目标语言。

常用的系统目标文件有以下两个:

  • ert.tlc-针对嵌入式代码生成的系统目标文件。
  • grt.tlc-生成通用式实时目标的C代码。

    一般采用erg.tlc或者根据erg.tlc针对某芯片的TSP(Target Support Package)。

3、生成代码打开测试报告


4、保存代码生成过程rtw文件

rtw 文件作为模型编译器的输人文件和编译过程的中间产物, 记录了模型创建信息和编译信息、名字与版本号、配置参数集、输人输出、参数等所有信息。可以通过以下选项保留这个中间文件。

5、代码解析

生成的文件有以下7个,最重要的是untitled.c,该文件生成代码的结构和S-function有点类似,有三个函数:

  1. void untitled_initialize(void) - 进行初始化
  2. void untitled_step(void) - 循环跑
  3. void untitled_terminate(void) - 结束时执行的动作,通常可以不需要

这个文件

/** File: untitled.c** Code generated for Simulink model 'untitled'.** Model version                  : 1.3* Simulink Coder version         : 9.0 (R2018b) 24-May-2018* C/C++ source code generated on : Wed Oct 12 21:32:40 2022** Target selection: ert.tlc* Embedded hardware selection: Intel->x86-64 (Windows64)* Code generation objectives: Unspecified* Validation result: Not run*/#include "untitled.h"
#include "untitled_private.h"/* External inputs (root inport signals with default storage) */
ExtU_untitled_T untitled_U;/* External outputs (root outports fed by signals with default storage) */
ExtY_untitled_T untitled_Y;/* Real-time model */
RT_MODEL_untitled_T untitled_M_;
RT_MODEL_untitled_T *const untitled_M = &untitled_M_;/* Model step function */
void untitled_step(void)
{/* Switch: '<Root>/Switch' incorporates:*  Inport: '<Root>/In1'*/if (untitled_U.In1 > untitled_P.Switch_Threshold) {/* Outport: '<Root>/Out1' incorporates:*  Gain: '<Root>/Gain'*/untitled_Y.Out1 = untitled_P.Gain_Gain * untitled_U.In1;} else {/* Outport: '<Root>/Out1' incorporates:*  Gain: '<Root>/Gain1'*/untitled_Y.Out1 = untitled_P.Gain1_Gain * untitled_U.In1;}/* End of Switch: '<Root>/Switch' */
}/* Model initialize function */
void untitled_initialize(void)
{/* Registration code *//* initialize error status */rtmSetErrorStatus(untitled_M, (NULL));/* external inputs */untitled_U.In1 = 0.0;/* external outputs */untitled_Y.Out1 = 0.0;
}/* Model terminate function */
void untitled_terminate(void)
{/* (no terminate code required) */
}/** File trailer for generated code.** [EOF]*/

Simulink代码生成(二)——代码生成时模型的配置方法及操作流程相关推荐

  1. VSCode + Latex +Texlive 编译 biber格式参考文献时 VSCode的配置方法

    { "editor.fontSize": 17, "files.autoSave": "onFocusChange", "late ...

  2. 永磁同步电机恒压频比(V/F)开环控制系统Matlab/Simulink仿真分析及代码生成到工程实现(二)

    文章目录 前言 一.SVPWM 二.永磁同步电机恒压频比开环控制系统Matlab/Simulink仿真分析 2.1.仿真电路分析 2.1.1.恒压频比控制算法 2.1.2.输出处理 2.1.3.主电路 ...

  3. Matlab/Simulink代码生成到dsp系列(一)基础配置

    0 引言 TI 公司 C2000 系列的 DSP 芯片主要面向数字控制.运动控制领域.在电机控制领域占有主导的地位.但是传统的代码开发方法周期较长,效率不高,有时可读性较差,难以修改.维护.随着工业技 ...

  4. matlab rtdemo怎么生成,simulink——RTW自动代码生成简介

    [实例简介] simulink自带的realtime workshop,也就是RTW,可以实现代码自动生成,但是,如果要对生成代码进行自定义,控制代码生成过程中的每一个阶段,需要额外的编程,而不是单单 ...

  5. 永磁同步电机恒压频比(V/F)开环控制系统Matlab/Simulink仿真分析及代码生成到工程实现

    文章目录 前言 一. 恒压频比(V/F)控制原理 二.永磁同步电机恒压频比开环控制系统Matlab/Simulink仿真分析 2.1.仿真电路分析 2.1.1.恒压频比控制算法 2.1.2.输出处理 ...

  6. simulink仿真及代码生成技术入门到精通_行星排混动从入门到精通(结构)

    ​希望关注本专栏的朋友,也能一并关注微信公众号. ​原文地址:行星排混动从入门到精通(结构) 行星齿轮机构结构在我们的行业生产中有着广泛的运用.如:AT变速箱(带变矩器的那种).电机减速器.后桥差速器 ...

  7. 如何用C代码生成二维码

    如何用C代码生成二维码 当下因微信和支付宝等手机应用广泛使用,而基于二维码/一维条码的移动支付,也借助手机移动端席卷全国,使得越来越多的人知道有"二维码"这么一种东西. 对于普通用 ...

  8. Simulink嵌入式自动代码生成DSP 28335/28035/28x系列 (1)——官方例程(1)讲解 {ADC-PWM同步中断}

    前言 本人了解到电动汽车中 OBC和 DCDC 普遍使用TI (德州仪器)DSP 28335和 28035系列芯片 做开关电源控制,电源领域的 工程师 需要对于芯片的配置和 配套软件Code Comp ...

  9. Java实现一行代码生成二维码,可传输到前端展示,可自定义二维码样式,可设置图片格式,可对二维码添加图片,可对二维码添加文字,可以设置二维码大小、字体大小、字体颜色、边框颜色、边框大小等等

    Java实现一行代码生成二维码,可传输到前端展示,可自定义二维码样式,可设置图片格式,可对二维码添加图片,可对二维码添加文字,可以设置二维码大小.字体大小.字体颜色.边框颜色.边框大小等等. 0.准备 ...

最新文章

  1. BDTC 2017丨大数据在金融、交通、医疗、工业领域落地实践与应用
  2. P3196 [HNOI2008]神奇的国度(弦图的最小染色问题)
  3. java读取mysql配置文件_一文读懂 MySQL 主从复制读写分离
  4. mqtt android封装,Android之MQTT封装使用
  5. python中class __str__怎么用_python中下划线的作用
  6. zookeeper启动失败+jps中没有QuorumPeerMain
  7. Mongodb Replica Configure
  8. react使用less预编译语言和本地代理配置
  9. 二级域名的URL跳转
  10. qt测试代码运行时间
  11. 集群环境下的文件上传和下载和文件服务器的配置
  12. 6U VPX板卡资料:6U VPX 高性能计算存储板卡
  13. oracle rman异地备份,rman异地备份与恢复测试
  14. python图像降采样,【图像处理】——改变图像的大小(降采样重采样)
  15. BufferedImage修改图片大小
  16. “浙大学霸作息表”疯传,网友:越优秀就越努力!
  17. scrum立会报告+燃尽图(第二周第三次)
  18. 获取json中数组的length
  19. iphone照片恢复至android,绝招!如何恢复苹果/安卓手机上误删的照片,详细教程奉上!...
  20. 电信保温杯笔记——《统计学习方法(第二版)——李航》第16章 主成分分析

热门文章

  1. sudo pip install -i https://pypi.douban.com/simple --user MySQL-python报错‘my_config.h‘ file not found
  2. 实验十六VLAN,VLANIF通信
  3. android接口的使用,Android - 接口、MVP 的使用心得
  4. 服务器剪切板无法完成粘贴的解决方案
  5. 进程同步——打瞌睡的理发师问题
  6. 在Overleaf或LaTeX软件中使用citavi插入参考文献
  7. 软甲开发者应有的八大特征
  8. 投资大佬邱国鹭 首曝22年股市投研秘籍
  9. 常用的两个火狐扩展--下载视频音乐和截图
  10. win10台式电脑连接蓝牙耳机