【问题标题】:find_system returns objects that are not subsystems in simulink?find_system 返回不是 simulink 中子系统的对象?
【发布时间】:2013-07-03 09:53:11
【问题描述】:

当我使用 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' 没有说。但是,即使我提供明确的 off 和 none,它们仍然返回相同的结果。

【问题讨论】:

    标签: block simulink subsystem


    【解决方案1】:

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

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

    【讨论】:

    • 谢谢,LinkStatus 没有出现在 find_system 的文档中,您在哪里找到的?我不确定正弦,似乎是一个功能块。我不是 simulink 开发人员,所以我对任何术语都不太熟悉。
    • RealisesUID 仍然出现,但它似乎是一个带有 openFcn 和链接的子系统,希望我能管理。
    • 对于 find_system 文档中提到的 'p*','v*' 值,您可以指定任何块参数。文档中的表格仅列出了约束('c*' 值)。
    【解决方案2】:

    我怀疑Sine一个子系统,如果你在掩码下查看,你可能会发现一个 S-function。您可以为find_system 指定一个“SearchDepth”参数或将“LookUnderMasks”设置为“none”(假设您的实际子系统subsys L1 -xSubsysX L2 - z 没有被屏蔽)。

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

    【讨论】:

    • 我试过 LookUnderMasks 没有,但它没有改变结果
    • Sine 属于 Blocktype Reference,但仍然出现
    • 抱歉,没有想法了。如果您的许可证正在维护中(不适用于学生许可证),您可能需要尝试联系 MathWorks 技术支持
    【解决方案3】:

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

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

    【讨论】:

    • 我想要所有子系统,但不是当我选择 include library linksinclude systems with mask parameters. 时出现的那些子系统问题是这些使用参数的限制似乎不起作用
    猜你喜欢
    • 1970-01-01
    • 2012-09-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-21
    • 1970-01-01
    相关资源
    最近更新 更多