Simulink中Sample Time与Step Time有何区别?

Simulink中Sample Time与Step Time的区别

在Simulink仿真中,Sample Time采样时间与Step Time步长是两个核心时间参数,它们共同影响仿真的精度与效率,但本质属性与作用机制截然不同。理两者的区别是构建准确仿真模型的基础。

Sample Time:模块与信号的“执行节奏”

Sample Time是模块或信号的固有属性,定义了模块执行计算或信号更新的时间间隔,直接决定信号的离散化特性。在Simulink中,模块的Sample Time通常通过参数面板手动设置,或由模型结构自动继承如子系统继承输入信号的采样时间。

从物理意义看,Sample Time代表“信号在何时被观测或模块何时被触发”。例如,将一个Discrete Transfer Fcn模块的Sample Time设为0.1秒,意味着该模块仅在0、0.1、0.2……秒等离散时间点执行计算,输出信号也仅在这些时刻更新;而Sample Time设为0的模块如Continuous模块则被视为连续系统,理论上在所有时间点都处于活跃状态实际仿真中通过求器近似。

Sample Time的设置直接影响模型的架构:不同采样时间的模块会被Simulink分组,同组模块在同一时间步执行,避免计算冲突;若模块采样时间不匹配如快采样模块驱动慢采样模块,Simulink会通过插值或保持策略处理信号接口,可能引入延迟或精度损失。

Step Time:求器的“计算间隔”

Step Time是仿真求器的配置参数,定义了数值积分过程中相邻计算点的时间间隔,决定仿真引擎的计算节奏。它属于仿真执行层面的参数,通过“Configuration Parameters”中的“Solver”面板设置,与具体模块关。

对于固定步长求器如ode4,Step Time是一个固定值如0.05秒,求器会该间隔推进仿真时间,计算系统状态;对于可变步长求器如ode45,Step Time则是动态调整的——根据系统状态变化率和误差容限自动增减,在状态快速变化时缩小步长以保证精度,在状态平稳时增大步长以提高效率。

Step Time的本质是“数值计算的最小时间单位”。例如,即便某个离散模块的Sample Time为0.1秒,若求器Step Time设为0.05秒,仿真过程中仍会在0、0.05、0.1、0.15……秒等时间点计算连续信号的近似值,而该离散模块仅在0.1、0.2……秒时实际执行,时刻的信号值通过保持器维持。

核心区别:属性、作用与关联逻辑

Sample Time与Step Time的区别可归纳为三点:

其一,属性归属不同。Sample Time是模块/信号的“静态属性”,描述模型的物理或逻辑采样需求,由根据系统特性如传感器采样频率、器周期设定;Step Time是求器的“动态参数”,描述仿真计算的技术细节,由根据精度需求和算力资源调整。

其二,作用对象不同。Sample Time决定“哪些时刻模块被执行”,直接关联信号的离散/连续特性,影响模型的结构逻辑;Step Time决定“求器计算的时间间隔”,直接关联数值积分的精度与速度,影响仿真的执行过程。

其三,关联逻辑不同。Sample Time与Step Time可能存在数值关联如固定步长求器常将Step Time设为模型中最小Sample Time的整数分之一,以捕捉所有离散事件,但二者必然因果关系:Sample Time为0.1秒的模块,其执行时刻0.1、0.2……秒由Sample Time决定,而求器在这些时刻之间的Step Time如0.05秒仅用于计算连续信号的值,不影响离散模块的执行节奏。

实例:离散器与连续系统的仿真

假设某模型包含连续被控对象Sample Time=0和离散器Sample Time=0.5秒,仿真总时长为2秒。此时,器仅在0、0.5、1、1.5、2秒执行计算并输出信号,而求器的Step Time如0.1秒决定了连续对象在0.1、0.2……秒等时刻的状态计算——器输出在非采样时刻保持不变,连续对象则根据当前信号和Step Time逐步更新状态。这里,Sample Time定义了器的“决策节奏”,Step Time定义了系统状态的“计算粒度”,二者共同构成整的仿真时间轴。

总之,Sample Time是模型的“业务节奏”,Step Time是仿真的“计算节奏”,理二者的区别,才能在精度与效率间找到平衡,构建可靠的Simulink模型。

延伸阅读:

    暂无相关