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

article/2025/11/9 13:45:46

最近一直在忙于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文件,该文件即为模块所对应的代码。


http://chatgpt.dhexx.cn/article/OLP8icgU.shtml

相关文章

MybatisGenerator自动代码生成器的使用

之前有写过一篇文章通过RuoYi自动生成SpringBoot项目代码,这篇文章有介绍如何通过RuoYi框架来自动生成相关的SpringBoot代码。但并不是所有的小伙伴都会去下载RuoYi这一套框架代码去获取domain、mapper以及mapping,特此本人再推荐一款很实用并且也容易上…

Simulink自动代码生成(一)

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

代码一键自动生成,拿走不谢

程序猿学社的GitHub,欢迎Star github技术专题 本文已记录到github 文章目录 前言起源环境实战sql脚本pom.xmlapplication.yml启动类代码自动生成controller类 测试 前言 隔壁老王: 社长,我工作有一段时间咯,我看其他的同事&#x…

4个免费代码自动生成神器

4个免费代码自动生成神器 日常写代码,是一件非常需要耐心的事情,尤其是那些没有技术含量重复使用到的一些代码排列组合,比如前端的一些html和css布局,简单繁杂,这个时候就会使用到一些免费代码自动生成神器&#xff0c…

java自动代码生成

1.概述 可在线自动生成代码,省去复制、修改通用模板代码的繁琐过程,减少团队70%以上的开发工作量 基于java的template模板引擎velocity,在定义好模板文件后,动态产生适应业务的java、xml、html、sql等代码文件 2.自动生成过程 …

Linux防火墙关闭方法

Linux防火墙关闭方法 关闭防火墙: 1、查看状态:systemctl status firewalld 2、关闭: systemctl stop firewalld(只执行这个,重启后不行,还必须执行systemctl status firewalld) 1.1、查看seli…

Linux中的Java项目服务器无故关闭

部署在Linux中的项目,最近一直无故关闭。找了很多都找不到原因。最近发现一个现象终于让我知道是什么原因导致我的开发服务器无故关闭了。 起因 部署在linux中的java开发服务器最近一直无故关闭。且是因为我在启动脚本中加了如下命令导致的。 tail -f log/game.lo…

Linux 系统下关闭防火墙

一、重启后永久性生效: 开启: chkconfig iptables on 关闭: chkconfig iptables off 二、即时生效,重启后失效: 开启: service iptables start 关闭: service iptables stop 需要说明的…

linux 桌面关闭防火墙,linux如何关闭防火墙的方法

火墙是一项协助确保信息安全的设备,会依照特定的规则,允许或是限制传输的数据通过。简单的来说防火墙的作用就是保护你的网络免受非法用户的侵入,虽然防火墙是为了你网络安全而存在,但是同时也限制了你上网操作,有很多…

LINUX系统下关闭防火墙

所谓防火墙指的是一个由软件和硬件设备组合而成、在内部网和外部网之间、专用网与公共网之间的界面上构造的保护屏障.是一种获取安全性方法的形象说法,它是一种计算机硬件和软件的结合,使Internet与Intranet之间建立起一个安全网关。 一、重启后永久性生…

JAVA配置防火墙开放、关闭端口

要达成的目的可以描述为: 在JAVA程序中随机生成一个可用的端口,并在防火墙中开放这个端口。 随机生成可用端口 /*** 随机获取10100-10200的未占用端口** return 端口号*/private int generateLocalPort() {while (true) {int port 10100 (new Random(…

Linux系统关闭防火墙命令

Linux系统关闭防火墙命令 下面是red hat/CentOs7关闭防火墙的命令! 1:查看防火状态 systemctl status firewalld service iptables status 2:暂时关闭防火墙 systemctl stop firewalld service iptables stop 3:永久关闭防火墙 systemctl disable firewalld chkconfi…

Linux下的关闭防火墙

一、临时关闭防火墙 1、 查看防火墙的状态 /etc/init.d/iptables status 2、 临时关闭防火墙 /etc/init.d/iptables stop 3、 查看关闭后的状态 二、永久关闭防火墙 命令:chkconfig --level 2345 iptables off 或者 chkconfig iptables off 其中2345 代表”执…

Linux关闭防火墙命令

一、下面是red hat/CentOs7关闭防火墙的命令! 1:查看防火状态 systemctl status firewalld service iptables status 2:暂时关闭防火墙 systemctl stop firewalld service iptables stop 3:永久关闭防火墙 systemctl disable firewalld chkconfig iptables off 4:重…

原生js 实现图片轮播(图片按钮+左右轮播)

该代码可以实现左右箭头点击切换,按钮点击切换,自动播放方面还需改进 点击切换方面算是实现了效果,自我感觉还需要改进,代码仅供参考 html部分 <!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><title>…

JS——【案例】图片轮播图(自动轮播/手动点击/悬停显示)[技术栈:html、css、JavaScript]

1、效果&#xff1a; 2、需求&#xff1a; 3、代码实现&#xff1a; <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"&…

如何用JS实现轮播图!

轮播图 1.思路与写法 1.1 首先我们拿到一个关于轮播图的实例我们要分析里面的功能&#xff0c;将其模块化处理&#xff1b; 1.2 首先需要实现的是自动轮播的效果&#xff1a; 1.2.1需要用到运动函数框架&#xff0c;startMove()&#xff0c;还需要用到定时器&#xff0c;这里…

javascript图片轮播技术动态实现

我们经常会在网页中见到轮播的图片&#xff0c;如京东主页面中图片自动更换。我们在这里对这一技术进行实现&#xff0c;主要能够使图片自动进行轮播&#xff0c;数字标签随着图片一同更换&#xff0c;鼠标移动到数字标签上&#xff0c;相应的图片停留&#xff0c;鼠标在整个图…

JS——实现轮播图(完整功能)

没有把细节单拎出来讲&#xff0c;但基本上所有重要步骤都在代码里边备注解释了~~ 个人认为比较难的地方就是&#xff1a; 怎么在自动播放到最后一张图片后&#xff0c;瞬间切换回第一张图片重新播放&#xff1f; 这里采用了比较取巧的方法&#xff0c;比如我用了四张例图&a…

Js实现图片点击切换与轮播

Js实现图片点击切换与轮播 图片点击切换 <!DOCTYPE html> <html><head> <meta charset"UTF-8"><title></title><script type"text/javascript">window.onloadfunction(){var btn1document.getElementById("…