0

众所周知,2 级 Matlab S 函数有一个命令来获取其块的下一次命中时间,例如:

block.NextTimeHit = block.CurrentTime + deltaT;

单个块的时间步长与系统的时间步长有什么关系。我的意思是,如果系统的采样时间步长大于块的采样时间步长,会发生什么?在我看来,求解器永远不会让它发生,因为求解器可能会在每次迭代的每个块中检测到 block.NextTimeHit,并确保当前 system.NextTimeHit 小于每个 block.NextTimeHit。所以没有丢失块的样本。

4

1 回答 1

1

您不会错过任何所需的采样时间。使用固定步长求解器时,Simulink 会检查所有模块是否允许使用固定步长大小,否则将引发错误。当使用可变步长求解器(在您特别询问的情况下需要)时,Simulink 保证它将在所需时间采用一个时间步长。

于 2014-04-14T13:11:45.500 回答