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

文章目录

前言

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工程,可以到笔者的主页查找和下载。


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

  • 64
    点赞
  • 52
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 103
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。
### 回答1: 移相全桥是一种用于电力转换的拓扑结构,常用于交流到直流的变换。它由四个开关管和一个负载组成,可以实现电压转换、电流开关和功率控制等功能。移相全桥的matlab/simulink仿真模型可以用于分析和优化该拓扑结构的工作性能。 在matlab/simulink环境下建立移相全桥的仿真模型,首先需要定义电压源、开关管和负载等模块,并对其进行参数设置。电压源可以使用信号发生器模块来生成正弦波形的输入电压。开关管可以使用晶体管模块来模拟,通过控制其开关状态可以实现电源和负载之间的电流开关。负载可以使用负载电阻模块来表示。 然后在simulink中使用逻辑电平切换模块对开关管的控制信号进行生成,通过控制开关管的导通和断开状态可以调节输出电压的大小和极性。电感和电容可以通过元件模块添加,模拟实际移相全桥中的激励网络。 接下来需要在simulink中建立反馈控制环节,对输出电压进行调节和稳定。可以使用PI(比例积分)控制器来控制输出电压,通过调节PI控制器的比例和积分增益可以实现对输出电压的稳定和精确控制。 最后,运行仿真模型,可以观察到移相全桥的输入电压、输出电压和电流波形,并通过调节参数来分析和优化系统的工作性能。可以通过改变输入电压的频率和幅值,分析输出电压的响应特性。也可以通过改变控制器参数和激励网络的参数,优化系统的稳定性和响应速度。 综上所述,移相全桥的matlab/simulink仿真模型是用于分析和优化移相全桥的电力转换性能的工具,可以通过模拟系统的动态响应和调节参数来实现对系统的设计和控制策略的改进。 ### 回答2: 移相全桥是一种常用的电力电子变换器拓扑,可以将直流电能转换为交流电能。它由四个功率开关器件、四个二极管以及一组滤波电感和电容组成。在正半周期中,两个对角线的功率开关器件开通,而另外两个功率开关器件关闭;负半周期时,开通与关闭的功率开关器件互换。通过控制功率开关器件的导通和关断时刻,可以实现输出电压的调整和频率的控制。 在MATLAB/Simulink中进行移相全桥的仿真模型搭建,可以通过以下步骤实现: 1. 打开MATLAB软件,在命令窗口中输入"simulink"命令,打开Simulink模型。 2. 在Simulink模型库中找到Power Electronics Toolbox,将其拖拽到模型中。 3. 在Power Electronics Toolbox中找到"Full-Bridge Inverter"(全桥逆变器)模块,将其拖拽到模型中。 4. 连接逆变器的输入和输出端口,可以使用Signal Routing Toolbox中的Switch模块进行连接。 5. 对逆变器进行参数设置,例如输入电压、输出电压和频率等。可以通过双击逆变器模块打开参数设置对话框进行设置。 6. 添加控制器,例如PI控制器,对输入电压进行调节。可以使用Control System Toolbox中的PID Controller模块。 7. 运行模型,可以观察到移相全桥逆变器的输出波形,并且可以调节控制器参数来调整输出电压。 总体来说,移相全桥的MATLAB/Simulink仿真模型搭建可以通过Power Electronics Toolbox以及其他相关的工具箱实现。通过对模型的参数配置以及控制器的设置,可以模拟移相全桥的工作原理并观察其输出波形。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 103
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Mr.Cssust

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值