Simulink库模块作用及简单应用(一)

news2024/12/22 11:11:35

01--Data Store Memory模块

数据存储模块一般是和数据写入还有数据访问一同搭配使用的

可以从帮助文档看到该模型如下的关键使用信息:

Data Store Memory 模块定义并初始化一个命名的共享数据存储,即一个内存区域,供指定相同数据存储名称的 Data Store Read 和 Data Store Write 模块使用。

  • 如果 Data Store Memory 模块在顶层系统中,则模型中任意位置的 Data Store Read 和 Data Store Write 模块都可以访问该数据存储。

  • 如果 Data Store Memory 模块在子系统中,则位于同一子系统或模型层次结构中该子系统下面的任何子系统中的 Data Store Read 和 Data Store Write 模块都可以访问该数据存储

  • Data Store Read 或 Data Store Write 模块不能访问位于包含 Model 模块的模型中或引用模型中的 Data Store Memory 模块。

  • 不要在 For Each 子系统中包含 Data Store Memory 模块。

    下面举例说明上述标红部分:

    在最顶层且在同一层级,输出结果一致,数据可以访问

    数据存储在最顶层,数据写入在内层,输出结果一致,数据可以访问

    数据存储在内层,数据访问在外层报错,不可访问

    这就是问什么你会发现在工程中,很多需要进行存储的变量他的数据存储模块都是在模型的最外层。

    02--clock时钟模块

    时钟模块有用于连续系统的clock模块,和用于离散系统的Digital Clock模块

    Clock 模块在每个仿真时间步输出当前仿真时间。此模块对需要仿真时间的其他模块非常有用。在离散系统中需要当前时间时,请使用 Digital Clock 模块。

    Digital Clock 模块仅以指定的采样间隔输出仿真时间。在其他时间,此模块保留输出的上一个值。要控制此模块的精度,请使用模块对话框中的 Sample time 参数。

    时钟模块的采样时间是连续的但是按步长仿真显示时跟随求解器,而digital clock则在对话框直接设置,下例中求解器时间为0.1

    更改digital clock采样时间后

    03--Bitwise Operator位运算模块

    Bitwise Operator 模块执行您为一个或多个操作数指定的按位运算。与 Logical Operator 模块的逻辑运算不同的是,按位运算将操作数视为位向量,而不是单个值。Bitwise Operator 模块不支持移位运算。对于移位运算,请使用 Shift Arithmetic 模块。

    当去掉选项 Use Bit Mask时,需要有多个输出,输入值会先转化为二进制,然后按位进行运算,如下图为按位与

    按位或

    当将常数的数据类型有Uint8改为Uint16时,切换成逻辑非与时

    当逻辑设置为异或时(当输入相同输出0,输入不同输出1为异或)

    当勾选了Use bit mask时,只能有一个输入,对话框内有另外一个可以更改的输入进行逻辑运算

    04--Shift Arithmetic移位模块

    Shift Arithmetic 模块可以移动输入信号中的数位和/或二进制小数点。                   

  • 当不移位时数据的二进制

  • 当数据的二进制向左移2位时

  • 当数据的二进制向右移2位时

  • 也可以将移位放在外部接口

关于移位支持浮点数也支持定点数,更多详细内容参考Help文档

05--Extract Bits截取位模块

Extract Bits 模块允许您从输入信号的存储整数值中输出选择的连续位。使用 Bits to extract 参数定义选择输出位的方法。

  • 选择 Upper half 输出一半的输入位,其中包含最高有效位。

  • 选择 Lower half 输出一半的输入位,其中包含最低有效位。

  • 选择 Range starting with most significant bit 以输出一定数量的输入信号最高有效位。在 Number of bits 参数中指定要输出的最高有效位数。

  • 选择 Range ending with least significant bit 以输出一定数量的输入信号最低有效位。在 Number of bits 参数中指定要输出的最低有效位数。

  • 选择 Range of bits 以在 Bit indices 参数中指定要输出的输入信号的一系列连续位。您需要以 [start end] 格式指明范围,而输入位的索引将从 0(最低有效位)开始连续标记。

截取低8位

 

截取高8位

 

截取最高位的2位

 截取最低位的3位

 截取第4位到第10位,位的序号从0开始

06-- Detect检测的7个模块

1.Detect Increase模块

Detect Increase 模块确定输入信号是否严格大于上一个值。

  • 当输入信号大于上一个值时,输出为 true(等于 1)。

  • 当输入信号小于或等于上一个值时,输出为 false(等于 0)。

 

2.Detect Decrease 检测递减模块

The Detect Decrease block determines if an input is strictly less than its previous value.

3.Detect Change 检测不等模块

只要当前时刻值和上一时刻值不相等就置1

4.Detect Fall Negative 模块

当前时刻小于0且上一时刻不小于0

5.Detect Fall Nonpositive模块

当前时刻小于等于0且上一时刻不小于等于0

 

6. Detect Rise Nonnegative模块

当前时刻大于等于0且上一时刻不大于等于0

7. Detect Rise Positive模块

当前时刻大于0且上一时刻不大于0

07-- Bit Clear 和Bit Set模块

由最低位开始,把指定的位设置为0或者1

如下把最低为设置为0和1

也可以作用于向量(注意起始位都是0)

 08--数学函数和多项式模块

数学函数模块:

多项式模块:

相当于 5*x^5+4*x^4+3*x^3+X^2+2*x+2,上式中x=2,  即结果为:5*32+4*16+3*8+4+4+2= 258

09--Interval Test Dynamic区间检测模块

如果在设定的区间内,则结果为逻辑真,否则为假,与饱和模块比较类似,饱和模块是输出输入值或者输出上下限值

以下2个模块的区别为一个在外部设置范围一个在内部设置范围

10--饱和模块 Saturation Dynamic

饱和模块是输出输入值或者输出上下限值

11--Dead Zone Dynamic死区模块

The Dead Zone Dynamic block generates a region of zero output based on dynamic input signals that specify the upper and lower limit. The block output depends on the input u, and the values of the input signals up and lo.

如果输入值在死区设定的范围内,那么输出值为0,如果不在则输出由输入值减去对应范围限制

 

12--Merge合并模块 

Merge 模块可将多个输入合并为单个输出。输出值始终等于其驱动模块最近计算的输出。通过设置 Number of inputs 参数指定输入的数量。

请将 Merge 模块用于将在不同时间更新的输入信号交叉成一个合并信号,交叉值在合并信号中保留其各自的身份和时间。要将同时更新的信号合并成数组或矩阵信号,请使用 Concatenate 模块。

使用 Merge 模块时,请遵循以下原则:

  • 始终使用条件执行子系统来驱动 Merge 模块。

  • 确保在任何时间步都最多只有一个驱动条件执行子系统在执行中。

  • 确保所有输入信号具有相同的采样时间。

 如下,正弦波大于0部分显示1,小于0部分显示0

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2119485.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

客户端负载均衡Ribbon 小实例

文章目录 一,概述二,实现过程三,项目源码1. 源码放送:2. 部署方式 四,功能演示五,其他 一,概述 一般来说,提到负载均衡,大家一般很容易想到浏览器 -> NGINX -> 反…

Java 每日一刊(第一期):Java 的历史

文章目录 Java 的起源与诞生Java 的早期发展(1995-2000)Java 的转型与扩展(2000-2010)Oracle 时代的 Java(2010-至今)本期小知识 Java 的起源与诞生 Java 的历史可以追溯到 20 世纪 90 年代,由 …

【数据结构(初阶)】——二叉树

【数据结构】——二叉树 文章目录 【数据结构】——二叉树前言1. 树的概念及结构1.1 树的概念1.2 树的结构 2. 二叉树的概念及结构2.1 二叉树的概念2.2 二叉树的结构2.3 二叉树的性质 3. 二叉树顺序结构及概念3.1 二叉树的顺序结构3.2 堆的概念及结构3.3 堆的实现3.3.1 堆的基本…

【C++ Qt day9】

2、将day1做的登录界面升级优化【资源文件的添加】 3、 使用手动连接,将登录框中的取消按钮使用第2种方式的连接到自定义的槽函数中,在自定义的槽函数中调用关闭函数 将登录按钮使用qt4版本的连接到自定义的槽函数中,在槽函数中判断ui界面上…

黑马点评16——多级缓存-JVM进程缓存

文章目录 什么是多级缓存导入商品案例初识Caffeine实现进程缓存 什么是多级缓存 但是现在的nginx的压力太大了,所以nginx也要部署成集群 当然我们的redis、tomcat都可以部署成集群 导入商品案例 我们在docker中开启了一个mysql的数据库,里面配置了一个…

C和指针:高级指针话题

进一步探讨指向指针的指针 int i; int *pi; int **ppi; 这些声明在内存中创建了下列变量。如果它们是自动变量,无法猜测它们的初始值。 二级指针指向一级指针 ppiπ *ppi&i; ia; *pia; **ppia; 为什么要使用指针? 因为函数传参使用值传递不会…

[C#学习笔记]接口的特性与用法

视频地址&#xff1a;一期视频看透C#接口的全部特性及用法_哔哩哔哩_bilibili 强烈推荐学习C#和WPF的朋友关注此UP&#xff0c;知识点巨多&#xff0c;讲解透彻&#xff01; 一、总览 public interface IOverall {/// <summary>/// 最普通的方法/// </summary>v…

[数据集][目标检测]打电话检测数据集VOC+YOLO格式8985张1类别

数据集格式&#xff1a;Pascal VOC格式YOLO格式(不包含分割路径的txt文件&#xff0c;仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数)&#xff1a;8985 标注数量(xml文件个数)&#xff1a;8985 标注数量(txt文件个数)&#xff1a;8985 标注…

【C++】C++入门基础,详细介绍命名空间,缺省参数,函数重载,引用,内联函数等

目录 1. 命名空间 1.1 使用命名空间的目的 1.2 命名空间定义 1.3 命名空间使用 2. 缺省参数 2.1 缺省参数概念 2.2 缺省参数分类 2.3 实际案例 2.4 注意事项 3. 函数重载 3.1 函数重载概念 3.2 函数重载原理 4. 引用 4.1 引用的概念 4.2 引用的特性 4.3 使用…

JavaScript案例---求质数

n等于19&#xff0c;是质数 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" content"wid…

OpenAI Gymnasium, are there any libraries with algorithms supporting it?

题意&#xff1a;对于OpenAI Gym&#xff0c;是否有支持它的算法库&#xff1f; 问题背景&#xff1a; OpenAI has released a new library called Gymnasium which is supposed to replace the Gym library. There are many libraries with implamentations of RL algorithms…

机械学习—零基础学习日志(Python做数据分析02)

现在开始使用Python尝试做数据分析。具体参考的网址链接放在了文章末尾。 引言 我通过学习《利用Python进行数据分析》这本书来尝试使用Python做数据分析。书里让下载&#xff0c;anaconda&#xff0c;使用Jupyter来写代码&#xff0c;只是下载一个anaconda的确有点费时间&am…

RabbitMQ 04 集群,用于提高系统性能

01.背景 02.单个节点的MQ会持久化的记录什么数据 03.集群情况下的MQ会持久化的记录什么数据 04.集群中的队列 单个节点的队列&#xff1a; 集群的队列&#xff1a; 05. 两个原因&#xff1a; 这样做带来的好处&#xff1a; 05.集群的交换机 交换机的本质 交换机在集…

Unity TextMeshPro 设置竖排

默认竖排是这样的 但是我们要的竖排效果并不是这样我们要是竖排连续的根据文本限制来进行换行 第一步我们先设置文本的旋转Z轴为90如下图 然后我们给文本加一个Tag <rotate270> 如下图 但是这个效果还是不是我们想要的效果我们可以使用TexeMeshPro提供的一个选项EnableR…

97.游戏的启动与多开-共享内存多开检测

免责声明&#xff1a;内容仅供学习参考&#xff0c;请合法利用知识&#xff0c;禁止进行违法犯罪活动&#xff01; 内容参考于&#xff1a;易道云信息技术研究院 上一个内容&#xff1a;96.游戏的启动与多开-窗口多开检测与破解 以 96.游戏的启动与多开-窗口多开检测与破解 …

Word文档的读取(1)

读取一个班的答题卡 解决方法&#xff1a; 导入os模块后&#xff0c;将乔老师的文件夹路径 /Users/qiao/answerKey 赋值给变量allKeyPath。使用os.listdir()函数获取该路径下所有的答题卡名称列表&#xff0c;并赋值给变量allItems。最后使用for循环遍历所有答题卡&#xff0c…

【知识小妙招来喽!】文件防泄密措施有哪些?这6个有效方法防止企业员工泄密!

在信息高度发达的时代&#xff0c;企业数据的安全性和保密性成为了企业运营中不可忽视的重要环节。 一旦敏感文件被泄露&#xff0c;不仅可能导致商业机密被窃取&#xff0c;还可能给企业带来重大的经济损失和声誉损害。 因此&#xff0c;采取一系列有效的文件防泄密措施&…

spring security 中的异常

一、简介 Spring Security 中异常主要分为两大类: 1、AuthenticationException: 认证异常 2、AccessDeniedException: 授权异常 AuthenticationEntryPoint 该类用来统一处理 AuthenticationException 异常 AccessDeniedHandler 该类用来统一处理 AccessDeniedException 异常…

HarmonyOS笔记

HarmonyOS简介 HarmonyOS是新一代的智能终端操作系统&#xff0c;为不同设备的智能化、互联与协同提供了统一的语言&#xff0c;为用户带来简捷&#xff0c;流畅&#xff0c;连续&#xff0c;安全可靠的全场景交互体验。 HarmonyOS结合移动生态发展的趋势&#xff0c;提出了三大…

keepalive和nginx高可用集群

keepalived 和 nginx 高可用集群搭建 主备模式 zyj86主机和zyj87主机安装nginx和keepalived yum install nginx keepalived -y systemctl enable --now nginx.service keepalived.service主调度器配置 编辑zyj86主机&#xff08;主&#xff09;配置文件 vi /etc/keepalived…