Main Content

不建议设置采样时间的模块

某些模块默认情况下不允许您设置采样时间参数。但是,如果现有模型中这些模块的采样时间没有设置为默认值 -1(继承采样时间),则您可以查看和设置它们的采样时间参数。采样时间参数在某些模块上不可用,因为在这些模块(如 GainSumn-D Lookup TableDiscrete FilterDiscrete FIR FilterDiscrete Transfer Fcn)上指定除 -1 之外的采样时间,将导致采样率转移与模块算法隐式混合在一起。这种混合常常会导致 Simulink® 模型的不明确和混乱。

在大多数建模应用中,您需要为位于系统边界的模型指定速率,而不是为子系统中的模块指定速率。您指定传入信号的系统速率或输出信号的采样率。您还可以决定您正在建模的事件(以触发器、函数调用或启用/禁用信号的形式进入子系统)的速率。某些全局变量(如 Data Store Memory 模块)可能需要指定其他采样时间。如果您要在系统中更改速率,请使用 Rate Transition 模块,此模块专为模型速率转移而设计。

在以后的版本中,在不适用的模块上,您可能看不到或者无法设置此参数。

模型采样时间最佳做法

请使用以下方法,而不是在不适用的模块上设置采样时间参数:

  • 调整您的模型:仅为适合使用采样时间参数的模块中列出的模块指定采样时间,对于其他所有模块,将采样时间设置为 -1。要同时更改多个模块的采样时间,请使用模型资源管理器。有关详细信息,请参阅模型资源管理器

  • 使用 Rate Transition 模块为您模型中的速率转移进行建模。

  • 使用 Signal Specification 模块在没有源模块的模型(如代数环)中指定采样时间。

  • 使用“模型参数”对话框单独指定仿真速率,使其独立于模块的采样时间。

完成这些更改后,验证您的模型输出是否与以前一样。

适合使用采样时间参数的模块

在模型或子系统的边界指定采样时间,或者在专门为速率转移建模而设计的模块中指定采样时间。示例包括:

  • Sources 库中的模块

  • Sinks 库中的模块

  • 触发端口(如果触发器类型设置为函数调用)和使能端口

  • Data Store Read 和 Data Store Write 模块,因为它们链接的 Data Store Memory 模块可能在子系统边界外

  • Rate Transition 模块

  • Signal Specification 模块

  • Discrete 库中除 Discrete FilterDiscrete FIR FilterDiscrete Transfer Fcn 模块以外的模块

  • Message Receive 模块

  • Function Caller 模块

在隐藏参数的模块中指定采样时间

对于在模块对话框中不显示 Sample Time 参数的模块,您可以在模块中指定采样时间。如果您在这些模块中指定除 -1 之外的值,仿真模型时不会发生错误。但模块对话框中会显示一条消息,建议您将此参数设置为 -1(继承采样时间)。如果您将采样时间模块参数升级为封装,此参数在封装对话框上将始终可见。

要在这种情况下更改采样时间,请使用 set_param 命令。例如,在 Simulink 编辑器中选择模块,然后在命令提示符下输入:

set_param(gcb,'SampleTime','2');

相关主题