如何从simulink中的“clock”块中取出simulink时间,然后增加一个计数器(k) 在每个采样周期Ts?
中的matlab嵌入函数中让我们说如果simulink时钟时间是t,那么我们可以考虑
if mod(t, Ts)==0
k=k+1;
end
但这不起作用,因为simulink时间是可变的。 任何的想法?感谢。
答案 0 :(得分:0)
我假设你只对变量步求解器这样做感兴趣。我们假设你的采样时间是每两秒,你的求解器是ode23t
,模拟运行十秒钟。然后,您希望变量的值为5。
现在,您设置模型的方式在下面的屏幕截图中。 Constant
是您的采样时间,时钟是时间的来源。您需要一个速率转换模块来确保输入非周期时钟的周期性输出。我为它设置了一个1的样本时间。
最后,在您的代码中,您需要一个persistent
变量。您也可以使用Simulink的数据存储读写块,但这对我来说似乎更简单。