2013-07-03 57 views
0

當我使用find_system(gcs,'BlockType','SubSystem')它返回的東西並不子系統(據我所知)find_system返回simulink中不是子系統的對象?

在我的情況被稱爲

SUBSYS L1的事情-x

SubsysX L2 - z

是子系統,但名稱僅用於調試目的,所以我不能使用名稱進行匹配。

爲什麼[1x51 char]SineRealisesUID出現?

我只希望在模型瀏覽器樹中顯示子系統。

'test_simulinkmodel/RealisesUID' 
'test_simulinkmodel/subsys L1 - 1' 
[1x51 char] 
'test_simulinkmodel/subsys L1 - 1/Sine' 
'test_simulinkmodel/subsys L1 - 1/Subsys1 L2 - 1' 
[1x71 char] 
[1x68 char] 
'test_simulinkmodel/subsys L1 - 2' 
[1x51 char] 
'test_simulinkmodel/subsys L1 - 2/Sine' 
'test_simulinkmodel/subsys L1 - 2/Subsys2 L2 - 1' 
[1x71 char] 
[1x68 char] 
'test_simulinkmodel/subsys L1 - 3' 
[1x51 char] 
'test_simulinkmodel/subsys L1 - 3/Sine' 
'test_simulinkmodel/subsys L1 - 3/Subsys3 L2 - 1' 
[1x71 char] 
[1x68 char] 

編輯: 他們出現在模型browswer如果我選擇包括圖書館聯繫,幷包括與覆蓋參數的系統。但是,find_system的默認值是'FollowLinks''off'和'LookUnderMasks'沒有說。但是,即使我提供了明確的關閉和沒有,他們仍然返回相同的結果。

回答

2

您可以添加LinkStatus參數find_system尋找只有你自己的子系統,而不是從圖書館的人。 find_system(gcs,'BlockType','SubSystem','LinkStatus','none')。您也可以使用'開'或'關'值添加'蒙版'以根據塊是否有蒙版進行過濾。

「Sine」是來自您自己的庫的子系統嗎?如果您搜索'SubSystem'的'BlockType',則Simulink庫中的正弦波塊將不會顯示。

+0

謝謝,LinkStatus沒有顯示在find_system的文檔中,您在哪找到它?我不知道Sine,似乎是一個功能塊。我不是simulink開發人員,所以我不熟悉任何術語。 –

+0

RealisesUID仍然顯示出來,但它似乎是一個帶有鏈接的openFcn的子系統,希望我能管理它。 –

+0

對於find_system文檔中提到的'p *','v *'值,您可以指定任何塊參數。文檔中的表格僅列出約束('c *'值)。 – Navan

0

我懷疑Sine子系統,如果你要查看掩碼下,你可能會發現一個S函數。您可以指定'SearchDepth'參數爲find_system或將'LookUnderMasks'設置爲'none'(假設您的實際子系統subsys L1 -xSubsysX L2 - z未被屏蔽)。

http://www.mathworks.co.uk/help/simulink/slref/find_system.html

+0

我試過LookUnderMasks沒有,但它沒有改變結果 –

+0

正弦是Blocktype參考,但仍然出現 –

+0

對不起,用完了想法。如果您的許可證正在維護(不適用於學生許可證),您可能需要嘗試聯繫MathWorks技術支持 – am304

0

你似乎得到子系統結果中的所有子系統。正如am304所建議的,您可以使用SearchDepth選項來限制搜索,但我通常會發現使用Parent可以更容易地限制搜索等級。在你的情況

find_system(gcs,'Parent', 'test_simulinkmodel', 'BlockType', 'SubSystem'); 
+0

我想要所有子系統,但不是當我選擇時顯示的子系統「包含庫鏈接」和「包含帶有掩碼參數的系統」。問題是使用參數的這些限制似乎不起作用 –