MBD_入门篇_14_Simulink常用模块

本文详细介绍了Simulink中的各种常用模块,如Inport/Outport、Constant、DataTypeConversion、Gain、Scope、Bus相关模块、延迟、子系统和Switch等,以及它们的功能、参数设置和数据类型管理,为Simulink用户提供了全面的模块使用指南。

前言

作者介绍

阿隆,深耕汽车控制器应用层开发多年,经历多家企业项目(包含多家中外头部企业),拥有多款控制器量产经验。主要技能包括应用层模型开发和c/c++代码编写,mil/sil测试,工具链开发,静态检查,BSW配置和手写,上位机开发等。

加V联系我:ALongAutom

使用介绍

MBD课程是阿隆从业多年后,在2022年的时候从0开始一点点录制的视频,一点点码字码出来的课程,现在分享给大家用来学习,如果对正在观看的你有帮助,可以帮忙推荐给身边的朋友,一起学习,也可以免费加入阿隆的技术交流群进行交流学习。

课程使用平台Matlab 2021b,建议初学者尽量使用同版本,避免出现版本差异带来的问题。等熟练掌握课程以后,再升级平台,出现版本差异的问题也知道该如何解决。

全网同名阿隆汽车,可以在其他平台搜索阿隆汽车找到阿隆,感谢观看。

入门篇视频是在Bilibili进行免费观看,链接如下:

阿隆MBD入门篇_合集_01_哔哩哔哩_bilibili

阿隆MBD入门篇_合集_02_哔哩哔哩_bilibili

实战篇01视频可以在Bilibili进行免费观看,链接如下:

阿隆MBD实战篇_01_VCU扭矩查表模块与CANoe联合仿真_哔哩哔哩_bilibili

提高篇视频观看链接

along-auto.com

14.Simulink常用模块

14.1.输入输出模块

输入模块Inport,输出模块Outport。

14.2 常量模块Constant

Constant Value最重要的参数,设置常量的值。

设置数据类型,跟其他模块一样。继承默认Constant的规则和反向继承数据类型。

通过设置Value的类型来指定模块的数据类型。

反向继承后面模块的数据类型。

Matlab默认数据类型是Double,如果我们没有进行设置数据类型,没有办法正向或者反向继承的时候,Matlab会使用默认的Double类型。

14.3 数据类型转换模块Data Type Conversion

设置数据类型,反向继承是用的比较多的方式。后面的模块有明确的数据类型的时候,都可以反向继承过来。

物理值相同还是存储值相等。模型里用的话大部分时候都是物理值,只有在与底层接口的时候会遇到存储值相等情况。

14.4 增益模块Gain

增益模块的增益值设置。

乘法方式,可以选择点乘,左乘和右乘等。我们默认选择点乘就可以,最简单的。

设置输出的数据类型,比较常用的是Same as input 和 反向继承。注意数据类型的范围,防止计算溢出。

设置取整方式。比如2.4 * 2的值,在不同的取整方式下等于多少。比较常用的是Floor,Celling,Nearest。

Celling

向上取整

5

Convergent

收敛

5

Floor

向下取整,c语言取整方式一致

4

Nearest

最接近的值,四舍五入

5

Round

5

Simplest

向下取整,c语言取整方式一致

4

Zero

4

参数的数据类型设置,也就是图中2这个值的数据类型。比如说设置uint8(2),明确指定数据类型。或者用参数去设置,参数定义为Gain_K = uint16(100)。

14.5 示波器Scope

不能生成代码,帮助调试。生成代码的时候可以移除掉。

进行设置,输入数量等。

14.6 总线组合和拆分Bus Creator和Bus Selector

Bus Creator,将多个信号组合成为一个Bus。

组合Bus的时候,信号线的名字会自动设置为Bus元素的名字。养成好习惯,在BusCreator前面的信号线上命名,同一层级最好名字不一致。

Bus Selector,选择Bus单个或者多个元素的模块。

默认是虚拟Bus,生成代码的时候不会生成总线变量,还是按照单个变量生成代码。非虚拟Bus需要提前定义Bus类型。

非虚拟Bus需要提前创建类型。

14.7 组合模块和拆分模块Mux和Demux

组合成数组的时候可以用到,使用方法和Bus类型相同。只不过生成的是实际的数组信号

创建的数量和拆分数量不一致。

14.8 延时模块delay

延时周期设置,1代表延时一个周期,模块Z负一次方。设置10就是延时10个周期,也就是取出10个周期前的数据。

可以选择length的来源,对话框就是直接在对话框里输入的数值。

Input port会增加一个输入接口。

初始值设置,注意一下初始值的设置最好将数据类型包含在里面。比如boolean类型的我们可以写false,uint8类型的我们可以写uint8(0),枚举类型就可以写具体的枚举值在里面。

Source的设置跟上面length的Source一样的。

将要延时的模块的初始值作为延时模块的初始值。

使能控制和复位设置。

打开使能设置,Enable的时候正常的进行延时,Disable的时候,保持延时的最后一个有效值

Reset在delay作为某个函数运行的时候,新来的信号处理的时候,如果不进行Reset,那将会用上一个信号的最后一个值作为初始值,在这种情况下会多一个无效值,使我们运算有可能会出错

14.9 接地模块Ground

在不确定输入的时候,可以用接地模块来连接。

14.10 终止模块Terminator

用Terminator模块接逻辑的输出,就终止在Terminator这里,不会再往后面传递。比如说某些算法不需要了,但是又不想删除,防止以后再使用的时候还得重新搭,那我们可以先用Terminator模块暂时终止。

14.11 逻辑操作模块LogicalOperator

默认打开是与操作。

修改逻辑运算。AND是与,OR是或,NOT非。

设置输入数量

输出数据类型设置,推荐保持默认的boolean类型。

14.12 乘法模块Product

设置输入个数。

乘法方式选择,默认点乘,数值运算的时候选择此项即可。矩阵的乘法在矩阵的操作时才会用到。

设置数据类型,取整方式。

14.13 比较模块Relational Operator

设置比较的运算方式

14.14 限幅模块Saturation

上限值和下限值设置。

设置输出数据类型和取整方式。

14.15 子系统Subsystem

使用子系统来进行模块化设计。将一整块的逻辑放在一起进行封装。高内聚,低耦合的设计原则。

用Ctrl+G快捷键进行子系统打包。

14.16 开关模块Switch

相当于c语言的if。满足第2个port的输入条件,把第1个Port的值作为输出,不满足的话,把第3个Port的值作为输出。注意一下,两个输入的数据最好是一致的,避免非预期的错误。

判断方式选择,推荐选择~=0,条件为真的时候,输出第一个输入,条件为假的时候,输出第三个输入。

<think>好的,用户的问题是关于如何在Simulink中添加或使用名为'MBD_EF_LIB'的库或模块。首先,我需要回忆一下Simulink的基本操作,尤其是添加库或模块的步骤。根据用户提供的引用内容,特别是引用[1]提到在库浏览器中找到模块并拖拽添加,或者右键快捷菜单添加。这可能适用于标准库,但用户提到的'MBD_EF_LIB'可能是自定义库,所以需要不同的方法。 接下来,我需要考虑用户可能的场景。用户可能是一个刚开始使用Simulink的工程师,或者在进行模型基于设计(MBD)时需要特定的库。MBD_EF_LIB可能包含一些特定模块,用于嵌入式系统或代码生成,比如引用[2]和[3]提到的代码生成和数学运算模块。用户可能已经安装了这个库,但不知道如何添加,或者需要从外部获取。 可能的步骤包括检查库是否已经安装,如果没有,需要先下载或安装。然后,在Simulink库浏览器中添加路径,或者使用命令行加载。同时,可能需要配置编译器,如引用[2]提到的,但这个问题更偏向添加库,可能不需要编译器配置。另外,引用[3]提到自定义模块的组合,所以如果MBD_EF_LIB是自定义的,可能需要手动添加路径。 需要验证用户是否已经将库文件放在正确的路径下,或者是否需要通过Add-Ons安装。如果用户没有安装,可能需要指导他们获取库文件,并添加到MATLAB路径。此外,可能涉及在库浏览器中刷新或重新扫描目录,以便显示新添加的库。 还要考虑可能的错误情况,比如路径不正确,库文件损坏,或者版本不兼容。需要提醒用户检查这些方面,并提供相应的解决方案,如更新MATLAB版本或联系库的提供者。 最后,生成相关问题需要考虑用户可能的后续需求,比如如何验证库是否正确加载,如何解决常见错误,或者如何创建自定义模块库。这样可以帮助用户更全面地理解和解决问题。</think>在Simulink中添加或配置MBD_EF_LIB库的操作步骤如下: 1. **手动加载自定义库** - 在MATLAB命令窗口输入`open_system('MBD_EF_LIB')`直接打开库 - 若库文件不在当前路径,需先添加文件路径: ```matlab addpath('完整路径/MBD_EF_LIB'); savepath; % 永久保存路径 ``` 2. **通过库浏览器访问** - 点击Simulink工具栏的"Library Browser"图标 - 在库浏览器左侧导航栏中展开"Custom Libraries"分类 - 找到MBD_EF_LIB后右键选择"Lock library to prevent edits"[^1] 3. **模块使用方法** - 拖拽所需模块到模型画布 - 双击模块进行参数配置,注意标有"*"的参数影响代码生成[^2] - 对于运算模块需检查数据类型一致性[^3] 4. **代码生成配置(可选)** ```matlab % 在模型初始化回调函数中设置 set_param(gcs, 'CodeGenLibrary', 'MBD_EF_LIB'); ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值