前段时间有读者朋友问代码生成的例子,说他正在做EPB的仿真模型,但总是和应用串不到一块去,我这里就从一个简单EPB控制模型来谈谈simulink代码生成,总结代码生成方法的同时也顺便回答他的问题。

1.EPB模型准备

用来举例说明的模型很简单,就是EPB(电子驻车,Electrical Parking Brake)中的手动夹紧功能,即驾驶员操作EPB按钮实现电子卡钳夹紧从而驻车的功能。

如果你开过车,应该会知道EPB就是下面这玩意。

EPB的功能很多,我们只拿其中最简单的EPB Switch Apply功能来说明,要使电子卡钳夹紧,同时满足下面四个条件即可:

(1)EPB未处于工厂转毂模式;

(2)EPB开关被拉起;

(3)EPB卡钳锁止功能正常;

(4)车辆静止;

分别用四个flag信号表示这四个状态量:

虽然只有简单四个信号,在实际开发中每个信号又要再根据很多条件做判断,比如工厂转毂模式是一种整车厂用来检测驻车制动力是否合格的测试模式,要根据车速轮速做综合判断;又例如车辆静止的判断条件,并不是简单的车速为0,而是要判断四个轮速传感器的脉冲信号;这里就不做详细展开。

根据以上的触发条件可以建立该功能的Simulink模型:

2.代码生成前的准备

打开Model Settings会话框,在Solver选项中,选择Fixed-Step(固定步长)和discrete(非连续解算器),这主要是因为我们面向的主要是嵌入式开发,而嵌入式开发的板子都是靠晶振或者外部时钟电路来计时的,采样时间一般是固定的。

在Code Generation选项中,System target file(生成目标文件)选ert.tlc,即embedded coder嵌入式代码生成。

在Report选项中,勾选Create code generation report和Open report automatically,生成代码后可以方便查看相关报告及详细代码。

3.代码生成及优化

上面准备工作完毕后,点击下图蓝色Generate Code按钮或者快捷键Ctrl+B,即可自动生成代码。

生成的代码如下,结构类似S-function:

初始化(EPB_model_20201123_initialize)→ 程序执行(EPB_model_20201123_step)→ 程序终止 (EPB_model_20201123_terminate)

备注:terminate在实际开发中用不到,因为程序在板子上都是循环跑的,不会终止,这里主要是仿真时间选择了有限值。

截取主要的代码看一下,是不是看起来很不舒服?这是因为设置没有进行优化,生成的代码都是按照simulink内部默认方式进行变量命名和算法转写,不是我们熟悉的C语言表示方法。

simulink快捷键_从EPB模型谈谈Simulink代码生成相关推荐

  1. simulink怎么生成vxworks的执行程序_从EPB模型谈谈Simulink代码生成

    前段时间有读者朋友问代码生成的例子,说他正在做EPB的仿真模型,但总是和应用串不到一块去,我这里就从一个简单EPB控制模型来谈谈simulink代码生成,总结代码生成方法的同时也顺便回答他的问题. 1 ...

  2. Matlab/Simulink快捷键

    Matlab/Simulink快捷键 Simulink快捷键 模型调整 Alt + Enter:为选定模块设置主要参数 Ctrl + Shift + I:打开或隐藏 Property Inspecto ...

  3. 如何建立分类模型matlab,创建简单模型 - MATLAB Simulink - MathWorks 中国

    创建简单模型 您可以使用 Simulink® 来对系统建模,然后仿真该系统的动态行为.本教程中创建简单模型所使用的基本方法也适用于创建更复杂的模型.此示例对简化的汽车运动进行仿真.当踩下油门踏板时,汽 ...

  4. 第一讲 Matlab/Simulink入门——简单系统模型的Simulink仿真

    第一讲 Matlab/Simulink入门--简单系统模型的Simulink仿真 1.模型的数学表达式 2.建立系统模型 2.1.选择模块 2.2.参数设置 3.系统仿真 1.模型的数学表达式 y = ...

  5. Simulink建模:一阶滤波模型

    本文研究一阶滤波算法的Simulink模型及其代码生成. 文章目录 1 一阶滤波算法 2 Simulink建模 2.1 对公式的理解 2.2 建模过程 2.3 模型配置 3 模型更新及代码生成 3.1 ...

  6. 锂电池Simulink建模二阶戴维南模型二阶RC模型

    锂电池Simulink建模二阶戴维南模型二阶RC模型 基于Simscape物理元件库搭建的二阶RC模型,相比数学公式搭建的模型更简单,更易理解. 配有简单的说明文档id=659684251422&am ...

  7. MATLAB/Simulink搭建电动助力转向模型

    MATLAB/Simulink搭建电动助力转向模型,EPS模型,包括PID控制算法,传递函数回正控制,有完整的模型公式搭建过程,可直接仿真出图像,参数自己数据齐全,建模过程详细! 电动助力转向系统控制 ...

  8. 光伏发电并网模型MATLAB SIMULINK Boost+三相逆变器 PLL锁相环 MPPT最大功率点跟踪控制(扰动观察法)

    光伏发电并网模型MATLAB SIMULINK Boost+三相逆变器 PLL锁相环 MPPT最大功率点跟踪控制(扰动观察法) dq解耦控制 电流内环电压外环的并网控制策略 ID:7324687883 ...

  9. 有源电力滤波器(APF)模型 Matlab/simulink

    有源电力滤波器(APF)模型 Matlab/simulink 可用于治理不控整流和不平衡负载带来的电能质量问题:仿真总时长0.3s,0.1s时接入APF, 0.1-0.2s治理不控整流带来的谐波电流, ...

最新文章

  1. 2022.3.25黄花酢浆草
  2. 初识MQ--mq常见技术介绍
  3. ORACLE常用数值函数、转换函数、字符串函数介绍
  4. 泛化,过拟合,欠拟合素材(part1)--python机器学习基础教程
  5. 用python把unix格式转换成windows格式
  6. 1.不同角度的性能测试
  7. windwos::mutex
  8. 8乘8led点阵显示数字_光立方8乘8乘8立体点阵
  9. maxwell理论知识
  10. appfuse mysql_Appfuse中文教程
  11. 资深影迷不可不知的宽高比:Aspect Ratio 电影画面比例
  12. Python3爬取搜狗微信公众号
  13. 笔记本电脑+USB接口GPS+WM6模拟器+PPC版城际通
  14. 2022年后人工智能八大应用方向
  15. php读取月日,PHP获取当前时间、年份、月份、日期和天数
  16. 芯片,建立在沙粒上的帝国!
  17. 修改微信扫码登录,二维码样式
  18. matlab函数 无限冲激响应滤波器,MATLAB代码 有限冲激响应(FIR)滤波器和无限冲激响应(IIR)滤波器...
  19. 清华刘知远提出CPT:基于预训练视觉-语言模型的跨模态Prompt-Tuning
  20. 载体坐标系-惯性坐标系-世界坐标系

热门文章

  1. c语言 prototype_(创建型模式)Prototype——原型模式
  2. 怎么解决 数据丢失的问题_硬盘数据丢失怎么恢复
  3. 铁甲雄兵显示服务器维护,《铁甲雄兵》5月17日09:00停机维护公告
  4. curl php 禁用ip6,CentOS 6禁用IPv6解决curl Couldn’t resolve host或dns解析慢
  5. 不用U盘安卓Linux系统,不用U盘,不要光驱,不需分区,windows下安装noilinux双系统...
  6. vdbench的作用_vdbench和fio测试磁盘性能的对比总结
  7. elementui 菜单标题_elementUI 动态渲染三级菜单
  8. android广播代码汇总二__有序广播
  9. android studio卡顿解决办法
  10. c语言多线程的建立视频,如何用C语言实现多线程