2013-07-03 28 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

我想要所有子系统,但不是当我选择时显示的子系统“包含库链接”和“包含带有掩码参数的系统”。问题是使用参数的这些限制似乎不起作用 –