子系统中的采样时间
子系统分为两种:触发和非触发。对于触发子系统,一般情况下,子系统从触发信号获取采样时间。当您使用 Trigger 模块创建触发子系统时,将发生一种例外情况。如果您将模块的触发器类型设置为函数调用,并将采样时间类型设置为周期性,将激活 SampleTime
参数。这种情况下,由您指定 Trigger 模块的采样时间,然后由该模块确定子系统的采样时间。
有四种非触发子系统:
虚拟
使能
原子
执行
对于虚拟和使能子系统,Simulink® 基于各自内容的采样时间计算它们的采样时间。
原子子系统是一种特殊情况,其特殊之处在于子系统模块有 SystemSampleTime
参数。而且,如果采样时间不是默认值 –1,原子子系统内的模块的 Inf
值只能是 –1 或者与子系统的 SampleTime
参数值完全相同(离散)。如果保留原子子系统为继承,Simulink 将按照与虚拟和使能子系统相同的方式计算模块的采样时间。但是,子系统 SampleTime
参数的主要用途是允许在一个原子子系统内同时指定大量模块,它们都设置为继承采样时间。要获取在原子子系统中设置的采样时间,请在命令提示符下使用以下命令:
get_param(AtomicSubsystemBlock,‘SystemSampleTime’);
最后,操作子系统的采样时间由 If 模块或 Switch Case 模块设置。
对于模块具有不同采样率的非触发子系统,Simulink 以子系统中存在的所有采样率的元胞数组形式返回子系统的编译采样时间。要查看此信息,请在 MATLAB® 提示符下使用 get_param
命令。
get_param(subsystemBlock,'CompiledSampleTime')