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

本文详细介绍了Simulink中用于逻辑运算、比较、位操作和检测变化的13个模块,包括逻辑运算、比较大小、与零/常量比较、跳变检测以及位域操作等,帮助用户理解和应用这些功能来设计复杂控制系统。
部署运行你感兴趣的模型镜像

前言

作者介绍

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

17.Simulink逻辑和位运算模块

17.1 概述

Logic And Bit Operation,逻辑和位运算操作模块。

17.2 逻辑运算模块LogicalOperator

可以对输入做与、或、非、异或等逻辑运算。

简单示例。

17.3 比较运算模块RelationOperation

比较两个数的大小等运算。

注意,Matlab的不等于用~=,c语言的不等于是用!=

17.4 与零比较模块CompareToZero

用输入值和零作比较的模块,运算方式跟比较运算一样,可以选择大于,小于,等于等等。

设置比较运算方式。

输出数据类型设置,推荐用boolean类型,跟比较模块一样。

17.5 与常量比较模块CompareToConstant

用输入值和常量作比较,运算方式跟比较运算一样,可以选择大于,小于,等于等等。

和上面CompareToZero模块唯一的不同就是,这个模块比较的值可以设定,通过参数设定。

17.6 检测跳变模块DetectChange

检测当前值与上一个周期的值是不是不一样,不一样的话输出true。

与延时模块一样,需要设置初始值。

输出数据类型建议用boolean。

17.7 检测减小模块DetectDecrease

检测当前值是不是比上一个周期的值小,小的话输出true。

17.8 检测增大模块DetectIncrease

检测当前值是不是比上一个周期的值大,大的话输出true。

17.9 检测跌落为负数模块DetectFallNegative

上一个时刻为非负数,这个时刻为负数的时候,输出为true

17.10 检测跌落为非正数模块DetectFallNonpositive

上一个时刻为正数,这个时刻为非正数的时候,输出为true

17.11 检测上升为非负数模块DetectRiseNonnegative

上一个时刻为负数,这个时刻为非负数的时候,输出为true

17.12 检测上升为正数模块DetectRisePostive

上一个时刻为非正数,这个时刻为正数的时候,输出为true

17.13 清除位操作模块BitClear

清除对应的模块参数设置里的Index值,最低位是0开始,不是1。比如说8bit的数据,位数就是从0到7,最低位是0,最高位是7.16bit的数据,位数就是从0到15,最低位是0,最高位是15。

清除第7bit后的输出。

17.14 置位操作模块BitSet

将Index值的那一位设置为1。

置位第0bit的输出。

17.15 位域运算模块BitwiseOperator

可以进行位与运算,位或运算等。

位操作选择,与,或,非,异或等。

选择使用mask的话,我们就要在下面设置mask的值,输入的数量就会直接限制为1。

使用mask进行位与运算。

多个输入进行位与运算。

多个输入进行位或运算。

位非运算和多个输入进行位异或运算。

17.16 移位操作模块ShiftArithmetic

进行移位操作。

设置移位的方向,Number是位数。

移位运算,向左移2位,输出结果。

向左移2位,相当于乘以2的2次方。向右移3位,相当于乘以2的-3次方。模型中的乘法运算如果是2的n次方运算,生成代码可以优化为移位运算,增加运行效率。

方向选择Bidirectional时的设置,Number可以设置为负数。

17.17 区间测试模块IntervalTest

在区间内输出true,区间外输出false。设置区间的上下限值,比如这里设置的0.5到3.5的区间。

开闭区间的设置,也就是说包不包含上下边界值的设置选项。

勾选边界值的情况下,4不在区间[0.5, 3.5]之内,输出false。3.5边界值是包含在区间之内的,输出true。

不包含边界值的时候,模块图标也会变化,3.5不在(0.5, 3.5)之内,输出为false。

17.18 动态区间测试模块IntervalTestDynamic

与区间测试模块功能一样,上下限值通过输入动态设置。左右边界值是否被包含也可以进行设置。

开闭区间一起测试的输出。

您可能感兴趣的与本文相关的镜像

Seed-Coder-8B-Base

Seed-Coder-8B-Base

文本生成
Seed-Coder

Seed-Coder是一个功能强大、透明、参数高效的 8B 级开源代码模型系列,包括基础变体、指导变体和推理变体,由字节团队开源

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值