這是Matlab/Simulink R2007a。強制總線創建者只接受來自總線對象的信號
我在總線編輯器中創建了一個名爲「FOOBUS」的總線,它包含三個元素,比如說「FOO1,FOO2,FOO3」。
給定子系統的輸入端口被強制接受-only-「FOO」型總線。該子系統保存在一個庫中,以及一個定義了「FOO」Simulink.Bus對象的MAT文件。
現在,當涉及到子系統與其他模塊集成:
我 - 如何可以強制總線造物主對我表明,包括FOO的元素?問題是,當構建FOO總線對象時(通常使用配置爲輸出FOO總線對象的總線創建器來組成它),我看不到應該包含FOO總線對象的信號,並且不得不在子系統中潛水(或在總線編輯器中)查看它具有哪些元素,然後在Bus Creator對話框中手寫它們。
-Any other proposal?其目標是具有清晰的接口定義,可以非常簡單地調用接口定義,而不是在Bus Creator塊中手動重寫它們。
謝謝。
新增
只是爲了澄清,我所求,主要是無需手動添加的項目(如總線造物主建議AFAIK)創建子系統輸入總線。
回答R2007a @MohsenNosratinia的答案提供了基礎(原答案不會在R2007A工作的樣子arrayfun不接受BusElements。我用普通數組的方式作爲一種解決方法。
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
你能告訴你的模型? – kkuilla 2014-10-01 13:54:29
我不允許發佈該模型,對不起。但它主要是一個輸入接受「FOO」總線類型(其元素在Simulink.Bus對象中定義良好)的子系統。我不想手動輸入總線的元素(在總線創建器對話框中)以創建「FOO」類型的總線。 – Manex 2014-10-01 14:07:42
我想你會發現很難得到有用的答案,恐怕。我相信你可以用虛擬數據/對象創建[mcve](http://stackoverflow.com/help/mcve)。 – kkuilla 2014-10-01 14:15:11