Matlab 作为输入simulink的采样时间

Matlab 作为输入simulink的采样时间,matlab,simulink,Matlab,Simulink,我试图建立一个函数库,使我能够参数化过滤器和其他函数。在simulink标准块中,我只能预先设置采样时间,而不能进行输入。有没有关于我如何创造这个的想法?我的第一种方法是使用条件和时钟来允许这个参数存在,但是时钟也不能被参数化 提前感谢。唯一的方法是将每个块编写为S函数 如果使用m-code,则在设置方法中,需要将块采样时间定义为 block.SampleTimes=[-20] 然后在输出方法中,您需要通过将新值分配到block.NextTimeHit中来设置下一个采样时间(基于输入信号的值)。

我试图建立一个函数库,使我能够参数化过滤器和其他函数。在simulink标准块中,我只能预先设置采样时间,而不能进行输入。有没有关于我如何创造这个的想法?我的第一种方法是使用条件和时钟来允许这个参数存在,但是时钟也不能被参数化


提前感谢。

唯一的方法是将每个块编写为S函数

如果使用m-code,则在
设置
方法中,需要将块采样时间定义为

block.SampleTimes=[-20]

然后在
输出
方法中,您需要通过将新值分配到
block.NextTimeHit
中来设置下一个采样时间(基于输入信号的值)。 可以在此处找到这样做的示例:


通过使用该方法,c-mex S函数中也可以执行类似的操作。

参数化块的典型方法是将其参数定义为MATLAB变量,然后在开始模拟之前为这些变量设置值。在Simulink上下文中,这些参数具体指的是输入到块对话框中的数据。但不清楚这是否是您所要求的,或者您是否表示希望在模拟运行时更改每个块的采样率(使用输入信号)?或者,您可能希望具有恒定的采样率,但允许用户将其指定为输入信号,而不是在对话框中?请澄清您的问题。很抱歉沟通错误,是的,我正在尝试使用输入信号在模拟运行时更改每个块的采样率。也就是说,如果我有一个离散滤波器块,我希望能够用给定的输入信号改变该块的采样。