我在Simulink中有一个频率斜坡(sin wt,其中w随着时间的推移而增加),并且想要使用可变时间步长求解器。在模拟开始时,时间步长可能很大;最后,他们必须很小。
我已经尝试调整相对容差并且它似乎没有真正有用的效果:最后的时间步长太长而且每个周期的sinewaves只有2-3个点。
有没有办法以某种方式直接或间接地将时间步长与正弦波分辨率联系起来(例如,在模拟中添加块以某种方式导致时间步长随着频率的增加而减小)?
答案 0 :(得分:0)
据我所知,没有办法将这两者联系起来,因为没有一种机制来控制模型中的求解器。我猜你试过僵硬和非僵硬的求解器?即使你的问题可能不僵硬,僵硬的解算器可能会更好。每当我需要这种数据时,我都会使用固定步长求解器,采样时间非常短,但你可以使它比这更友好一些。我会尝试以下内容:
使用sim
命令设置模拟停止时间。
simOut = sim('model', 'TimeEnd',10000);
您可以设置一个更改正弦波的模型:
您可以在每次模拟后更改logspace
边界,这样您就会有一个循环:
模拟模型 收集tout,yout等数据 更改块的离散部分的采样时间,只需使用单个变量。
我想你明白了,如果不让我知道的话!
HTH!