作为输入模拟链接的采样时间

Sampling time as an input-simulink

我正在尝试创建一个函数库,以允许我对过滤器和其他函数进行参数化。在 simulink 标准块中,我只能事先设置一个采样时间,而不能接受输入。关于如何创建它有什么想法吗?我的第一个方法是使用条件语句和一个时钟来允许这个参数存在,但是时钟也不能被参数化。

提前致谢。

执行此操作的唯一方法是将每个块编写为 S-Function。

如果您使用 m 代码,那么在 setup 方法中您需要将块采样时间定义为

block.SampleTimes = [-2 0];

然后在 output 方法中,您需要通过将新值分配给 block.NextTimeHit 来设置下一个采样时间(基于输入信号的值)。 可以在此处找到执行此操作的示例:A Square Wave with Jitter

可以使用 mdlGetTimeOfNextVarHit 方法在 c-mex S-Function 中完成类似的事情。