【发布时间】:2014-11-10 16:15:15
【问题描述】:
例如: 我需要一个由N UnitDelay 块组成的块。并且它们应该串联连接。而N应该是block参数。
我想知道是否可以使用代码创建一个块,如下所示:
begin block
UnitDelay unit_delay1
UnitDelay unit_delay2
unit_delay1.input <= block_input
unit_delay2.input <= unit_delay1.output
block_output <= unit_delay2.output
end block
问题是关于用代码描述块结构。这不仅仅是示例中的单位延迟块。
【问题讨论】:
-
“For Iterator”块会有帮助吗? mathworks.com/help/simulink/slref/foriteratorsubsystem.html
-
如果是这种情况,那么您可以使用 Simulink 命令行功能。您可以使用命令行轻松添加块。我没有广泛使用 Simuilink 的此功能,但您可以查看以下内容:mathworks.com/help/simulink/functionlist.html
-
我刚想到这个。如果您正在寻找可变时间延迟块,那么这可能会有所帮助:mathworks.com/help/simulink/slref/variabletimedelay.html 您可以将其设置为获得外部延迟时间。假设你想要 N 个单位的延迟,那么你可以计算会有多少时间延迟并将该值发送到块。
-
Tapped Delay Block 几乎可以满足您的要求。它输出所有延迟信号,因此您只需要选择顶部信号。如果这不能满足您的要求,那么您将需要花时间为子系统创建一个封装,其中该封装在初始化时使用 MATLAB-Simulink API 函数(例如add_block)来添加和配置您想要的模块在子系统中。
-
@Holoceo 好的,我不清楚这个问题。 Phil Goddard 建议的 API 是可行的方法。相关功能在mathworks.co.uk/help/simulink/modeling-basics.html的文档中列出。