【研发日记】Matlab/Simulink开箱报告(十)——Signal Routing模块模块

news2024/11/19 2:25:40

文章目录

前言

Signal Routing模块

虚拟模块和虚拟信号

Mux和Demux

Vector Concatenate和Selector

Bus Creator和Bus Selector

分析和应用

总结


前言

        见《开箱报告,Simulink Toolbox库模块使用指南(五)——S-Fuction模块(C MEX S-Function)》

        见《开箱报告,Simulink Toolbox库模块使用指南(六)——S-Fuction模块(TLC)》

        见《开箱报告,Simulink Toolbox库模块使用指南(七)——S-Fuction Builder模块》     

        见《研发日记,MatlabSimulink开箱报告(八)——Lookup Table模块》

        见《研发日记,MatlabSimulink开箱报告(九)——Simulink Test模块》

Signal Routing模块

        Signal Routing模块是Simulink中为了降低数据路径复杂度,提高模型搭建效率,把数据进行组合和分解,并实现跨越式传送的一类模块,Mathworks官方Help对该部分内容的说明如下所示:

        Signal Routing模块在Simulink Toolbox库中的位置如下:

        上述library中一些模块的应用都比较基础,不再赘述。本文挑选其中容易混淆的几类,重点对其异同进行辨析。

虚拟模块和虚拟信号

        Simulink® 模块分为两个基本类别:非虚拟模块和虚拟模块。非虚拟模块在系统的仿真中起主动作用。如果您添加或删除非虚拟模块,模型行为将发生改变。虚拟模块有助于以图形方式组织模型。虚拟模块在仿真中不起主动作用,但它们会影响其他模块的执行顺序。有些 Simulink 模块在某些情况下是虚拟的,而在其他情况下是非虚拟的。这种模块称为条件虚拟模块

        虚拟信号是一种以图形表达方式,不存在于生成的代码中。有些模块(如 Mux 模块)始终生成虚拟信号。有些模块(如 Bus Creator 模块)既可以生成虚拟信号,也可以生成非虚拟信号。如果生成信号的模块是虚拟的,则信号是虚拟信号。非虚拟信号是一种在仿真和代码生成中起主要作用的信号。有些模块(如 Vector Concatenate 模块)始终生成非虚拟信号。如果生成信号的模块是非虚拟的,则信号是非虚拟信号。

Mux和Demux

        Mux模块是将相同数据类型的输入信号合并为虚拟向量,然后基于这个虚拟向量对它们做一些统一的数据处理,这样既可以提高工程师的建模效率,也可以提高模型的可读性,示例如下:

        Tip1:Mux模块的四个输入信号必须是相同的数据类型,比如上图中都是double型;

        Tip2:上述四个信号经过Mux模块后,只是外观看上去匝在一起,但实质上他们之间互不影响。

        Demux模块是Mux模块的逆向操作,把虚拟向量分解开,将元素或者子向量提取并输出。示例如下:

        Tip1:一般情况下要求Deux模块设置的输出端口数与虚拟向量中元素的个数一致,这时是按顺序均匀输出;

        Tip2:如果Demux模块设置的输出端口数比虚拟向量中元素的个数少,这时个别输出上就会自动多一个元素,以虚拟子向量的形式输出;

        Tip3:如果想让Demux模块按照我们的设定输出,就需要在“Number of outputs”中设置对应输出端口的大小。比如[-1, 2, -1],同时包含正值2和 -1,该模块会首先保证有2个元素分配给第二个端口然后将其余元素均匀地分布在值为 -1 的第一个端口和第三个端口上。

Vector Concatenate和Selector

        Vector Concatenate 模块会把输入信号串联起来创建一个实质性的向量,作为一个Array[n]来使用,示例如下:

        Tip1:Vector Concatenate模块的三个输入端口必须是相同的数据类型,比如上图中都是double型;

        Tip2:输入端口不管是向量或者标量,都会按照顺序被串联起来形成一个新的向量;

        Selector模块是Vector Concatenate模块的逆向操作,可以根据指定的索引提取向量的元素,示例如下:

        Tip1:Selector模块的“Input port size”必须与实际输入向量的大小一致,否则会报错;

Bus Creator和Bus Selector

        Bus Creator 模块将输入信号合并成一个总线,相比前面的Mux和Vector,这里输入的信号可以是不同的数据类型。示例如下:

        Tip1:默认情况下,Bus Creator模块创建的是一个虚拟总线,它类似于用束线带绑在一起的一捆电线,每一根电线都有唯一的名称,粗细颜色各部不同,各自独立工作着。

        Tip2:需要时该模块也可以创建非虚拟总线,这类似于C代码中的结构体,总线与里边的信号存在着较强的父与子关系。虚拟总线和非虚拟总线在线型上有所不同。

        Bus Selector是模块Bus Creator模块的逆操作,可以从总线中按名称提取信号。与前面的Mux和Vector相比,这里不需要按索引Index查询提取,而是直接可以按信号名称提取。示例如下:

Tips:总线除了可以将元素信号提取出来使用外,还能通过Bus to Vector模块转换成向量使用,但是这种转换仅限于虚拟向量。

分析和应用

        为了简化模型外观,可以对信号连接进行组合,为模型组件和模块创建合成接口。上文三种不同的合成接口使用不同的开发情景,对比分析如下:

        虚拟总线可满足合成接口的大多数建模要求,并可灵活地组合不同类型的元素。虚拟总线可减少模块图中线条的复杂度和杂乱无章,并使进一步更改接口变得更容易。例如,如果您必须在组件接口中添加或删除元素,修改总线可能比添加或删除端口更简单。创建虚拟总线时,可以根据信号线的功能对其进行分组。通过将信号连接组织到逻辑分组中,可以降低将来进行重大重构的可能性。如果要在生成的代码中,将总线定义实现为一个结构体,就要考虑将虚拟总线改为非虚拟总线。如果要在子系统(例如 For Each 子系统)中以迭代方式处理大量类型相同的数据,适合选用Vector向量。如果各个子元素还要保持相对的独立性,适合选用Mux虚拟向量

        如下流程图可以帮助我们选择合适的接口类型:

总结

        以上就是本人在使用Signal Routing模块时,一些个人理解和分析的总结,首先介绍了Signal Routing的基本知识,然后展示它的使用方法,最后分析了该模块的特点和适用场景。

        后续还会分享另外几个最近总结的Simulink Toolbox库模块,欢迎评论区留言、点赞、收藏和关注,这些鼓励和支持都将成文本人持续分享的动力。

        另外,上述例程使用的Demo工程,可以到笔者的主页查找和下载。


        版权声明,原创文章,转载和引用请注明出处和链接,侵权必究!

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

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

相关文章

elasticsearch基础应用

1._cat接口 | _cat接口 | 说明 | | GET /_cat/nodes | 查看所有节点 | | GET /_cat/health | 查看ES健康状况 | | GET /_cat/master | 查看主节点 | | GET /_cat/indices | 查看所有索引信息 | es 中会默认提供上面的几个索引,表头…

【Redis】快速入门 数据类型 常用指令 在Java中操作Redis

文章目录 一、简介二、特点三、下载与安装四、使用4.1 服务器启动4.2 客户端连接命令4.3 修改Redis配置文件4.4 客户端图形化界面 五、数据类型5.1 五种常用数据类型介绍5.2 各种数据类型特点 六、常用命令6.1 字符串操作命令6.2 哈希操作命令6.3 列表操作命令6.4 集合操作命令…

ChatGPT赋能大气科学:GPT与Python结合应用遥感降水数据处理、ERA5大气再分析数据的统计分析、干旱监测及风能和太阳能资源评估等

目录 专题一 AI领域常见工具讲解 专题二 POE平台及ChatGPT使用方法 专题三 提示词工程 专题四 科研常见应用场景 专题五 Python简明教程 专题六 GPT科研绘图 专题七 GPT辅助下载数据 专题八 遥感降水数据 专题九 数据产品评估 专题十 ERA5全球大气再分析数据 专题十…

R语言 | 上下双向柱状图

1. 效果图 2. 代码 # 生成测试数据 difdata.frame(labelspaste0("pathway", 1:3),upc(30,15,1),downc(10,20,40) ) rownames(dif)dif$labels dif#变形 difreshape2::melt(dif) dif# 绘图 ggplot(dif, aes(xlabels, yifelse(variable"up", value, -value), …

大语言模型(LLM)token解读

1. 什么是token? 人们经常在谈论大模型时候,经常会谈到模型很大,我们也常常会看到一种说法: 参数会让我们了解神经网络的结构有多复杂,而token的大小会让我们知道有多少数据用于训练参数。 什么是token?比…

对比HTTP与WebSocket

目录 对比HTTP与WebSocket1. HTTP协议概述2. WebSocket协议概述3. HTTP与WebSocket的区别4. 使用场景比较5. 性能比较6. 安全性比较7. 应用案例分析8. 总结与展望 对比HTTP与WebSocket 1. HTTP协议概述 1.1 HTTP的基本概念 HTTP(Hypertext Transfer Protocol&…

【Leetcode每日一题】 递归 - 计算布尔二叉树的值(难度⭐⭐)(44)

1. 题目解析 题目链接:2331. 计算布尔二叉树的值 这个问题的理解其实相当简单,只需看一下示例,基本就能明白其含义了。 2.算法原理 算法思路概述: 问题解释:我们面对的是一个节点可能含有逻辑运算符(AN…

比例尺、等高距和DEM分辨率关系

地球表面的形态是很复杂的,不同地貌类型的形态是由它的相对高度、地面坡度以及所处的地势所决定的,它们是影响等高距的主要因素。从等高距计算公式可以看出,当地图比例尺和图上等高线间的最小距离简称等高线间距确定之后,地面坡度…

前端框架的简单介绍

html html-结构 盖房子之前先划三室二厅 (超文本标记语言)(可以实现一切的文本) css css-样式 在房里添家具 (层叠样式单)(化妆在脸上叠加) javascript(js) javascript(js)-交互(行为) 我点击你打开 供显示信息的元…

多维数组和交错数组笔记

1.) 关于数据的几个概念: Rank,即数组的维数,其值是数组类型的方括号之间逗号个数加上1。 Demo:利用一维数组显示斐波那契数列F(n) F(n-1) F(n-2) (n >2 ),每行显示5项,20项. static void Main(string[] args){int[] F n…

线程局部存储(TLS)

线程局部存储(Thread Local Storage,TLS),是一种变量的存储方法,这个变量在它所在的线程内是全局可访问的,但是不能被其他线程访问到,这样就保持了数据的线程独立性。而熟知的全局变量&#xff…

2014年认证杯SPSSPRO杯数学建模C题(第一阶段)土地储备方案的风险评估全过程文档及程序

2014年认证杯SPSSPRO杯数学建模 C题 土地储备方案的风险评估 原题再现: 土地储备,是指市、县人民政府国土资源管理部门为实现调控土地市场、促进土地资源合理利用目标,依法取得土地,进行前期开发、储存以备供应土地的行为。土地…

⼗多种免费Unity VR资源⼯具

1、VRTK是⼀种⾼效的VR⼯具包,⽤于在Unity3d中快速构建VR解决⽅案VRTK - Virtual Reality Toolkit - [ VR Toolkit ] | Integration | Unity Asset StoreUse the VRTK - Virtual Reality Toolkit - [ VR Toolkit ] from Sysdia Solutions Ltd on your next project.…

PyTorch-----torch.nn.Softmax()函数

Softmax原理 Softmax 函数是一种常用的激活函数,通常用于多分类问题中。它将一个含有多个实数值的向量(通常称为 logits)转换成一个概率分布,使得每个元素都在 (0, 1) 区间内,并且所有元素的和为 1。 假设我们有一个实…

YOLOv5实战记录02 模型检测

本人记录打卡,不够自习,慎看。 今天主要学了计组和计网,YOLO简单打个卡。 指路大佬:【手把手带你实战YOLOv5-入门篇】YOLOv5 模型检测_哔哩哔哩_bilibili 1. 主要讲了几个关键参数: 图源你可是处女座 运行示例&#…

iOS17 隐私协议适配详解

1. 背景 网上搜了很多文章,总算有点头绪了。其实隐私清单最后做出来就是一个plist文件。找了几个常用三方已经配好的看了看,比着做就好了。 WWDC23 中关于隐私部分的更新(WWDC23 隐私更新官网),其中提到了第三方 SDK 的…

SeaTunnel 与 DataX 、Sqoop、Flume、Flink CDC 对比

产品概述 Apache SeaTunnel 是一个非常易用的超高性能分布式数据集成产品,支持海量数据的离线及实时同步。每天可稳定高效同步万亿级数据,已应用于数百家企业生产,也是首个由国人主导贡献到 Apache 基金会的数据集成顶级项目。 SeaTunnel 主…

阿里云ubuntu服务器搭建可视化界面

连接终端 最好初始化服务器的时候 不要以root权限创建 否则会出错 1更新软件: sudo apt-get update2安装ubuntu desktop : sudo apt-get install ubuntu-desktop3 配置ubuntu desktop并重启: sudo apt-get -f install sudo dpkg-reconfigure ubuntu-desktop sudo reboot4 su…

STM32使用HAL库SPI驱动W25Q16 使用FATFS文件系统+USB虚拟U盘

概述 使用stm32F407驱动W25Q16,使用FATFS文件系统,USB虚拟优盘功能,W25Q16一共512个扇区,其中128作为flash存取相关数据,其他的384个扇区用作虚拟U盘使用 CubeMax配置过程 代码 W25Q16.c /***********************…

【深度学习】语义分割(FCN网络/DeepLabV3网络)学习记录

up主学习视频地址: 【语义分割前言】 https://www.bilibili.com/video/BV1ev411P7dR/?share_sourcecopy_web&vd_source49d7ac1e09d11f99978e8cf36c8bad41 这个up主真的很厉害,宝藏up主呀!!! 常见语义分割评价指…