find_system返回simulink中不是子系统的对象?

时间:2013-07-03 09:53:11

标签: block simulink subsystem

当我使用find_system(gcs,'BlockType','SubSystem')时,它会返回不是子系统的东西(AFAIK)

就我而言,所谓的事情是

  

subsys L1 -x

  

SubsysX L2 - z

是子系统,但名称仅用于调试目的,因此我无法使用这些名称进行匹配。

为什么会出现[1x51 char]Sine以及RealisesUID

我只希望子系统显示在模型浏览器树中。

'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]

编辑: 如果我选择包含库链接并包含具有掩码参数的系统,它们将显示在模型浏览器中。但是,find_system的默认值是'FollowLinks''off'和'LookUnderMasks'没有说。但是,即使我提供明确的off和none,它们仍会返回相同的结果。

3 个答案:

答案 0 :(得分:2)

您可以将LinkStatus参数添加到find_system,以仅查找您自己的子系统,而不是库中的子系统。 find_system(gcs,'BlockType','SubSystem','LinkStatus','none')。同样,你也可以添加'Mask'和'on'或'off'值来根据块上是否有掩码进行过滤。

“Sine”是您自己图书馆的子系统吗?如果您搜索“SubSystem”的“BlockType”,Simulink库中的正弦波块将不会显示。

答案 1 :(得分:0)

我怀疑Sine一个子系统,如果你要查看掩码,你可能会找到一个S函数。您可以为SearchDepth指定一个“find_system”参数,或将“LookUnderMasks”设置为“none”(假设您的实际子系统subsys L1 -x和{{1没有掩盖)。

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

答案 2 :(得分:0)

您似乎在子系统中获得了所有子系统。根据am304的建议,您可以使用SearchDepth选项限制搜索,但我通常会发现使用Parent更容易限制搜索级别。在你的情况下

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