Simulink - 通过 MATLAB 命令行将 While 迭代器模块添加到子系统

Posted

技术标签:

【中文标题】Simulink - 通过 MATLAB 命令行将 While 迭代器模块添加到子系统【英文标题】:Simulink - add While Iterator Block to subsystem via MATLAB Command Line 【发布时间】:2017-07-12 15:46:37 【问题描述】:

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

示例代码:

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 & Subsystems 库中。我需要更改什么才能添加此块?

【问题讨论】:

【参考方案1】:

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

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 文档。

【讨论】:

以上是关于Simulink - 通过 MATLAB 命令行将 While 迭代器模块添加到子系统的主要内容,如果未能解决你的问题,请参考以下文章

如何把simulink用m语言控制

从 Simulink 中的 Matlab 功能块调用的 sim 命令的 Simout 输出

matlab的simulink在哪里?

matlab工作空间数据导入simulink

如何将matlab的程序代码导入simulink

simulink matlab独立可执行文件无法获得输出