主要内容

子系统中的采样时间

R2026b

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

有四种非触发子系统:

  • 虚拟

  • 使能

  • 原子

  • 执行

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

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

st = get_param(atomicSubsystemBlock,"SystemSampleTime");

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

对于模块具有不同采样时间的非触发子系统,请获取子系统的已编译采样时间。软件将子系统的编译采样时间以子系统中存在所有采样时间的元胞数组形式返回。要获取编译的采样时间,请使用以下命令:

cst = get_param(subsystemBlock,"CompiledSampleTime");

另请参阅

主题