前言
作者介绍
阿隆,深耕汽车控制器应用层开发多年,经历多家企业项目(包含多家中外头部企业),拥有多款控制器量产经验。主要技能包括应用层模型开发和c/c++代码编写,mil/sil测试,工具链开发,静态检查,BSW配置和手写,上位机开发等。
加V联系我:ALongAutom
使用介绍
MBD课程是阿隆从业多年后,在2022年的时候从0开始一点点录制的视频,一点点码字码出来的课程,现在分享给大家用来学习,如果对正在观看的你有帮助,可以帮忙推荐给身边的朋友,一起学习,也可以免费加入阿隆的技术交流群进行交流学习。
课程使用平台Matlab 2021b,建议初学者尽量使用同版本,避免出现版本差异带来的问题。等熟练掌握课程以后,再升级平台,出现版本差异的问题也知道该如何解决。
全网同名阿隆汽车,可以在其他平台搜索阿隆汽车找到阿隆,感谢观看。
入门篇视频是在Bilibili进行免费观看,链接如下:
实战篇01视频可以在Bilibili进行免费观看,链接如下:
阿隆MBD实战篇_01_VCU扭矩查表模块与CANoe联合仿真_哔哩哔哩_bilibili
提高篇视频观看链接
16.Simulink离散模块
16.1 概述
Discrete,离散模块。主要讲一下与延时模块相关的,其他的一些也是比较高阶的数学模块,我们在后期如果有机会讲到高级算法的时候再来看,入门篇就暂时不讲那么高阶的东西了。

16.2 延时模块delay

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

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

设置外部输入延时周期的时候,注意限值。生成代码对内存的消耗也会比较大。

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

可以设置数据存储的算法,使用环形队列等。

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

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

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

使能控制和复位设置。

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

Reset在delay作为某个函数运行的时候,新来的信号处理的时候,如果不进行Reset,那将会用上一个信号的最后一个值作为初始值,在这种情况下会多一个无效值,使我们运算有可能会出错
16.3 带使能的延时模块EnabledDelay
基础的Delay模块勾选Enable设置。

16.4 延时模块Memory
与单元延时模块功能一样。

16.5 可复位的延时模块ResettableDelay
可复位的延时模块,在基础的延时模块上勾选外部输入默认值以及外部复位的设置。

16.6 延时向量TappedDelay
输出一个延时的数组,包含了多个延时值。

初始值的设置就不讲了。Sampletime推荐使用-1。要延时的个数设置,比如设置4,就是一个有4个元素的数组。

数据顺序还是倒序。

向量里包不包含当前输入。比如说当前时刻为0.05s,步长为0.01s,包含当前时刻的话,数据是0.05,0.04,0.03,0.02时刻的值。不包含当前时刻的话,数据是0.04,0.03,0.02,0.01时刻的值。

按照Oldest为开始。

按照Newest为开始。

包含当前的输入值。

16.7 单位延时UnitDelay

16.8 可变延时VariableIntegerDelay
基础延时模块,设置了Delay length的Source为Input port。

本文详细介绍了Simulink中的离散模块,重点讲解了延时模块(包括基本延时、带使能、记忆、可复位和延时向量等),以及可变延时VariableIntegerDelay的特点和设置。
3897

被折叠的 条评论
为什么被折叠?



