Main Content

本页的翻译已过时。点击此处可查看最新英文版本。

子系统中的采样时间

子系统分为两种:触发和非触发。对于触发子系统,一般情况下,子系统从触发信号获取采样时间。当您使用 Trigger 模块创建触发子系统时,将发生一种例外情况。如果您将模块的 Trigger type 设置为 function-call,并将 Sample time type 设置为 periodic,将激活 SampleTime 参数。这种情况下,由指定 Trigger 模块的采样时间,然后由该模块确定子系统的采样时间。

有四种非触发子系统:

  • 虚拟

  • 使能

  • 原子

  • 执行

对于虚拟和使能子系统,Simulink® 基于各自内容的采样时间计算它们的采样时间。

原子子系统是一种特殊情况,其特殊之处在于子系统模块有 SystemSampleTime 参数。而且,如果采样时间不是默认值 –1,原子子系统内的模块的 Inf 值只能是 –1 或者与子系统的 SampleTime 参数值完全相同(离散)。如果保留原子子系统为继承,Simulink 将按照与虚拟和使能子系统相同的方式计算模块的采样时间。但是,子系统 SampleTime 参数的主要用途是允许在一个原子子系统内同时指定大量模块,它们都设置为继承采样时间。要获取在原子子系统中设置的采样时间,请在命令提示符下使用以下命令:

get_param(AtomicSubsystemBlock,‘SystemSampleTime’);

最后,操作子系统的采样时间由 If 模块或 Switch Case 模块设置。

对于模块具有不同采样率的非触发子系统,Simulink 以子系统中存在的所有采样率的元胞数组形式返回子系统的 Compiled Sample Time。要查看此信息,请在 MATLAB 提示符下使用 get_param 命令。

get_param(subsystemBlock,'CompiledSampleTime')

相关主题