0

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

在我的情况下,所谓的东西

子系统 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]

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

4

3 回答 3

2

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

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

于 2013-07-03T13:09:21.833 回答
0

我怀疑这个Sine模块一个子系统,如果你在面具下看,你可能会发现一个 S-Function。您可以指定一个 ' SearchDepth' 参数find_system或将 ' LookUnderMasks' 设置为 ' none'(假设您的实际子系统subsys L1 -x并且SubsysX L2 - z没有被屏蔽)。

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

于 2013-07-03T10:05:36.773 回答
0

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

find_system(gcs,'Parent', 'test_simulinkmodel', 'BlockType', 'SubSystem');
于 2013-07-03T11:58:16.990 回答