simulink中的采样时间计数器

时间:2014-08-15 00:35:13

标签: simulink sampling

如何从simulink中的“clock”块中取出simulink时间,然后增加一个计数器(k) 在每个采样周期Ts?

中的matlab嵌入函数中

让我们说如果simulink时钟时间是t,那么我们可以考虑

if mod(t, Ts)==0
   k=k+1;
end

但这不起作用,因为simulink时间是可变的。 任何的想法?感谢。

1 个答案:

答案 0 :(得分:0)

我假设你只对变量步求解器这样做感兴趣。我们假设你的采样时间是每两秒,你的求解器是ode23t,模拟运行十秒钟。然后,您希望变量的值为5。

现在,您设置模型的方式在下面的屏幕截图中。 Constant是您的采样时间,时钟是时间的来源。您需要一个速率转换模块来确保输入非周期时钟的周期性输出。我为它设置了一个1的样本时间。

最后,在您的代码中,您需要一个persistent变量。您也可以使用Simulink的数据存储读写块,但这对我来说似乎更简单。

enter image description here