本文描述Switch模块的建模并研究生成的代码。

文章目录

  • 1 Simulink中的Switch模块
  • 2 Switch模块建模及代码生成
  • 3 Switch模块其他用法
    • 3.1 多重Switch
    • 3.2 通过标定量Switch
  • 4 总结

1 Simulink中的Switch模块

在Simulink中Switch模块时非常常见的,通常用于根据一定地条件选择信号进行输出,类似于C语言中的if-else语句。

Switch模块如下:

左侧有三个信号输入端口,其中中间的那个是条件端口。如果条件为真,则输出上路信号,反之则输出下路。

另外还有个MultiSwitch模块,其效果类似,只是能够切换多种输入。

本文就以Switch模块为例研究用法。

2 Switch模块建模及代码生成

本文就以Switch模块进行一个简单的建模。例如,CAN信号传来车速,车速低于30kph时判断车辆为低速,否则为高速。

1)首先拖出一个Switch模块,双击进入属性,将判断条件改成u2 ~ = 0;

这一步操作是遵循《MAAB规范》主工的 jc_0141: Use of the Switch block。该规范要求第二个端口(条件)必须是该信号不等于0,不能是大于或小于0。

2)然后把判断条件建模为车速小于30kph,Port1为LowSpeed的宏定义,Port3为HighSpeed的宏定义,如下:

模型比较容易理解,即VehSpd小于30时,输出LowSpeed,否则输出HighSpeed。

3)配置Embedded Coder并生成代码如下:

生成的代码用了一段if-else语句,其中if中的条件就是判断车速大小。

3 Switch模块其他用法

3.1 多重Switch

在Switch模块的port3可以接入其他Switch模块的输出,形成一连串Switch,例如下图:

车速小于30,对应LowSpeed;车速介于30~60,对应MiddleSpeed;否则车速大于60,对应HighSpeed;

生成代码如下:

3.2 通过标定量Switch

汽车实车测试的时候,经常通过标定量切换信号来调试。假设ADAS软件通过当前道路环境,在一系列复杂算法后得出应该向发动机请求一个扭矩(即图中的TorqueRequest)。当SwitchFlag标定为1时,将软件算出的请求值发给Engine,然后发动机进行响应。如果将SwitchTorque标定为一个工程师想要的一个自定义的数值,再将SwitchFlag标定为0,就可以发出自定义的一个扭矩请求,从而不依赖算法去调试车辆的性能。

4 总结

在Simulink中Switch模块比较简单也比较常用,需要掌握好它的用法。

>>返回个人博客总目录

Simulink代码生成: Switch模块及其代码相关推荐

  1. Simulink代码生成: 延时模块及其代码

    Simulink代码生成: 延时模块及其代码_u013288925的博客-CSDN博客_simulink延时模块

  2. Simulink代码生成:CAN Pack模块及其代码

    本文研究CAN Pack模块的用法和该模块生成的代码.涉及到一些dbc文件查看和编辑的内容,需要从Vector官网下载一个CANdb++ Editor软件. 文章目录 1 Simulink中的CAN ...

  3. Simulink代码生成: MinMax模块及其代码

    本文研究MinMax模块的用法和该模块生成的代码,同时指出该模块使用时的一个注意点. 文章目录 1 Simulink中的MinMax模块 2 MinMax模块建模 3 MinMax模块的代码 4 Mi ...

  4. Simulink代码生成: Relay模块及其代码

    本文研究Relay模块的用法和该模块生成的代码. 文章目录 1 Simulink中的Relay模块 2 Relay模块建模 3 Relay模块的代码 4 总结 1 Simulink中的Relay模块 ...

  5. Simulink代码生成: Assignment模块及其代码

    本文研究Assignment模块的用法和该模块生成的代码. 文章目录 1 Simulink中的Assignment模块 2 Assignment模块的模型和参数 3 Assignment模块的代码 4 ...

  6. matlab 方波_MATLAB之Simulink(二)利用switch模块将正弦信号变为方波信号

    ##MATLAB之Simulink(二) ##利用switch模块将正弦信号变为方波信号 今天给大家展示一个simulink电路仿真,将正弦信号转化为方波信号. 下面开始教程: 1.首先直接在MATL ...

  7. matlab simulink_MATLAB之Simulink(二)利用switch模块将正弦信号变为方波信号

    ##MATLAB之Simulink(二) ##利用switch模块将正弦信号变为方波信号 今天给大家展示一个simulink电路仿真,将正弦信号转化为方波信号. 下面开始教程: 1.首先直接在MATL ...

  8. Simulink代码生成(二十二)——TSP开发之创建外部设备模块

    Simulink代码生成(二十二)--TSP开发之创建外部设备模块 文章目录 Simulink代码生成(二十二)--TSP开发之创建外部设备模块 一.C Mex Sfunction文件解读 一.C M ...

  9. matlab simulink笔记04——switch模块

    Switch 模块 Switch模块是-.个选择开关模块,可根据判断条件选择多个输入端口中的某个进行输出.图所示为CommonlyUsedBlocks中具有3个输入端口.1个输出端口的Switch模块 ...

  10. Simulink代码生成(三)——rtw文件(代码生成的中间产物)

    Simulink代码生成(三)--rtw文件(代码生成的中间产物) 文章目录 Simulink代码生成(三)--rtw文件(代码生成的中间产物) 一.代码生成过程 二.model.rtw文件解读 一. ...

最新文章

  1. 5G 标准的走向,为何越来越不同寻常?
  2. 用Jsp来实现文件下载功能的几种方式
  3. 快速生成树算法java_生成树RSTP,快速生成树协议,交换网络必用的破环协议,面试必备...
  4. CV之NS:图像风格迁移(Neural Style 图像风格变换)算法简介、过程思路、关键步骤配图、案例应用之详细攻略
  5. 介绍一个能开发简单SAP UI5应用的在线IDE:StackBlitz
  6. dw如何制作图片自动切换效果_什么是3D虚拟展厅,虚拟展厅如何在线3D漫游!
  7. php设计模式课程---9、桥接模式是什么
  8. 比特币锚定币总锁仓量触及38亿美元 创历史新高
  9. 爷青结是什么意思,爷青回是什么意思,爷青结和爷青回是什么梗
  10. 新人开车——访问控制
  11. 达芬奇17(DaVinci Resolve Studio 17)兼容big surv17.0b9最新版
  12. 基于arduino uno + WS2812b RGB灯带单一颜色跑马灯控制程序
  13. 照片视频制作软件哪个好?自动生成酷炫效果,3步快速搞定!
  14. matlab投资组合权重,马科维茨投资组合理论(均方模型)学习笔记――基于Matlab(四)...
  15. 零点起飞学java web_零点起飞学Java Web开发 (徐林林) 高清PDF扫描版 114M
  16. 西安交大计算机814大纲,西安交大考研辅导班:西安交通大学2020年809电子技术基础考研科目参考书目及考试大纲...
  17. Centos/Debian 占用CPU100%挖矿病毒清理
  18. BDL 百度研究院大数据实验室的吴海山,做一名数据科学家有怎样的体验,问我吧!
  19. macM1 出现 zsh: command not found: brew问题解决方案
  20. 跨国企业在中国 | 洲际新签15家特许经营模式酒店;爱马仕中国第26家卖店在厦门揭幕...

热门文章

  1. 17AHU排位赛3 C题 (LCS)
  2. 视频教程-java淘宝优惠券系统二-Java
  3. 常见的网络营销方式有哪些呢?
  4. Silverlight 动态加载XAP文件
  5. 利用Python批量把flv文件转换成mp4文件
  6. 无线网卡双机互联和双网卡共享上网
  7. 百度快照不更新是什么原因导致的
  8. mantis apache mysql_Nginx、Apache、PHP、Mantis上传文件和附件大小设置
  9. 两台计算机数据传输网线如何做,两台电脑连线传送数据(备份计算机资源)
  10. Android三级缓存机制工具类的实现