首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >强制总线创建者只接受来自总线对象的信号

强制总线创建者只接受来自总线对象的信号
EN

Stack Overflow用户
提问于 2014-10-01 13:50:40
回答 2查看 1.3K关注 0票数 2

这是Matlab/Simulink R2007a。

我在总线编辑器中创建了一个名为"FOOBUS“的总线,其中包含三个元素,如"FOO1、FOO2、FOO3”。

给定子系统的输入端口被迫接受"FOO“类型的总线。这个子系统与一个MAT文件一起保存在一个库中,其中定义了"FOO“Simulink.Bus对象。

现在,当涉及到将子系统与其他块集成时:

-How我可以强迫总线创建者向我展示构成FOO的元素吗?问题是,当构建FOO总线对象(通常使用配置为输出FOO总线对象的总线Creator )时,我看不到应该包含FOO Bus对象的信号,必须深入子系统(或总线编辑器)来查看它有哪些元素,并在bus Creator对话框中手动编写它们。

-Any还有其他建议吗?其目的是拥有清晰的接口定义,可以非常简单地调用,而不是在Bus Creator块中手工重写它们。

谢谢。

添加了

为了澄清,我主要寻求的是创建子系统输入总线,而不必手动添加项(正如bus Creator建议的那样,AFAIK)。

给R2007a @MohsenNosratinia提供了答案的基础(最初的答案在R2007A中是行不通的,因为arrayfun似乎不接受BusElements。我使用普通数组方法作为解决办法。

代码语言:javascript
复制
function addSignalsToBusCreator(busDef)
busEls = busDef.Elements;
sigString = ' ';
for i = 1 : length(busEls)
    sigString = [sigString busDef.Elements(i).Name ','];
end
set_param(gcb, 'Inputs', sigString(1:end-1));
end
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-10-01 15:02:28

你需要用编程的方式去做。Simulink没有提供一种在GUI中实现这一目标的方法。您可以创建这样的函数:

代码语言:javascript
复制
function addSignalsToBusCreator(busDef)
elemNames = arrayfun(@(x) x.Name, busDef.Elements, 'uni', 0);
sigString = sprintf('''%s'',', elemNames{:});
set_param(gcb, 'Inputs', sigString(1:end-1));
end

在将总线创建者添加到模型之后,选择它并使用总线定义运行此函数。

代码语言:javascript
复制
>> addSignalsToBusCreator(FOO)

关键在于总线创建者块的'Inputs'参数。它可以采用两种不同类型的值。如果它是一个包含数字(例如5 )的字符串,它将把它解释为选择了具有5个输入的'Inherit bus signal names from input signals'选项。但是,如果它包含一个带有逗号分隔的单引号的字符串,它就会将其解释为您选择了'Require input signal names to match signals below'。在您的示例中,字符串将是'FOO1','FOO2','FOO3'

我已经在R2011b上测试过这个。

票数 3
EN

Stack Overflow用户

发布于 2014-10-02 09:11:30

修改@ Modifying的解决方案,以便在Matlab R2007a中工作

代码语言:javascript
复制
function addSignalsToBusCreator(busDef)
busEls = busDef.Elements;
sigString = ' ';
for i = 1 : length(busEls)
    sigString = [sigString busDef.Elements(i).Name ','];
end
set_param(gcb, 'Inputs', sigString(1:end-1));
end
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26143010

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档