Matlab simulink建模与仿真 第十三章(信号通路库)

参考视频:simulink1.1simulink简介_哔哩哔哩_bilibili

一、信号通路库中的模块概览

1、信号通路组

        注:部分模块在第二章中有介绍,本章不再赘述。

2、信号存储和访问组

二、总线分配模块

        Bus Assignment模块接受总线作为输入,并允许为总线中的某些信号分配新的信号值,其中该模块的Bus端口接收总线信号,而其它端口则是输入替换Bus端口总线信号的信号。

        双击Bus Assignment模块,左侧列表框显示输入总线中的信号(Bus端口的所有输入信号),可使用“Select>>”按钮选择要被替换的信号,右侧列表框显示所选信号。

        可使用“Up”、“Down”或“Remove”按钮重新排列选择的信号。当模块的配置或者输入输出等有修改时,建议都点击“Refresh”按钮刷新一下。

        如果右侧列表的某个信号前面显示三个“?”,说明该信号没有与左侧列表框中的任一信号对应,这样是不对的。

        选好需要替换的信号后,该模块会相应地为每个被替换信号提供替换信号输入端口(比如原本总线中有两个信号需要被替换,那么该模块将相应地为这两个信号提供两个输入端口,这两个端口输入的信号分别替换原本总线中的两个信号)。

三、选择器模块、下标向量模块

1、Selector选择器模块

(1)该模块可以选择或重新排列多维输入信号的指定元素,首先需要配置该模块输入信号的维度。

(2)每个元素的索引可由输入端口或模块配置对话框确定,程序员可以使用“Index mode”参数为每个维度选择索引方法(基于0和基于1的区别在第八章中有介绍,这里不再赘述)。

(3)下标的选择方式也不止一种,可以选择在对话框中配置或者从外部输入,可以对某一维度直接全选,也可以用向量的形式选择某维度中的某几个下标(如下图所示),亦或者可以只配置起始下标,那么某维度中该下标之后的所有元素也会被选中。

2、Index Vector下标向量模块

(1)该模块的作用和Switch模块类似,不过不同的是,该模块有多个输入分支(以下称为“数据端口”),模块连通哪个数据端口至输出,取决于第一个端口(以下称为“编号输入端口”)的输入值,模块根据该值选择具有相应编号的数据端口连通至输出端口。数据端口的排序有三种方式,第一种是基于0连续(Zero-based contiguous)——数据端口从上往下的编号从0开始递增,第二种是基于1连续(One-based contiguous)——数据端口从上往下的编号从1开始递增,第三种是指定编号(Specify indices)——数据端口从上往下的编号取决于Data port indices配置的编号序列(此种编号方法中一个数据端口可以有多个编号,可用向量表示一个数据端口所拥有的编号)。

(2)当编号输入端口输入的编号无法选择任一数据端口时(即编号输入端口输入的编号不在数据端口的编号集中),该模块需要选择一个默认数据端口连通至输出端口,具体有两种选择方式,第一种是默认选择最下面的一个数据端口(Last data port),第二种是另开一个默认数据端口(Additional data port),如果发生数据端口编号集中没有输入端口输入编号的情况,那么就将该端口连通至输出。

(3)使用默认端口的前提是将对默认情况的诊断(Diagnostic for default case)配置为None或者Warning,否则如果配置为Error,如果发生数据端口编号集中没有输入端口输入编号的情况将会报错。

(4)编号输入端口可以输入多个编号,相应地,也会有同等数量的输出,与输入的编号一一对应。

四、合并模块

        Merge模块的作用是将多个输入信号合并为单一输出信号,输入信号一般都来自其它子系统的输出(比如If Action子系统),该模块的初始输出值由“Initial output”参数指定,如果“Initial output”为空,则Merge模块将输出其中一个子系统的初始输出。

        该模块与Bus Creator总线模块有很大区别,它并不是将输入信号全部揉在一根信号线上进行输出,对于没有使能的子系统,它们自然不会有输出,也就不会有任何信号,而Merge模块的作用则是在众多输入端口中选择信号将其输出,这样,多个子系统的输出就可以通过Merge模块直接合并,而不用做非常复杂的逻辑仲裁(不借助Merge模块,多个子系统的输出是不能直接连在一起的)。

        下例中的使能子系统,输入与输出之间直接用一根普通信号线相连,没有其它处理,整个模型实现的是一个半波整流的功能。

五、环境控制、手动开关模块

1、Environment Controller环境控制模块

(1)环境控制模块有两个输入端口,在仿真环境下该模块的输入连通Sim端口,在编译环境下该模块连通Coder端口。

(2)环境控制模块两个端口的输入信号的宽度必须相同。

2、Manual Switch手动开关模块

(1)该模块实现的是一个单刀双掷开关,将该模块添加到模型文件中后,双击该模块即可切换单刀开关的通路。

(2)手动开关制模块两个端口的输入信号的宽度必须相同。

六、多端口开关模块

        Multiport Switch模块的作用以及使用方法和Index Vector模块基本完全一样,这里不再赘述。

七、goto from及goto tag模块

1、goto模块和from模块

(1)goto模块和from模块需要成对使用,具有相同标签goto模块和from模块构成一对(具有相同标签的goto模块在其可见范围内只能有一个,而from模块可以有很多个,为方便起见,这里仅以一个from模块为例),goto模块接收一条信号线上传输的信号,并将该信号传递至与其同标签的from模块。

(2)上面提到的“可见范围”其实就是goto模块能将信号传递出去的范围,比如只能在当前非虚拟子系统中传递(local)(除非goto模块连接条件执行子系统的状态端口,而from模块在其它条件执行子系统中,这样二者也能互相可见),或者是在整个模型文件中传递(global),或者把可见范围限定在一定区域内(scoped)。

2、Goto Tag Visibility模块

        如果goto模块的可见范围为scoped,那么需要在当前子系统中添加具有同名标签的Goto Tag Visibility模块,这样goto模块的输入才能传递到from模块,这个from模块可以在当前子系统中,也可以在当前子系统的子系统中。

八、信号存储和访问组

1、Data Store Memory数据存储记忆模块

(1)该模块用于定义(或者说划分)供数据存储读取和数据存储写入模块使用的内存区域,这个区域有一个名字Data store name,该内存区域中可以有若干个元素。

(2)当前(子)系统级或更低级别的所有Data store name与某数据存储区名称相同的读取和写入模块都可以从该数据存储区读取或写入数据。

(3)如果出现不同级别子系统中定义了相同名称数据存储区域的情况,则按照向上就近原则,低级别的数据存储读取和数据存储写入模块只能访问到在系统层级上离它们最近的数据存储区域。

(4)可为数据存储区域设定初始值,这个值可以是一个标量,也可以是一个向量甚至是矩阵,当初始值是向量或者矩阵时,意味着该存储区域内有大于1个的元素存储。

2、Data Store Read数据存储读取模块

(1)该模块可以从指定的数据存储区域中读取数值并输出之,这个数据存储区域由数据存储记忆模块划分。

(2)使用“元素选择”选项卡可以选择要读取的特定元素,如果不选择任何元素,则会直接读取整个内存区域(选择了多少个元素,或者说选择了多少个子矩阵,就有多少个输出端口,它们是一一对应的;无论如何至少有一个输出端口)。

3、Data Store Write数据存储写入模块

(1)该模块可将输入信号的值写入指定的数据存储区域,这个数据存储区域由数据存储记忆模块划分(写入操作可重复执行,每写入一次就会覆盖上一次写入的数据)。

(2)使用“元素赋值”选项卡可为特定元素赋值,如果不选择任何元素,则直接对整个内存区域执行写入操作(选择了多少个元素,或者说选择了多少个子矩阵,就有多少个输入端口,它们是一一对应的;无论如何至少有一个输入端口)。

4、使用示例

(1)该例中有两个数据存储区,分别为lpfilter和hpfilter,它们均处于最高级别的系统中,它们的存储结构均为一个2×2矩阵,也就是含4个元素。

(2)Tapped Delay模块仅用于将1个信号变成4个信号,然后拼成一维向量输出,在本例中其主要作用并不是延迟;Reshape模块用于将含4个元素的一维向量转化为2×2矩阵,这样才对得上数据存储写入模块中的元素列表(Subsystem2中数据存储写入模块的指定元素选择整个矩阵,如上图所示,而Subsystem1中数据存储写入模块没有选择指定元素,则默认选择整个存储区,所以也需要转成2×2矩阵)。

(3)最高级别系统中数据存储读取模块的指定元素列表选择了存储矩阵中的其中两个元素进行输出。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

集群软件在linux上的安装

前置准备 为了保证各个服务器之间的正常通信,要完成集群化环境的前置准备,包括创建多台虚拟机,配置主机名映射,SSH免密登录等等。 配置多个虚拟机 配置多台Linux虚拟机 安装集群化软件,首要条件就是要有多台Linux服务…

GaussDB关键技术原理:高弹性(五)

书接上文GaussDB关键技术原理:高弹性(四)从扩容流程框架方面对hashbucket扩容技术进行了解读,本篇将从日志多流和事务相关方面继续介绍GaussDB高弹性技术。 目录 4.2 日志多流 4.2.1 日志多流总体流程 4.2.2 基线数据传输 4.…

CleanClip vs 传统剪贴板:究竟谁更胜一筹?

在日常工作和生活中,复制粘贴可以说是我们使用最频繁的操作之一。传统的剪贴板功能虽然简单易用,但在功能性和效率上还有很大的提升空间。今天,我们就来比较一下新兴的剪贴板增强工具CleanClip与传统剪贴板,看看到底谁更胜一筹。 1. 剪贴历史管理 传统剪贴板只能存储最后一次…

python-字符排列问题

题目描述 有 n 个字母,列出由该字母组成的字符串的全排列(相同的排列只计一次)。输入格式 第一行输入是字母个数 n 。 接下来一行输入的是待排列的 n 个字母。输出格式 计算出的 n 个字母的所有不同排列总数。样例输入输出样例输入 4 aacc样例…

JavaScript高级——闭包应用-自定义js模块

定义 JS 模块 具有特定功能的 js 文件将所有的数据和功能都封装在一个函数内部(私有的)只向外暴露一个包含n个方法的对象或函数模块的使用者,只需要通过模块暴露的对象调用方法来实现对应的功能 例子1: 例子2: 本文分享到这里&am…

软件开发项目,如何应对时间压力?

时间压力是软件开发项目中普遍存在的挑战,妥善应对此问题有助于优化资源配置,控制成本超支,提升团队士气与协作效率,进而增强软件项目的成功率,确保项目按时交付,并提升产品质量和客户满意度。如果无法处理…

『功能项目』事件中心处理怪物死亡【55】

本章项目成果展示 我们打开上一篇54回调函数处理死亡的项目, 本章要做的事情是用事件中心处理怪物死亡后的逻辑 首先打开之前事件中心脚本(不做更改,调用即可): using System.Collections.Generic; using UnityEngine…

QT程序的安装包制作教程

在Windows平台上开发完qt c桌面应用程序以后,需要制作一个安装包,方便生产和刻盘交货,本文记录相关流程。 目录 一、安装Qt Installer Framework 二、准备可执行程序 2.1 生成Release程序 2.2 完成依赖库拷贝 三、创建安装包程序 一、…

【MySQL】MySQL和Workbench版本兼容问题

1、安装MySQL WorkBench 最新版本下载:https://dev.mysql.com/downloads/workbench/ 历史版本下载:https://downloads.mysql.com/archives/workbench/ 2、问题描述 本人在Windows下安装了一个旧版本的MySQL(5.1),同…

【C++登堂入室】类与对象(上)

目录 一、面向过程和面向对象初步认识 二、类的引入 三、类的定义 四、类的访问限定符及封装 4.1 访问限定符 4.2 封装 五、类的作用域 六、类的实例化 七、类对象模型 7.1如何计算类对象的大小 7.2 类对象的存储方式猜测 7.3 结构体内存对齐规则 八、this指针 …

物联网行业中小型嵌入式文件系统详解以及使用

一 概述 在嵌入式系统使用过程中,为了方便数据的存储,我们加入了串行的外部Flash(SPI通信)。在使用存储的时候,如需要记录一个字符串“奇迹物联Bloom OS”,我们可以把这些文字转化成 ASCII 码,存储在数组中&#xff0c…

Android Studio Menu制作

文章目录 一、创建菜单在Activity上新建onCreateOptionsMenu新建menu目录及资源文件新建Menu一级菜单在Activity上加载Menu测试效果 二、菜单点击事件 一、创建菜单 在Activity上新建onCreateOptionsMenu Overridepublic boolean onCreateOptionsMenu(Menu menu) {return supe…

Vue2电商平台项目 (三) Search模块、面包屑(页面自己跳自己)、排序、分页器!

文章目录 一、Search模块1、Search模块的api2、Vuex保存数据3、组件获取vuex数据并渲染(1)、分析请求数据的数据结构(2)、getters简化数据、渲染页面 4、Search模块根据不同的参数获取数据(1)、 派发actions的操作封装为函数(2)、设置带给服务器的参数(3)、Object.assign整理参…

【读论文】End-to-end reproducible AI pipelines in radiology using the cloud

文章目录 End-to-end reproducible AI pipelines in radiology using the cloud01 研究背景与目的医学成像领域(1)研究现状(2)存在问题 其他研究领域:基因组学(genomics)研究目的:提…

【数据库】MySQL-基础篇-事务

专栏文章索引:数据库 有问题可私聊:QQ:3375119339 目录 一、事务简介 二、事务操作 1.未控制事务 1.1 测试正常情况 1.2 测试异常情况 2.控制事务一 1.1 查看/设置事务提交方式 1.2 提交事务 1.3 回滚事务 3.控制事务二 1.1 开启事…

lvs-dr模式实验详解

华子目录 lvs-dr(企业当中最常用)dr模式数据逻辑dr模式数据传输过程dr模式的特点实验拓扑实验主机准备解决vip响应问题限制响应级别:arp_ignore限制通告级别:arp_announce 实验步骤1.client的ip设定2.router上的ip设定3.router开启路由转发功能4.lvs主机…

Eroded Mountains - Stamp Pack 山脉

这套邮票包含10幅高质量的高度图图像。这些邮票以严重侵蚀的山脉为特色,非常适合古代和史诗般的风景! 高品质邮票塑造您的地形! 每一个伟大的环境场景都始于一个空的平面。 这个邮票包包含10枚邮票,可以帮助你填补这个空白。这些邮票以严重侵蚀的山脉为特色,非常适合古代和…

C++:多态

目录 一.多态的概念 二.多态的定义及其实现 1.虚函数 2.虚函数的重写/覆盖 3.实现多态的条件 4.虚函数重写的例外 5.析构函数的重写 6.经典例题 7.C11 override和final关键字 8.重载、重写/覆盖、隐藏的区别 三.抽象类 四.多态的原理 1.虚函数表指针 2.多态如何实…

13 Midjourney从零到商用·实战篇:漫画设计一条龙

大家好,经过前面十三篇文章,相信大家已经对Midjourney的使用非常熟悉了,那么现在我们开始进行实际的项目操作啦,想想是不是有点小激动呀,本篇文章为大家带来Midjourney在漫画制作领域的使用流程,同样也适用于现在短视频…

[C语言]第十节 函数栈帧的创建和销毁一基础知识到高级技巧的全景探索

10.1. 什么是函数栈帧 我们在写 C 语言代码的时候,经常会把一个独立的功能抽象为函数,所以 C 程序是以函数为基本单位的。 那函数是如何调用的?函数的返回值又是如何待会的?函数参数是如何传递的?这些问题都和函数栈帧…