【问题标题】:Iterate over bus signals in Simulink / Reuse subsystems without copying在 Simulink / Reuse 子系统中迭代总线信号而不复制
【发布时间】:2011-12-08 19:21:09
【问题描述】:

在 Simulink 中,我需要在多条总线上执行相同(重要)的操作。 我曾想过将该操作实现为子系统并重用它,但效果不佳。

我现在想知道是否可以迭代总线中的信号/总线以多次应用相同的操作,然后再次将结果捆绑在一起。我该怎么做?

【问题讨论】:

  • 您能否更准确地说明您在子系统方面遇到的问题?这与总线之间信号的不同名称有关吗?
  • 我需要子系统是单独的模型。当它们处于加速器模式时,它们不会编译,但是当我将它们切换到正常模式时,我只能使用一个实例。

标签: matlab simulink


【解决方案1】:

您使用的是什么版本?如果您使用的是 R2010b 或更高版本,则可以使用总线数组和 for-each 子系统。有关其工作原理的更多详细信息,请参阅documentation。这仅在您要迭代的多条总线具有完全相同的结构时才有效。

【讨论】:

    【解决方案2】:

    我现在没有 Matlab 来测试这个解决方案。我假设您的公共汽车都具有相同的尺寸和结构。

    • 在库中创建块
    • 用总线编辑器定义一个类型(总线对象)(对应于 总线的通用结构)
    • inportoutport 设置为此类型。
    • 使用bus selector 分解您的数据,执行您的 使用bus creator 操作并重新组装您的总线。名字 在选择器/创建器中是您定义的类型。
    • 在每个信号上使用此块。
    • 不要忘记将类型导出到 .mat 文件并加载它。

    【讨论】:

    • 图书馆块是我现在正在做的。是否有某种不依赖于总线中元素数量的通用解决方案——比如 foreach 循环?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-09
    • 1970-01-01
    • 2015-11-21
    相关资源
    最近更新 更多