玖叶教程网

前端编程开发入门

Simulink的Merge模块将多输入合并为单输出

Simulink的Merge模块存放在 Simulink/signal routing中,可将多个输入合并为单个输出。输出值始终等于其驱动模块最近计算的输出。通过设置输入数目参数来指定输入数目。Merge 模块适用于将在不同时间更新的输入信号交叉成一个合并信号,交叉值在合并信号中保留其各自的身份和时间。要将同时更新的信号合并成数组或矩阵信号,则可以使用 Concatenate 模块。


1.Merge 模块的使用原则

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

始终使用条件执行子系统来驱动 Merge 模块,而不涉及任何中间模块。

  • 确保在任何时间步都最多只有一个驱动条件执行子系统在执行中。
  • 确保所有输入信号具有相同的采样时间。
  • 不要为 Merge 模块的输入信号创建分支。
  • 不要记录输入到 Merge 模块的信号。
  • 不要指定 Merge 模块的模块执行优先级。有关详细信息,请参阅指定模块执行优先级和标记。
  • 对于驱动 Merge 模块的所有条件执行子系统 Outport 模块,请将禁用时的输出设置为“保持”。
  • 如果 Model 模块的输出来自 MATLAB Function 模块或 Stateflow图,不要将该输出端口连接到 Merge 模块的输入端口。
  • Merge 模块支持将不同任务中的信号合并到一个根 Outport 模块。

对于一个 Merge 模块的每个输入,最顶层的非虚拟源必须为条件执行子系统(不包括 For Iterator 或 While Iterator 子系统)。


2.Merge模块和Mux模块的区别

对于多个if action subsystem的输出,merge模块会检测哪一个在更新,不更新的那个就被舍弃,不进行输出,所以输出的总是变化的值。而mux没有这个判断,就是简单将数据信号线合并为多维而已。


3.实例

Simulink的仿真模型

三个使能子系统就是简单的使输入和输出。


仿真结果


4.参考内容

[1]https://ww2.mathworks.cn/help/simulink/slref/merge.html?s_tid=doc_ta

[2] CSDN作者cgrowth的文章《simulink模块使用记录2-EnabledSubsystem/merge》,文章链接为:https://blog.csdn.net/u013647759/article/details/86357275

[3] https://www.ilovematlab.cn/thread-314715-1-1.html?_dsign=8d3b57ea

本文内容来源于网络,仅供参考学习,如内容、图片有任何版权问题,请联系处理,24小时内删除。


作 者 | 郭志龙

编 辑 | 郭志龙
校 对 | 郭志龙

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言