MBD_入门篇_15_Simulink不连续模块组

4 非线性模块库(一) 阅读详情
AI摘要

本文详细介绍了Simulink中不连续模块组,包括限幅模块(SaturationDynamic)的动态调整、死区模块(DeadZoneDynamic)的动态设定,以及迟滞模块(Relay)在故障判断中的应用,展示了这些模块在信号处理中的关键作用。,

前言

作者介绍

阿隆,深耕汽车控制器应用层开发多年,经历多家企业项目(包含多家中外头部企业),拥有多款控制器量产经验。主要技能包括应用层模型开发和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

15.Simulink不连续模块组

15.1 概述

Discontinuities,不连续模块组。里面有几个Simulink提供的模块,限幅模块、死区模块等。

15.2 限幅模块Saturation

常用模块已经讲过。

15.3 动态的限幅模块SaturationDynamic

多了两个输入,动态调整上下限值。

推荐使用默认的数据类型输出设置,即保持与第二输入一样。

15.4 死区模块DeadZone

设置死区模块的上下限。

设置死区从-0.5到0.5.

输出结果波形,-0.5到0.5的值直接输出为0,这范围之外的值取差值。

15.5 动态死区模块DeadZoneDynamic

只有3个输入,没有参数设置。

加一个动态的上限输入。0.5与0.7跳变的PWM信号作为上限输入。

最终的输出波形。

15.6 迟滞模块Relay

设置迟滞区间,大于上限值的时候输出1,小于下限值的时候输出0,其他的时候输出之前时刻的有效值。多用于故障条件判断防止来回跳变的时候。

MBD实战指南:Simulink不连续模块组在汽车控制中的关键应用 本文深入探讨了Simulink不连续模块组在汽车控制中的关键应用,包括限幅模块、死区模块等核心组件。通过实际案例展示了这些模块如何有效解决信号跳变、传感器噪声等工程难题,提升系统响应速度和可靠性。文章还提供了参数调优的黄金法则和工程化应用注意事项,为MBD开发人员提供实用指导。 阅读详情

相关推荐

别再只用Saturation了!Simulink不连续模块组的隐藏玩法:Relay做故障锁存,Dynamic版实现灵活限幅

本文深入探讨了Simulink不连续模块组在工程实践中的高级应用,包括Relay模块的故障锁存设计和Dynamic版限幅模块的灵活应用。通过汽车电控领域的实战案例,揭示了这些模块在MBD开发中的隐藏价值,帮助工程师提升系统鲁棒性和控制精度。

weixin_33719619的博客 393

Hystersis 模块:Simulink 模块生成迟滞回线-matlab开发

模型文件包含一个用于生成滞后环的 simulink 模块。 使用步骤。 1.加载mat文件中包含的示例数据。(双击或使用load命令) 2.通过命令编译S-Function文件: mex Hyst_Lp.c myMethods.c 模型文件需要生成的dll文件。 3. 运行模型文件。 通过更改块参数输入屏幕的变量名称来使用您自己的数据。

Simulink不连续模块组保姆级教程:从Saturation到Relay,手把手教你搞定汽车控制模型

本文详细介绍了Simulink不连续模块组在汽车控制模型中的实战应用,包括限幅模块(Saturation)、死区模块(DeadZone)和迟滞模块(Relay)的核心功能与参数优化。通过具体案例和代码示例,帮助工程师掌握如何利用这些模块处理非线性信号,提升汽车电子控制系统的稳定性和可靠性。

weixin_30555515的博客 159

Matlab simulink建模与仿真 第四章(非线性模块库)

所有的摩擦力可以划分为两大类——库仑摩擦和粘滞摩擦,前者与运动速度无关(当然,静止与非静止还是需要关注的),后者与运动速度成正比关系。

Zevalin的博客 5860

Simulink实战进阶:从建模避坑到MBD全流程开发指南

模型驱动开发(MBD)作为一种高效的工程方法,通过将系统模型作为开发核心,贯穿了从设计、仿真到代码生成的全过程。其核心原理在于利用可视化建模工具进行算法设计,并通过仿真验证功能逻辑,最终自动生成高质量的产品级代码,从而显著提升开发效率与系统可靠性。在汽车电子、航空航天等复杂系统开发领域,MBD的价值尤为突出,它能有效管理复杂度,并确保从模型到产品的一致性。本文聚焦于工业界广泛使用的Simulink平台,深入探讨如何在实际工程中构建健壮的模型架构,优化仿真配置以平衡速度与精度,并高效地完成从模型到嵌入式代码的

weixin_30568591的博客 396

【MBD实战】Simulink枚举:从模型可读性到代码生成的优雅实践

本文深入探讨了Simulink枚举在MBD开发中的关键作用与实践技巧。通过将数字信号转换为语义化枚举值,显著提升模型可读性、调试效率和代码可维护性。文章详细介绍了枚举创建、Stateflow集成、代码生成优化等实战方法,并分享大型项目中的避坑指南与性能优化策略,帮助工程师实现从建模到代码的优雅转换。

weixin_30897233的博客 593

simulink种deadzone死区模块的理解和使用,使用simulink开发pid的时候经常添加deadzone(重要)

使用simulink开发pid的时候经常添加deadzone,这样不就把error差值限制在deadzone的上下限范围内了吗?,就不是真实的系统输入的差值error了吗?搭建两个仿真看下,尤其是当幅值设置为5的时候最明显能看出来效果,确实是好用的,其实本质是整个数据同步减去了deadzone设置的上下限值。Dead Zone模块产生指定范围(称为截止区)内的零输出。使用deadzone是为了保证连续性,使用在误差值里面的话不影响。3、输入小于等于下限值,输出下限值。2、输入大于上限值,输出上限值。

pvmsmfchcs的博客 2442

MBD_实战指南_Simulink核心模块高效应用

本文深入探讨了Simulink核心模块在MBD(基于模型的设计)中的高效应用,特别是在汽车电子控制单元(ECU)开发中的实战技巧。通过扭矩控制等实际案例,详细解析了Gain、Saturation、Switch和Delay等常用模块的配置优化、防溢出设计及代码生成策略,帮助工程师提升系统可靠性和开发效率。

weixin_30600197的博客 172

MBD_入门篇_19_Simulink数学运算模块

atan2函数跟atan的区别是,atan2输入是两个值,atan输入是一个值,atan2可以输入象限的信息,但是atan是没有办法的。针对输入的每个元素的乘法运算。signedSqrt的输入值的符号对输出结果是有影响的,输入是什么符号,输出就是什么符号,根号是对输出的绝对值进行运算。数学函数模块,包含了一些常用的数学函数,比如exp,log,10^u,ln,square,pow,rem,mod等。波形显示如下,选择数量跟最终的波形有关系,数量越大,越接近原始的值,数量越小,精度损失会比较大。

ALongAuto的博客 3万+

从“能用”到“好用”:Simulink Project的5个隐藏技巧,让你的MBD开发效率翻倍

本文揭示了Simulink Project在MBD开发中的5个隐藏技巧,帮助工程师从基础使用进阶到高效应用。通过依存关系分析器、快捷方式与标签系统、Git集成配置、自定义任务和项目引用等技巧,大幅提升开发效率,特别适合处理复杂模型和大型团队协作场景。

weixin_30407613的博客 366

Simulink R2015b工程化转型:从仿真工具到MBD平台的关键升级

基于模型的设计(MBD)是一种将数学模型作为系统开发核心的工程方法,其原理是通过形式化的模型来描述系统行为、验证设计并自动生成代码。这一方法的技术价值在于提升复杂系统开发的效率、可靠性和团队协作能力,广泛应用于汽车、航空航天、能源等领域的控制系统设计与仿真。在工程实践中,数据管理与模块化架构是实现MBD的关键基础设施。Simulink R2015b版本针对这些核心需求进行了重要增强,例如通过强化数据字典实现参数的集中管理与版本控制,解决了传统脚本管理方式中常见的可追溯性差与协作困难问题;同时,其改进的模型引

weixin_30823001的博客 428

MBD_入门篇_17_Simulink逻辑和位运算模块

比如说8bit的数据,位数就是从0到7,最低位是0,最高位是7.16bit的数据,位数就是从0到15,最低位是0,最高位是15。向左移2位,相当于乘以2的2次方。和上面CompareToZero模块唯一的不同就是,这个模块比较的值可以设定,通过参数设定。不包含边界值的时候,模块图标也会变化,3.5不在(0.5, 3.5)之内,输出为false。用输入值和零作比较的模块,运算方式跟比较运算一样,可以选择大于,小于,等于等等。用输入值和常量作比较,运算方式跟比较运算一样,可以选择大于,小于,等于等等。

ALongAuto的博客 5511

别再死记硬背了!用这10个Simulink核心模块,带你玩转汽车控制器MBD建模(2021b版保姆级指南)

本文详细介绍了10个Simulink核心模块在汽车控制器MBD建模中的高效应用,涵盖从信号转换到控制算法的关键场景。通过2021b版本的实用技巧和实战案例,帮助工程师摆脱死记硬背,掌握模块组合逻辑,提升建模效率与代码生成质量,特别适合VCU、ADAS等汽车电子系统开发。

weixin_30614109的博客 341

【FOC-MBD】(15)Simulink 模型开发之三相互补 PWM

本文基于STM32G431硬件平台,通过Simulink模型开发实现三相互补PWM输出。主要内容包括:1)使用CubeMX配置TIM1定时器,生成三路PWM及其互补信号,硬件自动插入死区时间;2)在Simulink中构建控制模型,实现10kHz频率、50%占空比的PWM波形;3)详细介绍了时钟配置、死区时间计算等关键技术要点。

youcans的博客 1503

告别手写代码:用Matlab/Simulink MBD方式开发电动汽车VCU的完整实战

本文详细介绍了如何通过Matlab/Simulink的MBD(模型驱动开发)方法开发电动汽车VCU(整车控制器),替代传统手写代码方式。文章从MBD的核心优势、开发环境配置、模型分层架构设计到常见问题解决方案,全面解析了MBD在VCU开发中的应用实践,帮助工程师提升开发效率和软件质量。

weixin_30352645的博客 426

Simulink仿真模块 - Saturation Dynamic

Saturation Dynamic模块的功能是将输入信号限制在动态饱和上限和下限值之间,即当输入信号值在上限up与下限lo之间,则输出u;当u大于上限up则输出up;小于下限lo则输出lo。上面的波形为输出,下面的波形为输入,可以看出,输出波形都是被限制在了[-1,1]之间。

jk_101的博客 1327

Simulink建模基础:CAN Pack模块及其代码

本文研究Assignment模块的用法和该模块生成的代码,同时会涉及到一些DBC文件的内容。 文章目录1 Simulink中的CAN Pack模块2 CAN Pack模块的建模与仿真2.1 配置DBC文件2.2 CAN Pack模块仿真2.2.1 仿真12.2.2 仿真2:factor&offset属性2.2.3 仿真3:Value Type属性 1 Simulink中的CAN Pack模块 在汽车ECU软件开发中,一般是ASW软件将Signal打包成Message后,然后由BSW实现CAN的发送功

u013288925的博客 1万+

告别混乱代码!在Arduino IDE中管理多文件项目的5个必备技巧

本文分享了在Arduino IDE中管理多文件项目的5个必备技巧,帮助开发者告别混乱代码。通过代码分割和模块化设计,提升编译效率、降低内存占用,并实现功能解耦。重点介绍了头文件设计、CPP文件实现、调试技巧和工业级目录结构,让你的Arduino项目像乐高积木一样清晰易维护。

fun88的博客 359
上一篇: MBD_入门篇_14_Simulink常用模块
下一篇: MBD_入门篇_16_Simulink离散模块
阿隆汽车
博客等级 码龄3年 3129粉丝 33原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值