Simulink - 通过MATLAB命令行将Iterator Block添加到子系统

时间:2017-07-12 15:46:37

标签: matlab simulink

我正在编写一个程序,使用MATLAB中的命令创建Simulink模型。目前,添加的任何子系统都将立即清除,然后使用我们想要的块重新填充。我的问题是如何在清除之后将While Iterator Block添加回子系统?

示例代码:

new_system('test_while_loop')
add_block('simulink/Ports & Subsystems/While Iterator Subsystem', 'test_while_loop/Subsystem_loop')
Simuink.SubSystem.deleteContents('test_while_loop/Subsystem_loop')
add_block('simulink/Ports & Subsystems/While Iterator', 'test_while_looop/Subsystem_loop/While Iterator')

这会返回错误There is no block named 'simulink/Ports & Subsystems/While Iterator,即使Simulink的documentation表示此块包含在Ports&子系统库。我需要更改什么才能添加此块?

1 个答案:

答案 0 :(得分:2)

对于内置块,您应该使用块类型将块添加到系统中。要识别块类型,请使用

get_param(gcb, 'BlockType')

对于while迭代器块,这将返回' WhileIterator'。您可以使用

将此块添加到系统中
add_block('built-in/WhileIterator','test_while_looop/Subsystem_loop/While Iterator')

请参阅https://www.mathworks.com/help/simulink/slref/add_block.html上的add_block文档。